可升级合约的升级配置信息丢失后的解决方案

可升级合约是很常见的一种维护合约的方式。方便生产环境中的逻辑升级,以及漏洞的修复。常见的可升级框架有openzeppelin-cli、truffle、hardhat等,但是有些情况会存在误操作或者误删等情况,导致可升级合约的配置文件丢失。本文主要详细讲解在配置文件丢失的情况下,如何重新配置并进行合

可升级合约是很常见的一种维护合约的方式。方便生产环境中的逻辑升级,以及漏洞的修复。常见的可升级框架有openzeppelin-cli、truffle、hardhat等,但是有些情况会存在误操作或者误删等情况,导致可升级合约的配置文件丢失。本文主要详细讲解在配置文件丢失的情况下,如何重新配置并进行合约的升级

文件目录分析

图片.png

上边是一个可升级合约的目录结构

目录分析

.openzeppelin

是openzeppelin可升级合约的配置文件存放位置,其中project.json是合约配置信息包含哪些合约,在部署时间使用的版本,是否开启优化等配置信息:

{
  "manifestVersion": "2.2",
  "contracts": {
    "Verify": "Verify"
  },
  "dependencies": {},
  "name": "market",
  "version": "0.0.1",
  "compiler": {
    "compilerSettings": {
      "optimizer": {
        "enabled": false,
        "runs": "200"
      }
    },
    "typechain": {
      "enabled": false
    },
    "solcVersion": "0.6.12",
    "manager": "openzeppelin",
    "artifactsDir": "build/contracts",
    "contractsDir": "contracts"
  },
  "telemetryOptIn": true
}

dev-97.json

这个文件是在你部署合约之后才会存在,【97】是因为这个项目在bsc测试网,链id为97的节点上部署的,在不同的链上部署之后都会生成对应的json部署文件。


{
  "contracts": {
    "Verify": {
      //这个是具体实现的合约,下边讲解如何找到具体实现的合约
      "address": "0xa10930bd4Dc23a23e460B9cD3d18c7f8E8124014",

      //下边这些信息,可以通过在其它链部署一次,然后复制过来
      "constructorCode": "608060405234801561001057600080fd5b50610e9f806100206000396000f3fe",
      "bodyBytecodeHash": "5ee1df4f30810ac49d0fbdc177c870ebf1be19166bc7c2705b437a81c2737a4a",
      "localBytecodeHash": "8e807ab806c6762d7cb27bb69c2d32453e3ca1faa0c50a429922c50ab82cbd46",
      "deployedBytecodeHash": "8e807ab806c6762d7cb27bb69c2d32453e3ca1faa0c50a429922c50ab82cbd46",
      "types": {
        "t_bool": {
          "id": "t_bool",
          "kind": "elementary",
          "label": "bool"
        },
        "t_mapping<t_bool>": {
          "id": "t_mapping<t_bool>",
          "valueType": "t_bool",
          "label": "mapping(key => bool)",
          "kind": "mapping"
        }
      },
      "storage": [
        {
          "contract": "Verify",
          "path": "contracts/logic/Verify.sol",
          "label": "isOwner",
          "astId": 947,
          "type": "t_mapping<t_bool>",
          "src": "81:41:6"
        }
      ],
      "warn...

剩余50%的内容订阅专栏后可查看

点赞 1
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。
5 订阅 2 篇文章

0 条评论

请先 登录 后评论
智能合约&nft-开发者
智能合约&nft-开发者
0xF73d...90e8
telegram: @topnft2022