{
    "schemaVersion": "2.0.0",
    "contractName": "IAssetData",
    "compilerOutput": {
        "abi": [
            {
                "constant": false,
                "inputs": [
                    { "internalType": "address", "name": "tokenAddress", "type": "address" },
                    { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" },
                    { "internalType": "uint256[]", "name": "values", "type": "uint256[]" },
                    { "internalType": "bytes", "name": "callbackData", "type": "bytes" }
                ],
                "name": "ERC1155Assets",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    { "internalType": "address", "name": "tokenAddress", "type": "address" },
                    { "internalType": "address", "name": "bridgeAddress", "type": "address" },
                    { "internalType": "bytes", "name": "bridgeData", "type": "bytes" }
                ],
                "name": "ERC20Bridge",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [{ "internalType": "address", "name": "tokenAddress", "type": "address" }],
                "name": "ERC20Token",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    { "internalType": "address", "name": "tokenAddress", "type": "address" },
                    { "internalType": "uint256", "name": "tokenId", "type": "uint256" }
                ],
                "name": "ERC721Token",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    { "internalType": "uint256[]", "name": "values", "type": "uint256[]" },
                    { "internalType": "bytes[]", "name": "nestedAssetData", "type": "bytes[]" }
                ],
                "name": "MultiAsset",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            },
            {
                "constant": false,
                "inputs": [
                    { "internalType": "address", "name": "staticCallTargetAddress", "type": "address" },
                    { "internalType": "bytes", "name": "staticCallData", "type": "bytes" },
                    { "internalType": "bytes32", "name": "expectedReturnDataHash", "type": "bytes32" }
                ],
                "name": "StaticCall",
                "outputs": [],
                "payable": false,
                "stateMutability": "nonpayable",
                "type": "function"
            }
        ],
        "devdoc": {
            "methods": {
                "ERC1155Assets(address,uint256[],uint256[],bytes)": {
                    "details": "Function signature for encoding ERC1155 assetData.",
                    "params": {
                        "callbackData": "Extra data to be passed to receiver's `onERC1155Received` callback function.",
                        "tokenAddress": "Address of ERC1155 token contract.",
                        "tokenIds": "Array of ids of tokens to be transferred.",
                        "values": "Array of values that correspond to each token id to be transferred.        Note that each value will be multiplied by the amount being filled in the order before transferring."
                    }
                },
                "ERC20Bridge(address,address,bytes)": {
                    "details": "Function signature for encoding ERC20Bridge assetData.",
                    "params": {
                        "bridgeAddress": "Address of the bridge contract.",
                        "bridgeData": "Arbitrary data to be passed to the bridge contract.",
                        "tokenAddress": "Address of token to transfer."
                    }
                },
                "ERC20Token(address)": {
                    "details": "Function signature for encoding ERC20 assetData.",
                    "params": { "tokenAddress": "Address of ERC20Token contract." }
                },
                "ERC721Token(address,uint256)": {
                    "details": "Function signature for encoding ERC721 assetData.",
                    "params": {
                        "tokenAddress": "Address of ERC721 token contract.",
                        "tokenId": "Id of ERC721 token to be transferred."
                    }
                },
                "MultiAsset(uint256[],bytes[])": {
                    "details": "Function signature for encoding MultiAsset assetData.",
                    "params": {
                        "nestedAssetData": "Array of assetData fields that will be be dispatched to their correspnding AssetProxy contract.",
                        "values": "Array of amounts that correspond to each asset to be transferred.        Note that each value will be multiplied by the amount being filled in the order before transferring."
                    }
                },
                "StaticCall(address,bytes,bytes32)": {
                    "details": "Function signature for encoding StaticCall assetData.",
                    "params": {
                        "expectedReturnDataHash": "Keccak-256 hash of the expected staticcall return data.",
                        "staticCallData": "Data that will be executed via staticcall on the staticCallTargetAddress.",
                        "staticCallTargetAddress": "Address that will execute the staticcall."
                    }
                }
            }
        },
        "evm": { "bytecode": { "object": "0x" }, "deployedBytecode": { "object": "0x" } }
    },
    "compiler": {
        "name": "solc",
        "version": "soljson-v0.5.13+commit.5b0b510c.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": "constantinople"
        }
    },
    "chains": {}
}
