{
  "_format": "hh-sol-artifact-1",
  "contractName": "Simple",
  "sourceName": "src/mocks/Simple.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "count",
          "type": "uint64"
        }
      ],
      "name": "CounterEvent",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "expected",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "have",
          "type": "uint256"
        }
      ],
      "name": "LogAndIncrementCalled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "NullEvent",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "caller",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "redeemer",
          "type": "address"
        }
      ],
      "name": "RedeemedEvent",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "checkBlockHashes",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "useTopLevel",
          "type": "bool"
        },
        {
          "internalType": "bool",
          "name": "directCase",
          "type": "bool"
        },
        {
          "internalType": "bool",
          "name": "staticCase",
          "type": "bool"
        },
        {
          "internalType": "bool",
          "name": "delegateCase",
          "type": "bool"
        },
        {
          "internalType": "bool",
          "name": "callcodeCase",
          "type": "bool"
        },
        {
          "internalType": "bool",
          "name": "callCase",
          "type": "bool"
        }
      ],
      "name": "checkCalls",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "input",
          "type": "bytes"
        }
      ],
      "name": "checkGasUsed",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "useTopLevel",
          "type": "bool"
        },
        {
          "internalType": "bool",
          "name": "expected",
          "type": "bool"
        }
      ],
      "name": "checkIsTopLevelOrWasAliased",
      "outputs": [],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "counter",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "difficulty",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "emitNullEvent",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getBlockDifficulty",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "increment",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "incrementEmit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "incrementRedeem",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "expected",
          "type": "uint256"
        }
      ],
      "name": "logAndIncrement",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "noop",
      "outputs": [],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pleaseRevert",
      "outputs": [],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract ISequencerInbox",
          "name": "sequencerInbox",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "batchData",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "numberToPost",
          "type": "uint256"
        }
      ],
      "name": "postManyBatches",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "storeDifficulty",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b506110b7806100206000396000f3fe608060405234801561001057600080fd5b50600436106100e05760003560e01c806361bc221a1161008757806361bc221a146101455780638a390877146101705780639ff5ccac14610183578063b1948fc31461018b578063b226a9641461019e578063cff36f2d146101a6578063d09de08a146101af578063ded5ecad146101b757600080fd5b806305795f73146100e55780630e8c389f146100ef57806312e05dd1146100f757806319cae4621461010e5780631a2f8a921461011757806344c25fba1461012a5780635677c11e1461013d5780635dfc2e4a146100ed575b600080fd5b6100ed6101ca565b005b6100ed61020c565b6001545b6040519081526020015b60405180910390f35b6100fb60015481565b6100fb610125366004610c8a565b6103f2565b6100ed610138366004610d1c565b610476565b6100fb610855565b600054610158906001600160401b031681565b6040516001600160401b039091168152602001610105565b6100ed61017e366004610d9e565b6108b4565b6100ed610939565b6100ed610199366004610dcd565b6109a6565b6100ed610b2d565b6100ed44600155565b6100ed610b58565b6100ed6101c5366004610e99565b610b97565b60405162461bcd60e51b8152602060048201526012602482015271534f4c49444954595f524556455254494e4760701b60448201526064015b60405180910390fd5b33321461024f5760405162461bcd60e51b815260206004820152601160248201527029a2a72222a92fa727aa2fa7a924a3a4a760791b6044820152606401610203565b60646001600160a01b031663175a260b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561028957600080fd5b505afa15801561029d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102c19190610ed2565b6102fb5760405162461bcd60e51b815260206004820152600b60248201526a1393d517d053125054d15160aa1b6044820152606401610203565b600080546001600160401b0316908061031383610f0c565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550507f773c78bf96e65f61c1a2622b47d76e78bfe70dd59cf4f11470c4c121c315941333606e6001600160a01b031663de4ba2b36040518163ffffffff1660e01b815260040160206040518083038186803b15801561039457600080fd5b505afa1580156103a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cc9190610f33565b604080516001600160a01b039384168152929091166020830152015b60405180910390a1565b6000805a90506001600160a01b03851661040e61271083610f50565b858560405161041e929190610f67565b6000604051808303818686fa925050503d806000811461045a576040519150601f19603f3d011682016040523d82523d6000602084013e61045f565b606091505b5050505a61046d9082610f50565b95945050505050565b85156105155784151560646001600160a01b03166308bd624c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104b957600080fd5b505afa1580156104cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f19190610ed2565b1515146105105760405162461bcd60e51b815260040161020390610f77565b6105a9565b84151560646001600160a01b031663175a260b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561055257600080fd5b505afa158015610566573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058a9190610ed2565b1515146105a95760405162461bcd60e51b815260040161020390610f77565b60405163ded5ecad60e01b815286151560048201528415156024820152309063ded5ecad9060440160006040518083038186803b1580156105e957600080fd5b505afa1580156105fd573d6000803e3d6000fd5b505060408051891515602482015286151560448083019190915282518083039091018152606490910182526020810180516001600160e01b031663ded5ecad60e01b1790529051909250600091503090610658908490610fd2565b600060405180830381855af49150503d8060008114610693576040519150601f19603f3d011682016040523d82523d6000602084013e610698565b606091505b50509050806106e05760405162461bcd60e51b81526020600482015260146024820152731111531151d0551157d0d0531317d1905253115160621b6044820152606401610203565b6040805189151560248201528515156044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663ded5ecad60e01b1781528151919350600091829182305af29050806107735760405162461bcd60e51b815260206004820152600f60248201526e10d0531310d3d11157d19052531151608a1b6044820152606401610203565b60408051891515602482015284151560448083019190915282518083039091018152606490910182526020810180516001600160e01b031663ded5ecad60e01b179052905190925030906107c8908490610fd2565b6000604051808303816000865af19150503d8060008114610805576040519150601f19603f3d011682016040523d82523d6000602084013e61080a565b606091505b5050809150508061084b5760405162461bcd60e51b815260206004820152600b60248201526a10d0531317d1905253115160aa1b6044820152606401610203565b5050505050505050565b6000610862600243610f50565b4061086e600143610f50565b4014156108af5760405162461bcd60e51b815260206004820152600f60248201526e0a6829a8abe84989e8696be9082a69608b1b6044820152606401610203565b504390565b600054604080518381526001600160401b0390921660208301527f8df8e492f407b078593c5d8fd7e65ef68505999d911d5b99b017c0b7077398b9910160405180910390a1600080546001600160401b0316908061091183610f0c565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505050565b600080546001600160401b0316908061095183610f0c565b82546101009290920a6001600160401b03818102199093169183160217909155600054604051911681527fa45d7e79cb3c6044f30c8dd891e6571301d6b8b6618df519c987905ec70742e791506020016103e8565b6000836001600160a01b03166306f130566040518163ffffffff1660e01b815260040160206040518083038186803b1580156109e157600080fd5b505afa1580156109f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a199190610fee565b90506000846001600160a01b0316637fa3a40e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a5657600080fd5b505afa158015610a6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8e9190610fee565b905060005b83811015610b255760405163e0bc972960e01b81526001600160a01b0387169063e0bc972990610ad29086908990879060009081908190600401611007565b600060405180830381600087803b158015610aec57600080fd5b505af1158015610b00573d6000803e3d6000fd5b505050508280610b0f90611066565b9350508080610b1d90611066565b915050610a93565b505050505050565b6040517f6f59c82101949290205a9ae9d0c657e6dae1a71c301ae76d385c2792294585fe90600090a1565b600080546001600160401b03169080610b7083610f0c565b91906101000a8154816001600160401b0302191690836001600160401b0316021790555050565b8115610c355780151560646001600160a01b03166308bd624c6040518163ffffffff1660e01b815260040160206040518083038186803b158015610bda57600080fd5b505afa158015610bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c129190610ed2565b151514610c315760405162461bcd60e51b815260040161020390610f77565b5050565b80151560646001600160a01b031663175a260b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610bda57600080fd5b6001600160a01b0381168114610c8757600080fd5b50565b600080600060408486031215610c9f57600080fd5b8335610caa81610c72565b925060208401356001600160401b0380821115610cc657600080fd5b818601915086601f830112610cda57600080fd5b813581811115610ce957600080fd5b876020828501011115610cfb57600080fd5b6020830194508093505050509250925092565b8015158114610c8757600080fd5b60008060008060008060c08789031215610d3557600080fd5b8635610d4081610d0e565b95506020870135610d5081610d0e565b94506040870135610d6081610d0e565b93506060870135610d7081610d0e565b92506080870135610d8081610d0e565b915060a0870135610d9081610d0e565b809150509295509295509295565b600060208284031215610db057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080600060608486031215610de257600080fd5b8335610ded81610c72565b925060208401356001600160401b0380821115610e0957600080fd5b818601915086601f830112610e1d57600080fd5b813581811115610e2f57610e2f610db7565b604051601f8201601f19908116603f01168101908382118183101715610e5757610e57610db7565b81604052828152896020848701011115610e7057600080fd5b826020860160208301376000602084830101528096505050505050604084013590509250925092565b60008060408385031215610eac57600080fd5b8235610eb781610d0e565b91506020830135610ec781610d0e565b809150509250929050565b600060208284031215610ee457600080fd5b8151610eef81610d0e565b9392505050565b634e487b7160e01b600052601160045260246000fd5b60006001600160401b0380831681811415610f2957610f29610ef6565b6001019392505050565b600060208284031215610f4557600080fd5b8151610eef81610c72565b600082821015610f6257610f62610ef6565b500390565b8183823760009101908152919050565b60208082526011908201527015539156141150d5115117d49154d55315607a1b604082015260600190565b60005b83811015610fbd578181015183820152602001610fa5565b83811115610fcc576000848401525b50505050565b60008251610fe4818460208701610fa2565b9190910192915050565b60006020828403121561100057600080fd5b5051919050565b86815260c06020820152600086518060c084015261102c8160e0850160208b01610fa2565b6040830196909652506001600160a01b03939093166060840152608083019190915260a082015260e0601f909201601f1916010192915050565b600060001982141561107a5761107a610ef6565b506001019056fea264697066735822122068f9b84bf53ec27fd11c01f626ecb0e7ec2bd70706696062466f79f11eac9f2064736f6c63430008090033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100e05760003560e01c806361bc221a1161008757806361bc221a146101455780638a390877146101705780639ff5ccac14610183578063b1948fc31461018b578063b226a9641461019e578063cff36f2d146101a6578063d09de08a146101af578063ded5ecad146101b757600080fd5b806305795f73146100e55780630e8c389f146100ef57806312e05dd1146100f757806319cae4621461010e5780631a2f8a921461011757806344c25fba1461012a5780635677c11e1461013d5780635dfc2e4a146100ed575b600080fd5b6100ed6101ca565b005b6100ed61020c565b6001545b6040519081526020015b60405180910390f35b6100fb60015481565b6100fb610125366004610c8a565b6103f2565b6100ed610138366004610d1c565b610476565b6100fb610855565b600054610158906001600160401b031681565b6040516001600160401b039091168152602001610105565b6100ed61017e366004610d9e565b6108b4565b6100ed610939565b6100ed610199366004610dcd565b6109a6565b6100ed610b2d565b6100ed44600155565b6100ed610b58565b6100ed6101c5366004610e99565b610b97565b60405162461bcd60e51b8152602060048201526012602482015271534f4c49444954595f524556455254494e4760701b60448201526064015b60405180910390fd5b33321461024f5760405162461bcd60e51b815260206004820152601160248201527029a2a72222a92fa727aa2fa7a924a3a4a760791b6044820152606401610203565b60646001600160a01b031663175a260b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561028957600080fd5b505afa15801561029d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102c19190610ed2565b6102fb5760405162461bcd60e51b815260206004820152600b60248201526a1393d517d053125054d15160aa1b6044820152606401610203565b600080546001600160401b0316908061031383610f0c565b91906101000a8154816001600160401b0302191690836001600160401b03160217905550507f773c78bf96e65f61c1a2622b47d76e78bfe70dd59cf4f11470c4c121c315941333606e6001600160a01b031663de4ba2b36040518163ffffffff1660e01b815260040160206040518083038186803b15801561039457600080fd5b505afa1580156103a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103cc9190610f33565b604080516001600160a01b039384168152929091166020830152015b60405180910390a1565b6000805a90506001600160a01b03851661040e61271083610f50565b858560405161041e929190610f67565b6000604051808303818686fa925050503d806000811461045a576040519150601f19603f3d011682016040523d82523d6000602084013e61045f565b606091505b5050505a61046d9082610f50565b95945050505050565b85156105155784151560646001600160a01b03166308bd624c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104b957600080fd5b505afa1580156104cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104f19190610ed2565b1515146105105760405162461bcd60e51b815260040161020390610f77565b6105a9565b84151560646001600160a01b031663175a260b6040518163ffffffff1660e01b815260040160206040518083038186803b15801561055257600080fd5b505afa158015610566573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061058a9190610ed2565b1515146105a95760405162461bcd60e51b815260040161020390610f77565b60405163ded5ecad60e01b815286151560048201528415156024820152309063ded5ecad9060440160006040518083038186803b1580156105e957600080fd5b505afa1580156105fd573d6000803e3d6000fd5b505060408051891515602482015286151560448083019190915282518083039091018152606490910182526020810180516001600160e01b031663ded5ecad60e01b1790529051909250600091503090610658908490610fd2565b600060405180830381855af49150503d8060008114610693576040519150601f19603f3d011682016040523d82523d6000602084013e610698565b606091505b50509050806106e05760405162461bcd60e51b81526020600482015260146024820152731111531151d0551157d0d0531317d1905253115160621b6044820152606401610203565b6040805189151560248201528515156044808301919091528251808303909101815260649091019091526020810180516001600160e01b031663ded5ecad60e01b1781528151919350600091829182305af29050806107735760405162461bcd60e51b815260206004820152600f60248201526e10d0531310d3d11157d19052531151608a1b6044820152606401610203565b60408051891515602482015284151560448083019190915282518083039091018152606490910182526020810180516001600160e01b031663ded5ecad60e01b179052905190925030906107c8908490610fd2565b6000604051808303816000865af19150503d8060008114610805576040519150601f19603f3d011682016040523d82523d6000602084013e61080a565b606091505b5050809150508061084b5760405162461bcd60e51b815260206004820152600b60248201526a10d0531317d1905253115160aa1b6044820152606401610203565b5050505050505050565b6000610862600243610f50565b4061086e600143610f50565b4014156108af5760405162461bcd60e51b815260206004820152600f60248201526e0a6829a8abe84989e8696be9082a69608b1b6044820152606401610203565b504390565b600054604080518381526001600160401b0390921660208301527f8df8e492f407b078593c5d8fd7e65ef68505999d911d5b99b017c0b7077398b9910160405180910390a1600080546001600160401b0316908061091183610f0c565b91906101000a8154816001600160401b0302191690836001600160401b031602179055505050565b600080546001600160401b0316908061095183610f0c565b82546101009290920a6001600160401b03818102199093169183160217909155600054604051911681527fa45d7e79cb3c6044f30c8dd891e6571301d6b8b6618df519c987905ec70742e791506020016103e8565b6000836001600160a01b03166306f130566040518163ffffffff1660e01b815260040160206040518083038186803b1580156109e157600080fd5b505afa1580156109f5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a199190610fee565b90506000846001600160a01b0316637fa3a40e6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a5657600080fd5b505afa158015610a6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a8e9190610fee565b905060005b83811015610b255760405163e0bc972960e01b81526001600160a01b0387169063e0bc972990610ad29086908990879060009081908190600401611007565b600060405180830381600087803b158015610aec57600080fd5b505af1158015610b00573d6000803e3d6000fd5b505050508280610b0f90611066565b9350508080610b1d90611066565b915050610a93565b505050505050565b6040517f6f59c82101949290205a9ae9d0c657e6dae1a71c301ae76d385c2792294585fe90600090a1565b600080546001600160401b03169080610b7083610f0c565b91906101000a8154816001600160401b0302191690836001600160401b0316021790555050565b8115610c355780151560646001600160a01b03166308bd624c6040518163ffffffff1660e01b815260040160206040518083038186803b158015610bda57600080fd5b505afa158015610bee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c129190610ed2565b151514610c315760405162461bcd60e51b815260040161020390610f77565b5050565b80151560646001600160a01b031663175a260b6040518163ffffffff1660e01b815260040160206040518083038186803b158015610bda57600080fd5b6001600160a01b0381168114610c8757600080fd5b50565b600080600060408486031215610c9f57600080fd5b8335610caa81610c72565b925060208401356001600160401b0380821115610cc657600080fd5b818601915086601f830112610cda57600080fd5b813581811115610ce957600080fd5b876020828501011115610cfb57600080fd5b6020830194508093505050509250925092565b8015158114610c8757600080fd5b60008060008060008060c08789031215610d3557600080fd5b8635610d4081610d0e565b95506020870135610d5081610d0e565b94506040870135610d6081610d0e565b93506060870135610d7081610d0e565b92506080870135610d8081610d0e565b915060a0870135610d9081610d0e565b809150509295509295509295565b600060208284031215610db057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600080600060608486031215610de257600080fd5b8335610ded81610c72565b925060208401356001600160401b0380821115610e0957600080fd5b818601915086601f830112610e1d57600080fd5b813581811115610e2f57610e2f610db7565b604051601f8201601f19908116603f01168101908382118183101715610e5757610e57610db7565b81604052828152896020848701011115610e7057600080fd5b826020860160208301376000602084830101528096505050505050604084013590509250925092565b60008060408385031215610eac57600080fd5b8235610eb781610d0e565b91506020830135610ec781610d0e565b809150509250929050565b600060208284031215610ee457600080fd5b8151610eef81610d0e565b9392505050565b634e487b7160e01b600052601160045260246000fd5b60006001600160401b0380831681811415610f2957610f29610ef6565b6001019392505050565b600060208284031215610f4557600080fd5b8151610eef81610c72565b600082821015610f6257610f62610ef6565b500390565b8183823760009101908152919050565b60208082526011908201527015539156141150d5115117d49154d55315607a1b604082015260600190565b60005b83811015610fbd578181015183820152602001610fa5565b83811115610fcc576000848401525b50505050565b60008251610fe4818460208701610fa2565b9190910192915050565b60006020828403121561100057600080fd5b5051919050565b86815260c06020820152600086518060c084015261102c8160e0850160208b01610fa2565b6040830196909652506001600160a01b03939093166060840152608083019190915260a082015260e0601f909201601f1916010192915050565b600060001982141561107a5761107a610ef6565b506001019056fea264697066735822122068f9b84bf53ec27fd11c01f626ecb0e7ec2bd70706696062466f79f11eac9f2064736f6c63430008090033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
