Implementation Contract deployed but not saved to cache

Hey guys,

During mainnet deployment, my deployment script timed out right after my implementation contract deployed, but it did not update the data in the .openzeppelin/mainnet.json file. I already have a ProxyAdmin contract deployed, so the only thing missing for that contract is a TransparentUpgradeableProxy contract.

It looks like I can copy the contents of my .openzeppelin/ropsten.json for the same implementation contract and just change out the transaction hash & contract address fields with the mainnet equivalents. It looks like all other data would be the same (by looking at the other implementation contracts that were deployed on both networks).

Is this a safe assumption or is there a better way to deploy TransparentUpgradeableProxy and initialize it (as well as the deployed ProxyAdmin contract)?

:1234: Code to reproduce

:computer: Environment

Probably an easier way to ask the question:

Will the "layout" key and the primary key of each implementation contract of .openzeppelin directory files be identical across networks? So changing out the "address" and "txHash" make the "impls" object reusable across networks for hardhat deployments/upgrades?

Yes. You have to be careful that the data was produced with the same code & compiler options, but that would work.

Thank you! Can you tell me how the primary key of each implementation contract is generated?

This is the piece of code used to generate ids. If I recall correctly, the id using is the linkedWithoutMetadata