{
  "_format": "hh-sol-artifact-1",
  "contractName": "BlockInitiationVerifier",
  "sourceName": "contracts/L1/fraud-proof/verifier/subverifiers/BlockInitiationVerifier.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "currStateHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "encoded",
          "type": "bytes"
        }
      ],
      "name": "executeOneStepProof",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint64",
              "name": "blockNumber",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "transactionIdx",
              "type": "uint64"
            },
            {
              "internalType": "bytes32",
              "name": "globalStateRoot",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "cumulativeGasUsed",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "blockGasUsed",
              "type": "uint256"
            },
            {
              "internalType": "bytes32",
              "name": "blockHashRoot",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "transactionTrieRoot",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "receiptTrieRoot",
              "type": "bytes32"
            },
            {
              "components": [
                {
                  "internalType": "bytes32[8]",
                  "name": "data",
                  "type": "bytes32[8]"
                }
              ],
              "internalType": "struct BloomLib.Bloom",
              "name": "logsBloom",
              "type": "tuple"
            }
          ],
          "internalType": "struct OneStepProof.InterStateProof",
          "name": "endState",
          "type": "tuple"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "coinbase",
              "type": "address"
            },
            {
              "internalType": "uint256",
              "name": "timestamp",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "number",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "origin",
              "type": "address"
            },
            {
              "components": [
                {
                  "internalType": "uint64",
                  "name": "nonce",
                  "type": "uint64"
                },
                {
                  "internalType": "uint256",
                  "name": "gasPrice",
                  "type": "uint256"
                },
                {
                  "internalType": "uint64",
                  "name": "gas",
                  "type": "uint64"
                },
                {
                  "internalType": "address",
                  "name": "to",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "value",
                  "type": "uint256"
                },
                {
                  "internalType": "bytes",
                  "name": "data",
                  "type": "bytes"
                },
                {
                  "internalType": "uint256",
                  "name": "v",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "r",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "s",
                  "type": "uint256"
                }
              ],
              "internalType": "struct EVMTypesLib.Transaction",
              "name": "transaction",
              "type": "tuple"
            },
            {
              "internalType": "bytes32",
              "name": "inputRoot",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "txHash",
              "type": "bytes32"
            }
          ],
          "internalType": "struct VerificationContext.Context",
          "name": "",
          "type": "tuple"
        },
        {
          "internalType": "bytes32",
          "name": "currStateHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "encoded",
          "type": "bytes"
        }
      ],
      "name": "verifyOneStepProof",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610cbc806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c80632138b3e41461003b578063a1c1f6ab14610061575b600080fd5b61004e6100493660046109e9565b610081565b6040519081526020015b60405180910390f35b61007461006f366004610ad3565b61009f565b6040516100589190610b4b565b600061009661009185858561009f565b6101e0565b95945050505050565b6100a761070f565b60408051608081018252600080825260208201819052918101829052606081018290526100d58585846101f9565b6040519193509150600090838782378390209050868114610157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4261642053746174652050726f6f66000000000000000000000000000000000060448201526064015b60405180910390fd5b8151610164906001610bf6565b67ffffffffffffffff168452600060208086019190915282015160408086019190915282015160608086019190915282015160a08501527f56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42160c0850181905260e08501526101d06103dd565b6101008501525050509392505050565b60006101eb826103e8565b805190602001209050919050565b6040805160808101825260008082526020820181905291810182905260608101829052606861023267ffffffffffffffff851686610c22565b101561029a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f50726f6f6620556e646572666c6f772028426c6f636b29000000000000000000604482015260640161014e565b6102e78367ffffffffffffffff1686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506105749050565b67ffffffffffffffff16815261034a610301846008610bf6565b67ffffffffffffffff1686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506105f49050565b60208201526103a661035d846028610bf6565b67ffffffffffffffff1686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506105749050565b67ffffffffffffffff1660408201526103c3610301846048610bf6565b60608201526103d3836068610bf6565b9150935093915050565b6103e5610762565b90565b6060610462826000015160405160200161042d919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528290610674565b90506104a7826020015160405160200161042d919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b90506104c3826040015160405160200161042d91815260200190565b90506104df826060015160405160200161042d91815260200190565b90506104fb826080015160405160200161042d91815260200190565b90506105178260a0015160405160200161042d91815260200190565b90506105338260c0015160405160200161042d91815260200190565b905061054f8260e0015160405160200161042d91815260200190565b905061056e8261010001516000015160405160200161042d9190610c39565b92915050565b6000610581826008610c6e565b835110156105eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7436345f6f75744f66426f756e6473000000000000000000000000604482015260640161014e565b50016008015190565b6000610601826020610c6e565b8351101561066b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f427974657333325f6f75744f66426f756e64730000000000000000000000604482015260640161014e565b50016020015190565b6060806040519050835180825260208201818101602087015b818310156106a557805183526020928301920161068d565b50855184518101855292509050808201602086015b818310156106d25780518352602092830192016106ba565b508651929092011591909101601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660405250905092915050565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810191909152610100810161075d610762565b905290565b6040805161012081019091528061075d6020820160088161010080368337509192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610120810167ffffffffffffffff811182821017156107db576107db610788565b60405290565b60405160e0810167ffffffffffffffff811182821017156107db576107db610788565b803573ffffffffffffffffffffffffffffffffffffffff8116811461082857600080fd5b919050565b803567ffffffffffffffff8116811461082857600080fd5b600082601f83011261085657600080fd5b813567ffffffffffffffff8082111561087157610871610788565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156108b7576108b7610788565b816040528381528660208588010111156108d057600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000610120828403121561090357600080fd5b61090b6107b7565b90506109168261082d565b81526020820135602082015261092e6040830161082d565b604082015261093f60608301610804565b60608201526080820135608082015260a082013567ffffffffffffffff81111561096857600080fd5b61097484828501610845565b60a08301525060c082013560c082015260e082013560e082015261010080830135818301525092915050565b60008083601f8401126109b257600080fd5b50813567ffffffffffffffff8111156109ca57600080fd5b6020830191508360208285010111156109e257600080fd5b9250929050565b600080600080606085870312156109ff57600080fd5b843567ffffffffffffffff80821115610a1757600080fd5b9086019060e08289031215610a2b57600080fd5b610a336107e1565b610a3c83610804565b81526020830135602082015260408301356040820152610a5e60608401610804565b6060820152608083013582811115610a7557600080fd5b610a818a8286016108f0565b60808301525060a083013560a082015260c083013560c082015280965050602087013594506040870135915080821115610aba57600080fd5b50610ac7878288016109a0565b95989497509550505050565b600080600060408486031215610ae857600080fd5b83359250602084013567ffffffffffffffff811115610b0657600080fd5b610b12868287016109a0565b9497909650939450505050565b80518260005b6008811015610b44578251825260209283019290910190600101610b25565b5050505050565b60006102008201905067ffffffffffffffff8084511683528060208501511660208401525060408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151610bbf82850182610b1f565b505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff808316818516808303821115610c1957610c19610bc7565b01949350505050565b600082821015610c3457610c34610bc7565b500390565b60008183825b6008811015610c5e578151835260209283019290910190600101610c3f565b5050506101008201905092915050565b60008219821115610c8157610c81610bc7565b50019056fea26469706673582212203e53d3aaefdd97592aefa63a17b0a02db0f951a17281098ea2881c9848736e1764736f6c63430008090033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c80632138b3e41461003b578063a1c1f6ab14610061575b600080fd5b61004e6100493660046109e9565b610081565b6040519081526020015b60405180910390f35b61007461006f366004610ad3565b61009f565b6040516100589190610b4b565b600061009661009185858561009f565b6101e0565b95945050505050565b6100a761070f565b60408051608081018252600080825260208201819052918101829052606081018290526100d58585846101f9565b6040519193509150600090838782378390209050868114610157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600f60248201527f4261642053746174652050726f6f66000000000000000000000000000000000060448201526064015b60405180910390fd5b8151610164906001610bf6565b67ffffffffffffffff168452600060208086019190915282015160408086019190915282015160608086019190915282015160a08501527f56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b42160c0850181905260e08501526101d06103dd565b6101008501525050509392505050565b60006101eb826103e8565b805190602001209050919050565b6040805160808101825260008082526020820181905291810182905260608101829052606861023267ffffffffffffffff851686610c22565b101561029a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601760248201527f50726f6f6620556e646572666c6f772028426c6f636b29000000000000000000604482015260640161014e565b6102e78367ffffffffffffffff1686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506105749050565b67ffffffffffffffff16815261034a610301846008610bf6565b67ffffffffffffffff1686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506105f49050565b60208201526103a661035d846028610bf6565b67ffffffffffffffff1686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092939250506105749050565b67ffffffffffffffff1660408201526103c3610301846048610bf6565b60608201526103d3836068610bf6565b9150935093915050565b6103e5610762565b90565b6060610462826000015160405160200161042d919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528290610674565b90506104a7826020015160405160200161042d919060c09190911b7fffffffffffffffff00000000000000000000000000000000000000000000000016815260080190565b90506104c3826040015160405160200161042d91815260200190565b90506104df826060015160405160200161042d91815260200190565b90506104fb826080015160405160200161042d91815260200190565b90506105178260a0015160405160200161042d91815260200190565b90506105338260c0015160405160200161042d91815260200190565b905061054f8260e0015160405160200161042d91815260200190565b905061056e8261010001516000015160405160200161042d9190610c39565b92915050565b6000610581826008610c6e565b835110156105eb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f746f55696e7436345f6f75744f66426f756e6473000000000000000000000000604482015260640161014e565b50016008015190565b6000610601826020610c6e565b8351101561066b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746f427974657333325f6f75744f66426f756e64730000000000000000000000604482015260640161014e565b50016020015190565b6060806040519050835180825260208201818101602087015b818310156106a557805183526020928301920161068d565b50855184518101855292509050808201602086015b818310156106d25780518352602092830192016106ba565b508651929092011591909101601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01660405250905092915050565b6040805161012081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810191909152610100810161075d610762565b905290565b6040805161012081019091528061075d6020820160088161010080368337509192915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610120810167ffffffffffffffff811182821017156107db576107db610788565b60405290565b60405160e0810167ffffffffffffffff811182821017156107db576107db610788565b803573ffffffffffffffffffffffffffffffffffffffff8116811461082857600080fd5b919050565b803567ffffffffffffffff8116811461082857600080fd5b600082601f83011261085657600080fd5b813567ffffffffffffffff8082111561087157610871610788565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156108b7576108b7610788565b816040528381528660208588010111156108d057600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000610120828403121561090357600080fd5b61090b6107b7565b90506109168261082d565b81526020820135602082015261092e6040830161082d565b604082015261093f60608301610804565b60608201526080820135608082015260a082013567ffffffffffffffff81111561096857600080fd5b61097484828501610845565b60a08301525060c082013560c082015260e082013560e082015261010080830135818301525092915050565b60008083601f8401126109b257600080fd5b50813567ffffffffffffffff8111156109ca57600080fd5b6020830191508360208285010111156109e257600080fd5b9250929050565b600080600080606085870312156109ff57600080fd5b843567ffffffffffffffff80821115610a1757600080fd5b9086019060e08289031215610a2b57600080fd5b610a336107e1565b610a3c83610804565b81526020830135602082015260408301356040820152610a5e60608401610804565b6060820152608083013582811115610a7557600080fd5b610a818a8286016108f0565b60808301525060a083013560a082015260c083013560c082015280965050602087013594506040870135915080821115610aba57600080fd5b50610ac7878288016109a0565b95989497509550505050565b600080600060408486031215610ae857600080fd5b83359250602084013567ffffffffffffffff811115610b0657600080fd5b610b12868287016109a0565b9497909650939450505050565b80518260005b6008811015610b44578251825260209283019290910190600101610b25565b5050505050565b60006102008201905067ffffffffffffffff8084511683528060208501511660208401525060408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015160c083015260e083015160e083015261010080840151610bbf82850182610b1f565b505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600067ffffffffffffffff808316818516808303821115610c1957610c19610bc7565b01949350505050565b600082821015610c3457610c34610bc7565b500390565b60008183825b6008811015610c5e578151835260209283019290910190600101610c3f565b5050506101008201905092915050565b60008219821115610c8157610c81610bc7565b50019056fea26469706673582212203e53d3aaefdd97592aefa63a17b0a02db0f951a17281098ea2881c9848736e1764736f6c63430008090033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
