UNPKG

@gnosis.pm/hg-contracts

Version:

Collection of smart contracts for the Gnosis prediction market platform

1,316 lines 50.4 kB
{ "contractName": "ERC165", "abi": [ { "inputs": [], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "constant": true, "inputs": [ { "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" } ], "bytecode": "0x", "deployedBytecode": "0x", "sourceMap": "", "deployedSourceMap": "", "source": "pragma solidity ^0.5.0;\n\nimport \"./IERC165.sol\";\n\n/**\n * @dev Implementation of the `IERC165` interface.\n *\n * Contracts may inherit from this and call `_registerInterface` to declare\n * their support of an interface.\n */\ncontract ERC165 is IERC165 {\n /*\n * bytes4(keccak256('supportsInterface(bytes4)')) == 0x01ffc9a7\n */\n bytes4 private constant _INTERFACE_ID_ERC165 = 0x01ffc9a7;\n\n /**\n * @dev Mapping of interface ids to whether or not it's supported.\n */\n mapping(bytes4 => bool) private _supportedInterfaces;\n\n constructor () internal {\n // Derived contracts need only register support for their own interfaces,\n // we register support for ERC165 itself here\n _registerInterface(_INTERFACE_ID_ERC165);\n }\n\n /**\n * @dev See `IERC165.supportsInterface`.\n *\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.\n */\n function supportsInterface(bytes4 interfaceId) external view returns (bool) {\n return _supportedInterfaces[interfaceId];\n }\n\n /**\n * @dev Registers the contract as an implementer of the interface defined by\n * `interfaceId`. Support of the actual ERC165 interface is automatic and\n * registering its interface id is not required.\n *\n * See `IERC165.supportsInterface`.\n *\n * Requirements:\n *\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).\n */\n function _registerInterface(bytes4 interfaceId) internal {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n", "sourcePath": "openzeppelin-solidity/contracts/introspection/ERC165.sol", "ast": { "absolutePath": "openzeppelin-solidity/contracts/introspection/ERC165.sol", "exportedSymbols": { "ERC165": [ 2549 ] }, "id": 2550, "nodeType": "SourceUnit", "nodes": [ { "id": 2499, "literals": [ "solidity", "^", "0.5", ".0" ], "nodeType": "PragmaDirective", "src": "0:23:8" }, { "absolutePath": "openzeppelin-solidity/contracts/introspection/IERC165.sol", "file": "./IERC165.sol", "id": 2500, "nodeType": "ImportDirective", "scope": 2550, "sourceUnit": 2560, "src": "25:23:8", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 2501, "name": "IERC165", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2559, "src": "241:7:8", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC165_$2559", "typeString": "contract IERC165" } }, "id": 2502, "nodeType": "InheritanceSpecifier", "src": "241:7:8" } ], "contractDependencies": [ 2559 ], "contractKind": "contract", "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", "fullyImplemented": true, "id": 2549, "linearizedBaseContracts": [ 2549, 2559 ], "name": "ERC165", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, "id": 2505, "name": "_INTERFACE_ID_ERC165", "nodeType": "VariableDeclaration", "scope": 2549, "src": "338:57:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 2503, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "338:6:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": { "argumentTypes": null, "hexValue": "30783031666663396137", "id": 2504, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "385:10:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_33540519_by_1", "typeString": "int_const 33540519" }, "value": "0x01ffc9a7" }, "visibility": "private" }, { "constant": false, "id": 2509, "name": "_supportedInterfaces", "nodeType": "VariableDeclaration", "scope": 2549, "src": "489:52:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", "typeString": "mapping(bytes4 => bool)" }, "typeName": { "id": 2508, "keyType": { "id": 2506, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "497:6:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Mapping", "src": "489:23:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", "typeString": "mapping(bytes4 => bool)" }, "valueType": { "id": 2507, "name": "bool", "nodeType": "ElementaryTypeName", "src": "507:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, "value": null, "visibility": "private" }, { "body": { "id": 2516, "nodeType": "Block", "src": "572:193:8", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2513, "name": "_INTERFACE_ID_ERC165", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2505, "src": "737:20:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } ], "id": 2512, "name": "_registerInterface", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2548, "src": "718:18:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, "id": 2514, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "718:40:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2515, "nodeType": "ExpressionStatement", "src": "718:40:8" } ] }, "documentation": null, "id": 2517, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 2510, "nodeType": "ParameterList", "parameters": [], "src": "560:2:8" }, "returnParameters": { "id": 2511, "nodeType": "ParameterList", "parameters": [], "src": "572:0:8" }, "scope": 2549, "src": "548:217:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 2528, "nodeType": "Block", "src": "991:57:8", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2524, "name": "_supportedInterfaces", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2509, "src": "1008:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", "typeString": "mapping(bytes4 => bool)" } }, "id": 2526, "indexExpression": { "argumentTypes": null, "id": 2525, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2519, "src": "1029:11:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1008:33:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 2523, "id": 2527, "nodeType": "Return", "src": "1001:40:8" } ] }, "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", "id": 2529, "implemented": true, "kind": "function", "modifiers": [], "name": "supportsInterface", "nodeType": "FunctionDefinition", "parameters": { "id": 2520, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2519, "name": "interfaceId", "nodeType": "VariableDeclaration", "scope": 2529, "src": "942:18:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 2518, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "942:6:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": null, "visibility": "internal" } ], "src": "941:20:8" }, "returnParameters": { "id": 2523, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2522, "name": "", "nodeType": "VariableDeclaration", "scope": 2529, "src": "985:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2521, "name": "bool", "nodeType": "ElementaryTypeName", "src": "985:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "984:6:8" }, "scope": 2549, "src": "915:133:8", "stateMutability": "view", "superFunction": 2558, "visibility": "external" }, { "body": { "id": 2547, "nodeType": "Block", "src": "1499:133:8", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "id": 2537, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2535, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2531, "src": "1517:11:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30786666666666666666", "id": 2536, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1532:10:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4294967295_by_1", "typeString": "int_const 4294967295" }, "value": "0xffffffff" }, "src": "1517:25:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", "id": 2538, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1544:30:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", "typeString": "literal_string \"ERC165: invalid interface id\"" }, "value": "ERC165: invalid interface id" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", "typeString": "literal_string \"ERC165: invalid interface id\"" } ], "id": 2534, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 2798, 2799 ], "referencedDeclaration": 2799, "src": "1509:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2539, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1509:66:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2540, "nodeType": "ExpressionStatement", "src": "1509:66:8" }, { "expression": { "argumentTypes": null, "id": 2545, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2541, "name": "_supportedInterfaces", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2509, "src": "1585:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", "typeString": "mapping(bytes4 => bool)" } }, "id": 2543, "indexExpression": { "argumentTypes": null, "id": 2542, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2531, "src": "1606:11:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1585:33:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 2544, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1621:4:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "1585:40:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2546, "nodeType": "ExpressionStatement", "src": "1585:40:8" } ] }, "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", "id": 2548, "implemented": true, "kind": "function", "modifiers": [], "name": "_registerInterface", "nodeType": "FunctionDefinition", "parameters": { "id": 2532, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2531, "name": "interfaceId", "nodeType": "VariableDeclaration", "scope": 2548, "src": "1470:18:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 2530, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "1470:6:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": null, "visibility": "internal" } ], "src": "1469:20:8" }, "returnParameters": { "id": 2533, "nodeType": "ParameterList", "parameters": [], "src": "1499:0:8" }, "scope": 2549, "src": "1442:190:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], "scope": 2550, "src": "222:1412:8" } ], "src": "0:1635:8" }, "legacyAST": { "absolutePath": "openzeppelin-solidity/contracts/introspection/ERC165.sol", "exportedSymbols": { "ERC165": [ 2549 ] }, "id": 2550, "nodeType": "SourceUnit", "nodes": [ { "id": 2499, "literals": [ "solidity", "^", "0.5", ".0" ], "nodeType": "PragmaDirective", "src": "0:23:8" }, { "absolutePath": "openzeppelin-solidity/contracts/introspection/IERC165.sol", "file": "./IERC165.sol", "id": 2500, "nodeType": "ImportDirective", "scope": 2550, "sourceUnit": 2560, "src": "25:23:8", "symbolAliases": [], "unitAlias": "" }, { "baseContracts": [ { "arguments": null, "baseName": { "contractScope": null, "id": 2501, "name": "IERC165", "nodeType": "UserDefinedTypeName", "referencedDeclaration": 2559, "src": "241:7:8", "typeDescriptions": { "typeIdentifier": "t_contract$_IERC165_$2559", "typeString": "contract IERC165" } }, "id": 2502, "nodeType": "InheritanceSpecifier", "src": "241:7:8" } ], "contractDependencies": [ 2559 ], "contractKind": "contract", "documentation": "@dev Implementation of the `IERC165` interface.\n * Contracts may inherit from this and call `_registerInterface` to declare\ntheir support of an interface.", "fullyImplemented": true, "id": 2549, "linearizedBaseContracts": [ 2549, 2559 ], "name": "ERC165", "nodeType": "ContractDefinition", "nodes": [ { "constant": true, "id": 2505, "name": "_INTERFACE_ID_ERC165", "nodeType": "VariableDeclaration", "scope": 2549, "src": "338:57:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 2503, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "338:6:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": { "argumentTypes": null, "hexValue": "30783031666663396137", "id": 2504, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "385:10:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_33540519_by_1", "typeString": "int_const 33540519" }, "value": "0x01ffc9a7" }, "visibility": "private" }, { "constant": false, "id": 2509, "name": "_supportedInterfaces", "nodeType": "VariableDeclaration", "scope": 2549, "src": "489:52:8", "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", "typeString": "mapping(bytes4 => bool)" }, "typeName": { "id": 2508, "keyType": { "id": 2506, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "497:6:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "Mapping", "src": "489:23:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", "typeString": "mapping(bytes4 => bool)" }, "valueType": { "id": 2507, "name": "bool", "nodeType": "ElementaryTypeName", "src": "507:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } }, "value": null, "visibility": "private" }, { "body": { "id": 2516, "nodeType": "Block", "src": "572:193:8", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "id": 2513, "name": "_INTERFACE_ID_ERC165", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2505, "src": "737:20:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } ], "id": 2512, "name": "_registerInterface", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2548, "src": "718:18:8", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$", "typeString": "function (bytes4)" } }, "id": 2514, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "718:40:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2515, "nodeType": "ExpressionStatement", "src": "718:40:8" } ] }, "documentation": null, "id": 2517, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nodeType": "FunctionDefinition", "parameters": { "id": 2510, "nodeType": "ParameterList", "parameters": [], "src": "560:2:8" }, "returnParameters": { "id": 2511, "nodeType": "ParameterList", "parameters": [], "src": "572:0:8" }, "scope": 2549, "src": "548:217:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" }, { "body": { "id": 2528, "nodeType": "Block", "src": "991:57:8", "statements": [ { "expression": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2524, "name": "_supportedInterfaces", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2509, "src": "1008:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", "typeString": "mapping(bytes4 => bool)" } }, "id": 2526, "indexExpression": { "argumentTypes": null, "id": 2525, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2519, "src": "1029:11:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "1008:33:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 2523, "id": 2527, "nodeType": "Return", "src": "1001:40:8" } ] }, "documentation": "@dev See `IERC165.supportsInterface`.\n * Time complexity O(1), guaranteed to always use less than 30 000 gas.", "id": 2529, "implemented": true, "kind": "function", "modifiers": [], "name": "supportsInterface", "nodeType": "FunctionDefinition", "parameters": { "id": 2520, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2519, "name": "interfaceId", "nodeType": "VariableDeclaration", "scope": 2529, "src": "942:18:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 2518, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "942:6:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": null, "visibility": "internal" } ], "src": "941:20:8" }, "returnParameters": { "id": 2523, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2522, "name": "", "nodeType": "VariableDeclaration", "scope": 2529, "src": "985:4:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 2521, "name": "bool", "nodeType": "ElementaryTypeName", "src": "985:4:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "value": null, "visibility": "internal" } ], "src": "984:6:8" }, "scope": 2549, "src": "915:133:8", "stateMutability": "view", "superFunction": 2558, "visibility": "external" }, { "body": { "id": 2547, "nodeType": "Block", "src": "1499:133:8", "statements": [ { "expression": { "argumentTypes": null, "arguments": [ { "argumentTypes": null, "commonType": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "id": 2537, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "argumentTypes": null, "id": 2535, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2531, "src": "1517:11:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "argumentTypes": null, "hexValue": "30786666666666666666", "id": 2536, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "1532:10:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_rational_4294967295_by_1", "typeString": "int_const 4294967295" }, "value": "0xffffffff" }, "src": "1517:25:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "argumentTypes": null, "hexValue": "4552433136353a20696e76616c696420696e74657266616365206964", "id": 2538, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "1544:30:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", "typeString": "literal_string \"ERC165: invalid interface id\"" }, "value": "ERC165: invalid interface id" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee", "typeString": "literal_string \"ERC165: invalid interface id\"" } ], "id": 2534, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ 2798, 2799 ], "referencedDeclaration": 2799, "src": "1509:7:8", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 2539, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "names": [], "nodeType": "FunctionCall", "src": "1509:66:8", "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 2540, "nodeType": "ExpressionStatement", "src": "1509:66:8" }, { "expression": { "argumentTypes": null, "id": 2545, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "argumentTypes": null, "baseExpression": { "argumentTypes": null, "id": 2541, "name": "_supportedInterfaces", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2509, "src": "1585:20:8", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$", "typeString": "mapping(bytes4 => bool)" } }, "id": 2543, "indexExpression": { "argumentTypes": null, "id": 2542, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 2531, "src": "1606:11:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "1585:33:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "argumentTypes": null, "hexValue": "74727565", "id": 2544, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "1621:4:8", "subdenomination": null, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "src": "1585:40:8", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 2546, "nodeType": "ExpressionStatement", "src": "1585:40:8" } ] }, "documentation": "@dev Registers the contract as an implementer of the interface defined by\n`interfaceId`. Support of the actual ERC165 interface is automatic and\nregistering its interface id is not required.\n * See `IERC165.supportsInterface`.\n * Requirements:\n * - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`).", "id": 2548, "implemented": true, "kind": "function", "modifiers": [], "name": "_registerInterface", "nodeType": "FunctionDefinition", "parameters": { "id": 2532, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 2531, "name": "interfaceId", "nodeType": "VariableDeclaration", "scope": 2548, "src": "1470:18:8", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 2530, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "1470:6:8", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "value": null, "visibility": "internal" } ], "src": "1469:20:8" }, "returnParameters": { "id": 2533, "nodeType": "ParameterList", "parameters": [], "src": "1499:0:8" }, "scope": 2549, "src": "1442:190:8", "stateMutability": "nonpayable", "superFunction": null, "visibility": "internal" } ], "scope": 2550, "src": "222:1412:8" } ], "src": "0:1635:8" }, "compiler": { "name": "solc", "version": "0.5.1+commit.c8a2cb62.Emscripten.clang" }, "networks": {}, "schemaVersion": "3.0.3", "updatedAt": "2019-06-08T17:32:19.231Z", "devdoc": { "details": "Implemen