{
  "_format": "hh-sol-artifact-1",
  "contractName": "RelayActor",
  "sourceName": "contracts/test/invariants/CrossDomainMessenger.t.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract OptimismPortal",
          "name": "_op",
          "type": "address"
        },
        {
          "internalType": "contract L1CrossDomainMessenger",
          "name": "_xdm",
          "type": "address"
        },
        {
          "internalType": "contract Vm",
          "name": "_vm",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "hashes",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "numHashes",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "_version",
          "type": "uint16"
        },
        {
          "internalType": "uint32",
          "name": "_minGasLimit",
          "type": "uint32"
        },
        {
          "internalType": "bytes",
          "name": "_message",
          "type": "bytes"
        }
      ],
      "name": "relay",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "reverted",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040526002805460ff1916905534801561001a57600080fd5b50604051610ebe380380610ebe8339810160408190526100399161009c565b600280546001600160a01b0394851661010002610100600160a81b0319909116179055600380549284166001600160a01b0319938416179055600480549190931691161790556100e9565b6001600160a01b038116811461009957600080fd5b50565b6000806000606084860312156100b157600080fd5b83516100bc81610084565b60208501519093506100cd81610084565b60408501519092506100de81610084565b809150509250925092565b610dc6806100f86000396000f3fe608060405234801561001057600080fd5b506004361061004c5760003560e01c80631e4ea8fc14610051578063348a71cb14610066578063501895ae14610082578063bc0af82a14610095575b600080fd5b61006461005f3660046109ac565b6100b2565b005b61006f60005481565b6040519081526020015b60405180910390f35b61006f610090366004610ab0565b610509565b6002546100a29060ff1681565b6040519015158152602001610079565b6004805460025460408051734200000000000000000000000000000000000007602082018190529373ffffffffffffffffffffffffffffffffffffffff908116936370ca10bb93610100909104909116916032910160405160208183030381529060405261011f90610ac9565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401600060405180830381600087803b15801561019257600080fd5b505af11580156101a6573d6000803e3d6000fd5b505050506101bc8463ffffffff1660004561052a565b93506101c9600286610b3d565b945060006101e660f087901b838560008963ffffffff168961057f565b600480546002546040517f06447d5600000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff9081169382019390935292935016906306447d5690602401600060405180830381600087803b15801561026057600080fd5b505af1158015610274573d6000803e3d6000fd5b5050600480546040517fbd6af43400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116935063bd6af43492506102cf918791899101610bd8565b600060405180830381600087803b1580156102e957600080fd5b505af11580156102fd573d6000803e3d6000fd5b50506003546040517fb28ade2500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116925063d764ad0b9150829063b28ade25906103619089908b90600401610c0f565b602060405180830381865afa15801561037e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a29190610c37565b67ffffffffffffffff1660f089901b858760008b8b6040518863ffffffff1660e01b81526004016103d896959493929190610c61565b600060405180830381600088803b1580156103f257600080fd5b5087f193505050508015610404575060015b61043457600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b60048054604080517f90c5013b000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff909216926390c5013b92828201926000929082900301818387803b15801561049d57600080fd5b505af11580156104b1573d6000803e3d6000fd5b505060018054808201825560008281527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69091018590558054919350915081906104fc908490610ced565b9091555050505050505050565b6001818154811061051957600080fd5b600091825260209091200154905081565b60006105378484846105a2565b90506105786040518060400160405280600c81526020017f426f756e6420526573756c740000000000000000000000000000000000000000815250826107de565b9392505050565b600061058f8787878787876108de565b8051906020012090509695505050505050565b600081831115610638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374645574696c7320626f756e642875696e743235362c75696e743235362c7560448201527f696e74323536293a204d6178206973206c657373207468616e206d696e2e0000606482015260840160405180910390fd5b8284101580156106485750818411155b15610654575082610578565b60006106608484610d05565b61066b906001610ced565b90506003851115801561067d57508481115b156106945761068c8585610ced565b915050610578565b6106bf60037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d05565b85101580156106f657506106f3857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d05565b81115b1561072f57610725857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d05565b61068c9084610d05565b828511156107855760006107438487610d05565b905060006107518383610d1c565b90508060000361076657849350505050610578565b60016107728288610ced565b61077c9190610d05565b935050506107d6565b838510156107d65760006107998686610d05565b905060006107a78383610d1c565b9050806000036107bc57859350505050610578565b6107c68186610d05565b6107d1906001610ced565b935050505b509392505050565b60006a636f6e736f6c652e6c6f6773ffffffffffffffffffffffffffffffffffffffff168383604051602401610815929190610d30565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb60e72cc00000000000000000000000000000000000000000000000000000000179052516108969190610d52565b600060405180830381855afa9150503d80600081146108d1576040519150601f19603f3d011682016040523d82523d6000602084013e6108d6565b606091505b505050505050565b60608686868686866040516024016108fb96959493929190610d6e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000606084860312156109c157600080fd5b833561ffff811681146109d357600080fd5b9250602084013563ffffffff811681146109ec57600080fd5b9150604084013567ffffffffffffffff80821115610a0957600080fd5b818601915086601f830112610a1d57600080fd5b813581811115610a2f57610a2f61097d565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610a7557610a7561097d565b81604052828152896020848701011115610a8e57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b600060208284031215610ac257600080fd5b5035919050565b80516020808301519190811015610b08577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8160200360031b1b821691505b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061ffff80841680610b5257610b52610b0e565b92169190910692915050565b60005b83811015610b79578181015183820152602001610b61565b83811115610b88576000848401525b50505050565b60008151808452610ba6816020860160208601610b5e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000610c076040830184610b8e565b949350505050565b604081526000610c226040830185610b8e565b905063ffffffff831660208301529392505050565b600060208284031215610c4957600080fd5b815167ffffffffffffffff8116811461057857600080fd5b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015263ffffffff8416608083015260c060a0830152610cb260c0830184610b8e565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115610d0057610d00610cbe565b500190565b600082821015610d1757610d17610cbe565b500390565b600082610d2b57610d2b610b0e565b500690565b604081526000610d436040830185610b8e565b90508260208301529392505050565b60008251610d64818460208701610b5e565b9190910192915050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a0830152610cb260c0830184610b8e56fea164736f6c634300080f000a",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061004c5760003560e01c80631e4ea8fc14610051578063348a71cb14610066578063501895ae14610082578063bc0af82a14610095575b600080fd5b61006461005f3660046109ac565b6100b2565b005b61006f60005481565b6040519081526020015b60405180910390f35b61006f610090366004610ab0565b610509565b6002546100a29060ff1681565b6040519015158152602001610079565b6004805460025460408051734200000000000000000000000000000000000007602082018190529373ffffffffffffffffffffffffffffffffffffffff908116936370ca10bb93610100909104909116916032910160405160208183030381529060405261011f90610ac9565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e086901b16815273ffffffffffffffffffffffffffffffffffffffff909316600484015260248301919091526044820152606401600060405180830381600087803b15801561019257600080fd5b505af11580156101a6573d6000803e3d6000fd5b505050506101bc8463ffffffff1660004561052a565b93506101c9600286610b3d565b945060006101e660f087901b838560008963ffffffff168961057f565b600480546002546040517f06447d5600000000000000000000000000000000000000000000000000000000815261010090910473ffffffffffffffffffffffffffffffffffffffff9081169382019390935292935016906306447d5690602401600060405180830381600087803b15801561026057600080fd5b505af1158015610274573d6000803e3d6000fd5b5050600480546040517fbd6af43400000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116935063bd6af43492506102cf918791899101610bd8565b600060405180830381600087803b1580156102e957600080fd5b505af11580156102fd573d6000803e3d6000fd5b50506003546040517fb28ade2500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116925063d764ad0b9150829063b28ade25906103619089908b90600401610c0f565b602060405180830381865afa15801561037e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906103a29190610c37565b67ffffffffffffffff1660f089901b858760008b8b6040518863ffffffff1660e01b81526004016103d896959493929190610c61565b600060405180830381600088803b1580156103f257600080fd5b5087f193505050508015610404575060015b61043457600280547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790555b60048054604080517f90c5013b000000000000000000000000000000000000000000000000000000008152905173ffffffffffffffffffffffffffffffffffffffff909216926390c5013b92828201926000929082900301818387803b15801561049d57600080fd5b505af11580156104b1573d6000803e3d6000fd5b505060018054808201825560008281527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69091018590558054919350915081906104fc908490610ced565b9091555050505050505050565b6001818154811061051957600080fd5b600091825260209091200154905081565b60006105378484846105a2565b90506105786040518060400160405280600c81526020017f426f756e6420526573756c740000000000000000000000000000000000000000815250826107de565b9392505050565b600061058f8787878787876108de565b8051906020012090509695505050505050565b600081831115610638576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603e60248201527f5374645574696c7320626f756e642875696e743235362c75696e743235362c7560448201527f696e74323536293a204d6178206973206c657373207468616e206d696e2e0000606482015260840160405180910390fd5b8284101580156106485750818411155b15610654575082610578565b60006106608484610d05565b61066b906001610ced565b90506003851115801561067d57508481115b156106945761068c8585610ced565b915050610578565b6106bf60037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d05565b85101580156106f657506106f3857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d05565b81115b1561072f57610725857fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610d05565b61068c9084610d05565b828511156107855760006107438487610d05565b905060006107518383610d1c565b90508060000361076657849350505050610578565b60016107728288610ced565b61077c9190610d05565b935050506107d6565b838510156107d65760006107998686610d05565b905060006107a78383610d1c565b9050806000036107bc57859350505050610578565b6107c68186610d05565b6107d1906001610ced565b935050505b509392505050565b60006a636f6e736f6c652e6c6f6773ffffffffffffffffffffffffffffffffffffffff168383604051602401610815929190610d30565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fb60e72cc00000000000000000000000000000000000000000000000000000000179052516108969190610d52565b600060405180830381855afa9150503d80600081146108d1576040519150601f19603f3d011682016040523d82523d6000602084013e6108d6565b606091505b505050505050565b60608686868686866040516024016108fb96959493929190610d6e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fd764ad0b0000000000000000000000000000000000000000000000000000000017905290509695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000806000606084860312156109c157600080fd5b833561ffff811681146109d357600080fd5b9250602084013563ffffffff811681146109ec57600080fd5b9150604084013567ffffffffffffffff80821115610a0957600080fd5b818601915086601f830112610a1d57600080fd5b813581811115610a2f57610a2f61097d565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715610a7557610a7561097d565b81604052828152896020848701011115610a8e57600080fd5b8260208601602083013760006020848301015280955050505050509250925092565b600060208284031215610ac257600080fd5b5035919050565b80516020808301519190811015610b08577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8160200360031b1b821691505b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061ffff80841680610b5257610b52610b0e565b92169190910692915050565b60005b83811015610b79578181015183820152602001610b61565b83811115610b88576000848401525b50505050565b60008151808452610ba6816020860160208601610b5e565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201526000610c076040830184610b8e565b949350505050565b604081526000610c226040830185610b8e565b905063ffffffff831660208301529392505050565b600060208284031215610c4957600080fd5b815167ffffffffffffffff8116811461057857600080fd5b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015263ffffffff8416608083015260c060a0830152610cb260c0830184610b8e565b98975050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008219821115610d0057610d00610cbe565b500190565b600082821015610d1757610d17610cbe565b500390565b600082610d2b57610d2b610b0e565b500690565b604081526000610d436040830185610b8e565b90508260208301529392505050565b60008251610d64818460208701610b5e565b9190910192915050565b868152600073ffffffffffffffffffffffffffffffffffffffff808816602084015280871660408401525084606083015283608083015260c060a0830152610cb260c0830184610b8e56fea164736f6c634300080f000a",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
