5 hardhat upgrades.deployProxy函数

我看了 hardhat upgrades.deployProxy函数的源码,感觉是先部署逻辑合约,再部署代理合约。 但是跑了脚本,为什么只有一条hash

请先 登录 后评论

最佳答案 2021-12-03 16:24

官方文档里有https://docs.openzeppelin.com/upgrades-plugins/1.x/

  1. Validate that the implementation is upgrade safe.
  2. Deploy a proxy admin for your project.
  3. Deploy the implementation contract.
  4. Create and initialize the proxy contract.
  5. 第一次部署时,3笔交易 1 检查升级安全性 2 部署代理管理合约 3 部署逻辑实现合约 4 部署存储代理合约

    第二次部署时和升级时 就是1 => 3 => 4,2笔交易 可以通过一下代码打印出各个合约地址

await this.xxxContract.deployed();
  console.log("this.xxxContractis", this.xxxContract.address);
  console.log("xxxContractImplementationAddress is",await upgrades.erc1967.getImplementationAddress(this.xxxContract.address)
  );
  console.log("xxxContractAdminAddress is",await upgrades.erc1967.getAdminAddress(this.xxxContract.address) );
请先 登录 后评论

其它 0 个回答

  • 1 关注
  • 0 收藏,3340 浏览
  • i am duck 提出于 2021-12-03 15:45