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

上边是一个可升级合约的目录结构
是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
}
这个文件是在你部署合约之后才会存在,【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... 
                如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!