{
    "schemaVersion": "2.0.0",
    "contractName": "ILiquidityProvider",
    "compilerOutput": {
        "abi": [
            {
                "constant": false,
                "inputs": [
                    { "internalType": "address", "name": "tokenAddress", "type": "address" },
                    { "internalType": "address", "name": "from", "type": "address" },
                    { "internalType": "address", "name": "to", "type": "address" },
                    { "internalType": "uint256", "name": "amount", "type": "uint256" },
                    { "internalType": "bytes", "name": "bridgeData", "type": "bytes" }
                ],
                "name": "bridgeTransferFrom",
                "outputs": [{ "internalType": "bytes4", "name": "success", "type": "bytes4" }],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    { "internalType": "address", "name": "takerToken", "type": "address" },
                    { "internalType": "address", "name": "makerToken", "type": "address" },
                    { "internalType": "uint256", "name": "buyAmount", "type": "uint256" }
                ],
                "name": "getBuyQuote",
                "outputs": [{ "internalType": "uint256", "name": "takerTokenAmount", "type": "uint256" }],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            },
            {
                "constant": true,
                "inputs": [
                    { "internalType": "address", "name": "takerToken", "type": "address" },
                    { "internalType": "address", "name": "makerToken", "type": "address" },
                    { "internalType": "uint256", "name": "sellAmount", "type": "uint256" }
                ],
                "name": "getSellQuote",
                "outputs": [{ "internalType": "uint256", "name": "makerTokenAmount", "type": "uint256" }],
                "payable": false,
                "stateMutability": "view",
                "type": "function"
            }
        ],
        "devdoc": {
            "methods": {
                "bridgeTransferFrom(address,address,address,uint256,bytes)": {
                    "details": "Transfers `amount` of the ERC20 `tokenAddress` from `from` to `to`.",
                    "params": {
                        "amount": "Amount of asset to transfer.",
                        "bridgeData": "Arbitrary asset data needed by the bridge contract.",
                        "from": "Address to transfer asset from.",
                        "to": "Address to transfer asset to.",
                        "tokenAddress": "The address of the ERC20 token to transfer."
                    },
                    "return": "success The magic bytes `0xdc1600f3` if successful."
                },
                "getBuyQuote(address,address,uint256)": {
                    "details": "Quotes the amount of `takerToken` that would need to be sold in      order to obtain `buyAmount` of `makerToken`.",
                    "params": {
                        "buyAmount": "Amount of `makerToken` to buy.",
                        "makerToken": "Address of the maker token (what to buy).",
                        "takerToken": "Address of the taker token (what to sell)."
                    },
                    "return": "takerTokenAmount Amount of `takerToken` that would need to be sold."
                },
                "getSellQuote(address,address,uint256)": {
                    "details": "Quotes the amount of `makerToken` that would be obtained by      selling `sellAmount` of `takerToken`.",
                    "params": {
                        "makerToken": "Address of the maker token (what to buy).",
                        "sellAmount": "Amount of `takerToken` to sell.",
                        "takerToken": "Address of the taker token (what to sell)."
                    },
                    "return": "makerTokenAmount Amount of `makerToken` that would be obtained."
                }
            }
        },
        "evm": { "bytecode": { "object": "0x" }, "deployedBytecode": { "object": "0x" } }
    },
    "compiler": {
        "name": "solc",
        "version": "soljson-v0.5.16+commit.9c3226ce.js",
        "settings": {
            "optimizer": {
                "enabled": true,
                "runs": 1000000,
                "details": { "yul": true, "deduplicate": true, "cse": true, "constantOptimizer": true }
            },
            "outputSelection": {
                "*": {
                    "*": [
                        "abi",
                        "devdoc",
                        "evm.bytecode.object",
                        "evm.bytecode.sourceMap",
                        "evm.deployedBytecode.object",
                        "evm.deployedBytecode.sourceMap"
                    ]
                }
            },
            "evmVersion": "istanbul"
        }
    },
    "chains": {}
}
