Openzeppelin
deployProxy()後如何獲取實現地址?(@open-zepplin/hardhat-upgrades)
我正在通過安全帽升級使用代理模式部署我的令牌。
const TokenFactory = await ethers.getContractFactory('MyToken'); const token = await upgrades.deployProxy(TokenFactory); const result = await token.deployed();
接下來我想使用 etherscan 驗證合約
hardhat-etherscan
await run('verify:verify', { address: token.address, constructorArguments: [] });
問題是
token.address
指向代理。據我了解,不需要驗證代理,而是需要驗證實現。但我似乎無法找到獲取實現地址的方法。
這個難以捉摸的地址在哪裡?部署代理後如何以程式方式訪問它?
試試下面,
import { getImplementationAddress } from '@openzeppelin/upgrades-core'; const currentImplAddress = await getImplementationAddress(provider, proxyAddress);