{
  "_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": [],
      "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": "0x608060405234801561001057600080fd5b50610647806100206000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c80632b3c41a4146100465780636ea0aa3114610068578063e371aef01461007b575b600080fd5b61004e610091565b60405161005f959493929190610535565b60405180910390f35b61004e610076366004610457565b6100cd565b610083610435565b60405161005f9291906105ee565b6002546060908190819081906000906100bc90600160c01b900467ffffffffffffffff1660016100cd565b945094509450945094509091929394565b606080606080600060018054905087106040518060400160405280601081526020016f0e6e8c2e4e840d2dcc8caf040d0d2ced60831b8152509061012d5760405162461bcd60e51b815260040161012491906105d4565b60405180910390fd5b5060015460009088880111156101485760015488900361014a565b865b90508067ffffffffffffffff8111801561016357600080fd5b5060405190808252806020026020018201604052801561018d578160200160208202803683370190505b5095508067ffffffffffffffff811180156101a757600080fd5b506040519080825280602002602001820160405280156101d1578160200160208202803683370190505b5094508067ffffffffffffffff811180156101eb57600080fd5b5060405190808252806020026020018201604052801561021f57816020015b606081526020019060019003908161020a5790505b5093508067ffffffffffffffff8111801561023957600080fd5b50604051908082528060200260200182016040528015610263578160200160208202803683370190505b50925060005b818110156104195760006001828b018154811061028257fe5b60009182526020808320909101548083529082905260409091205489519192506001600160c01b0316908990849081106102b857fe5b60200260200101818152505060008082815260200190815260200160002060000160189054906101000a900467ffffffffffffffff1667ffffffffffffffff1687838151811061030457fe5b60209081029190910181019190915260008281528082526040908190206002908101805483516001821615610100026000190190911692909204601f810185900485028301850190935282825290929091908301828280156103a75780601f1061037c576101008083540402835291602001916103a7565b820191906000526020600020905b81548152906001019060200180831161038a57829003601f168201915b50505050508683815181106103b857fe5b602002602001018190525060008082815260200190815260200160002060010160009054906101000a90046001600160a01b03168583815181106103f857fe5b6001600160a01b039092166020928302919091019091015250600101610269565b50506002549497939650919450926001600160c01b0316919050565b6002546001600160c01b03811690600160c01b900467ffffffffffffffff1682565b60008060408385031215610469578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b838110156104b05781516001600160a01b03168752958201959082019060010161048b565b509495945050505050565b6000815180845260208085019450808401835b838110156104b0578151875295820195908201906001016104ce565b60008151808452815b8181101561050f576020818501810151868301820152016104f3565b818111156105205782602083870101525b50601f01601f19169290920160200192915050565b600060a0825261054860a08301886104bb565b60208382038185015261055b82896104bb565b848103604086015287518082529092508183019082810284018301838a01865b838110156105a957601f198784030185526105978383516104ea565b9486019492509085019060010161057b565b505086810360608801526105bd818a610478565b955050505050508260808301529695505050505050565b6000602082526105e760208301846104ea565b9392505050565b6001600160c01b0392909216825267ffffffffffffffff1660208201526040019056fea2646970667358221220216873e83b059e1304609a9498a5f2d56724ec18e03913edb4008a6899d6f9a664736f6c63430007060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100415760003560e01c80632b3c41a4146100465780636ea0aa3114610068578063e371aef01461007b575b600080fd5b61004e610091565b60405161005f959493929190610535565b60405180910390f35b61004e610076366004610457565b6100cd565b610083610435565b60405161005f9291906105ee565b6002546060908190819081906000906100bc90600160c01b900467ffffffffffffffff1660016100cd565b945094509450945094509091929394565b606080606080600060018054905087106040518060400160405280601081526020016f0e6e8c2e4e840d2dcc8caf040d0d2ced60831b8152509061012d5760405162461bcd60e51b815260040161012491906105d4565b60405180910390fd5b5060015460009088880111156101485760015488900361014a565b865b90508067ffffffffffffffff8111801561016357600080fd5b5060405190808252806020026020018201604052801561018d578160200160208202803683370190505b5095508067ffffffffffffffff811180156101a757600080fd5b506040519080825280602002602001820160405280156101d1578160200160208202803683370190505b5094508067ffffffffffffffff811180156101eb57600080fd5b5060405190808252806020026020018201604052801561021f57816020015b606081526020019060019003908161020a5790505b5093508067ffffffffffffffff8111801561023957600080fd5b50604051908082528060200260200182016040528015610263578160200160208202803683370190505b50925060005b818110156104195760006001828b018154811061028257fe5b60009182526020808320909101548083529082905260409091205489519192506001600160c01b0316908990849081106102b857fe5b60200260200101818152505060008082815260200190815260200160002060000160189054906101000a900467ffffffffffffffff1667ffffffffffffffff1687838151811061030457fe5b60209081029190910181019190915260008281528082526040908190206002908101805483516001821615610100026000190190911692909204601f810185900485028301850190935282825290929091908301828280156103a75780601f1061037c576101008083540402835291602001916103a7565b820191906000526020600020905b81548152906001019060200180831161038a57829003601f168201915b50505050508683815181106103b857fe5b602002602001018190525060008082815260200190815260200160002060010160009054906101000a90046001600160a01b03168583815181106103f857fe5b6001600160a01b039092166020928302919091019091015250600101610269565b50506002549497939650919450926001600160c01b0316919050565b6002546001600160c01b03811690600160c01b900467ffffffffffffffff1682565b60008060408385031215610469578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b838110156104b05781516001600160a01b03168752958201959082019060010161048b565b509495945050505050565b6000815180845260208085019450808401835b838110156104b0578151875295820195908201906001016104ce565b60008151808452815b8181101561050f576020818501810151868301820152016104f3565b818111156105205782602083870101525b50601f01601f19169290920160200192915050565b600060a0825261054860a08301886104bb565b60208382038185015261055b82896104bb565b848103604086015287518082529092508183019082810284018301838a01865b838110156105a957601f198784030185526105978383516104ea565b9486019492509085019060010161057b565b505086810360608801526105bd818a610478565b955050505050508260808301529695505050505050565b6000602082526105e760208301846104ea565b9392505050565b6001600160c01b0392909216825267ffffffffffffffff1660208201526040019056fea2646970667358221220216873e83b059e1304609a9498a5f2d56724ec18e03913edb4008a6899d6f9a664736f6c63430007060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
