{
  "_format": "hh-sol-artifact-1",
  "contractName": "RevertErrorTracking",
  "sourceName": "contracts/utils/implementation/RevertErrorTracking.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "theContract",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "atBlock",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "string",
          "name": "theMessage",
          "type": "string"
        }
      ],
      "name": "ContractRevertError",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "revertedContract",
          "type": "address"
        },
        {
          "internalType": "string",
          "name": "message",
          "type": "string"
        }
      ],
      "name": "addRevertError",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "errorData",
      "outputs": [
        {
          "internalType": "uint192",
          "name": "totalRevertedErrors",
          "type": "uint192"
        },
        {
          "internalType": "uint64",
          "name": "lastErrorTypeIndex",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "showLastRevertedError",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "_lastErrorBlock",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_numErrors",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "_errorString",
          "type": "string[]"
        },
        {
          "internalType": "address[]",
          "name": "_erroringContract",
          "type": "address[]"
        },
        {
          "internalType": "uint256",
          "name": "_totalRevertedErrors",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "startIndex",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "numErrorTypesToShow",
          "type": "uint256"
        }
      ],
      "name": "showRevertedErrors",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "_lastErrorBlock",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_numErrors",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "_errorString",
          "type": "string[]"
        },
        {
          "internalType": "address[]",
          "name": "_erroringContract",
          "type": "address[]"
        },
        {
          "internalType": "uint256",
          "name": "_totalRevertedErrors",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506109e2806100206000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80632b3c41a4146100515780636ea0aa3114610073578063c0ffe90814610086578063e371aef01461009b575b600080fd5b6100596100b1565b60405161006a9594939291906108d1565b60405180910390f35b610059610081366004610797565b6100ec565b6100996100943660046106e3565b61044e565b005b6100a3610621565b60405161006a92919061098a565b6002546060908190819081906000906100db90600160c01b90046001600160401b031660016100ec565b945094509450945094509091929394565b606080606080600060018054905087106040518060400160405280601081526020016f0e6e8c2e4e840d2dcc8caf040d0d2ced60831b8152509061014c5760405162461bcd60e51b81526004016101439190610970565b60405180910390fd5b50600154600090888801111561016757600154889003610169565b865b9050806001600160401b038111801561018157600080fd5b506040519080825280602002602001820160405280156101ab578160200160208202803683370190505b509550806001600160401b03811180156101c457600080fd5b506040519080825280602002602001820160405280156101ee578160200160208202803683370190505b509450806001600160401b038111801561020757600080fd5b5060405190808252806020026020018201604052801561023b57816020015b60608152602001906001900390816102265790505b509350806001600160401b038111801561025457600080fd5b5060405190808252806020026020018201604052801561027e578160200160208202803683370190505b50925060005b818110156104325760006001828b018154811061029d57fe5b60009182526020808320909101548083529082905260409091205489519192506001600160c01b0316908990849081106102d357fe5b60200260200101818152505060008082815260200190815260200160002060000160189054906101000a90046001600160401b03166001600160401b031687838151811061031d57fe5b60209081029190910181019190915260008281528082526040908190206002908101805483516001821615610100026000190190911692909204601f810185900485028301850190935282825290929091908301828280156103c05780601f10610395576101008083540402835291602001916103c0565b820191906000526020600020905b8154815290600101906020018083116103a357829003601f168201915b50505050508683815181106103d157fe5b602002602001018190525060008082815260200190815260200160002060010160009054906101000a90046001600160a01b031685838151811061041157fe5b6001600160a01b039092166020928302919091019091015250600101610284565b50506002549497939650919450926001600160c01b0316919050565b60008282604051602001610463929190610875565b60408051601f1981840301815282825280516020918201206000818152918290529190208054436001600160c01b038181166001600160401b03600160c01b80860482166001019091160291909316176001600160c01b031916919091179091559092507f1a601cf5e0efbd558b2778b7389af04741d1c49bcab104c40daa2da194593617916104f691869186906108a1565b60405180910390a1600280546001600160c01b0319811660016001600160c01b03928316810190921617909155600082815260208190526040902054600160c01b90046001600160401b0316111561054e575061061d565b6001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60182905560008281526020818152604090912091820180546001600160a01b0319166001600160a01b03871617905583516105b99260020191850190610642565b506001805460009283526020839052604090922001805467ffffffffffffffff60a01b1916600160a01b6000199093016001600160401b0390811684029190911791829055600280546001600160c01b03169390920416600160c01b029190911790555b5050565b6002546001600160c01b03811690600160c01b90046001600160401b031682565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261067857600085556106be565b82601f1061069157805160ff19168380011785556106be565b828001600101855582156106be579182015b828111156106be5782518255916020019190600101906106a3565b506106ca9291506106ce565b5090565b5b808211156106ca57600081556001016106cf565b600080604083850312156106f5578182fd5b82356001600160a01b038116811461070b578283fd5b91506020838101356001600160401b0380821115610727578384fd5b818601915086601f83011261073a578384fd5b81358181111561074657fe5b604051601f8201601f191681018501838111828210171561076357fe5b6040528181528382018501891015610779578586fd5b81858501868301378585838301015280955050505050509250929050565b600080604083850312156107a9578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b838110156107f05781516001600160a01b0316875295820195908201906001016107cb565b509495945050505050565b6000815180845260208085019450808401835b838110156107f05781518752958201959082019060010161080e565b60008151808452815b8181101561084f57602081850181015186830182015201610833565b818111156108605782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03831681526040602082018190526000906108999083018461082a565b949350505050565b600060018060a01b0385168252836020830152606060408301526108c8606083018461082a565b95945050505050565b600060a082526108e460a08301886107fb565b6020838203818501526108f782896107fb565b848103604086015287518082529092508183019082810284018301838a01865b8381101561094557601f1987840301855261093383835161082a565b94860194925090850190600101610917565b50508681036060880152610959818a6107b8565b955050505050508260808301529695505050505050565b600060208252610983602083018461082a565b9392505050565b6001600160c01b039290921682526001600160401b031660208201526040019056fea2646970667358221220c71fe5a66b2cbbfe92acc25ccda03ded90ec3cbee985aa5b67c8c17a675a207564736f6c63430007060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80632b3c41a4146100515780636ea0aa3114610073578063c0ffe90814610086578063e371aef01461009b575b600080fd5b6100596100b1565b60405161006a9594939291906108d1565b60405180910390f35b610059610081366004610797565b6100ec565b6100996100943660046106e3565b61044e565b005b6100a3610621565b60405161006a92919061098a565b6002546060908190819081906000906100db90600160c01b90046001600160401b031660016100ec565b945094509450945094509091929394565b606080606080600060018054905087106040518060400160405280601081526020016f0e6e8c2e4e840d2dcc8caf040d0d2ced60831b8152509061014c5760405162461bcd60e51b81526004016101439190610970565b60405180910390fd5b50600154600090888801111561016757600154889003610169565b865b9050806001600160401b038111801561018157600080fd5b506040519080825280602002602001820160405280156101ab578160200160208202803683370190505b509550806001600160401b03811180156101c457600080fd5b506040519080825280602002602001820160405280156101ee578160200160208202803683370190505b509450806001600160401b038111801561020757600080fd5b5060405190808252806020026020018201604052801561023b57816020015b60608152602001906001900390816102265790505b509350806001600160401b038111801561025457600080fd5b5060405190808252806020026020018201604052801561027e578160200160208202803683370190505b50925060005b818110156104325760006001828b018154811061029d57fe5b60009182526020808320909101548083529082905260409091205489519192506001600160c01b0316908990849081106102d357fe5b60200260200101818152505060008082815260200190815260200160002060000160189054906101000a90046001600160401b03166001600160401b031687838151811061031d57fe5b60209081029190910181019190915260008281528082526040908190206002908101805483516001821615610100026000190190911692909204601f810185900485028301850190935282825290929091908301828280156103c05780601f10610395576101008083540402835291602001916103c0565b820191906000526020600020905b8154815290600101906020018083116103a357829003601f168201915b50505050508683815181106103d157fe5b602002602001018190525060008082815260200190815260200160002060010160009054906101000a90046001600160a01b031685838151811061041157fe5b6001600160a01b039092166020928302919091019091015250600101610284565b50506002549497939650919450926001600160c01b0316919050565b60008282604051602001610463929190610875565b60408051601f1981840301815282825280516020918201206000818152918290529190208054436001600160c01b038181166001600160401b03600160c01b80860482166001019091160291909316176001600160c01b031916919091179091559092507f1a601cf5e0efbd558b2778b7389af04741d1c49bcab104c40daa2da194593617916104f691869186906108a1565b60405180910390a1600280546001600160c01b0319811660016001600160c01b03928316810190921617909155600082815260208190526040902054600160c01b90046001600160401b0316111561054e575061061d565b6001805480820182557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60182905560008281526020818152604090912091820180546001600160a01b0319166001600160a01b03871617905583516105b99260020191850190610642565b506001805460009283526020839052604090922001805467ffffffffffffffff60a01b1916600160a01b6000199093016001600160401b0390811684029190911791829055600280546001600160c01b03169390920416600160c01b029190911790555b5050565b6002546001600160c01b03811690600160c01b90046001600160401b031682565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261067857600085556106be565b82601f1061069157805160ff19168380011785556106be565b828001600101855582156106be579182015b828111156106be5782518255916020019190600101906106a3565b506106ca9291506106ce565b5090565b5b808211156106ca57600081556001016106cf565b600080604083850312156106f5578182fd5b82356001600160a01b038116811461070b578283fd5b91506020838101356001600160401b0380821115610727578384fd5b818601915086601f83011261073a578384fd5b81358181111561074657fe5b604051601f8201601f191681018501838111828210171561076357fe5b6040528181528382018501891015610779578586fd5b81858501868301378585838301015280955050505050509250929050565b600080604083850312156107a9578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b838110156107f05781516001600160a01b0316875295820195908201906001016107cb565b509495945050505050565b6000815180845260208085019450808401835b838110156107f05781518752958201959082019060010161080e565b60008151808452815b8181101561084f57602081850181015186830182015201610833565b818111156108605782602083870101525b50601f01601f19169290920160200192915050565b6001600160a01b03831681526040602082018190526000906108999083018461082a565b949350505050565b600060018060a01b0385168252836020830152606060408301526108c8606083018461082a565b95945050505050565b600060a082526108e460a08301886107fb565b6020838203818501526108f782896107fb565b848103604086015287518082529092508183019082810284018301838a01865b8381101561094557601f1987840301855261093383835161082a565b94860194925090850190600101610917565b50508681036060880152610959818a6107b8565b955050505050508260808301529695505050505050565b600060208252610983602083018461082a565b9392505050565b6001600160c01b039290921682526001600160401b031660208201526040019056fea2646970667358221220c71fe5a66b2cbbfe92acc25ccda03ded90ec3cbee985aa5b67c8c17a675a207564736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
