From f6b92baae6de3396be46ad9102d63472d6de5a11 Mon Sep 17 00:00:00 2001 From: Daniel Kronovet Date: Thu, 7 Dec 2023 15:23:55 -0500 Subject: [PATCH] Migrate TruffleLoader --- packages/package-utils/TruffleLoader.js | 15 +++++++------- packages/reputation-miner/ReputationMiner.js | 20 +++++++++++-------- packages/reputation-miner/patricia-test.js | 2 +- test-gas-costs/gasCosts.js | 2 +- .../colony-network-recovery.js | 2 +- .../colony-reward-payouts.js | 2 +- test/contracts-network/token-locking.js | 2 +- 7 files changed, 25 insertions(+), 20 deletions(-) diff --git a/packages/package-utils/TruffleLoader.js b/packages/package-utils/TruffleLoader.js index 6446fedd6d..bdacf8bc56 100644 --- a/packages/package-utils/TruffleLoader.js +++ b/packages/package-utils/TruffleLoader.js @@ -46,17 +46,18 @@ class TruffleContractLoader { return true; } - constructor({ contractDir } = {}) { - assert(typeof contractDir === "string" && contractDir, "A `contractDir` option must be provided"); - this._contractDir = contractDir; + constructor({ contractRoot } = {}) { + assert(typeof contractRoot === "string" && contractRoot, "A `contractRoot` option must be provided"); + this._contractRoot = contractRoot; } async _load(query = {}) { - const { contractName = "" } = query; + const { contractDir = "", contractName = "" } = query; + assert(!!contractDir, "A `contractDir` option must be provided"); assert(!!contractName, "A `contractName` option must be provided"); - const file = path.resolve(this._contractDir, `${contractName}.json`); + const file = path.resolve(this._contractRoot, contractDir, `${contractName}.sol`, `${contractName}.json`); return new Promise((resolve, reject) => { jsonfile.readFile(file, (error, contents) => { let transformed; @@ -72,13 +73,13 @@ class TruffleContractLoader { } async load(query, requiredProps = DEFAULT_REQUIRED_CONTRACT_PROPS) { - const { contractName, contractAddress, routerName, routerAddress, ...otherQuery } = query; + const { contractDir, contractName, contractAddress, routerName, routerAddress, ...otherQuery } = query; if (!(contractName || contractAddress)) throw new TypeError("The field `contractName` or `contractAddress` must be supplied"); // Load the contract definition by either the contract name or address const firstQuery = { - ...(contractName ? { contractName } : { contractAddress }), + ...(contractName ? { contractDir, contractName } : { contractAddress }), ...otherQuery, }; const result = await this._load(firstQuery); diff --git a/packages/reputation-miner/ReputationMiner.js b/packages/reputation-miner/ReputationMiner.js index b8dc3ec7ca..9a1525458b 100644 --- a/packages/reputation-miner/ReputationMiner.js +++ b/packages/reputation-miner/ReputationMiner.js @@ -73,10 +73,12 @@ class ReputationMiner { * @return {Promise} */ async initialise(colonyNetworkAddress) { - this.colonyNetworkContractDef = await this.loader.load({ contractName: "IColonyNetwork" }, { abi: true, address: false }); - this.repCycleContractDef = await this.loader.load({ contractName: "IReputationMiningCycle" }, { abi: true, address: false }); - this.tokenLockingContractDef = await this.loader.load({ contractName: "ITokenLocking" }, { abi: true, address: false }); - this.colonyContractDef = await this.loader.load({ contractName: "IColony" }, { abi: true, address: false }); + const flags = { abi: true, address: false }; + + this.colonyNetworkContractDef = await this.loader.load({ contractDir: "colonyNetwork", contractName: "IColonyNetwork" }, flags); + this.repCycleContractDef = await this.loader.load({ contractDir: "reputationMiningCycle", contractName: "IReputationMiningCycle" }, flags); + this.tokenLockingContractDef = await this.loader.load({ contractDir: "tokenLocking", contractName: "ITokenLocking" }, flags); + this.colonyContractDef = await this.loader.load({ contractDir: "colony", contractName: "IColony" }, flags); this.colonyNetwork = new ethers.Contract(colonyNetworkAddress, this.colonyNetworkContractDef.abi, this.realWallet); const tokenLockingAddress = await this.colonyNetwork.getTokenLocking(); @@ -85,12 +87,14 @@ class ReputationMiner { const metaColony = new ethers.Contract(metaColonyAddress, this.colonyContractDef.abi, this.realWallet); this.clnyAddress = await metaColony.getToken(); - if (!this.useJsTree) { - this.patriciaTreeContractDef = await this.loader.load({ contractName: "PatriciaTree" }, { abi: true, address: false, bytecode: true }); + this.patriciaTreeContractDef = await this.loader.load( + { contractDir: "patriciaTree", contractName: "PatriciaTree" }, + { ...flags, bytecode: true } + ); this.patriciaTreeNoHashContractDef = await this.loader.load( - { contractName: "PatriciaTreeNoHash" }, - { abi: true, address: false, bytecode: true } + { contractDir: "patriciaTree", contractName: "PatriciaTreeNoHash" }, + { ...flags, bytecode: true } ); } diff --git a/packages/reputation-miner/patricia-test.js b/packages/reputation-miner/patricia-test.js index 1ed0c1546f..3809fd24e4 100644 --- a/packages/reputation-miner/patricia-test.js +++ b/packages/reputation-miner/patricia-test.js @@ -11,7 +11,7 @@ const IColonyNetwork = artifacts.require("IColonyNetwork"); const PatriciaTree = artifacts.require("PatriciaTree"); const contractLoader = new TruffleLoader({ - contractDir: path.resolve(__dirname, "..", "..", "build", "contracts") + contractRoot: path.resolve(__dirname, "../..", "artifacts", "contracts"), }); contract("Javascript Patricia Tree", accounts => { diff --git a/test-gas-costs/gasCosts.js b/test-gas-costs/gasCosts.js index a99ccb3072..c19b198293 100644 --- a/test-gas-costs/gasCosts.js +++ b/test-gas-costs/gasCosts.js @@ -50,7 +50,7 @@ const IVotingReputation = artifacts.require("IVotingReputation"); const REAL_PROVIDER_PORT = process.env.SOLIDITY_COVERAGE ? 8555 : 8545; const contractLoader = new TruffleLoader({ - contractDir: path.resolve(__dirname, "..", "build", "contracts"), + contractRoot: path.resolve(__dirname, "../..", "artifacts", "contracts"), }); contract("All", function (accounts) { diff --git a/test/contracts-network/colony-network-recovery.js b/test/contracts-network/colony-network-recovery.js index 24164d394b..a3f670c3b8 100644 --- a/test/contracts-network/colony-network-recovery.js +++ b/test/contracts-network/colony-network-recovery.js @@ -46,7 +46,7 @@ const Resolver = artifacts.require("Resolver"); const ContractEditing = artifacts.require("ContractEditing"); const contractLoader = new TruffleLoader({ - contractDir: path.resolve(__dirname, "../..", "build", "contracts"), + contractRoot: path.resolve(__dirname, "../..", "artifacts", "contracts"), }); const REAL_PROVIDER_PORT = process.env.SOLIDITY_COVERAGE ? 8555 : 8545; diff --git a/test/contracts-network/colony-reward-payouts.js b/test/contracts-network/colony-reward-payouts.js index 5a34a5060c..7252687976 100644 --- a/test/contracts-network/colony-reward-payouts.js +++ b/test/contracts-network/colony-reward-payouts.js @@ -36,7 +36,7 @@ const Token = artifacts.require("Token"); const DSRoles = artifacts.require("DSRoles"); const contractLoader = new TruffleLoader({ - contractDir: path.resolve(__dirname, "../..", "build", "contracts"), + contractRoot: path.resolve(__dirname, "../..", "artifacts", "contracts"), }); const REAL_PROVIDER_PORT = process.env.SOLIDITY_COVERAGE ? 8555 : 8545; diff --git a/test/contracts-network/token-locking.js b/test/contracts-network/token-locking.js index a11f5bcb96..852836cd5a 100644 --- a/test/contracts-network/token-locking.js +++ b/test/contracts-network/token-locking.js @@ -33,7 +33,7 @@ const TestVotingToken = artifacts.require("TestVotingToken"); const Resolver = artifacts.require("Resolver"); const contractLoader = new TruffleLoader({ - contractDir: path.resolve(__dirname, "../..", "build", "contracts"), + contractRoot: path.resolve(__dirname, "../..", "artifacts", "contracts"), }); const REAL_PROVIDER_PORT = process.env.SOLIDITY_COVERAGE ? 8555 : 8545;