fix issues with the console

This commit is contained in:
Iuri Matias 2017-10-07 19:53:57 -04:00
parent 3d88138804
commit ef98346963
3 changed files with 31 additions and 13 deletions

View File

@ -27,7 +27,7 @@ class CodeGenerator {
});
this.events.setCommandHandler('abi-contracts-vanila', function(cb) {
let vanillaContractsABI = self.generateContracts(false);
let vanillaContractsABI = self.generateContracts(false, true);
let contractsJSON = self.generateContractsJSON();
cb(vanillaContractsABI, contractsJSON);
@ -88,11 +88,19 @@ result += "\n";
result += "\n })(0, memo);";
result += "\n};";
result += "\nvar __LoadManager = function() { this.list = []; this.done = false; }";
result += "\n__LoadManager.prototype.execWhenReady = function(cb) { if (this.done) { cb(); } else { this.list.push(cb) } }";
result += "\n__LoadManager.prototype.doFirst = function(todo) { var self = this; todo(function() { self.done = true; self.list.map((x) => x.apply()) }) }";
result += "\nthis.__loadManagerInstance = new __LoadManager();";
result += "\nthis.__mainContext = this;";
let mainContext = "";
if (isDeployment) {
mainContext = "__mainContext.";
result += "\nvar __mainContext = __mainContext || this;";
} else {
result += "\nvar __mainContext = __mainContext || this;";
mainContext = "__mainContext.";
}
result += "\n" + mainContext + "__LoadManager = function() { this.list = []; this.done = false; }";
result += "\n" + mainContext + "__LoadManager.prototype.execWhenReady = function(cb) { if (this.done) { cb(); } else { this.list.push(cb) } }";
result += "\n" + mainContext + "__LoadManager.prototype.doFirst = function(todo) { var self = this; todo(function() { self.done = true; self.list.map((x) => x.apply()) }) }";
result += "\n" + mainContext + "__loadManagerInstance = new " + mainContext + "__LoadManager();";
result += "\nvar whenEnvIsLoaded = function(cb) {";
result += "\n if (typeof document !== 'undefined' && document !== null) {";
@ -111,13 +119,14 @@ result += "\n";
result += plugin.generateProvider(self) + "\n";
});
} else {
result += "\nwhenEnvIsLoaded(__loadManagerInstance.doFirst(function(done) {\n";
result += "\nwhenEnvIsLoaded(function(){" + mainContext + "__loadManagerInstance.doFirst(function(done) {\n";
result += "\nif (typeof window !== 'undefined') { window.web3 = undefined; }";
if (isDeployment) {
let connection = "http://" + this.contractsConfig.deployment.host + ":" + this.contractsConfig.deployment.port;
result += '\n\tweb3 = new Web3(new Web3.providers.HttpProvider("' + connection + '"));';
result += '\n\tdone();';
} else {
let connectionCode = "";
@ -151,17 +160,24 @@ result += "\n";
result += connectionCode;
}
result += '\n}))';
result += '\n})})';
}
return result;
}
generateContracts(useEmbarkJS) {
generateContracts(useEmbarkJS, isDeployment) {
let self = this;
let result = "\n";
let contractsPlugins;
let mainContext = "";
if (isDeployment) {
mainContext = "__mainContext.";
} else {
mainContext = "__mainContext.";
}
if (self.blockchainConfig === {} || self.blockchainConfig.enabled === false) {
return "";
}
@ -192,11 +208,11 @@ result += "\n";
//result += "\n }";
//result += "\n}";
result += "\n__loadManagerInstance.execWhenReady(function() {";
result += "\n" + mainContext + "__loadManagerInstance.execWhenReady(function() {";
result += "\nif (typeof window !== 'undefined') { window." + className + " = undefined; }";
if (useEmbarkJS) {
let contractAddress = contract.deployedAddress ? ("'" + contract.deployedAddress + "'") : "undefined";
result += "\n__mainContext." + className + " = new EmbarkJS.Contract({abi: " + abi + ", address: " + contractAddress + ", code: '" + contract.code + "', gasEstimates: " + gasEstimates + "});";
result += "\n" + mainContext + "" + className + " = new EmbarkJS.Contract({abi: " + abi + ", address: " + contractAddress + ", code: '" + contract.code + "', gasEstimates: " + gasEstimates + "});";
} else {
result += "\n" + className + "Abi = " + abi + ";";
result += "\n" + className + "Contract = web3.eth.contract(" + className + "Abi);";
@ -269,7 +285,7 @@ result += "\n";
let result = "";
result += this.generateProvider(options.deployment);
result += this.generateContracts(options.useEmbarkJS);
result += this.generateContracts(options.useEmbarkJS, options.deployment);
//result += this.generateStorageInitialization(options.useEmbarkJS);
//result += this.generateCommunicationInitialization(options.useEmbarkJS);

View File

@ -82,7 +82,7 @@ class Deploy {
if (contract.onDeploy !== undefined) {
self.logger.info('executing onDeploy commands');
let codeGenerator = new CodeGenerator({contractsManager: self.contractsManager});
let code = codeGenerator.generateContracts(false);
let code = codeGenerator.generateContracts(false, true);
let cmds = contract.onDeploy.join(';\n');
RunCode.doEval(code + "\n" + cmds, self.web3);

View File

@ -1,5 +1,6 @@
let Web3 = require('web3');
let web3;
let __mainContext;
// ======================
// the eval is used for evaluating some of the contact calls for different purposes
@ -10,6 +11,7 @@ function doEval(code, _web3) {
if (_web3) {
web3 = _web3;
}
return eval(code); // jshint ignore:line
}