UNPKG

@ethsub/sol

Version:
1,048 lines (1,047 loc) 56.3 kB
{ "contractName": "ERC1155Receiver", "abi": [ { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "onERC1155BatchReceived", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "onERC1155Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.6.12+commit.27d51765\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155BatchReceived\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"onERC1155Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"_Available since v3.1._\",\"kind\":\"dev\",\"methods\":{\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\":{\"details\":\"Handles the receipt of a multiple ERC1155 token types. This function is called at the end of a `safeBatchTransferFrom` after the balances have been updated. To accept the transfer(s), this must return `bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` (i.e. 0xbc197c81, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"ids\":\"An array containing ids of each token being transferred (order and length must match values array)\",\"operator\":\"The address which initiated the batch transfer (i.e. msg.sender)\",\"values\":\"An array containing amounts of each token being transferred (order and length must match ids array)\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)\\\"))` if transfer is allowed\"}},\"onERC1155Received(address,address,uint256,uint256,bytes)\":{\"details\":\"Handles the receipt of a single ERC1155 token type. This function is called at the end of a `safeTransferFrom` after the balance has been updated. To accept the transfer, this must return `bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` (i.e. 0xf23a6e61, or its own function selector).\",\"params\":{\"data\":\"Additional data with no specified format\",\"from\":\"The address which previously owned the token\",\"id\":\"The ID of the token being transferred\",\"operator\":\"The address which initiated the transfer (i.e. msg.sender)\",\"value\":\"The amount of tokens being transferred\"},\"returns\":{\"_0\":\"`bytes4(keccak256(\\\"onERC1155Received(address,address,uint256,uint256,bytes)\\\"))` if transfer is allowed\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/token/ERC1155/ERC1155Receiver.sol\":\"ERC1155Receiver\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0x24141d2f6b98d4cb77a8936eae8cbaad2e261d9062bdc08036096f4550092501\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b710eb003944777135f027500a5a57b479fe857849f5f467c1ef9687401e3c95\",\"dweb:/ipfs/QmcELzi6KRzAs3DXwxdsoKWRJ13KSeipKQsJgD3unctdZM\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xf70bc25d981e4ec9673a995ad2995d5d493ea188d3d8f388bba9c227ce09fb82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd970f51e3a77790c2f02b5b1759827c3b897c3d98c407b3631e8af32e3dc93c\",\"dweb:/ipfs/QmPF85Amgbqjk3SNZKsPCsqCw8JfwYEPMnnhvMJUyX58je\"]},\"@openzeppelin/contracts/token/ERC1155/ERC1155Receiver.sol\":{\"keccak256\":\"0x57a0e246fb1c8f9cccf91c508eafe474e40260a31de3a39019ba8312cfdf9b2d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://652f100749edfc17c4afeecb9fc0941414e2cb30c57fa713736064b71f2462a8\",\"dweb:/ipfs/QmUw4AbnrnANMBDRs92CHL9rBNBYAYCT8EQxmaNZ3nkcdf\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0x2690a9b7f4f7489b8d25a4fc6bffc02ec3971fb41ed6c8b59adef2833bdab07c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8148c99452b6793ac9599abdc8bdaf4eeb47f34590beea8aa01089be14e2990c\",\"dweb:/ipfs/QmNdenmZ4EDfH9TuBas3pHeGuZvDNo2rsfgUj6ka8vuH37\"]}},\"version\":1}", "bytecode": "0x", "deployedBytecode": "0x", "immutableReferences": {}, "sourceMap": "", "deployedSourceMap": "", "source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.0;\n\nimport \"./IERC1155Receiver.sol\";\nimport \"../../introspection/ERC165.sol\";\n\n/**\n * @dev _Available since v3.1._\n */\nabstract contract ERC1155Receiver is ERC165, IERC1155Receiver {\n constructor() internal {\n _registerInterface(\n ERC1155Receiver(address(0)).onERC1155Received.selector ^\n ERC1155Receiver(address(0)).onERC1155BatchReceived.selector\n );\n }\n}\n", "sourcePath": "@openzeppelin/contracts/token/ERC1155/ERC1155Receiver.sol", "ast": { "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155Receiver.sol", "exportedSymbols": { "ERC1155Receiver": [ 2464 ] }, "id": 2465, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 2432, "literals": [ "solidity", ">=", "0.6", ".0", "<", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "33:31:12" }, { "absolutePath": "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol", "file": "./IERC1155Receiver.sol", "id": 2433, "nodeType": "ImportDirective", "scope": 2465, "sourceUnit": 2643, "src": "66:32:12", "symbolAliases": [], "unitAlias": "" }, { "absolutePath": "@openzeppelin/contracts/introspection/ERC165.sol", "file": "../../introspection/ERC165.sol", "id": 2434, "nodeType": "ImportDirective", "scope": 2465, "sourceUnit": 343, "src": "99:40:12", "symbolAliases": [], "unitAlias": "" }, { "abstract": true, "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 2436, "name": "ERC165", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 342, "src": "218:6:12", "typeDescriptions": { "typeIdentifier": "t_contract$_ERC165_$342", "typeString": "contract ERC165" } }, "id": 2437, "nodeType": "InheritanceSpecifier", "src": "218:6:12" }, { "arguments": null, "baseName": { "contractScope": null, "id": 2438, "name": "IERC1155Receiver", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2642, "src": "226:16:12", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC1155Receiver_$2642", "typeString": "contract IERC1155Receiver" } }, "id": 2439, "nodeType": "InheritanceSpecifier", "src": "226:16:12" } ], "contractDependencies": [ 342, 582, 2642 ], "contractKind": "contract", "documentation": { "id": 2435, "nodeType": "StructuredDocumentation", "src": "141:39:12", "text": " @dev _Available since v3.1._" }, "fullyImplemented": false, "id": 2464, "linearizedBaseContracts": [ 2464, 2642, 342, 582 ], "name": "ERC1155Receiver", "nodeType": "ContractDefinition", "nodes": [ { "body": { "id": 2462, "nodeType": "Block", "src": "272:187:12", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "id": 2459, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 2446, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "338:1:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 2445, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "330:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 2444, "name": "address", "nodeType": "ElementaryTypeName", "src": "330:7:12", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 2447, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "330:10:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 2443, "name": "ERC1155Receiver", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2464, "src": "314:15:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC1155Receiver_$2464_$", "typeString": "type(contract ERC1155Receiver)" } }, "id": 2448, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "314:27:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC1155Receiver_$2464", "typeString": "contract ERC1155Receiver" } }, "id": 2449, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "onERC1155Received", "nodeType": "MemberAccess", "referencedDeclaration": 2623, "src": "314:45:12", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", "typeString": "function (address,address,uint256,uint256,bytes memory) external returns (bytes4)" } }, "id": 2450, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "314:54:12", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "BinaryOperation", "operator": "^", "rightExpression": { "argumentTypes": null, "expression": { "argumentTypes": null, "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "hexValue": "30", "id": 2454, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "407:1:12", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 2453, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "399:7:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 2452, "name": "address", "nodeType": "ElementaryTypeName", "src": "399:7:12", "typeDescriptions": { "typeIdentifier": null, "typeString": null } } }, "id": 2455, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "399:10:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address_payable", "typeString": "address payable" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "id": 2451, "name": "ERC1155Receiver", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2464, "src": "383:15:12", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC1155Receiver_$2464_$", "typeString": "type(contract ERC1155Receiver)" } }, "id": 2456, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "383:27:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_ERC1155Receiver_$2464", "typeString": "contract ERC1155Receiver" } }, "id": 2457, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberName": "onERC1155BatchReceived", "nodeType": "MemberAccess", "referencedDeclaration": 2641, "src": "383:50:12", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", "typeString": "function (address,address,uint256[] memory,uint256[] memory,bytes memory) external returns (bytes4)" } }, "id": 2458, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberName": "selector", "nodeType": "MemberAccess", "referencedDeclaration": null, "src": "383:59:12", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "src": "314:128:12", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } ], "id": 2442, "name": "_registerInterface", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 341, "src": "282:18:12", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, "id": 2460, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "282:170:12", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2461, "nodeType": "ExpressionStatement", "src": "282:170:12" } ] }, "documentation": null, "id": 2463, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "overrides": null, "parameters": { "id": 2440, "nodeType": "ParameterList", "parameters": [], "src": "260:2:12" }, "returnParameters": { "id": 2441, "nodeType": "ParameterList", "parameters": [], "src": "272:0:12" }, "scope": 2464, "src": "249:210:12", "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" } ], "scope": 2465, "src": "181:280:12" } ], "src": "33:429:12" }, "legacyAST": { "attributes": { "absolutePath": "@openzeppelin/contracts/token/ERC1155/ERC1155Receiver.sol", "exportedSymbols": { "ERC1155Receiver": [ 2464 ] }, "license": "MIT" }, "children": [ { "attributes": { "literals": [ "solidity", ">=", "0.6", ".0", "<", "0.8", ".0" ] }, "id": 2432, "name": "PragmaDirective", "src": "33:31:12" }, { "attributes": { "SourceUnit": 2643, "absolutePath": "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol", "file": "./IERC1155Receiver.sol", "scope": 2465, "symbolAliases": [ null ], "unitAlias": "" }, "id": 2433, "name": "ImportDirective", "src": "66:32:12" }, { "attributes": { "SourceUnit": 343, "absolutePath": "@openzeppelin/contracts/introspection/ERC165.sol", "file": "../../introspection/ERC165.sol", "scope": 2465, "symbolAliases": [ null ], "unitAlias": "" }, "id": 2434, "name": "ImportDirective", "src": "99:40:12" }, { "attributes": { "abstract": true, "contractDependencies": [ 342, 582, 2642 ], "contractKind": "contract", "fullyImplemented": false, "linearizedBaseContracts": [ 2464, 2642, 342, 582 ], "name": "ERC1155Receiver", "scope": 2465 }, "children": [ { "attributes": { "text": " @dev _Available since v3.1._" }, "id": 2435, "name": "StructuredDocumentation", "src": "141:39:12" }, { "attributes": { "arguments": null }, "children": [ { "attributes": { "contractScope": null, "name": "ERC165", "referencedDeclaration": 342, "type": "contract ERC165" }, "id": 2436, "name": "UserDefinedTypeName", "src": "218:6:12" } ], "id": 2437, "name": "InheritanceSpecifier", "src": "218:6:12" }, { "attributes": { "arguments": null }, "children": [ { "attributes": { "contractScope": null, "name": "IERC1155Receiver", "referencedDeclaration": 2642, "type": "contract IERC1155Receiver" }, "id": 2438, "name": "UserDefinedTypeName", "src": "226:16:12" } ], "id": 2439, "name": "InheritanceSpecifier", "src": "226:16:12" }, { "attributes": { "documentation": null, "implemented": true, "isConstructor": true, "kind": "constructor", "modifiers": [ null ], "name": "", "overrides": null, "scope": 2464, "stateMutability": "nonpayable", "virtual": false, "visibility": "internal" }, "children": [ { "attributes": { "parameters": [ null ] }, "children": [], "id": 2440, "name": "ParameterList", "src": "260:2:12" }, { "attributes": { "parameters": [ null ] }, "children": [], "id": 2441, "name": "ParameterList", "src": "272:0:12" }, { "children": [ { "children": [ { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": false, "isStructConstructorCall": false, "lValueRequested": false, "names": [ null ], "tryCall": false, "type": "tuple()", "type_conversion": false }, "children": [ { "attributes": { "argumentTypes": [ { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } ], "overloadedDeclarations": [ null ], "referencedDeclaration": 341, "type": "function (bytes4)", "value": "_registerInterface" }, "id": 2442, "name": "Identifier", "src": "282:18:12" }, { "attributes": { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "operator": "^", "type": "bytes4" }, "children": [ { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "member_name": "selector", "referencedDeclaration": null, "type": "bytes4" }, "children": [ { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "member_name": "onERC1155Received", "referencedDeclaration": 2623, "type": "function (address,address,uint256,uint256,bytes memory) external returns (bytes4)" }, "children": [ { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": true, "isStructConstructorCall": false, "lValueRequested": false, "names": [ null ], "tryCall": false, "type": "contract ERC1155Receiver", "type_conversion": true }, "children": [ { "attributes": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "overloadedDeclarations": [ null ], "referencedDeclaration": 2464, "type": "type(contract ERC1155Receiver)", "value": "ERC1155Receiver" }, "id": 2443, "name": "Identifier", "src": "314:15:12" }, { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": true, "isStructConstructorCall": false, "lValueRequested": false, "names": [ null ], "tryCall": false, "type": "address payable", "type_conversion": true }, "children": [ { "attributes": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "type": "type(address)" }, "children": [ { "attributes": { "name": "address", "type": null }, "id": 2444, "name": "ElementaryTypeName", "src": "330:7:12" } ], "id": 2445, "name": "ElementaryTypeNameExpression", "src": "330:7:12" }, { "attributes": { "argumentTypes": null, "hexvalue": "30", "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "subdenomination": null, "token": "number", "type": "int_const 0", "value": "0" }, "id": 2446, "name": "Literal", "src": "338:1:12" } ], "id": 2447, "name": "FunctionCall", "src": "330:10:12" } ], "id": 2448, "name": "FunctionCall", "src": "314:27:12" } ], "id": 2449, "name": "MemberAccess", "src": "314:45:12" } ], "id": 2450, "name": "MemberAccess", "src": "314:54:12" }, { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "member_name": "selector", "referencedDeclaration": null, "type": "bytes4" }, "children": [ { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "member_name": "onERC1155BatchReceived", "referencedDeclaration": 2641, "type": "function (address,address,uint256[] memory,uint256[] memory,bytes memory) external returns (bytes4)" }, "children": [ { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": true, "isStructConstructorCall": false, "lValueRequested": false, "names": [ null ], "tryCall": false, "type": "contract ERC1155Receiver", "type_conversion": true }, "children": [ { "attributes": { "argumentTypes": [ { "typeIdentifier": "t_address_payable", "typeString": "address payable" } ], "overloadedDeclarations": [ null ], "referencedDeclaration": 2464, "type": "type(contract ERC1155Receiver)", "value": "ERC1155Receiver" }, "id": 2451, "name": "Identifier", "src": "383:15:12" }, { "attributes": { "argumentTypes": null, "isConstant": false, "isLValue": false, "isPure": true, "isStructConstructorCall": false, "lValueRequested": false, "names": [ null ], "tryCall": false, "type": "address payable", "type_conversion": true }, "children": [ { "attributes": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "type": "type(address)" }, "children": [ { "attributes": { "name": "address", "type": null },