UNPKG

@etherisc/gif-interface

Version:

This repository holds the necessary interfaces and base contracts to interact with an existing GIF instance. The repository is not intended to be used on its own.

1,461 lines (1,460 loc) 65.9 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": { "2": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/token/ERC721/IERC721.sol", "4": "/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": [ 4990 ], "IERC721": [ 4878 ] }, "id": 4879, "license": "MIT", "nodeType": "SourceUnit", "nodes": [ { "id": 4764, "literals": [ "solidity", "^", "0.8", ".0" ], "nodeType": "PragmaDirective", "src": "108:23:2" }, { "absolutePath": "/home/vscode/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.7.3/contracts/utils/introspection/IERC165.sol", "file": "../../utils/introspection/IERC165.sol", "id": 4765, "nameLocation": "-1:-1:-1", "nodeType": "ImportDirective", "scope": 4879, "sourceUnit": 4991, "src": "133:47:2", "symbolAliases": [], "unitAlias": "" }, { "abstract": false, "baseContracts": [ { "baseName": { "id": 4767, "name": "IERC165", "nodeType": "IdentifierPath", "referencedDeclaration": 4990, "src": "271:7:2" }, "id": 4768, "nodeType": "InheritanceSpecifier", "src": "271:7:2" } ], "contractDependencies": [ 4990 ], "contractKind": "interface", "documentation": { "id": 4766, "nodeType": "StructuredDocumentation", "src": "182:67:2", "text": " @dev Required interface of an ERC721 compliant contract." }, "fullyImplemented": false, "id": 4878, "linearizedBaseContracts": [ 4878, 4990 ], "name": "IERC721", "nameLocation": "260:7:2", "nodeType": "ContractDefinition", "nodes": [ { "anonymous": false, "documentation": { "id": 4769, "nodeType": "StructuredDocumentation", "src": "285:88:2", "text": " @dev Emitted when `tokenId` token is transferred from `from` to `to`." }, "id": 4777, "name": "Transfer", "nameLocation": "384:8:2", "nodeType": "EventDefinition", "parameters": { "id": 4776, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4771, "indexed": true, "mutability": "mutable", "name": "from", "nameLocation": "409:4:2", "nodeType": "VariableDeclaration", "scope": 4777, "src": "393:20:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4770, "name": "address", "nodeType": "ElementaryTypeName", "src": "393:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 4773, "indexed": true, "mutability": "mutable", "name": "to", "nameLocation": "431:2:2", "nodeType": "VariableDeclaration", "scope": 4777, "src": "415:18:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4772, "name": "address", "nodeType": "ElementaryTypeName", "src": "415:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 4775, "indexed": true, "mutability": "mutable", "name": "tokenId", "nameLocation": "451:7:2", "nodeType": "VariableDeclaration", "scope": 4777, "src": "435:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4774, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "435:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "392:67:2" }, "src": "378:82:2" }, { "anonymous": false, "documentation": { "id": 4778, "nodeType": "StructuredDocumentation", "src": "466:94:2", "text": " @dev Emitted when `owner` enables `approved` to manage the `tokenId` token." }, "id": 4786, "name": "Approval", "nameLocation": "571:8:2", "nodeType": "EventDefinition", "parameters": { "id": 4785, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4780, "indexed": true, "mutability": "mutable", "name": "owner", "nameLocation": "596:5:2", "nodeType": "VariableDeclaration", "scope": 4786, "src": "580:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4779, "name": "address", "nodeType": "ElementaryTypeName", "src": "580:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 4782, "indexed": true, "mutability": "mutable", "name": "approved", "nameLocation": "619:8:2", "nodeType": "VariableDeclaration", "scope": 4786, "src": "603:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4781, "name": "address", "nodeType": "ElementaryTypeName", "src": "603:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 4784, "indexed": true, "mutability": "mutable", "name": "tokenId", "nameLocation": "645:7:2", "nodeType": "VariableDeclaration", "scope": 4786, "src": "629:23:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4783, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "629:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "579:74:2" }, "src": "565:89:2" }, { "anonymous": false, "documentation": { "id": 4787, "nodeType": "StructuredDocumentation", "src": "660:117:2", "text": " @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets." }, "id": 4795, "name": "ApprovalForAll", "nameLocation": "788:14:2", "nodeType": "EventDefinition", "parameters": { "id": 4794, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4789, "indexed": true, "mutability": "mutable", "name": "owner", "nameLocation": "819:5:2", "nodeType": "VariableDeclaration", "scope": 4795, "src": "803:21:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4788, "name": "address", "nodeType": "ElementaryTypeName", "src": "803:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 4791, "indexed": true, "mutability": "mutable", "name": "operator", "nameLocation": "842:8:2", "nodeType": "VariableDeclaration", "scope": 4795, "src": "826:24:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4790, "name": "address", "nodeType": "ElementaryTypeName", "src": "826:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 4793, "indexed": false, "mutability": "mutable", "name": "approved", "nameLocation": "857:8:2", "nodeType": "VariableDeclaration", "scope": 4795, "src": "852:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 4792, "name": "bool", "nodeType": "ElementaryTypeName", "src": "852:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "802:64:2" }, "src": "782:85:2" }, { "documentation": { "id": 4796, "nodeType": "StructuredDocumentation", "src": "873:76:2", "text": " @dev Returns the number of tokens in ``owner``'s account." }, "functionSelector": "70a08231", "id": 4803, "implemented": false, "kind": "function", "modifiers": [], "name": "balanceOf", "nameLocation": "963:9:2", "nodeType": "FunctionDefinition", "parameters": { "id": 4799, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4798, "mutability": "mutable", "name": "owner", "nameLocation": "981:5:2", "nodeType": "VariableDeclaration", "scope": 4803, "src": "973:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4797, "name": "address", "nodeType": "ElementaryTypeName", "src": "973:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "972:15:2" }, "returnParameters": { "id": 4802, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4801, "mutability": "mutable", "name": "balance", "nameLocation": "1019:7:2", "nodeType": "VariableDeclaration", "scope": 4803, "src": "1011:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4800, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1011:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "1010:17:2" }, "scope": 4878, "src": "954:74:2", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "documentation": { "id": 4804, "nodeType": "StructuredDocumentation", "src": "1034:131:2", "text": " @dev Returns the owner of the `tokenId` token.\n Requirements:\n - `tokenId` must exist." }, "functionSelector": "6352211e", "id": 4811, "implemented": false, "kind": "function", "modifiers": [], "name": "ownerOf", "nameLocation": "1179:7:2", "nodeType": "FunctionDefinition", "parameters": { "id": 4807, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4806, "mutability": "mutable", "name": "tokenId", "nameLocation": "1195:7:2", "nodeType": "VariableDeclaration", "scope": 4811, "src": "1187:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4805, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1187:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "1186:17:2" }, "returnParameters": { "id": 4810, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4809, "mutability": "mutable", "name": "owner", "nameLocation": "1235:5:2", "nodeType": "VariableDeclaration", "scope": 4811, "src": "1227:13:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4808, "name": "address", "nodeType": "ElementaryTypeName", "src": "1227:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "1226:15:2" }, "scope": 4878, "src": "1170:72:2", "stateMutability": "view", "virtual": false, "visibility": "external" }, { "documentation": { "id": 4812, "nodeType": "StructuredDocumentation", "src": "1248:556:2", "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": 4823, "implemented": false, "kind": "function", "modifiers": [], "name": "safeTransferFrom", "nameLocation": "1818:16:2", "nodeType": "FunctionDefinition", "parameters": { "id": 4821, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4814, "mutability": "mutable", "name": "from", "nameLocation": "1852:4:2", "nodeType": "VariableDeclaration", "scope": 4823, "src": "1844:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4813, "name": "address", "nodeType": "ElementaryTypeName", "src": "1844:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 4816, "mutability": "mutable", "name": "to", "nameLocation": "1874:2:2", "nodeType": "VariableDeclaration", "scope": 4823, "src": "1866:10:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4815, "name": "address", "nodeType": "ElementaryTypeName", "src": "1866:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 4818, "mutability": "mutable", "name": "tokenId", "nameLocation": "1894:7:2", "nodeType": "VariableDeclaration", "scope": 4823, "src": "1886:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4817, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1886:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 4820, "mutability": "mutable", "name": "data", "nameLocation": "1926:4:2", "nodeType": "VariableDeclaration", "scope": 4823, "src": "1911:19:2", "stateVariable": false, "storageLocation": "calldata", "typeDescriptions": { "typeIdentifier": "t_bytes_calldata_ptr", "typeString": "bytes" }, "typeName": { "id": 4819, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "1911:5:2", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "1834:102:2" }, "returnParameters": { "id": 4822, "nodeType": "ParameterList", "parameters": [], "src": "1945:0:2" }, "scope": 4878, "src": "1809:137:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "documentation": { "id": 4824, "nodeType": "StructuredDocumentation", "src": "1952:687:2", "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": 4833, "implemented": false, "kind": "function", "modifiers": [], "name": "safeTransferFrom", "nameLocation": "2653:16:2", "nodeType": "FunctionDefinition", "parameters": { "id": 4831, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4826, "mutability": "mutable", "name": "from", "nameLocation": "2687:4:2", "nodeType": "VariableDeclaration", "scope": 4833, "src": "2679:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4825, "name": "address", "nodeType": "ElementaryTypeName", "src": "2679:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 4828, "mutability": "mutable", "name": "to", "nameLocation": "2709:2:2", "nodeType": "VariableDeclaration", "scope": 4833, "src": "2701:10:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4827, "name": "address", "nodeType": "ElementaryTypeName", "src": "2701:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 4830, "mutability": "mutable", "name": "tokenId", "nameLocation": "2729:7:2", "nodeType": "VariableDeclaration", "scope": 4833, "src": "2721:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4829, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2721:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "2669:73:2" }, "returnParameters": { "id": 4832, "nodeType": "ParameterList", "parameters": [], "src": "2751:0:2" }, "scope": 4878, "src": "2644:108:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "documentation": { "id": 4834, "nodeType": "StructuredDocumentation", "src": "2758:504:2", "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": 4843, "implemented": false, "kind": "function", "modifiers": [], "name": "transferFrom", "nameLocation": "3276:12:2", "nodeType": "FunctionDefinition", "parameters": { "id": 4841, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4836, "mutability": "mutable", "name": "from", "nameLocation": "3306:4:2", "nodeType": "VariableDeclaration", "scope": 4843, "src": "3298:12:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4835, "name": "address", "nodeType": "ElementaryTypeName", "src": "3298:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 4838, "mutability": "mutable", "name": "to", "nameLocation": "3328:2:2", "nodeType": "VariableDeclaration", "scope": 4843, "src": "3320:10:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4837, "name": "address", "nodeType": "ElementaryTypeName", "src": "3320:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 4840, "mutability": "mutable", "name": "tokenId", "nameLocation": "3348:7:2", "nodeType": "VariableDeclaration", "scope": 4843, "src": "3340:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4839, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3340:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "3288:73:2" }, "returnParameters": { "id": 4842, "nodeType": "ParameterList", "parameters": [], "src": "3370:0:2" }, "scope": 4878, "src": "3267:104:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "documentation": { "id": 4844, "nodeType": "StructuredDocumentation", "src": "3377:452:2", "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": 4851, "implemented": false, "kind": "function", "modifiers": [], "name": "approve", "nameLocation": "3843:7:2", "nodeType": "FunctionDefinition", "parameters": { "id": 4849, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4846, "mutability": "mutable", "name": "to", "nameLocation": "3859:2:2", "nodeType": "VariableDeclaration", "scope": 4851, "src": "3851:10:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4845, "name": "address", "nodeType": "ElementaryTypeName", "src": "3851:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 4848, "mutability": "mutable", "name": "tokenId", "nameLocation": "3871:7:2", "nodeType": "VariableDeclaration", "scope": 4851, "src": "3863:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4847, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3863:7:2", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "3850:29:2" }, "returnParameters": { "id": 4850, "nodeType": "ParameterList", "parameters": [], "src": "3888:0:2" }, "scope": 4878, "src": "3834:55:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "documentation": { "id": 4852, "nodeType": "StructuredDocumentation", "src": "3895:309:2", "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": 4859, "implemented": false, "kind": "function", "modifiers": [], "name": "setApprovalForAll", "nameLocation": "4218:17:2", "nodeType": "FunctionDefinition", "parameters": { "id": 4857, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4854, "mutability": "mutable", "name": "operator", "nameLocation": "4244:8:2", "nodeType": "VariableDeclaration", "scope": 4859, "src": "4236:16:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 4853, "name": "address", "nodeType": "ElementaryTypeName", "src": "4236:7:2", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 4856, "mutability": "mutable", "name": "_approved", "nameLocation": "4259:9:2", "nodeType": "VariableDeclaration", "scope": 4859, "src": "4254:14:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 4855, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4254:4:2", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "4235:34:2" }, "returnParameters": { "id": 4858, "nodeType": "ParameterList", "parameters": [], "src": "4278:0:2" }, "scope": 4878, "src": "4209:70:2", "stateMutability": "nonpayable", "virtual": false, "visibility": "external" }, { "documentation": { "id": 4860, "nodeType": "StructuredDocumentation", "src": "4285:139:2", "text": " @dev Returns the account approved for `tokenId` token.\n Requirements:\n - `tokenId` must exist." }, "functionSelector": "081812fc", "id": 4867, "implemented": false, "kind": "function", "modifiers": [], "name": "getApproved", "nameLocation": "4438:11:2", "nodeType": "FunctionDefinition", "parameters": { "id": 4863, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 4862, "mutability": "mutable", "name": "tokenId", "nameLocation": "4458:7:2", "nodeType": "VariableDeclaration", "scope": 4867, "src": "4450:15:2", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 4861, "name": "uint256", "nodeType": "ElementaryTypeName",