{
    "schemaVersion": "2.0.0",
    "contractName": "OrderValidator",
    "compilerOutput": {
        "abi": [
            {
                "constant": true,
                "inputs": [
                    {
                        "components": [
                            { "name": "makerAddress", "type": "address" },
                            { "name": "takerAddress", "type": "address" },
                            { "name": "feeRecipientAddress", "type": "address" },
                            { "name": "senderAddress", "type": "address" },
                            { "name": "makerAssetAmount", "type": "uint256" },
                            { "name": "takerAssetAmount", "type": "uint256" },
                            { "name": "makerFee", "type": "uint256" },
                            { "name": "takerFee", "type": "uint256" },
                            { "name": "expirationTimeSeconds", "type": "uint256" },
                            { "name": "salt", "type": "uint256" },
                            { "name": "makerAssetData", "type": "bytes" },
                            { "name": "takerAssetData", "type": "bytes" }
                        ],
                        "name": "order",
                        "type": "tuple"
                    },
                    { "name": "takerAddress", "type": "address" }
                ],
                "name": "getOrderAndTraderInfo",
                "outputs": [
                    {
                        "components": [
                            { "name": "orderStatus", "type": "uint8" },
                            { "name": "orderHash", "type": "bytes32" },
                            { "name": "orderTakerAssetFilledAmount", "type": "uint256" }
                        ],
                        "name": "orderInfo",
                        "type": "tuple"
                    },
                    {
                        "components": [
                            { "name": "makerBalance", "type": "uint256" },
                            { "name": "makerAllowance", "type": "uint256" },
                            { "name": "takerBalance", "type": "uint256" },
                            { "name": "takerAllowance", "type": "uint256" },
                            { "name": "makerZrxBalance", "type": "uint256" },
                            { "name": "makerZrxAllowance", "type": "uint256" },
                            { "name": "takerZrxBalance", "type": "uint256" },
                            { "name": "takerZrxAllowance", "type": "uint256" }
                        ],
                        "name": "traderInfo",
                        "type": "tuple"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [{ "name": "target", "type": "address" }, { "name": "assetData", "type": "bytes" }],
                "name": "getBalanceAndAllowance",
                "outputs": [{ "name": "balance", "type": "uint256" }, { "name": "allowance", "type": "uint256" }],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    {
                        "components": [
                            { "name": "makerAddress", "type": "address" },
                            { "name": "takerAddress", "type": "address" },
                            { "name": "feeRecipientAddress", "type": "address" },
                            { "name": "senderAddress", "type": "address" },
                            { "name": "makerAssetAmount", "type": "uint256" },
                            { "name": "takerAssetAmount", "type": "uint256" },
                            { "name": "makerFee", "type": "uint256" },
                            { "name": "takerFee", "type": "uint256" },
                            { "name": "expirationTimeSeconds", "type": "uint256" },
                            { "name": "salt", "type": "uint256" },
                            { "name": "makerAssetData", "type": "bytes" },
                            { "name": "takerAssetData", "type": "bytes" }
                        ],
                        "name": "orders",
                        "type": "tuple[]"
                    },
                    { "name": "takerAddresses", "type": "address[]" }
                ],
                "name": "getOrdersAndTradersInfo",
                "outputs": [
                    {
                        "components": [
                            { "name": "orderStatus", "type": "uint8" },
                            { "name": "orderHash", "type": "bytes32" },
                            { "name": "orderTakerAssetFilledAmount", "type": "uint256" }
                        ],
                        "name": "ordersInfo",
                        "type": "tuple[]"
                    },
                    {
                        "components": [
                            { "name": "makerBalance", "type": "uint256" },
                            { "name": "makerAllowance", "type": "uint256" },
                            { "name": "takerBalance", "type": "uint256" },
                            { "name": "takerAllowance", "type": "uint256" },
                            { "name": "makerZrxBalance", "type": "uint256" },
                            { "name": "makerZrxAllowance", "type": "uint256" },
                            { "name": "takerZrxBalance", "type": "uint256" },
                            { "name": "takerZrxAllowance", "type": "uint256" }
                        ],
                        "name": "tradersInfo",
                        "type": "tuple[]"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    {
                        "components": [
                            { "name": "makerAddress", "type": "address" },
                            { "name": "takerAddress", "type": "address" },
                            { "name": "feeRecipientAddress", "type": "address" },
                            { "name": "senderAddress", "type": "address" },
                            { "name": "makerAssetAmount", "type": "uint256" },
                            { "name": "takerAssetAmount", "type": "uint256" },
                            { "name": "makerFee", "type": "uint256" },
                            { "name": "takerFee", "type": "uint256" },
                            { "name": "expirationTimeSeconds", "type": "uint256" },
                            { "name": "salt", "type": "uint256" },
                            { "name": "makerAssetData", "type": "bytes" },
                            { "name": "takerAssetData", "type": "bytes" }
                        ],
                        "name": "orders",
                        "type": "tuple[]"
                    },
                    { "name": "takerAddresses", "type": "address[]" }
                ],
                "name": "getTradersInfo",
                "outputs": [
                    {
                        "components": [
                            { "name": "makerBalance", "type": "uint256" },
                            { "name": "makerAllowance", "type": "uint256" },
                            { "name": "takerBalance", "type": "uint256" },
                            { "name": "takerAllowance", "type": "uint256" },
                            { "name": "makerZrxBalance", "type": "uint256" },
                            { "name": "makerZrxAllowance", "type": "uint256" },
                            { "name": "takerZrxBalance", "type": "uint256" },
                            { "name": "takerZrxAllowance", "type": "uint256" }
                        ],
                        "name": "",
                        "type": "tuple[]"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [{ "name": "token", "type": "address" }, { "name": "tokenId", "type": "uint256" }],
                "name": "getERC721TokenOwner",
                "outputs": [{ "name": "owner", "type": "address" }],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [{ "name": "target", "type": "address" }, { "name": "assetData", "type": "bytes[]" }],
                "name": "getBalancesAndAllowances",
                "outputs": [{ "name": "", "type": "uint256[]" }, { "name": "", "type": "uint256[]" }],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    {
                        "components": [
                            { "name": "makerAddress", "type": "address" },
                            { "name": "takerAddress", "type": "address" },
                            { "name": "feeRecipientAddress", "type": "address" },
                            { "name": "senderAddress", "type": "address" },
                            { "name": "makerAssetAmount", "type": "uint256" },
                            { "name": "takerAssetAmount", "type": "uint256" },
                            { "name": "makerFee", "type": "uint256" },
                            { "name": "takerFee", "type": "uint256" },
                            { "name": "expirationTimeSeconds", "type": "uint256" },
                            { "name": "salt", "type": "uint256" },
                            { "name": "makerAssetData", "type": "bytes" },
                            { "name": "takerAssetData", "type": "bytes" }
                        ],
                        "name": "order",
                        "type": "tuple"
                    },
                    { "name": "takerAddress", "type": "address" }
                ],
                "name": "getTraderInfo",
                "outputs": [
                    {
                        "components": [
                            { "name": "makerBalance", "type": "uint256" },
                            { "name": "makerAllowance", "type": "uint256" },
                            { "name": "takerBalance", "type": "uint256" },
                            { "name": "takerAllowance", "type": "uint256" },
                            { "name": "makerZrxBalance", "type": "uint256" },
                            { "name": "makerZrxAllowance", "type": "uint256" },
                            { "name": "takerZrxBalance", "type": "uint256" },
                            { "name": "takerZrxAllowance", "type": "uint256" }
                        ],
                        "name": "traderInfo",
                        "type": "tuple"
                    }
                ],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "inputs": [{ "name": "_exchange", "type": "address" }, { "name": "_zrxAssetData", "type": "bytes" }],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "constructor"
            }
        ],
        "devdoc": { "methods": {} },
        "evm": {
            "bytecode": {
                "object": "[encoded data, 14966 characters]"
            }
        }
    },
    "networks": {}
}
