@vporton/future-contracts
Version:
Ethereum accounts bid on future financing (essentially, transfer money from the future) - smart contracts
1,308 lines • 55.2 kB
JSON
{
"contractName": "ERC165",
"abi": [
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.7.6+commit.7338295f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC165} interface. Contracts may inherit from this and call {_registerInterface} to declare their support of an interface.\",\"kind\":\"dev\",\"methods\":{\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}. Time complexity O(1), guaranteed to always use less than 30 000 gas.\"}},\"stateVariables\":{\"_supportedInterfaces\":{\"details\":\"Mapping of interface ids to whether or not it's supported.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@openzeppelin/contracts/introspection/ERC165.sol\":\"ERC165\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000000},\"remappings\":[]},\"sources\":{\"@openzeppelin/contracts/introspection/ERC165.sol\":{\"keccak256\":\"0xd6b90e604fb2eb2d641c7110c72440bf2dc999ec6ab8ff60f200e71ca75d1d90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7b92d8ab83b21ff984b1f0d6d66897d5afb1f2052004cbcb133cea023e0ae468\",\"dweb:/ipfs/QmTarypkQrFp4UMjTh7Zzhz2nZLz5uPS4nJQtHDEuwBVe6\"]},\"@openzeppelin/contracts/introspection/IERC165.sol\":{\"keccak256\":\"0xf70bc25d981e4ec9673a995ad2995d5d493ea188d3d8f388bba9c227ce09fb82\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd970f51e3a77790c2f02b5b1759827c3b897c3d98c407b3631e8af32e3dc93c\",\"dweb:/ipfs/QmPF85Amgbqjk3SNZKsPCsqCw8JfwYEPMnnhvMJUyX58je\"]}},\"version\":1}",
"bytecode": "0x",
"deployedBytecode": "0x",
"immutableReferences": {},
"generatedSources": [],
"deployedGeneratedSources": [],
"sourceMap": "",
"deployedSourceMap": "",
"source": "// SPDX-License-Identifier: MIT\n\npragma solidity >=0.6.0 <0.8.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 */\nabstract contract 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) public view override 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 virtual {\n require(interfaceId != 0xffffffff, \"ERC165: invalid interface id\");\n _supportedInterfaces[interfaceId] = true;\n }\n}\n",
"sourcePath": "@openzeppelin/contracts/introspection/ERC165.sol",
"ast": {
"absolutePath": "@openzeppelin/contracts/introspection/ERC165.sol",
"exportedSymbols": {
"ERC165": [
4381
],
"IERC165": [
4393
]
},
"id": 4382,
"license": "MIT",
"nodeType": "SourceUnit",
"nodes": [
{
"id": 4326,
"literals": [
"solidity",
">=",
"0.6",
".0",
"<",
"0.8",
".0"
],
"nodeType": "PragmaDirective",
"src": "33:31:18"
},
{
"absolutePath": "@openzeppelin/contracts/introspection/IERC165.sol",
"file": "./IERC165.sol",
"id": 4327,
"nodeType": "ImportDirective",
"scope": 4382,
"sourceUnit": 4394,
"src": "66:23:18",
"symbolAliases": [],
"unitAlias": ""
},
{
"abstract": true,
"baseContracts": [
{
"baseName": {
"id": 4329,
"name": "IERC165",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4393,
"src": "291:7:18",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IERC165_$4393",
"typeString": "contract IERC165"
}
},
"id": 4330,
"nodeType": "InheritanceSpecifier",
"src": "291:7:18"
}
],
"contractDependencies": [
4393
],
"contractKind": "contract",
"documentation": {
"id": 4328,
"nodeType": "StructuredDocumentation",
"src": "91:171:18",
"text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface."
},
"fullyImplemented": true,
"id": 4381,
"linearizedBaseContracts": [
4381,
4393
],
"name": "ERC165",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": true,
"id": 4333,
"mutability": "constant",
"name": "_INTERFACE_ID_ERC165",
"nodeType": "VariableDeclaration",
"scope": 4381,
"src": "388:57:18",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 4331,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "388:6:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"value": {
"hexValue": "30783031666663396137",
"id": 4332,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "435:10:18",
"typeDescriptions": {
"typeIdentifier": "t_rational_33540519_by_1",
"typeString": "int_const 33540519"
},
"value": "0x01ffc9a7"
},
"visibility": "private"
},
{
"constant": false,
"documentation": {
"id": 4334,
"nodeType": "StructuredDocumentation",
"src": "452:82:18",
"text": " @dev Mapping of interface ids to whether or not it's supported."
},
"id": 4338,
"mutability": "mutable",
"name": "_supportedInterfaces",
"nodeType": "VariableDeclaration",
"scope": 4381,
"src": "539:52:18",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$",
"typeString": "mapping(bytes4 => bool)"
},
"typeName": {
"id": 4337,
"keyType": {
"id": 4335,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "547:6:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "Mapping",
"src": "539:23:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$",
"typeString": "mapping(bytes4 => bool)"
},
"valueType": {
"id": 4336,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "557:4:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
},
"visibility": "private"
},
{
"body": {
"id": 4345,
"nodeType": "Block",
"src": "622:193:18",
"statements": [
{
"expression": {
"arguments": [
{
"id": 4342,
"name": "_INTERFACE_ID_ERC165",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4333,
"src": "787:20:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"id": 4341,
"name": "_registerInterface",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4380,
"src": "768:18:18",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$",
"typeString": "function (bytes4)"
}
},
"id": 4343,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "768:40:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4344,
"nodeType": "ExpressionStatement",
"src": "768:40:18"
}
]
},
"id": 4346,
"implemented": true,
"kind": "constructor",
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4339,
"nodeType": "ParameterList",
"parameters": [],
"src": "610:2:18"
},
"returnParameters": {
"id": 4340,
"nodeType": "ParameterList",
"parameters": [],
"src": "622:0:18"
},
"scope": 4381,
"src": "598:217:18",
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"baseFunctions": [
4392
],
"body": {
"id": 4359,
"nodeType": "Block",
"src": "1048:57:18",
"statements": [
{
"expression": {
"baseExpression": {
"id": 4355,
"name": "_supportedInterfaces",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4338,
"src": "1065:20:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$",
"typeString": "mapping(bytes4 => bool)"
}
},
"id": 4357,
"indexExpression": {
"id": 4356,
"name": "interfaceId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4349,
"src": "1086:11:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1065:33:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 4354,
"id": 4358,
"nodeType": "Return",
"src": "1058:40:18"
}
]
},
"documentation": {
"id": 4347,
"nodeType": "StructuredDocumentation",
"src": "821:139:18",
"text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas."
},
"functionSelector": "01ffc9a7",
"id": 4360,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "supportsInterface",
"nodeType": "FunctionDefinition",
"overrides": {
"id": 4351,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "1024:8:18"
},
"parameters": {
"id": 4350,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4349,
"mutability": "mutable",
"name": "interfaceId",
"nodeType": "VariableDeclaration",
"scope": 4360,
"src": "992:18:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 4348,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "992:6:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "991:20:18"
},
"returnParameters": {
"id": 4354,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4353,
"mutability": "mutable",
"name": "",
"nodeType": "VariableDeclaration",
"scope": 4360,
"src": "1042:4:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 4352,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1042:4:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "1041:6:18"
},
"scope": 4381,
"src": "965:140:18",
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"body": {
"id": 4379,
"nodeType": "Block",
"src": "1564:133:18",
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"id": 4369,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 4367,
"name": "interfaceId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4363,
"src": "1582:11:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"hexValue": "30786666666666666666",
"id": 4368,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1597:10:18",
"typeDescriptions": {
"typeIdentifier": "t_rational_4294967295_by_1",
"typeString": "int_const 4294967295"
},
"value": "0xffffffff"
},
"src": "1582:25:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "4552433136353a20696e76616c696420696e74657266616365206964",
"id": 4370,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1609:30:18",
"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": 4366,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
4294967278,
4294967278
],
"referencedDeclaration": 4294967278,
"src": "1574:7:18",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 4371,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1574:66:18",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 4372,
"nodeType": "ExpressionStatement",
"src": "1574:66:18"
},
{
"expression": {
"id": 4377,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 4373,
"name": "_supportedInterfaces",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4338,
"src": "1650:20:18",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_bytes4_$_t_bool_$",
"typeString": "mapping(bytes4 => bool)"
}
},
"id": 4375,
"indexExpression": {
"id": 4374,
"name": "interfaceId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 4363,
"src": "1671:11:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "1650:33:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "74727565",
"id": 4376,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1686:4:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"src": "1650:40:18",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 4378,
"nodeType": "ExpressionStatement",
"src": "1650:40:18"
}
]
},
"documentation": {
"id": 4361,
"nodeType": "StructuredDocumentation",
"src": "1111:383:18",
"text": " @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 See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)."
},
"id": 4380,
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_registerInterface",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 4364,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 4363,
"mutability": "mutable",
"name": "interfaceId",
"nodeType": "VariableDeclaration",
"scope": 4380,
"src": "1527:18:18",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 4362,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "1527:6:18",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "1526:20:18"
},
"returnParameters": {
"id": 4365,
"nodeType": "ParameterList",
"parameters": [],
"src": "1564:0:18"
},
"scope": 4381,
"src": "1499:198:18",
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "internal"
}
],
"scope": 4382,
"src": "263:1436:18"
}
],
"src": "33:1667:18"
},
"legacyAST": {
"attributes": {
"absolutePath": "@openzeppelin/contracts/introspection/ERC165.sol",
"exportedSymbols": {
"ERC165": [
4381
],
"IERC165": [
4393
]
},
"license": "MIT"
},
"children": [
{
"attributes": {
"literals": [
"solidity",
">=",
"0.6",
".0",
"<",
"0.8",
".0"
]
},
"id": 4326,
"name": "PragmaDirective",
"src": "33:31:18"
},
{
"attributes": {
"SourceUnit": 4394,
"absolutePath": "@openzeppelin/contracts/introspection/IERC165.sol",
"file": "./IERC165.sol",
"scope": 4382,
"symbolAliases": [
null
],
"unitAlias": ""
},
"id": 4327,
"name": "ImportDirective",
"src": "66:23:18"
},
{
"attributes": {
"abstract": true,
"contractDependencies": [
4393
],
"contractKind": "contract",
"fullyImplemented": true,
"linearizedBaseContracts": [
4381,
4393
],
"name": "ERC165",
"scope": 4382
},
"children": [
{
"attributes": {
"text": " @dev Implementation of the {IERC165} interface.\n Contracts may inherit from this and call {_registerInterface} to declare\n their support of an interface."
},
"id": 4328,
"name": "StructuredDocumentation",
"src": "91:171:18"
},
{
"attributes": {},
"children": [
{
"attributes": {
"name": "IERC165",
"referencedDeclaration": 4393,
"type": "contract IERC165"
},
"id": 4329,
"name": "UserDefinedTypeName",
"src": "291:7:18"
}
],
"id": 4330,
"name": "InheritanceSpecifier",
"src": "291:7:18"
},
{
"attributes": {
"constant": true,
"mutability": "constant",
"name": "_INTERFACE_ID_ERC165",
"scope": 4381,
"stateVariable": true,
"storageLocation": "default",
"type": "bytes4",
"visibility": "private"
},
"children": [
{
"attributes": {
"name": "bytes4",
"type": "bytes4"
},
"id": 4331,
"name": "ElementaryTypeName",
"src": "388:6:18"
},
{
"attributes": {
"hexvalue": "30783031666663396137",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"token": "number",
"type": "int_const 33540519",
"value": "0x01ffc9a7"
},
"id": 4332,
"name": "Literal",
"src": "435:10:18"
}
],
"id": 4333,
"name": "VariableDeclaration",
"src": "388:57:18"
},
{
"attributes": {
"constant": false,
"mutability": "mutable",
"name": "_supportedInterfaces",
"scope": 4381,
"stateVariable": true,
"storageLocation": "default",
"type": "mapping(bytes4 => bool)",
"visibility": "private"
},
"children": [
{
"attributes": {
"type": "mapping(bytes4 => bool)"
},
"children": [
{
"attributes": {
"name": "bytes4",
"type": "bytes4"
},
"id": 4335,
"name": "ElementaryTypeName",
"src": "547:6:18"
},
{
"attributes": {
"name": "bool",
"type": "bool"
},
"id": 4336,
"name": "ElementaryTypeName",
"src": "557:4:18"
}
],
"id": 4337,
"name": "Mapping",
"src": "539:23:18"
},
{
"attributes": {
"text": " @dev Mapping of interface ids to whether or not it's supported."
},
"id": 4334,
"name": "StructuredDocumentation",
"src": "452:82:18"
}
],
"id": 4338,
"name": "VariableDeclaration",
"src": "539:52:18"
},
{
"attributes": {
"implemented": true,
"isConstructor": true,
"kind": "constructor",
"modifiers": [
null
],
"name": "",
"scope": 4381,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
"children": [
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 4339,
"name": "ParameterList",
"src": "610:2:18"
},
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 4340,
"name": "ParameterList",
"src": "622:0:18"
},
{
"children": [
{
"children": [
{
"attributes": {
"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": 4380,
"type": "function (bytes4)",
"value": "_registerInterface"
},
"id": 4341,
"name": "Identifier",
"src": "768:18:18"
},
{
"attributes": {
"overloadedDeclarations": [
null
],
"referencedDeclaration": 4333,
"type": "bytes4",
"value": "_INTERFACE_ID_ERC165"
},
"id": 4342,
"name": "Identifier",
"src": "787:20:18"
}
],
"id": 4343,
"name": "FunctionCall",
"src": "768:40:18"
}
],
"id": 4344,
"name": "ExpressionStatement",
"src": "768:40:18"
}
],
"id": 4345,
"name": "Block",
"src": "622:193:18"
}
],
"id": 4346,
"name": "FunctionDefinition",
"src": "598:217:18"
},
{
"attributes": {
"baseFunctions": [
4392
],
"functionSelector": "01ffc9a7",
"implemented": true,
"isConstructor": false,
"kind": "function",
"modifiers": [
null
],
"name": "supportsInterface",
"scope": 4381,
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
"children": [
{
"attributes": {
"text": " @dev See {IERC165-supportsInterface}.\n Time complexity O(1), guaranteed to always use less than 30 000 gas."
},
"id": 4347,
"name": "StructuredDocumentation",
"src": "821:139:18"
},
{
"attributes": {
"overrides": [
null
]
},
"id": 4351,
"name": "OverrideSpecifier",
"src": "1024:8:18"
},
{
"children": [
{
"attributes": {
"constant": false,
"mutability": "mutable",
"name": "interfaceId",
"scope": 4360,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes4",
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes4",
"type": "bytes4"
},
"id": 4348,
"name": "ElementaryTypeName",
"src": "992:6:18"
}
],
"id": 4349,
"name": "VariableDeclaration",
"src": "992:18:18"
}
],
"id": 4350,
"name": "ParameterList",
"src": "991:20:18"
},
{
"children": [
{
"attributes": {
"constant": false,
"mutability": "mutable",
"name": "",
"scope": 4360,
"stateVariable": false,
"storageLocation": "default",
"type": "bool",
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bool",
"type": "bool"
},
"id": 4352,
"name": "ElementaryTypeName",
"src": "1042:4:18"
}
],
"id": 4353,
"name": "VariableDeclaration",
"src": "1042:4:18"
}
],
"id": 4354,
"name": "ParameterList",
"src": "1041:6:18"
},
{
"children": [
{
"attributes": {
"functionReturnParameters": 4354
},
"children": [
{
"attributes": {
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"type": "bool"
},
"children": [
{
"attributes": {
"overloadedDeclarations": [
null
],
"referencedDeclaration": 4338,
"type": "mapping(bytes4 => bool)",
"value": "_supportedInterfaces"
},
"id": 4355,
"name": "Identifier",
"src": "1065:20:18"
},
{
"attributes": {
"overloadedDeclarations": [
null
],
"referencedDeclaration": 4349,
"type": "bytes4",
"value": "interfaceId"
},
"id": 4356,
"name": "Identifier",
"src": "1086:11:18"
}
],
"id": 4357,
"name": "IndexAccess",
"src": "1065:33:18"
}
],
"id": 4358,
"name": "Return",
"src": "1058:40:18"
}
],
"id": 4359,
"name": "Block",
"src": "1048:57:18"
}
],
"id": 4360,
"name": "FunctionDefinition",
"src": "965:140:18"
},
{
"attributes": {
"implemented": true,
"isConstructor": false,
"kind": "function",
"modifiers": [
null
],
"name": "_registerInterface",
"scope": 4381,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "internal"
},
"children": [
{
"attributes": {
"text": " @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 See {IERC165-supportsInterface}.\n Requirements:\n - `interfaceId` cannot be the ERC165 invalid interface (`0xffffffff`)."
},
"id": 4361,
"name": "StructuredDocumentation",
"src": "1111:383:18"
},
{
"children": [
{
"attributes": {
"constant": false,
"mutability": "mutable",
"name": "interfaceId",
"scope": 4380,
"stateVariable": false,
"storageLocation": "default",
"type": "bytes4",
"visibility": "internal"
},
"children": [
{
"attributes": {
"name": "bytes4",
"type": "bytes4"
},
"id": 4362,
"name": "ElementaryTypeName",
"src": "1527:6:18"
}
],
"id": 4363,
"name": "VariableDeclaration",
"src": "1527:18:18"
}
],
"id": 4364,
"name": "ParameterList",
"src": "1526:20:18"
},
{
"attributes": {
"parameters": [
null
]
},
"children": [],
"id": 4365,
"name": "ParameterList",
"src": "1564:0:18"
},
{
"children": [
{
"children": [
{
"attributes": {
"isConstant": false,
"isLValue": false,
"isPure": false,
"isStructConstructorCall": false,
"lValueRequested": false,
"names": [
null
],
"tryCall": false,
"type": "tuple()",
"type_conversion": false
},
"children": [
{
"attributes": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_282912c0dfceceb28d77d0333f496b83948f9ba5b3154358a8b140b849289dee",
"typeString": "literal_string \"ERC165: invalid interface id\""
}
],
"overloadedDeclarations": [
4294967278,
4294967278
],
"referencedDeclaration": 4294967278,
"type": "function (bool,string memory) pure",
"value": "require"
},
"id": 4366,
"name": "Identifier",
"src": "1574:7:18"
},
{
"attributes": {
"commonType": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"operator": "!=",
"type": "bool"
},
"children": [
{
"attributes": {
"overloadedDeclarations": [
null
],
"referencedDeclaration": 4363,
"type": "bytes4",
"value": "interfaceId"
},
"id": 4367,
"name": "Identifier",
"src": "1582:11:18"
},
{
"attributes": {
"hexvalue": "30786666666666666666",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"token": "number",
"type": "int_const 4294967295",
"value": "0xffffffff"
},
"id": 4368,
"name": "Literal",
"src": "1597:10:18"
}
],
"id": 4369,
"name": "BinaryOperation",
"src": "1582:25:18"
},
{
"attributes": {
"hexvalue": "4552433136353a20696e76616c696420696e74657266616365206964",
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"token": "string",
"type": "literal_string \"ER