UNPKG

@etherisc/gif-contracts

Version:

This repository holds the GIF core contracts and tools to develop, test and deploy GIF instances.

1,453 lines 66.2 kB
{ "abi": [ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "_approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ], "allSourcePaths": { "18": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC721/IERC721.sol", "26": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/introspection/IERC165.sol" }, "ast": { "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC721/IERC721.sol", "exportedSymbols": { "IERC165": [ 27203 ], "IERC721": [ 23745 ] }, "id": 23746, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 23631, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "108:23:18" }, { "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/introspection/IERC165.sol", "file": "../../utils/introspection/IERC165.sol", "id": 23632, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 23746, "sourceUnit": 27204, "src": "133:47:18", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "baseName": { "id": 23634, "name": "IERC165", "nodeType": "IdentifierPath", "referencedDeclaration": 27203, "src": "271:7:18" }, "id": 23635, "nodeType": "InheritanceSpecifier", "src": "271:7:18" } ], "contractDependencies": [ 27203 ], "contractKind": "interface", "documentation": { "id": 23633, "nodeType": "StructuredDocumentation", "src": "182:67:18", "text": " @dev Required interface of an ERC721 compliant contract." }, "fullyImplemented": false, "id": 23745, "linearizedBaseContracts": [ 23745, 27203 ], "name": "IERC721", "nameLocation": "260:7:18", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "documentation": { "id": 23636, "nodeType": "StructuredDocumentation", "src": "285:88:18", "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." }, "id": 23644, "name": "Transfer", "nameLocation": "384:8:18", "nodeType": "EventDefinition", "parameters": { "id": 23643, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 23638, "indexed": true, "mutability": "mutable", "name": "from", "nameLocation": "409:4:18", "nodeType": "VariableDeclaration", "scope": 23644, "src": "393:20:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 23637, "name": "address", "nodeType": "ElementaryTypeName", "src": "393:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 23640, "indexed": true, "mutability": "mutable", "name": "to", "nameLocation": "431:2:18", "nodeType": "VariableDeclaration", "scope": 23644, "src": "415:18:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 23639, "name": "address", "nodeType": "ElementaryTypeName", "src": "415:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 23642, "indexed": true, "mutability": "mutable", "name": "tokenId", "nameLocation": "451:7:18", "nodeType": "VariableDeclaration", "scope": 23644, "src": "435:23:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 23641, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "435:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "392:67:18" }, "src": "378:82:18" }, { "anonymous": false, "documentation": { "id": 23645, "nodeType": "StructuredDocumentation", "src": "466:94:18", "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." }, "id": 23653, "name": "Approval", "nameLocation": "571:8:18", "nodeType": "EventDefinition", "parameters": { "id": 23652, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 23647, "indexed": true, "mutability": "mutable", "name": "owner", "nameLocation": "596:5:18", "nodeType": "VariableDeclaration", "scope": 23653, "src": "580:21:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 23646, "name": "address", "nodeType": "ElementaryTypeName", "src": "580:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 23649, "indexed": true, "mutability": "mutable", "name": "approved", "nameLocation": "619:8:18", "nodeType": "VariableDeclaration", "scope": 23653, "src": "603:24:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 23648, "name": "address", "nodeType": "ElementaryTypeName", "src": "603:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 23651, "indexed": true, "mutability": "mutable", "name": "tokenId", "nameLocation": "645:7:18", "nodeType": "VariableDeclaration", "scope": 23653, "src": "629:23:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 23650, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "629:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "579:74:18" }, "src": "565:89:18" }, { "anonymous": false, "documentation": { "id": 23654, "nodeType": "StructuredDocumentation", "src": "660:117:18", "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." }, "id": 23662, "name": "ApprovalForAll", "nameLocation": "788:14:18", "nodeType": "EventDefinition", "parameters": { "id": 23661, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 23656, "indexed": true, "mutability": "mutable", "name": "owner", "nameLocation": "819:5:18", "nodeType": "VariableDeclaration", "scope": 23662, "src": "803:21:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 23655, "name": "address", "nodeType": "ElementaryTypeName", "src": "803:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 23658, "indexed": true, "mutability": "mutable", "name": "operator", "nameLocation": "842:8:18", "nodeType": "VariableDeclaration", "scope": 23662, "src": "826:24:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 23657, "name": "address", "nodeType": "ElementaryTypeName", "src": "826:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 23660, "indexed": false, "mutability": "mutable", "name": "approved", "nameLocation": "857:8:18", "nodeType": "VariableDeclaration", "scope": 23662, "src": "852:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 23659, "name": "bool", "nodeType": "ElementaryTypeName", "src": "852:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "802:64:18" }, "src": "782:85:18" }, { "documentation": { "id": 23663, "nodeType": "StructuredDocumentation", "src": "873:76:18", "text": " @dev Returns the number of tokens in ``owner``'s account." }, "functionSelector": "70a08231", "id": 23670, "implemented": false, "kind": "function", "modifiers": [], "name": "balanceOf", "nameLocation": "963:9:18", "nodeType": "FunctionDefinition", "parameters": { "id": 23666, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 23665, "mutability": "mutable", "name": "owner", "nameLocation": "981:5:18", "nodeType": "VariableDeclaration", "scope": 23670, "src": "973:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 23664, "name": "address", "nodeType": "ElementaryTypeName", "src": "973:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "972:15:18" }, "returnParameters": { "id": 23669, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 23668, "mutability": "mutable", "name": "balance", "nameLocation": "1019:7:18", "nodeType": "VariableDeclaration", "scope": 23670, "src": "1011:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 23667, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1011:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "1010:17:18" }, "scope": 23745, "src": "954:74:18", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "documentation": { "id": 23671, "nodeType": "StructuredDocumentation", "src": "1034:131:18", "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." }, "functionSelector": "6352211e", "id": 23678, "implemented": false, "kind": "function", "modifiers": [], "name": "ownerOf", "nameLocation": "1179:7:18", "nodeType": "FunctionDefinition", "parameters": { "id": 23674, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 23673, "mutability": "mutable", "name": "tokenId", "nameLocation": "1195:7:18", "nodeType": "VariableDeclaration", "scope": 23678, "src": "1187:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 23672, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1187:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "1186:17:18" }, "returnParameters": { "id": 23677, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 23676, "mutability": "mutable", "name": "owner", "nameLocation": "1235:5:18", "nodeType": "VariableDeclaration", "scope": 23678, "src": "1227:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 23675, "name": "address", "nodeType": "ElementaryTypeName", "src": "1227:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "1226:15:18" }, "scope": 23745, "src": "1170:72:18", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "documentation": { "id": 23679, "nodeType": "StructuredDocumentation", "src": "1248:556:18", "text": " @dev Safely transfers `tokenId` token from `from` to `to`.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." }, "functionSelector": "b88d4fde", "id": 23690, "implemented": false, "kind": "function", "modifiers": [], "name": "safeTransferFrom", "nameLocation": "1818:16:18", "nodeType": "FunctionDefinition", "parameters": { "id": 23688, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 23681, "mutability": "mutable", "name": "from", "nameLocation": "1852:4:18", "nodeType": "VariableDeclaration", "scope": 23690, "src": "1844:12:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 23680, "name": "address", "nodeType": "ElementaryTypeName", "src": "1844:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 23683, "mutability": "mutable", "name": "to", "nameLocation": "1874:2:18", "nodeType": "VariableDeclaration", "scope": 23690, "src": "1866:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 23682, "name": "address", "nodeType": "ElementaryTypeName", "src": "1866:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 23685, "mutability": "mutable", "name": "tokenId", "nameLocation": "1894:7:18", "nodeType": "VariableDeclaration", "scope": 23690, "src": "1886:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 23684, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1886:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 23687, "mutability": "mutable", "name": "data", "nameLocation": "1926:4:18", "nodeType": "VariableDeclaration", "scope": 23690, "src": "1911:19:18", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 23686, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1911:5:18", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "1834:102:18" }, "returnParameters": { "id": 23689, "nodeType": "ParameterList", "parameters": [], "src": "1945:0:18" }, "scope": 23745, "src": "1809:137:18", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "documentation": { "id": 23691, "nodeType": "StructuredDocumentation", "src": "1952:687:18", "text": " @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients\n are aware of the ERC721 protocol to prevent tokens from being forever locked.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must exist and be owned by `from`.\n - If the caller is not `from`, it must have been allowed to move this token by either {approve} or {setApprovalForAll}.\n - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." }, "functionSelector": "42842e0e", "id": 23700, "implemented": false, "kind": "function", "modifiers": [], "name": "safeTransferFrom", "nameLocation": "2653:16:18", "nodeType": "FunctionDefinition", "parameters": { "id": 23698, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 23693, "mutability": "mutable", "name": "from", "nameLocation": "2687:4:18", "nodeType": "VariableDeclaration", "scope": 23700, "src": "2679:12:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 23692, "name": "address", "nodeType": "ElementaryTypeName", "src": "2679:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 23695, "mutability": "mutable", "name": "to", "nameLocation": "2709:2:18", "nodeType": "VariableDeclaration", "scope": 23700, "src": "2701:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 23694, "name": "address", "nodeType": "ElementaryTypeName", "src": "2701:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 23697, "mutability": "mutable", "name": "tokenId", "nameLocation": "2729:7:18", "nodeType": "VariableDeclaration", "scope": 23700, "src": "2721:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 23696, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2721:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "2669:73:18" }, "returnParameters": { "id": 23699, "nodeType": "ParameterList", "parameters": [], "src": "2751:0:18" }, "scope": 23745, "src": "2644:108:18", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "documentation": { "id": 23701, "nodeType": "StructuredDocumentation", "src": "2758:504:18", "text": " @dev Transfers `tokenId` token from `from` to `to`.\n WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}.\n Emits a {Transfer} event." }, "functionSelector": "23b872dd", "id": 23710, "implemented": false, "kind": "function", "modifiers": [], "name": "transferFrom", "nameLocation": "3276:12:18", "nodeType": "FunctionDefinition", "parameters": { "id": 23708, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 23703, "mutability": "mutable", "name": "from", "nameLocation": "3306:4:18", "nodeType": "VariableDeclaration", "scope": 23710, "src": "3298:12:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 23702, "name": "address", "nodeType": "ElementaryTypeName", "src": "3298:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 23705, "mutability": "mutable", "name": "to", "nameLocation": "3328:2:18", "nodeType": "VariableDeclaration", "scope": 23710, "src": "3320:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 23704, "name": "address", "nodeType": "ElementaryTypeName", "src": "3320:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 23707, "mutability": "mutable", "name": "tokenId", "nameLocation": "3348:7:18", "nodeType": "VariableDeclaration", "scope": 23710, "src": "3340:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 23706, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3340:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "3288:73:18" }, "returnParameters": { "id": 23709, "nodeType": "ParameterList", "parameters": [], "src": "3370:0:18" }, "scope": 23745, "src": "3267:104:18", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "documentation": { "id": 23711, "nodeType": "StructuredDocumentation", "src": "3377:452:18", "text": " @dev Gives permission to `to` to transfer `tokenId` token to another account.\n The approval is cleared when the token is transferred.\n Only a single account can be approved at a time, so approving the zero address clears previous approvals.\n Requirements:\n - The caller must own the token or be an approved operator.\n - `tokenId` must exist.\n Emits an {Approval} event." }, "functionSelector": "095ea7b3", "id": 23718, "implemented": false, "kind": "function", "modifiers": [], "name": "approve", "nameLocation": "3843:7:18", "nodeType": "FunctionDefinition", "parameters": { "id": 23716, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 23713, "mutability": "mutable", "name": "to", "nameLocation": "3859:2:18", "nodeType": "VariableDeclaration", "scope": 23718, "src": "3851:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 23712, "name": "address", "nodeType": "ElementaryTypeName", "src": "3851:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 23715, "mutability": "mutable", "name": "tokenId", "nameLocation": "3871:7:18", "nodeType": "VariableDeclaration", "scope": 23718, "src": "3863:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 23714, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3863:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "3850:29:18" }, "returnParameters": { "id": 23717, "nodeType": "ParameterList", "parameters": [], "src": "3888:0:18" }, "scope": 23745, "src": "3834:55:18", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "documentation": { "id": 23719, "nodeType": "StructuredDocumentation", "src": "3895:309:18", "text": " @dev Approve or remove `operator` as an operator for the caller.\n Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller.\n Requirements:\n - The `operator` cannot be the caller.\n Emits an {ApprovalForAll} event." }, "functionSelector": "a22cb465", "id": 23726, "implemented": false, "kind": "function", "modifiers": [], "name": "setApprovalForAll", "nameLocation": "4218:17:18", "nodeType": "FunctionDefinition", "parameters": { "id": 23724, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 23721, "mutability": "mutable", "name": "operator", "nameLocation": "4244:8:18", "nodeType": "VariableDeclaration", "scope": 23726, "src": "4236:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 23720, "name": "address", "nodeType": "ElementaryTypeName", "src": "4236:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 23723, "mutability": "mutable", "name": "_approved", "nameLocation": "4259:9:18", "nodeType": "VariableDeclaration", "scope": 23726, "src": "4254:14:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 23722, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4254:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "4235:34:18" }, "returnParameters": { "id": 23725, "nodeType": "ParameterList", "parameters": [], "src": "4278:0:18" }, "scope": 23745, "src": "4209:70:18", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "documentation": { "id": 23727, "nodeType": "StructuredDocumentation", "src": "4285:139:18", "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." }, "functionSelector": "081812fc", "id": 23734, "implemented": false, "kind": "function", "modifiers": [], "name": "getApproved", "nameLocation": "4438:11:18", "nodeType": "FunctionDefinition", "parameters": { "id": 23730, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 23729, "mutability": "mutable", "name": "tokenId", "nameLocation": "4458:7:18", "nodeType": "VariableDeclaration", "scope": 23734, "src": "4450:15:18", "stateVariable": false, "storageLocation": "default", "typeDescript