{
  "_format": "hh-sol-artifact-1",
  "contractName": "SimpleReadExecutor",
  "sourceName": "contracts/SimpleReadExecutor.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_endpoint",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "Executor_InvalidLzReadOption",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_sender",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "_options",
          "type": "bytes"
        }
      ],
      "name": "assignJob",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint128",
          "name": "_gasPerByte",
          "type": "uint128"
        },
        {
          "internalType": "uint128",
          "name": "_gasPrice",
          "type": "uint128"
        }
      ],
      "name": "configGas",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "endpoint",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "receiver",
              "type": "address"
            },
            {
              "components": [
                {
                  "internalType": "uint32",
                  "name": "srcEid",
                  "type": "uint32"
                },
                {
                  "internalType": "bytes32",
                  "name": "sender",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint64",
                  "name": "nonce",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Origin",
              "name": "origin",
              "type": "tuple"
            },
            {
              "internalType": "bytes32",
              "name": "guid",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "message",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "extraData",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "gasLimit",
              "type": "uint256"
            }
          ],
          "internalType": "struct ExecutionParams",
          "name": "_executionParams",
          "type": "tuple"
        }
      ],
      "name": "execute",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "gasPerByte",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "gasPrice",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "_options",
          "type": "bytes"
        }
      ],
      "name": "getFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "receiver",
              "type": "address"
            },
            {
              "components": [
                {
                  "internalType": "uint32",
                  "name": "srcEid",
                  "type": "uint32"
                },
                {
                  "internalType": "bytes32",
                  "name": "sender",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint64",
                  "name": "nonce",
                  "type": "uint64"
                }
              ],
              "internalType": "struct Origin",
              "name": "origin",
              "type": "tuple"
            },
            {
              "internalType": "bytes32",
              "name": "guid",
              "type": "bytes32"
            },
            {
              "internalType": "bytes",
              "name": "message",
              "type": "bytes"
            },
            {
              "internalType": "bytes",
              "name": "extraData",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "gasLimit",
              "type": "uint256"
            }
          ],
          "internalType": "struct ExecutionParams",
          "name": "_executionParams",
          "type": "tuple"
        }
      ],
      "name": "mustExecute",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x60a060405234801561001057600080fd5b50604051610db9380380610db983398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610d196100a060003960008181610101015281816102470152818161030e01526103ff0152610d196000f3fe60806040526004361061007f5760003560e01c8063c015bb7d1161004e578063c015bb7d1461015b578063c8f8dcd114610189578063f66f0450146101a9578063fe173b97146101f357600080fd5b80630244a9fa1461008b578063287dc73f146100da5780635e280f11146100ef5780638a0d0bed1461014857600080fd5b3661008657005b600080fd5b34801561009757600080fd5b506000546100b4906fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100ed6100e8366004610788565b610230565b005b3480156100fb57600080fd5b506101237f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100d1565b6100ed610156366004610788565b6102f7565b34801561016757600080fd5b5061017b6101763660046107f4565b6104b4565b6040519081526020016100d1565b34801561019557600080fd5b5061017b6101a43660046107f4565b6104c9565b3480156101b557600080fd5b506100ed6101c4366004610897565b6fffffffffffffffffffffffffffffffff90811670010000000000000000000000000000000002911617600055565b3480156101ff57600080fd5b506000546100b49070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016630c0c389e60e0830135346020850161028081876108ca565b608087013561029260a08901896108e5565b61029f60c08b018b6108e5565b6040518a63ffffffff1660e01b81526004016102c197969594939291906109e4565b6000604051808303818589803b1580156102da57600080fd5b5088f11580156102ee573d6000803e3d6000fd5b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016630c0c389e60e0830135346020850161034781876108ca565b608087013561035960a08901896108e5565b61036660c08b018b6108e5565b6040518a63ffffffff1660e01b815260040161038897969594939291906109e4565b6000604051808303818589803b1580156103a157600080fd5b5088f194505050505080156103b4575060015b6104b1573d8080156103e2576040519150601f19603f3d011682016040523d82523d6000602084013e6103e7565b606091505b5073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016636bf73fa36020840161043281866108ca565b608086013560e08701353461044a60a08a018a6108e5565b61045760c08c018c6108e5565b8b6040518b63ffffffff1660e01b815260040161047d9a99989796959493929190610a48565b600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b50505050505b50565b60006104c18484846104c9565b949350505050565b60008036816104d986868361060b565b509194509250905060ff8316600514610578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f53696d706c65526561644578656375746f723a206e6f74204c5a52454144206f60448201527f7074696f6e000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b60008060006105878585610661565b600054929550909350915081906fffffffffffffffffffffffffffffffff70010000000000000000000000000000000082048116916105cd911663ffffffff8616610b54565b6105d79086610b88565b6105e19190610b54565b6105eb9190610b88565b6fffffffffffffffffffffffffffffffff169a9950505050505050505050565b60003681600184018161061f8888846106ee565b600292909201919050610633888884610715565b94506001820161ffff8216830161064c81838b8d610bb8565b979b909a50969850505061ffff160193505050565b6000808060148414801590610677575060248414155b156106ae576040517fdeb7fe4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106ba8585600061073a565b92506106c885856010610761565b9150602484146106d95760006106e5565b6106e58585601461073a565b90509250925092565b60006002820161070081848688610bb8565b61070991610be2565b60f01c95945050505050565b600083838381811061072957610729610c28565b919091013560f81c95945050505050565b60006010820161074c81848688610bb8565b61075591610c57565b60801c95945050505050565b60006004820161077381848688610bb8565b61077c91610c9d565b60e01c95945050505050565b60006020828403121561079a57600080fd5b813567ffffffffffffffff8111156107b157600080fd5b820161010081850312156107c457600080fd5b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146107ef57600080fd5b919050565b60008060006040848603121561080957600080fd5b610812846107cb565b9250602084013567ffffffffffffffff8082111561082f57600080fd5b818601915086601f83011261084357600080fd5b81358181111561085257600080fd5b87602082850101111561086457600080fd5b6020830194508093505050509250925092565b80356fffffffffffffffffffffffffffffffff811681146107ef57600080fd5b600080604083850312156108aa57600080fd5b6108b383610877565b91506108c160208401610877565b90509250929050565b6000602082840312156108dc57600080fd5b6107c4826107cb565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261091a57600080fd5b83018035915067ffffffffffffffff82111561093557600080fd5b60200191503681900382131561094a57600080fd5b9250929050565b803563ffffffff811680821461096657600080fd5b83525060208181013590830152604081013567ffffffffffffffff811680821461098f57600080fd5b80604085015250505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6109ee8189610951565b73ffffffffffffffffffffffffffffffffffffffff8716606082015285608082015260e060a08201526000610a2760e08301868861099b565b82810360c0840152610a3a81858761099b565b9a9950505050505050505050565b6000610140610a57838e610951565b73ffffffffffffffffffffffffffffffffffffffff8c1660608401528a60808401528960a08401528860c08401528060e0840152610a98818401888a61099b565b9050828103610100840152610aae81868861099b565b9050828103610120840152835180825260005b81811015610add57602081870181015184830182015201610ac1565b5060006020828401015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116830101925050509b9a5050505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6fffffffffffffffffffffffffffffffff818116838216028082169190828114610b8057610b80610b25565b505092915050565b6fffffffffffffffffffffffffffffffff818116838216019080821115610bb157610bb1610b25565b5092915050565b60008085851115610bc857600080fd5b83861115610bd557600080fd5b5050820193919092039150565b7fffff0000000000000000000000000000000000000000000000000000000000008135818116916002851015610b805760029490940360031b84901b1690921692915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008135818116916010851015610b805760109490940360031b84901b1690921692915050565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015610b805760049490940360031b84901b169092169291505056fea26469706673582212209c63b8535c6e3bbff5fd8d1c5200f8ea7bf1a4b6939eff3de510115ff4223f2064736f6c63430008160033",
  "deployedBytecode": "0x60806040526004361061007f5760003560e01c8063c015bb7d1161004e578063c015bb7d1461015b578063c8f8dcd114610189578063f66f0450146101a9578063fe173b97146101f357600080fd5b80630244a9fa1461008b578063287dc73f146100da5780635e280f11146100ef5780638a0d0bed1461014857600080fd5b3661008657005b600080fd5b34801561009757600080fd5b506000546100b4906fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6100ed6100e8366004610788565b610230565b005b3480156100fb57600080fd5b506101237f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100d1565b6100ed610156366004610788565b6102f7565b34801561016757600080fd5b5061017b6101763660046107f4565b6104b4565b6040519081526020016100d1565b34801561019557600080fd5b5061017b6101a43660046107f4565b6104c9565b3480156101b557600080fd5b506100ed6101c4366004610897565b6fffffffffffffffffffffffffffffffff90811670010000000000000000000000000000000002911617600055565b3480156101ff57600080fd5b506000546100b49070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff1681565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016630c0c389e60e0830135346020850161028081876108ca565b608087013561029260a08901896108e5565b61029f60c08b018b6108e5565b6040518a63ffffffff1660e01b81526004016102c197969594939291906109e4565b6000604051808303818589803b1580156102da57600080fd5b5088f11580156102ee573d6000803e3d6000fd5b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016630c0c389e60e0830135346020850161034781876108ca565b608087013561035960a08901896108e5565b61036660c08b018b6108e5565b6040518a63ffffffff1660e01b815260040161038897969594939291906109e4565b6000604051808303818589803b1580156103a157600080fd5b5088f194505050505080156103b4575060015b6104b1573d8080156103e2576040519150601f19603f3d011682016040523d82523d6000602084013e6103e7565b606091505b5073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016636bf73fa36020840161043281866108ca565b608086013560e08701353461044a60a08a018a6108e5565b61045760c08c018c6108e5565b8b6040518b63ffffffff1660e01b815260040161047d9a99989796959493929190610a48565b600060405180830381600087803b15801561049757600080fd5b505af11580156104ab573d6000803e3d6000fd5b50505050505b50565b60006104c18484846104c9565b949350505050565b60008036816104d986868361060b565b509194509250905060ff8316600514610578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f53696d706c65526561644578656375746f723a206e6f74204c5a52454144206f60448201527f7074696f6e000000000000000000000000000000000000000000000000000000606482015260840160405180910390fd5b60008060006105878585610661565b600054929550909350915081906fffffffffffffffffffffffffffffffff70010000000000000000000000000000000082048116916105cd911663ffffffff8616610b54565b6105d79086610b88565b6105e19190610b54565b6105eb9190610b88565b6fffffffffffffffffffffffffffffffff169a9950505050505050505050565b60003681600184018161061f8888846106ee565b600292909201919050610633888884610715565b94506001820161ffff8216830161064c81838b8d610bb8565b979b909a50969850505061ffff160193505050565b6000808060148414801590610677575060248414155b156106ae576040517fdeb7fe4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106ba8585600061073a565b92506106c885856010610761565b9150602484146106d95760006106e5565b6106e58585601461073a565b90509250925092565b60006002820161070081848688610bb8565b61070991610be2565b60f01c95945050505050565b600083838381811061072957610729610c28565b919091013560f81c95945050505050565b60006010820161074c81848688610bb8565b61075591610c57565b60801c95945050505050565b60006004820161077381848688610bb8565b61077c91610c9d565b60e01c95945050505050565b60006020828403121561079a57600080fd5b813567ffffffffffffffff8111156107b157600080fd5b820161010081850312156107c457600080fd5b9392505050565b803573ffffffffffffffffffffffffffffffffffffffff811681146107ef57600080fd5b919050565b60008060006040848603121561080957600080fd5b610812846107cb565b9250602084013567ffffffffffffffff8082111561082f57600080fd5b818601915086601f83011261084357600080fd5b81358181111561085257600080fd5b87602082850101111561086457600080fd5b6020830194508093505050509250925092565b80356fffffffffffffffffffffffffffffffff811681146107ef57600080fd5b600080604083850312156108aa57600080fd5b6108b383610877565b91506108c160208401610877565b90509250929050565b6000602082840312156108dc57600080fd5b6107c4826107cb565b60008083357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261091a57600080fd5b83018035915067ffffffffffffffff82111561093557600080fd5b60200191503681900382131561094a57600080fd5b9250929050565b803563ffffffff811680821461096657600080fd5b83525060208181013590830152604081013567ffffffffffffffff811680821461098f57600080fd5b80604085015250505050565b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b6109ee8189610951565b73ffffffffffffffffffffffffffffffffffffffff8716606082015285608082015260e060a08201526000610a2760e08301868861099b565b82810360c0840152610a3a81858761099b565b9a9950505050505050505050565b6000610140610a57838e610951565b73ffffffffffffffffffffffffffffffffffffffff8c1660608401528a60808401528960a08401528860c08401528060e0840152610a98818401888a61099b565b9050828103610100840152610aae81868861099b565b9050828103610120840152835180825260005b81811015610add57602081870181015184830182015201610ac1565b5060006020828401015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f830116830101925050509b9a5050505050505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6fffffffffffffffffffffffffffffffff818116838216028082169190828114610b8057610b80610b25565b505092915050565b6fffffffffffffffffffffffffffffffff818116838216019080821115610bb157610bb1610b25565b5092915050565b60008085851115610bc857600080fd5b83861115610bd557600080fd5b5050820193919092039150565b7fffff0000000000000000000000000000000000000000000000000000000000008135818116916002851015610b805760029490940360031b84901b1690921692915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7fffffffffffffffffffffffffffffffff000000000000000000000000000000008135818116916010851015610b805760109490940360031b84901b1690921692915050565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015610b805760049490940360031b84901b169092169291505056fea26469706673582212209c63b8535c6e3bbff5fd8d1c5200f8ea7bf1a4b6939eff3de510115ff4223f2064736f6c63430008160033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
