{
  "_format": "hh-sol-artifact-1",
  "contractName": "OrderValidator",
  "sourceName": "contracts/lib/OrderValidator.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "conduitController",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "shadowToken",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [],
      "name": "BadContractSignature",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "BadFraction",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "BadReturnValueFromERC20OnTransfer",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "v",
          "type": "uint8"
        }
      ],
      "name": "BadSignatureV",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "orderIndex",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "considerationIndex",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "shortfallAmount",
          "type": "uint256"
        }
      ],
      "name": "ConsiderationNotMet",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "identifiers",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "ERC1155BatchTransferGenericFailure",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "EtherTransferGenericFailure",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InsufficientEtherSupplied",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "Invalid1155BatchTransferEncoding",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidBasicOrderParameterEncoding",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "conduit",
          "type": "address"
        }
      ],
      "name": "InvalidCallToConduit",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidCanceller",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "conduitKey",
          "type": "bytes32"
        },
        {
          "internalType": "address",
          "name": "conduit",
          "type": "address"
        }
      ],
      "name": "InvalidConduit",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidERC721TransferAmount",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "InvalidMsgValue",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidNativeOfferItem",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidOrderParameters",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidSignature",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidSigner",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "InvalidTime",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "MissingItemAmount",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "MissingOriginalConsiderationItems",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        }
      ],
      "name": "NoContract",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NoReentrantCalls",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "NoSpecifiedOrdersAvailable",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "orderHash",
          "type": "bytes32"
        }
      ],
      "name": "OrderAlreadyFilled",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "orderHash",
          "type": "bytes32"
        }
      ],
      "name": "OrderAlreadyFinalized",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "orderHash",
          "type": "bytes32"
        }
      ],
      "name": "OrderAlreadyStarted",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "orderHash",
          "type": "bytes32"
        }
      ],
      "name": "OrderExpired",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "orderHash",
          "type": "bytes32"
        }
      ],
      "name": "OrderInvalidRepayParameters",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "orderHash",
          "type": "bytes32"
        }
      ],
      "name": "OrderIsCancelled",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "orderHash",
          "type": "bytes32"
        }
      ],
      "name": "OrderNotExpired",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "orderHash",
          "type": "bytes32"
        }
      ],
      "name": "OrderNotStarted",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "orderHash",
          "type": "bytes32"
        }
      ],
      "name": "OrderNotValidated",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "orderHash",
          "type": "bytes32"
        }
      ],
      "name": "OrderPartiallyFilled",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "PartialFillsNotEnabledForOrder",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "identifier",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "TokenTransferGenericFailure",
      "type": "error"
    },
    {
      "inputs": [],
      "name": "UnusedItemParameters",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "newCounter",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "offerer",
          "type": "address"
        }
      ],
      "name": "CounterIncremented",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "orderHash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "offerer",
          "type": "address"
        }
      ],
      "name": "OrderBroken",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "orderHash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "offerer",
          "type": "address"
        }
      ],
      "name": "OrderCancelled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "orderHash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "offerer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "fulfiller",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "shadowId",
          "type": "uint256"
        }
      ],
      "name": "OrderFulfilled",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "orderHash",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "payTimes",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "finalized",
          "type": "bool"
        }
      ],
      "name": "OrderRepaid",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "orderHash",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "offerer",
          "type": "address"
        }
      ],
      "name": "OrderValidated",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "shadowToken",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x6101a060405234801561001157600080fd5b506040516105f23803806105f283398101604081905261003091610494565b80828080808061003e610124565b60e05260c081815260a0838152608085815246610100819052604080516020818101979097528082019890985260608801969096529086015230858201528351808603909101815293019091528151910120610120526001600160a01b03811661014081905260408051630a96ad3960e01b81528151630a96ad39926004808401939192918290030181865afa1580156100dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061010091906104c7565b5061016052505060016000555050506001600160a01b031661018052506104eb9050565b600080808061015360408051808201909152600d81526c21b7b739b4b232b930ba34b7b760991b602082015290565b805160209182012060408051808201825260038152620312e360ec1b90840152519095507fe6bbd6277e1bf288eed5e8d1780f9a50b239e86b153736bceebccf4ea79d90b394506000916103ad91016f09ee4c8cae486dedae0dedccadce8e6560831b81526f1859191c995cdcc81bd999995c995c8b60821b60108201526d1859191c995cdcc81d1bdad95b8b60921b60208201527f75696e74323536206964656e7469666965722c00000000000000000000000000602e820152701859191c995cdcc818dd5c9c995b98de4b607a1b60418201526e1859191c995cdcc8185c9d1a5cdd0b608a1b6052820152701859191c995cdcc81c1b185d199bdc9b4b607a1b6061820152711d5a5b9d0c8d4d881cdd185c9d151a5b594b60721b60728201526f1d5a5b9d0c8d4d88195b99151a5b594b60821b6084820152701d5a5b9d0c8d4d88191d5c985d1a5bdb8b607a1b60948201526f1d5a5b9d0c8d4d881c195c9a5bd91ccb60821b60a58201526e1d5a5b9d0c8d4d88185b5bdd5b9d0b608a1b60b58201526d1d5a5b9d0c8d4d881c985d1a5bcb60921b60c48201526f1d5a5b9d0c8d4d881c9bde585b1d1e4b60821b60d28201526b1d5a5b9d0c8d4d881999594b60a21b60e28201527f75696e743235362077697468647261774665652c00000000000000000000000060ee8201526c1d5a5b9d0c8d4d881cd85b1d0b609a1b6101028201527f6279746573333220636f6e647569744b65792c0000000000000000000000000061010f8201526e3ab4b73a191a9b1031b7bab73a32b960891b610122820152602960f81b6101318201526101320190565b60408051601f19818403018152908290526c08a92a06e626488dedac2d2dc5609b1b60208301526b1cdd1c9a5b99c81b985b594b60a21b602d8301526e1cdd1c9a5b99c81d995c9cda5bdb8b608a1b60398301526f1d5a5b9d0c8d4d8818da185a5b92590b60821b60488301527f6164647265737320766572696679696e67436f6e7472616374000000000000006058830152602960f81b60718301529150607201604051602081830303815290604052805190602001209250808051906020012091505090919293565b80516001600160a01b038116811461048f57600080fd5b919050565b600080604083850312156104a757600080fd5b6104b083610478565b91506104be60208401610478565b90509250929050565b600080604083850312156104da57600080fd5b505080516020909101519092909150565b60805160a05160c05160e051610100516101205161014051610160516101805160b2610540600039600060310152600050506000505060005050600050506000505060005050600050506000505060b26000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c8063ffc5d97a14602d575b600080fd5b60537f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f3fea2646970667358221220626833a783da07078edf844b310e31b652b0be836fe71866e90045127803eea664736f6c634300080e0033",
  "deployedBytecode": "0x6080604052348015600f57600080fd5b506004361060285760003560e01c8063ffc5d97a14602d575b600080fd5b60537f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390f3fea2646970667358221220626833a783da07078edf844b310e31b652b0be836fe71866e90045127803eea664736f6c634300080e0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
