{
  "_format": "hh-sol-artifact-1",
  "contractName": "VerifierTestDriver",
  "sourceName": "contracts/L1/fraud-proof/verifier/test-driver/VerifierTestDriver.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_blockInitiationVerifier",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_blockFinalizationVerifier",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_interTxVerifier",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_stackOpVerifier",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_environmentalOpVerifier",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_memoryOpVerifier",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_storageOpVerifier",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_callOpVerifier",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_invalidOpVerifier",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "sequencerAddress",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "timestamp",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "number",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "origin",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "txHash",
          "type": "bytes32"
        },
        {
          "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": "uint8",
          "name": "verifier",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "currStateHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes",
          "name": "proof",
          "type": "bytes"
        }
      ],
      "name": "verifyProof",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50604051610a1b380380610a1b83398101604081905261002f916100eb565b600080546001600160a01b03199081166001600160a01b039b8c1617909155600180548216998b1699909917909855600280548916978a16979097179096556003805488169589169590951790945560048054871693881693909317909255600580548616918716919091179055600680548516918616919091179055600780548416918516919091179055600880549092169216919091179055610193565b80516001600160a01b03811681146100e657600080fd5b919050565b60008060008060008060008060006101208a8c03121561010a57600080fd5b6101138a6100cf565b985061012160208b016100cf565b975061012f60408b016100cf565b965061013d60608b016100cf565b955061014b60808b016100cf565b945061015960a08b016100cf565b935061016760c08b016100cf565b925061017560e08b016100cf565b91506101846101008b016100cf565b90509295985092959850929598565b610879806101a26000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c806386f73e4e14610030575b600080fd5b61004361003e3660046104e3565b610055565b60405190815260200160405180910390f35b6000806040518060e001604052808d73ffffffffffffffffffffffffffffffffffffffff1681526020018c81526020018b81526020018a73ffffffffffffffffffffffffffffffffffffffff1681526020018881526020016000801b815260200189815250905060006100c787610166565b73ffffffffffffffffffffffffffffffffffffffff16632138b3e4838888886040518563ffffffff1660e01b815260040161010594939291906106fa565b60206040518083038186803b15801561011d57600080fd5b505afa158015610131573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610155919061082a565b9d9c50505050505050505050505050565b600060ff82166007141561019257505060005473ffffffffffffffffffffffffffffffffffffffff1690565b60ff8216600814156101bc57505060015473ffffffffffffffffffffffffffffffffffffffff1690565b60ff8216600614156101e657505060025473ffffffffffffffffffffffffffffffffffffffff1690565b60ff821661020c57505060035473ffffffffffffffffffffffffffffffffffffffff1690565b60ff82166001141561023657505060045473ffffffffffffffffffffffffffffffffffffffff1690565b60ff82166002141561026057505060055473ffffffffffffffffffffffffffffffffffffffff1690565b60ff82166003141561028a57505060065473ffffffffffffffffffffffffffffffffffffffff1690565b60ff8216600414156102b457505060075473ffffffffffffffffffffffffffffffffffffffff1690565b60ff8216600514156102de57505060085473ffffffffffffffffffffffffffffffffffffffff1690565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f756e726561636861626c65000000000000000000000000000000000000000000604482015260640160405180910390fd5b919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461034457600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610120810167ffffffffffffffff811182821017156103c0576103c061036d565b60405290565b803567ffffffffffffffff8116811461034457600080fd5b600082601f8301126103ef57600080fd5b813567ffffffffffffffff8082111561040a5761040a61036d565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156104505761045061036d565b8160405283815286602085880101111561046957600080fd5b836020870160208301376000602085830101528094505050505092915050565b803560ff8116811461034457600080fd5b60008083601f8401126104ac57600080fd5b50813567ffffffffffffffff8111156104c457600080fd5b6020830191508360208285010111156104dc57600080fd5b9250929050565b6000806000806000806000806000806101208b8d03121561050357600080fd5b61050c8b610349565b995060208b0135985060408b0135975061052860608c01610349565b965060808b0135955067ffffffffffffffff8060a08d0135111561054b57600080fd5b60a08c01358c01610120818f03121561056357600080fd5b61056b61039c565b610574826103c6565b81526020820135602082015261058c604083016103c6565b604082015261059d60608301610349565b6060820152608082013560808201528260a083013511156105bd57600080fd5b6105cd8f60a084013584016103de565b60a082015260c082013560c082015260e082013560e0820152610100820135610100820152809750505061060360c08d01610489565b945060e08c013593506101008c01358181111561061f57600080fd5b61062b8e828f0161049a565b9250905080935050809150509295989b9194979a5092959850565b6000815180845260005b8181101561066c57602081850181015186830182015201610650565b8181111561067e576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60608152600073ffffffffffffffffffffffffffffffffffffffff80875116606084015260208701516080840152604087015160a08401528060608801511660c084015250608086015160e0808401526107626101408401825167ffffffffffffffff169052565b6020810151610160840152604081015167ffffffffffffffff16610180840152606081015173ffffffffffffffffffffffffffffffffffffffff166101a084015260808101516101c084015260a08101516101206101e085018190526107cc610260860183610646565b915060c083015161020086015260e08301516102208601526101008084015161024087015260a08a0151818701525060c08901518186015250866020850152838103604085015261081e8186886106b1565b98975050505050505050565b60006020828403121561083c57600080fd5b505191905056fea2646970667358221220ef986fab6cad7b30e826aaa11f65d3ba102391883bc7f3d56b07a1887313b15964736f6c63430008090033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061002b5760003560e01c806386f73e4e14610030575b600080fd5b61004361003e3660046104e3565b610055565b60405190815260200160405180910390f35b6000806040518060e001604052808d73ffffffffffffffffffffffffffffffffffffffff1681526020018c81526020018b81526020018a73ffffffffffffffffffffffffffffffffffffffff1681526020018881526020016000801b815260200189815250905060006100c787610166565b73ffffffffffffffffffffffffffffffffffffffff16632138b3e4838888886040518563ffffffff1660e01b815260040161010594939291906106fa565b60206040518083038186803b15801561011d57600080fd5b505afa158015610131573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610155919061082a565b9d9c50505050505050505050505050565b600060ff82166007141561019257505060005473ffffffffffffffffffffffffffffffffffffffff1690565b60ff8216600814156101bc57505060015473ffffffffffffffffffffffffffffffffffffffff1690565b60ff8216600614156101e657505060025473ffffffffffffffffffffffffffffffffffffffff1690565b60ff821661020c57505060035473ffffffffffffffffffffffffffffffffffffffff1690565b60ff82166001141561023657505060045473ffffffffffffffffffffffffffffffffffffffff1690565b60ff82166002141561026057505060055473ffffffffffffffffffffffffffffffffffffffff1690565b60ff82166003141561028a57505060065473ffffffffffffffffffffffffffffffffffffffff1690565b60ff8216600414156102b457505060075473ffffffffffffffffffffffffffffffffffffffff1690565b60ff8216600514156102de57505060085473ffffffffffffffffffffffffffffffffffffffff1690565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600b60248201527f756e726561636861626c65000000000000000000000000000000000000000000604482015260640160405180910390fd5b919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461034457600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051610120810167ffffffffffffffff811182821017156103c0576103c061036d565b60405290565b803567ffffffffffffffff8116811461034457600080fd5b600082601f8301126103ef57600080fd5b813567ffffffffffffffff8082111561040a5761040a61036d565b604051601f83017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019082821181831017156104505761045061036d565b8160405283815286602085880101111561046957600080fd5b836020870160208301376000602085830101528094505050505092915050565b803560ff8116811461034457600080fd5b60008083601f8401126104ac57600080fd5b50813567ffffffffffffffff8111156104c457600080fd5b6020830191508360208285010111156104dc57600080fd5b9250929050565b6000806000806000806000806000806101208b8d03121561050357600080fd5b61050c8b610349565b995060208b0135985060408b0135975061052860608c01610349565b965060808b0135955067ffffffffffffffff8060a08d0135111561054b57600080fd5b60a08c01358c01610120818f03121561056357600080fd5b61056b61039c565b610574826103c6565b81526020820135602082015261058c604083016103c6565b604082015261059d60608301610349565b6060820152608082013560808201528260a083013511156105bd57600080fd5b6105cd8f60a084013584016103de565b60a082015260c082013560c082015260e082013560e0820152610100820135610100820152809750505061060360c08d01610489565b945060e08c013593506101008c01358181111561061f57600080fd5b61062b8e828f0161049a565b9250905080935050809150509295989b9194979a5092959850565b6000815180845260005b8181101561066c57602081850181015186830182015201610650565b8181111561067e576000602083870101525b50601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b60608152600073ffffffffffffffffffffffffffffffffffffffff80875116606084015260208701516080840152604087015160a08401528060608801511660c084015250608086015160e0808401526107626101408401825167ffffffffffffffff169052565b6020810151610160840152604081015167ffffffffffffffff16610180840152606081015173ffffffffffffffffffffffffffffffffffffffff166101a084015260808101516101c084015260a08101516101206101e085018190526107cc610260860183610646565b915060c083015161020086015260e08301516102208601526101008084015161024087015260a08a0151818701525060c08901518186015250866020850152838103604085015261081e8186886106b1565b98975050505050505050565b60006020828403121561083c57600080fd5b505191905056fea2646970667358221220ef986fab6cad7b30e826aaa11f65d3ba102391883bc7f3d56b07a1887313b15964736f6c63430008090033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
