{
    "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"
            }
        ],
        "evm": {
            "bytecode": {
                "linkReferences": {},
                "object":
                    "[encoded data, 14966 characters]"
            }
        }
    },
    "networks": {}
}
