diff options
author | Greg Hysen <greg.hysen@gmail.com> | 2018-04-10 02:55:23 +0800 |
---|---|---|
committer | Greg Hysen <greg.hysen@gmail.com> | 2018-04-10 10:25:07 +0800 |
commit | eecf09f51564df4f63139f26e65efa1102a9958d (patch) | |
tree | 2ab49214ca5f1aef196d1899de8091908feabb82 /packages/deployer/src/compiler.ts | |
parent | 61fc3346c2fe2adc33dfe84aa50780d61e10efdf (diff) | |
download | dexon-sol-tools-eecf09f51564df4f63139f26e65efa1102a9958d.tar dexon-sol-tools-eecf09f51564df4f63139f26e65efa1102a9958d.tar.gz dexon-sol-tools-eecf09f51564df4f63139f26e65efa1102a9958d.tar.bz2 dexon-sol-tools-eecf09f51564df4f63139f26e65efa1102a9958d.tar.lz dexon-sol-tools-eecf09f51564df4f63139f26e65efa1102a9958d.tar.xz dexon-sol-tools-eecf09f51564df4f63139f26e65efa1102a9958d.tar.zst dexon-sol-tools-eecf09f51564df4f63139f26e65efa1102a9958d.zip |
Added a detailed description of `renameOverloadedMethods` (special thanks to @fabioberger). Updated Javascript styles in the Abi-Gen and Utils packages, around support for function overloading.
Diffstat (limited to 'packages/deployer/src/compiler.ts')
-rw-r--r-- | packages/deployer/src/compiler.ts | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/packages/deployer/src/compiler.ts b/packages/deployer/src/compiler.ts index beaaab141..e3ecc6c72 100644 --- a/packages/deployer/src/compiler.ts +++ b/packages/deployer/src/compiler.ts @@ -26,7 +26,7 @@ import { CompilerOptions, ContractArtifact, ContractDirectory, - ContractIds, + ContractIdToSourceFileId, ContractNetworkData, ContractNetworks, ContractSourceDataByFileId, @@ -75,6 +75,9 @@ export class Compiler { encoding: 'utf8', }; const source = await fsWrapper.readFileAsync(contentPath, opts); + if (!_.startsWith(contentPath, contractBaseDir)) { + throw new Error(`Expected content path '${contentPath}' to begin with '${contractBaseDir}'`); + } const sourceFilePath = contentPath.slice(contractBaseDir.length); sources[sourceFilePath] = source; logUtils.log(`Reading ${sourceFilePath} source...`); @@ -114,7 +117,7 @@ export class Compiler { await createDirIfDoesNotExistAsync(this._artifactsDir); await createDirIfDoesNotExistAsync(SOLC_BIN_DIR); this._contractSources = {}; - const contractIds: ContractIds = {}; + const contractIdToSourceFileId: ContractIdToSourceFileId = {}; const contractDirs = Array.from(this._contractDirs.values()); for (const contractDir of contractDirs) { const sources = await Compiler._getContractSourcesAsync(contractDir.path, contractDir.path); @@ -127,18 +130,20 @@ export class Compiler { this._contractSources[sourceFileId] = source; // Create a mapping between the contract id and its source file id const contractId = constructContractId(contractDir.namespace, sourceFilePath); - if (!_.isUndefined(contractIds[contractId])) { + if (!_.isUndefined(contractIdToSourceFileId[contractId])) { throw new Error(`Found duplicate contract with ID '${contractId}'`); } - contractIds[contractId] = sourceFileId; + contractIdToSourceFileId[contractId] = sourceFileId; }); } _.forIn(this._contractSources, this._setContractSpecificSourceData.bind(this)); const specifiedContractIds = this._specifiedContracts.has(ALL_CONTRACTS_IDENTIFIER) - ? _.keys(contractIds) + ? _.keys(contractIdToSourceFileId) : Array.from(this._specifiedContracts.values()); await Promise.all( - _.map(specifiedContractIds, async contractId => this._compileContractAsync(contractIds[contractId])), + _.map(specifiedContractIds, async contractId => + this._compileContractAsync(contractIdToSourceFileId[contractId]), + ), ); } /** |