From d2f81ee98e64dd12d9eed495c386d477f873e5df Mon Sep 17 00:00:00 2001 From: Felipe Mendes Date: Tue, 2 May 2023 10:57:24 -0300 Subject: [PATCH] fix: script deployment store for libraries and proxy (#248) --- contracts/scripts/deploy.js | 3 +-- contracts/scripts/utils/deploy-store.js | 16 +++++++++------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/contracts/scripts/deploy.js b/contracts/scripts/deploy.js index c516273..20a7917 100644 --- a/contracts/scripts/deploy.js +++ b/contracts/scripts/deploy.js @@ -25,7 +25,7 @@ const libraryDeployment = async (hre) => { const libContract = await hre.ethers.getContractFactory(lib); const libInstance = await libContract.deploy(); await libInstance.deployed(); - deployStore(hre.network.name, lib, libInstance); + await deployStore(hre.network.name, lib, libInstance, false); console.log(`Library "${lib}" deployed at ${libInstance.address}`); libraries[lib] = libInstance.address; } @@ -70,7 +70,6 @@ module.exports = async (taskArgs, hre) => { `Contract ${CONTRACT_NAME} upgraded at "${deployResult.address}" by account "${deployResult.signer.address}"` ); console.log('\x1b[0m'); - await deployStore(network, CONTRACT_NAME, deployResult); } catch (e) { if ( e.message === 'new-proxy-instance' || diff --git a/contracts/scripts/utils/deploy-store.js b/contracts/scripts/utils/deploy-store.js index c01011c..ba3ef52 100644 --- a/contracts/scripts/utils/deploy-store.js +++ b/contracts/scripts/utils/deploy-store.js @@ -33,22 +33,16 @@ const getBuildData = async (contractName) => { }; }; -const deployStore = async (network, contractName, contract) => { +const deployStore = async (network, contractName, contract, isProxy = true) => { const filePath = getDeployFilePath(network, contractName); const { buildId, solcInput, abi, bytecode, metadata, storageLayout } = await getBuildData(contractName); - const implementationAddress = await getImplementationAddress( - hre.network.provider, - contract.address - ); - const data = { buildId, timestamp: new Date().toLocaleString('en-US'), address: contract.address, - implementationAddress, transactionHash: contract.deployTransaction.hash, args: contract.deployTransaction.args, gasPrice: contract.deployTransaction.gasPrice.toNumber(), @@ -58,6 +52,14 @@ const deployStore = async (network, contractName, contract) => { storageLayout, }; + if (isProxy) { + const implementationAddress = await getImplementationAddress( + hre.network.provider, + contract.address + ); + data.implementationAddress = implementationAddress; + } + try { const solcInputsFilePath = filePath.split('/').slice(0, -1).join('/') +