Deployment tx timed out, deployed implementation but not proxy

Hi,

I’m deploying an upgradeable contract via upgrades library. Script worked fine in local and kovan, but when deploying to mainnet I got the following:

TransactionMinedTimeout [Error]: Timed out waiting for transaction 0x8e9e8fd3fc74cc0373700fcc53d37ce9e29e3d69d05b16510d724e4f21d0f6a9
    at Object.waitAndValidateDeployment (/home/bllablabla/workspace/the-contracts/node_modules/@openzeppelin/upgrades-core/src/deployment.ts:61:15)
    at fetchOrDeployGeneric (/home/dr-manhattan/workspace/ethix-contracts/node_modules/@openzeppelin/upgrades-core/src/impl-store.ts:42:5)
    at Proxy.deployProxy (/home/dr-manhattan/workspace/ethix-contracts/node_modules/@openzeppelin/hardhat-upgrades/src/deploy-proxy.ts:45:18)
    at main (/home/dr-manhattan/workspace/ethix-contracts/scripts/07-deploy-stkbethixdai.js:29:24) {
  deployment: {
    address: '0xCfD8EeE23A6eF73Fe4f2C08b30E128f05F54Fd8E',
    txHash: '0x8e9e8fd3fc74cc0373700fcc53d37ce9e29e3d69d05b16510d724e4f21d0f6a9',
    layout: { storage: [Array], types: [Object] }
  }
}

I verified the contract and it’s the implementation, but I can’t find the proxy or initialization tx.

Is there a way to finish this deployment using this already deployed implementation?

Thanks!

1 Like

Maybe this can give you some idea. Error verifying proxy with plugin @nomiclabs/hardhat-etherscan - #2 by abcoathup

Thanks but the problem is not verification, it’s that instead of Proxy and Implentation being deployed, I had the error message and only Implementation deployed (and added to the .openzeppelin/mainnet json). There are no more contract deployed (that i see)

Running the script again will execute upgrades.deployProxy() and I’m afraid instead of reusing the implementation, it will redo the whole thing. Right now the costs are significant so I rather deploy only the proxy and link it to the implementation manually if possible.

1 Like

Hi @ethicraul,

The required contracts are:

  1. implementation contract
  2. ProxyAdmin (one per project per network)
  3. proxy contract

I assume you are deploying with Hardhat, as I didn’t see a transaction to deploy a Truffle Migrations contract.

Upgrades Plugins should pickup from where it last got to, as the implementation contract has been deployed and the address is added to .openzeppelin/mainnet.json. So it should deploy a ProxyAdmin and then the proxy contract.

1 Like

Can confirm that this worked for a UUPS proxy where the implementation confirmation timed out. The timeout is hardcoded to 60 seconds (!!) which for anyone trying to pay low gas, is very low. There's a TODO in the code to make the timeout configurable, would love to see that feature :smile: