fix on contract add
This commit is contained in:
parent
7ebaa7aaca
commit
2827deb418
|
@ -13,6 +13,6 @@
|
||||||
"any": "any"
|
"any": "any"
|
||||||
},
|
},
|
||||||
"events": {
|
"events": {
|
||||||
"contextChange": "contextChange"
|
"contractFilesChanged": "contractFilesChanged"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@ let async = require('async');
|
||||||
|
|
||||||
let Compiler = require('./compiler.js');
|
let Compiler = require('./compiler.js');
|
||||||
let utils = require('../utils/utils.js');
|
let utils = require('../utils/utils.js');
|
||||||
|
const constants = require('../constants');
|
||||||
|
|
||||||
// TODO: create a contract object
|
// TODO: create a contract object
|
||||||
|
|
||||||
|
@ -16,6 +17,11 @@ class ContractsManager {
|
||||||
this.contractDependencies = {};
|
this.contractDependencies = {};
|
||||||
this.gasLimit = options.gasLimit;
|
this.gasLimit = options.gasLimit;
|
||||||
this.deployOnlyOnConfig = false;
|
this.deployOnlyOnConfig = false;
|
||||||
|
this.events = options.events;
|
||||||
|
|
||||||
|
this.events.on(constants.events.contractFilesChanged, (newContracts) => {
|
||||||
|
this.contractFiles = newContracts;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
build(done) {
|
build(done) {
|
||||||
|
|
|
@ -3,6 +3,7 @@ const File = require('./file.js');
|
||||||
const Plugins = require('./plugins.js');
|
const Plugins = require('./plugins.js');
|
||||||
const utils = require('../utils/utils.js');
|
const utils = require('../utils/utils.js');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
const deepEqual = require('deep-equal');
|
||||||
const constants = require('../constants');
|
const constants = require('../constants');
|
||||||
|
|
||||||
var Config = function(options) {
|
var Config = function(options) {
|
||||||
|
@ -217,8 +218,12 @@ Config.prototype.loadWebServerConfigFile = function() {
|
||||||
};
|
};
|
||||||
|
|
||||||
Config.prototype.loadEmbarkConfigFile = function() {
|
Config.prototype.loadEmbarkConfigFile = function() {
|
||||||
var contracts = this.embarkConfig.contracts;
|
const contracts = this.embarkConfig.contracts;
|
||||||
this.contractsFiles = this.loadFiles(contracts);
|
const newContractsFiles = this.loadFiles(contracts);
|
||||||
|
if (newContractsFiles.length !== this.contractFiles || deepEqual(newContractsFiles, this.contractFiles)) {
|
||||||
|
this.events.emit(constants.events.contractFilesChanged, newContractsFiles);
|
||||||
|
this.contractsFiles = newContractsFiles;
|
||||||
|
}
|
||||||
// determine contract 'root' directories
|
// determine contract 'root' directories
|
||||||
this.contractDirectories = contracts.map((dir) => {
|
this.contractDirectories = contracts.map((dir) => {
|
||||||
return dir.split("**")[0];
|
return dir.split("**")[0];
|
||||||
|
|
|
@ -197,7 +197,8 @@ class Engine {
|
||||||
contractsConfig: this.config.contractsConfig,
|
contractsConfig: this.config.contractsConfig,
|
||||||
logger: this.logger,
|
logger: this.logger,
|
||||||
plugins: this.plugins,
|
plugins: this.plugins,
|
||||||
gasLimit: false
|
gasLimit: false,
|
||||||
|
events: this.events
|
||||||
});
|
});
|
||||||
|
|
||||||
this.deployManager = new DeployManager({
|
this.deployManager = new DeployManager({
|
||||||
|
@ -211,7 +212,7 @@ class Engine {
|
||||||
onlyCompile: options.onlyCompile
|
onlyCompile: options.onlyCompile
|
||||||
});
|
});
|
||||||
|
|
||||||
this.events.on('file-event', function (fileType, _path) {
|
this.events.on('file-event', function (fileType) {
|
||||||
// TODO: for now need to deploy on asset chanes as well
|
// TODO: for now need to deploy on asset chanes as well
|
||||||
// because the contractsManager config is corrupted after a deploy
|
// because the contractsManager config is corrupted after a deploy
|
||||||
if (fileType === 'contract' || fileType === 'config') {
|
if (fileType === 'contract' || fileType === 'config') {
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.2.tgz",
|
||||||
"integrity": "sha512-Q3FWsbdmkQd1ib11A4XNWQvRD//5KpPoGawA8aB2DR7pWKoW9XQv3+dGxD/Z1eVFze23Okdo27ZQytVFlweKvQ==",
|
"integrity": "sha512-Q3FWsbdmkQd1ib11A4XNWQvRD//5KpPoGawA8aB2DR7pWKoW9XQv3+dGxD/Z1eVFze23Okdo27ZQytVFlweKvQ==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/node": "9.6.6"
|
"@types/node": "10.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/lockfile": {
|
"@types/lockfile": {
|
||||||
|
@ -32,16 +32,16 @@
|
||||||
"integrity": "sha512-pD6JuijPmrfi84qF3/TzGQ7zi0QIX+d7ZdetD6jUA6cp+IsCzAquXZfi5viesew+pfpOTIdAVKuh1SHA7KeKzg=="
|
"integrity": "sha512-pD6JuijPmrfi84qF3/TzGQ7zi0QIX+d7ZdetD6jUA6cp+IsCzAquXZfi5viesew+pfpOTIdAVKuh1SHA7KeKzg=="
|
||||||
},
|
},
|
||||||
"@types/node": {
|
"@types/node": {
|
||||||
"version": "9.6.6",
|
"version": "10.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-9.6.6.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-10.0.0.tgz",
|
||||||
"integrity": "sha512-SJe0g5cZeGNDP5sD8mIX3scb+eq8LQQZ60FXiKZHipYSeEFZ5EKml+NNMiO76F74TY4PoMWlNxF/YRY40FOvZQ=="
|
"integrity": "sha512-kctoM36XiNZT86a7tPsUje+Q/yl+dqELjtYApi0T5eOQ90Elhu0MI10rmYk44yEP4v1jdDvtjQ9DFtpRtHf2Bw=="
|
||||||
},
|
},
|
||||||
"@types/node-fetch": {
|
"@types/node-fetch": {
|
||||||
"version": "1.6.9",
|
"version": "1.6.9",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-1.6.9.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node-fetch/-/node-fetch-1.6.9.tgz",
|
||||||
"integrity": "sha512-n2r6WLoY7+uuPT7pnEtKJCmPUGyJ+cbyBR8Avnu4+m1nzz7DwBVuyIvvlBzCZ/nrpC7rIgb3D6pNavL7rFEa9g==",
|
"integrity": "sha512-n2r6WLoY7+uuPT7pnEtKJCmPUGyJ+cbyBR8Avnu4+m1nzz7DwBVuyIvvlBzCZ/nrpC7rIgb3D6pNavL7rFEa9g==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/node": "9.6.6"
|
"@types/node": "10.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/semver": {
|
"@types/semver": {
|
||||||
|
@ -54,7 +54,7 @@
|
||||||
"resolved": "https://registry.npmjs.org/@types/tar/-/tar-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/@types/tar/-/tar-4.0.0.tgz",
|
||||||
"integrity": "sha512-YybbEHNngcHlIWVCYsoj7Oo1JU9JqONuAlt1LlTH/lmL8BMhbzdFUgReY87a05rY1j8mfK47Del+TCkaLAXwLw==",
|
"integrity": "sha512-YybbEHNngcHlIWVCYsoj7Oo1JU9JqONuAlt1LlTH/lmL8BMhbzdFUgReY87a05rY1j8mfK47Del+TCkaLAXwLw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/node": "9.6.6"
|
"@types/node": "10.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@types/url-join": {
|
"@types/url-join": {
|
||||||
|
@ -2138,6 +2138,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"deep-equal": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
|
||||||
|
"integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
|
||||||
|
},
|
||||||
"deep-is": {
|
"deep-is": {
|
||||||
"version": "0.1.3",
|
"version": "0.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz",
|
||||||
|
@ -6647,7 +6652,6 @@
|
||||||
"version": "1.0.35",
|
"version": "1.0.35",
|
||||||
"resolved": "https://registry.npmjs.org/node-webcrypto-ossl/-/node-webcrypto-ossl-1.0.35.tgz",
|
"resolved": "https://registry.npmjs.org/node-webcrypto-ossl/-/node-webcrypto-ossl-1.0.35.tgz",
|
||||||
"integrity": "sha1-FCJVeb0J9dY7CtbO4LqAD4xqBg0=",
|
"integrity": "sha1-FCJVeb0J9dY7CtbO4LqAD4xqBg0=",
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"mkdirp": "0.5.1",
|
"mkdirp": "0.5.1",
|
||||||
"nan": "2.9.2",
|
"nan": "2.9.2",
|
||||||
|
@ -10897,7 +10901,6 @@
|
||||||
"version": "0.1.19",
|
"version": "0.1.19",
|
||||||
"resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-0.1.19.tgz",
|
"resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-0.1.19.tgz",
|
||||||
"integrity": "sha1-8CTjoCu8oW3tRtJpaMQlNaORJNw=",
|
"integrity": "sha1-8CTjoCu8oW3tRtJpaMQlNaORJNw=",
|
||||||
"optional": true,
|
|
||||||
"requires": {
|
"requires": {
|
||||||
"tslib": "1.9.0"
|
"tslib": "1.9.0"
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,6 +34,7 @@
|
||||||
"colors": "^1.1.2",
|
"colors": "^1.1.2",
|
||||||
"commander": "^2.15.1",
|
"commander": "^2.15.1",
|
||||||
"css-loader": "^0.28.11",
|
"css-loader": "^0.28.11",
|
||||||
|
"deep-equal": "^1.0.1",
|
||||||
"ejs": "^2.5.8",
|
"ejs": "^2.5.8",
|
||||||
"ethereumjs-testrpc": "^6.0.3",
|
"ethereumjs-testrpc": "^6.0.3",
|
||||||
"file-loader": "^1.1.5",
|
"file-loader": "^1.1.5",
|
||||||
|
|
|
@ -3,6 +3,7 @@ let ContractsManager = require('../lib/contracts/contracts.js');
|
||||||
let Logger = require('../lib/core/logger.js');
|
let Logger = require('../lib/core/logger.js');
|
||||||
let File = require('../lib/core/file.js');
|
let File = require('../lib/core/file.js');
|
||||||
let TestLogger = require('../lib/tests/test_logger.js');
|
let TestLogger = require('../lib/tests/test_logger.js');
|
||||||
|
let Events = require('../lib/core/events');
|
||||||
let assert = require('assert');
|
let assert = require('assert');
|
||||||
|
|
||||||
//let SolidityCompiler = require('../lib/modules/solidity');
|
//let SolidityCompiler = require('../lib/modules/solidity');
|
||||||
|
@ -55,7 +56,8 @@ describe('embark.Contracts', function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
logger: new Logger({})
|
logger: new Logger({}),
|
||||||
|
events: new Events()
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('#build', function() {
|
describe('#build', function() {
|
||||||
|
@ -146,7 +148,8 @@ describe('embark.Contracts', function() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
logger: new Logger({})
|
logger: new Logger({}),
|
||||||
|
events: new Events()
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('#build', function() {
|
describe('#build', function() {
|
||||||
|
|
Loading…
Reference in New Issue