{
  "_format": "hh-sol-artifact-1",
  "contractName": "SimpleReadDVN",
  "sourceName": "contracts/uln/dvn/SimpleReadDVN.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address payable",
          "name": "_readLib",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "InvalidCmd",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidType",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidVersion",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "UnsupportedTargetEid",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "_cmd",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "assignJob",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCmdFees",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        },
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        },
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        },
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "_cmd",
          "type": "bytes"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "name": "getFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "readLib",
      "outputs": [
        {
          "internalType": "address payable",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint128",
          "name": "_evmCallReqV1FeeUSD",
          "type": "uint128"
        },
        {
          "internalType": "uint128",
          "name": "_evmCallComputeV1MapFeeUSD",
          "type": "uint128"
        },
        {
          "internalType": "uint128",
          "name": "_evmCallComputeV1ReduceFeeUSD",
          "type": "uint128"
        },
        {
          "internalType": "uint128",
          "name": "_nativePriceUSD",
          "type": "uint128"
        }
      ],
      "name": "setCmdFees",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint32",
              "name": "targetEid",
              "type": "uint32"
            },
            {
              "internalType": "BitMap256",
              "name": "types",
              "type": "uint256"
            }
          ],
          "internalType": "struct SimpleReadDVN.SetSupportedCmdTypesParam[]",
          "name": "_params",
          "type": "tuple[]"
        }
      ],
      "name": "setSupportedCmdTypes",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "_packetHeader",
          "type": "bytes"
        },
        {
          "internalType": "bytes32",
          "name": "_cmdHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "_payloadHash",
          "type": "bytes32"
        }
      ],
      "name": "verify",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "stateMutability": "payable",
      "type": "receive"
    }
  ],
  "bytecode": "0x60a060405234801561001057600080fd5b506040516110d53803806110d583398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051611044610091600039600081816092015261025501526110446000f3fe6080604052600436106100745760003560e01c8063de0a93c31161004e578063de0a93c314610156578063f42ed2ed146101bc578063f5ff608f146101dd578063fdb9b0f1146101fd57600080fd5b80635ac9e90f14610080578063998b1f97146100de578063ab750e751461013657600080fd5b3661007b57005b600080fd5b34801561008c57600080fd5b506100b47f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100ea57600080fd5b506101346100f9366004610b67565b6fffffffffffffffffffffffffffffffff93841670010000000000000000000000000000000093851684021760005590831692160217600155565b005b34801561014257600080fd5b50610134610151366004610c04565b610218565b34801561016257600080fd5b50600054600154604080516fffffffffffffffffffffffffffffffff8085168252700100000000000000000000000000000000948590048116602083015280841692820192909252929091041660608201526080016100d5565b6101cf6101ca366004610c55565b6102c8565b6040519081526020016100d5565b3480156101e957600080fd5b506101346101f8366004610d1b565b61032e565b34801561020957600080fd5b506101cf6101ca366004610c55565b6040517fab750e7500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063ab750e7590610290908790879087908790600401610d90565b600060405180830381600087803b1580156102aa57600080fd5b505af11580156102be573d6000803e3d6000fd5b5050505050505050565b6000806102d586866103a8565b60015490915060009070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16610316670de0b6b3a764000084610e1d565b6103209190610e34565b9a9950505050505050505050565b60005b818110156103a35782828281811061034b5761034b610e6f565b905060400201602001356002600001600085858581811061036e5761036e610e6f565b6103849260206040909202019081019150610e9e565b63ffffffff168152602081019190915260400160002055600101610331565b505050565b6000806103b8848461048b61049d565b60005481519192506103e2916fffffffffffffffffffffffffffffffff9091169061ffff16610ecb565b6fffffffffffffffffffffffffffffffff1691508060200151156104585780516000546104399161ffff169070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16610ecb565b610455906fffffffffffffffffffffffffffffffff1683610eff565b91505b80604001511561048457600154610481906fffffffffffffffffffffffffffffffff1683610eff565b91505b5092915050565b61049760028583610ac1565b50505050565b6040805160608101825260008082526020820181905291810182905290808581866104c9826002610eff565b926104d693929190610f12565b6104df91610f3c565b60f01c90506104ef600283610eff565b915061ffff811660011461052f576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61053a600283610eff565b9150600086838761054c826002610eff565b9261055993929190610f12565b61056291610f3c565b60f01c9050610572600284610eff565b92508061ffff166000036105b2576040517f87a7f37900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61ffff1683525060005b826000015161ffff168161ffff1610156108245760008686848181106105e4576105e4610e6f565b919091013560f81c91506105fb9050600184610eff565b925060ff811660011461063a576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610645600284610eff565b92506000878488610657826002610eff565b9261066493929190610f12565b61066d91610f3c565b60f01c905061067d600285610eff565b93507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61ffff8216016107e85760008885896106ba826002610eff565b926106c793929190610f12565b6106d091610f3c565b60f01c90506106e0600286610eff565b94508460008a828b6106f3826004610eff565b9261070093929190610f12565b61070991610f82565b60e01c9050610719600483610eff565b915060008b8b8481811061072f5761072f610e6f565b600192013560f81c8214925061074791905084610eff565b925060008c848d610759826008610eff565b9261076693929190610f12565b61076f91610fc8565b60c01c905061078583838360008f63ffffffff16565b508a925061079a91505061ffff831687610eff565b11156107d2576040517f87a7f37900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107e061ffff821686610eff565b94505061081a565b6040517fb968846100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50506001016105bc565b5083811015610a8057600085858381811061084157610841610e6f565b919091013560f81c91506108589050600183610eff565b915060ff8116600114610897576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008683876108a7826002610eff565b926108b493929190610f12565b6108bd91610f3c565b60f01c90506108cd600284610eff565b925061ffff811660011461090d576040517fb968846100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600087878581811061092157610921610e6f565b919091013560f81c91506109389050600185610eff565b935060ff811661094e57600160208601526109bd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff82160161098457600160408601526109bd565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60ff8216016107e85760016020860181905260408601525b60008885896109cd826004610eff565b926109da93929190610f12565b6109e391610f82565b60e01c90506109f3600486610eff565b94506000898987818110610a0957610a09610e6f565b600192013560f81c82149250610a2191905087610eff565b955060008a878b610a33826008610eff565b92610a4093929190610f12565b610a4991610fc8565b60c01c9050610a59600888610eff565b9650610a6c83838360018d63ffffffff16565b610a77601688610eff565b96505050505050505b808414610ab9576040517f87a7f37900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b509392505050565b610acc838383610b02565b6103a3576040517f50fae9eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8083166000908152602085905260408120549091610b2891908490610b3016565b949350505050565b600160ff82161b821615155b92915050565b80356fffffffffffffffffffffffffffffffff81168114610b6257600080fd5b919050565b60008060008060808587031215610b7d57600080fd5b610b8685610b42565b9350610b9460208601610b42565b9250610ba260408601610b42565b9150610bb060608601610b42565b905092959194509250565b60008083601f840112610bcd57600080fd5b50813567ffffffffffffffff811115610be557600080fd5b602083019150836020828501011115610bfd57600080fd5b9250929050565b60008060008060608587031215610c1a57600080fd5b843567ffffffffffffffff811115610c3157600080fd5b610c3d87828801610bbb565b90989097506020870135966040013595509350505050565b60008060008060008060006080888a031215610c7057600080fd5b873573ffffffffffffffffffffffffffffffffffffffff81168114610c9457600080fd5b9650602088013567ffffffffffffffff80821115610cb157600080fd5b610cbd8b838c01610bbb565b909850965060408a0135915080821115610cd657600080fd5b610ce28b838c01610bbb565b909650945060608a0135915080821115610cfb57600080fd5b50610d088a828b01610bbb565b989b979a50959850939692959293505050565b60008060208385031215610d2e57600080fd5b823567ffffffffffffffff80821115610d4657600080fd5b818501915085601f830112610d5a57600080fd5b813581811115610d6957600080fd5b8660208260061b8501011115610d7e57600080fd5b60209290920196919550909350505050565b6060815283606082015283856080830137600060808583010152600060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f870116830101905083602083015282604083015295945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417610b3c57610b3c610dee565b600082610e6a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215610eb057600080fd5b813563ffffffff81168114610ec457600080fd5b9392505050565b6fffffffffffffffffffffffffffffffff818116838216028082169190828114610ef757610ef7610dee565b505092915050565b80820180821115610b3c57610b3c610dee565b60008085851115610f2257600080fd5b83861115610f2f57600080fd5b5050820193919092039150565b7fffff0000000000000000000000000000000000000000000000000000000000008135818116916002851015610ef75760029490940360031b84901b1690921692915050565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015610ef75760049490940360031b84901b1690921692915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008135818116916008851015610ef75760089490940360031b84901b169092169291505056fea2646970667358221220a84d1cfd85c00372325b0a088287cce10871499300154b97f7c9735844345eef64736f6c63430008160033",
  "deployedBytecode": "0x6080604052600436106100745760003560e01c8063de0a93c31161004e578063de0a93c314610156578063f42ed2ed146101bc578063f5ff608f146101dd578063fdb9b0f1146101fd57600080fd5b80635ac9e90f14610080578063998b1f97146100de578063ab750e751461013657600080fd5b3661007b57005b600080fd5b34801561008c57600080fd5b506100b47f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156100ea57600080fd5b506101346100f9366004610b67565b6fffffffffffffffffffffffffffffffff93841670010000000000000000000000000000000093851684021760005590831692160217600155565b005b34801561014257600080fd5b50610134610151366004610c04565b610218565b34801561016257600080fd5b50600054600154604080516fffffffffffffffffffffffffffffffff8085168252700100000000000000000000000000000000948590048116602083015280841692820192909252929091041660608201526080016100d5565b6101cf6101ca366004610c55565b6102c8565b6040519081526020016100d5565b3480156101e957600080fd5b506101346101f8366004610d1b565b61032e565b34801561020957600080fd5b506101cf6101ca366004610c55565b6040517fab750e7500000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000169063ab750e7590610290908790879087908790600401610d90565b600060405180830381600087803b1580156102aa57600080fd5b505af11580156102be573d6000803e3d6000fd5b5050505050505050565b6000806102d586866103a8565b60015490915060009070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16610316670de0b6b3a764000084610e1d565b6103209190610e34565b9a9950505050505050505050565b60005b818110156103a35782828281811061034b5761034b610e6f565b905060400201602001356002600001600085858581811061036e5761036e610e6f565b6103849260206040909202019081019150610e9e565b63ffffffff168152602081019190915260400160002055600101610331565b505050565b6000806103b8848461048b61049d565b60005481519192506103e2916fffffffffffffffffffffffffffffffff9091169061ffff16610ecb565b6fffffffffffffffffffffffffffffffff1691508060200151156104585780516000546104399161ffff169070010000000000000000000000000000000090046fffffffffffffffffffffffffffffffff16610ecb565b610455906fffffffffffffffffffffffffffffffff1683610eff565b91505b80604001511561048457600154610481906fffffffffffffffffffffffffffffffff1683610eff565b91505b5092915050565b61049760028583610ac1565b50505050565b6040805160608101825260008082526020820181905291810182905290808581866104c9826002610eff565b926104d693929190610f12565b6104df91610f3c565b60f01c90506104ef600283610eff565b915061ffff811660011461052f576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61053a600283610eff565b9150600086838761054c826002610eff565b9261055993929190610f12565b61056291610f3c565b60f01c9050610572600284610eff565b92508061ffff166000036105b2576040517f87a7f37900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61ffff1683525060005b826000015161ffff168161ffff1610156108245760008686848181106105e4576105e4610e6f565b919091013560f81c91506105fb9050600184610eff565b925060ff811660011461063a576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610645600284610eff565b92506000878488610657826002610eff565b9261066493929190610f12565b61066d91610f3c565b60f01c905061067d600285610eff565b93507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61ffff8216016107e85760008885896106ba826002610eff565b926106c793929190610f12565b6106d091610f3c565b60f01c90506106e0600286610eff565b94508460008a828b6106f3826004610eff565b9261070093929190610f12565b61070991610f82565b60e01c9050610719600483610eff565b915060008b8b8481811061072f5761072f610e6f565b600192013560f81c8214925061074791905084610eff565b925060008c848d610759826008610eff565b9261076693929190610f12565b61076f91610fc8565b60c01c905061078583838360008f63ffffffff16565b508a925061079a91505061ffff831687610eff565b11156107d2576040517f87a7f37900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6107e061ffff821686610eff565b94505061081a565b6040517fb968846100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50506001016105bc565b5083811015610a8057600085858381811061084157610841610e6f565b919091013560f81c91506108589050600183610eff565b915060ff8116600114610897576040517fa9146eeb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008683876108a7826002610eff565b926108b493929190610f12565b6108bd91610f3c565b60f01c90506108cd600284610eff565b925061ffff811660011461090d576040517fb968846100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600087878581811061092157610921610e6f565b919091013560f81c91506109389050600185610eff565b935060ff811661094e57600160208601526109bd565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff82160161098457600160408601526109bd565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe60ff8216016107e85760016020860181905260408601525b60008885896109cd826004610eff565b926109da93929190610f12565b6109e391610f82565b60e01c90506109f3600486610eff565b94506000898987818110610a0957610a09610e6f565b600192013560f81c82149250610a2191905087610eff565b955060008a878b610a33826008610eff565b92610a4093929190610f12565b610a4991610fc8565b60c01c9050610a59600888610eff565b9650610a6c83838360018d63ffffffff16565b610a77601688610eff565b96505050505050505b808414610ab9576040517f87a7f37900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b509392505050565b610acc838383610b02565b6103a3576040517f50fae9eb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b63ffffffff8083166000908152602085905260408120549091610b2891908490610b3016565b949350505050565b600160ff82161b821615155b92915050565b80356fffffffffffffffffffffffffffffffff81168114610b6257600080fd5b919050565b60008060008060808587031215610b7d57600080fd5b610b8685610b42565b9350610b9460208601610b42565b9250610ba260408601610b42565b9150610bb060608601610b42565b905092959194509250565b60008083601f840112610bcd57600080fd5b50813567ffffffffffffffff811115610be557600080fd5b602083019150836020828501011115610bfd57600080fd5b9250929050565b60008060008060608587031215610c1a57600080fd5b843567ffffffffffffffff811115610c3157600080fd5b610c3d87828801610bbb565b90989097506020870135966040013595509350505050565b60008060008060008060006080888a031215610c7057600080fd5b873573ffffffffffffffffffffffffffffffffffffffff81168114610c9457600080fd5b9650602088013567ffffffffffffffff80821115610cb157600080fd5b610cbd8b838c01610bbb565b909850965060408a0135915080821115610cd657600080fd5b610ce28b838c01610bbb565b909650945060608a0135915080821115610cfb57600080fd5b50610d088a828b01610bbb565b989b979a50959850939692959293505050565b60008060208385031215610d2e57600080fd5b823567ffffffffffffffff80821115610d4657600080fd5b818501915085601f830112610d5a57600080fd5b813581811115610d6957600080fd5b8660208260061b8501011115610d7e57600080fd5b60209290920196919550909350505050565b6060815283606082015283856080830137600060808583010152600060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f870116830101905083602083015282604083015295945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b8082028115828204841417610b3c57610b3c610dee565b600082610e6a577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600060208284031215610eb057600080fd5b813563ffffffff81168114610ec457600080fd5b9392505050565b6fffffffffffffffffffffffffffffffff818116838216028082169190828114610ef757610ef7610dee565b505092915050565b80820180821115610b3c57610b3c610dee565b60008085851115610f2257600080fd5b83861115610f2f57600080fd5b5050820193919092039150565b7fffff0000000000000000000000000000000000000000000000000000000000008135818116916002851015610ef75760029490940360031b84901b1690921692915050565b7fffffffff000000000000000000000000000000000000000000000000000000008135818116916004851015610ef75760049490940360031b84901b1690921692915050565b7fffffffffffffffff0000000000000000000000000000000000000000000000008135818116916008851015610ef75760089490940360031b84901b169092169291505056fea2646970667358221220a84d1cfd85c00372325b0a088287cce10871499300154b97f7c9735844345eef64736f6c63430008160033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
