{ "abi": [ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "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": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "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": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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" } ], "bytecode": { "object": "0x608060405234620003195762001189803803806200001d816200031e565b928339810190604081830312620003195780516001600160401b03908181116200031957836200004f91840162000344565b916020938482015183811162000319576200006b920162000344565b825190828211620003035760008054926001958685811c95168015620002f8575b88861014620002e4578190601f9586811162000291575b5088908683116001146200022d57849262000221575b5050600019600383901b1c191690861b1781555b81519384116200020d5784548581811c9116801562000202575b87821014620001ee57838111620001a6575b50859284116001146200014157839495509262000135575b5050600019600383901b1c191690821b1790555b604051610dd29081620003b78239f35b01519050388062000111565b9190601f1984169585845280842093905b8782106200018e5750508385961062000174575b505050811b01905562000125565b015160001960f88460031b161c1916905538808062000166565b80878596829496860151815501950193019062000152565b8582528682208480870160051c820192898810620001e4575b0160051c019086905b828110620001d8575050620000f9565b838155018690620001c8565b92508192620001bf565b634e487b7160e01b82526022600452602482fd5b90607f1690620000e7565b634e487b7160e01b81526041600452602490fd5b015190503880620000b9565b8480528985208994509190601f198416865b8c8282106200027a575050841162000260575b505050811b018155620000cd565b015160001960f88460031b161c1916905538808062000252565b8385015186558c979095019493840193016200023f565b9091508380528884208680850160051c8201928b8610620002da575b918a91869594930160051c01915b828110620002cb575050620000a3565b8681558594508a9101620002bb565b92508192620002ad565b634e487b7160e01b83526022600452602483fd5b94607f16946200008c565b634e487b7160e01b600052604160045260246000fd5b600080fd5b6040519190601f01601f191682016001600160401b038111838210176200030357604052565b919080601f84011215620003195782516001600160401b03811162000303576020906200037a601f8201601f191683016200031e565b92818452828287010111620003195760005b818110620003a257508260009394955001015290565b85810183015184820184015282016200038c56fe608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a7146107645750816306fdde0314610699578163081812fc14610679578163095ea7b31461050b57816323b872dd146104e157816342842e0e146104935781636352211e1461046257816370a08231146103cc57816395d89b41146102b3578163a22cb465146101e3578163b88d4fde14610155578163c87b56dd14610104575063e985e9c5146100b457600080fd5b3461010057806003193601126101005760ff816020936100d261080f565b6100da61082a565b6001600160a01b0391821683526005875283832091168252855220549151911615158152f35b5080fd5b838334610100576020366003190112610100576101246101519335610c56565b81815161013081610875565b5280519161013d83610875565b8252519182916020835260208301906107cf565b0390f35b919050346101df5760803660031901126101df5761017161080f565b61017961082a565b846064359467ffffffffffffffff8611610100573660238701121561010057850135946101b16101a8876108c9565b955195866108a7565b858552366024878301011161010057856101dc966024602093018388013785010152604435916109dd565b80f35b8280fd5b919050346101df57806003193601126101df576101fe61080f565b90602435918215158093036102af576001600160a01b03169233841461026d5750338452600560205280842083855260205280842060ff1981541660ff8416179055519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b6020606492519162461bcd60e51b8352820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152fd5b8480fd5b8284346103c957806003193601126103c9578151918160019283549384811c918186169586156103bf575b60209687851081146103ac578899509688969785829a52918260001461038557505060011461032a575b505050610151929161031b9103856108a7565b519282849384528301906107cf565b91908693508083527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82841061036d575050508201018161031b610151610308565b8054848a018601528895508794909301928101610354565b60ff19168782015293151560051b8601909301935084925061031b91506101519050610308565b634e487b7160e01b835260228a52602483fd5b92607f16926102de565b80fd5b83915034610100576020366003190112610100576001600160a01b036103f061080f565b1690811561040d5760208480858581526003845220549051908152f35b608490602085519162461bcd60e51b8352820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152fd5b8284346103c95760203660031901126103c9575061048260209235610931565b90516001600160a01b039091168152f35b838334610100576104a336610840565b91835193602085019085821067ffffffffffffffff8311176104ce576101dc969750528584526109dd565b634e487b7160e01b875260418852602487fd5b83346103c9576101dc6104f336610840565b916105066105018433610a78565b61097b565b610b40565b9050346101df57816003193601126101df5761052561080f565b6024359290916001600160a01b039190828061054087610931565b1694169380851461062c5780331490811561060d575b50156105a557848652602052842080546001600160a01b0319168317905561057d83610931565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258480a480f35b6020608492519162461bcd60e51b8352820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152fd5b90508652600560205281862033875260205260ff828720541638610556565b506020608492519162461bcd60e51b8352820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152fd5b8284346103c95760203660031901126103c9575061048260209235610957565b8284346103c957806003193601126103c95781519181825492600184811c9181861695861561075a575b60209687851081146103ac578899509688969785829a5291826000146103855750506001146106ff57505050610151929161031b9103856108a7565b91908693508280527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b828410610742575050508201018161031b610151610308565b8054848a018601528895508794909301928101610729565b92607f16926106c3565b8491346101df5760203660031901126101df573563ffffffff60e01b81168091036101df57602092506380ac58cd60e01b81149081156107be575b81156107ad575b5015158152f35b6301ffc9a760e01b149050836107a6565b635b5e139f60e01b8114915061079f565b919082519283825260005b8481106107fb575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016107da565b600435906001600160a01b038216820361082557565b600080fd5b602435906001600160a01b038216820361082557565b6060906003190112610825576001600160a01b0390600435828116810361082557916024359081168103610825579060443590565b6020810190811067ffffffffffffffff82111761089157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761089157604052565b67ffffffffffffffff811161089157601f01601f191660200190565b156108ec57565b60405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606490fd5b6000908152600260205260409020546001600160a01b03166109548115156108e5565b90565b61096081610c56565b6000908152600460205260409020546001600160a01b031690565b1561098257565b60405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608490fd5b90610a019392916109f16105018433610a78565b6109fc838383610b40565b610c7b565b15610a0857565b60405162461bcd60e51b815280610a2160048201610a25565b0390fd5b60809060208152603260208201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60608201520190565b906001600160a01b038080610a8c84610931565b16931691838314938415610abf575b508315610aa9575b50505090565b610ab591929350610957565b1614388080610aa3565b909350600052600560205260406000208260005260205260ff604060002054169238610a9b565b15610aed57565b60405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b90610b6891610b4e84610931565b6001600160a01b0393918416928492909183168414610ae6565b16918215610c055781610b8591610b7e86610931565b1614610ae6565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60008481526004602052604081206bffffffffffffffffffffffff60a01b9081815416905583825260036020526040822060001981540190558482526040822060018154019055858252600260205284604083209182541617905580a4565b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b600090815260026020526040902054610c79906001600160a01b031615156108e5565b565b9293600093909291803b15610d9157948491610cd59660405180948193630a85bd0160e11b9788845233600485015260018060a01b0380921660248501526044840152608060648401528260209b8c9760848301906107cf565b0393165af1849181610d51575b50610d40575050503d600014610d38573d610cfc816108c9565b90610d0a60405192836108a7565b81528091833d92013e5b80519182610d355760405162461bcd60e51b815280610a2160048201610a25565b01fd5b506060610d14565b6001600160e01b0319161492509050565b9091508581813d8311610d8a575b610d6981836108a7565b810103126102af57516001600160e01b0319811681036102af579038610ce2565b503d610d5f565b50505091505060019056fea2646970667358221220fffdba8d8070acba7f371e06abbf20db409b3a52ad99becc00c319ebb2c1eacd64736f6c63430008110033", "sourceMap": "628:16327:18:-:0;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;628:16327:18;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;628:16327:18;;;;;;;;;;;;;;;-1:-1:-1;628:16327:18;;;;;;;;;;;;;;;-1:-1:-1;628:16327:18;;;;;;;;;;;;;;;-1:-1:-1;;;;628:16327:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;628:16327:18;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;628:16327:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;628:16327:18;;;;;;;;;;;;;;;;-1:-1:-1;;;628:16327:18;;;;;;;;;;;;-1:-1:-1;628:16327:18;;;;;;;;;;;;;-1:-1:-1;628:16327:18;;-1:-1:-1;;628:16327:18;;;;;;;;;;;;;-1:-1:-1;628:16327:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;628:16327:18;;;;;;;;;;;;;-1:-1:-1;;;628:16327:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;628:16327:18;;;;;-1:-1:-1;628:16327:18;;-1:-1:-1;628:16327:18;;;;;;;;;-1:-1:-1;;628:16327:18;;;-1:-1:-1;;;;;628:16327:18;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;628:16327:18;;;;;;;;;;-1:-1:-1;;628:16327:18;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;628:16327:18;;;;;;;;-1:-1:-1;628:16327:18;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;", "linkReferences": {} }, "deployedBytecode": { "object": "0x608060408181526004918236101561001657600080fd5b600092833560e01c91826301ffc9a7146107645750816306fdde0314610699578163081812fc14610679578163095ea7b31461050b57816323b872dd146104e157816342842e0e146104935781636352211e1461046257816370a08231146103cc57816395d89b41146102b3578163a22cb465146101e3578163b88d4fde14610155578163c87b56dd14610104575063e985e9c5146100b457600080fd5b3461010057806003193601126101005760ff816020936100d261080f565b6100da61082a565b6001600160a01b0391821683526005875283832091168252855220549151911615158152f35b5080fd5b838334610100576020366003190112610100576101246101519335610c56565b81815161013081610875565b5280519161013d83610875565b8252519182916020835260208301906107cf565b0390f35b919050346101df5760803660031901126101df5761017161080f565b61017961082a565b846064359467ffffffffffffffff8611610100573660238701121561010057850135946101b16101a8876108c9565b955195866108a7565b858552366024878301011161010057856101dc966024602093018388013785010152604435916109dd565b80f35b8280fd5b919050346101df57806003193601126101df576101fe61080f565b90602435918215158093036102af576001600160a01b03169233841461026d5750338452600560205280842083855260205280842060ff1981541660ff8416179055519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b6020606492519162461bcd60e51b8352820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152fd5b8480fd5b8284346103c957806003193601126103c9578151918160019283549384811c918186169586156103bf575b60209687851081146103ac578899509688969785829a52918260001461038557505060011461032a575b505050610151929161031b9103856108a7565b519282849384528301906107cf565b91908693508083527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b82841061036d575050508201018161031b610151610308565b8054848a018601528895508794909301928101610354565b60ff19168782015293151560051b8601909301935084925061031b91506101519050610308565b634e487b7160e01b835260228a52602483fd5b92607f16926102de565b80fd5b83915034610100576020366003190112610100576001600160a01b036103f061080f565b1690811561040d5760208480858581526003845220549051908152f35b608490602085519162461bcd60e51b8352820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152fd5b8284346103c95760203660031901126103c9575061048260209235610931565b90516001600160a01b039091168152f35b838334610100576104a336610840565b91835193602085019085821067ffffffffffffffff8311176104ce576101dc969750528584526109dd565b634e487b7160e01b875260418852602487fd5b83346103c9576101dc6104f336610840565b916105066105018433610a78565b61097b565b610b40565b9050346101df57816003193601126101df5761052561080f565b6024359290916001600160a01b039190828061054087610931565b1694169380851461062c5780331490811561060d575b50156105a557848652602052842080546001600160a01b0319168317905561057d83610931565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258480a480f35b6020608492519162461bcd60e51b8352820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152fd5b90508652600560205281862033875260205260ff828720541638610556565b506020608492519162461bcd60e51b8352820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152fd5b8284346103c95760203660031901126103c9575061048260209235610957565b8284346103c957806003193601126103c95781519181825492600184811c9181861695861561075a575b60209687851081146103ac578899509688969785829a5291826000146103855750506001146106ff57505050610151929161031b9103856108a7565b91908693508280527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b828410610742575050508201018161031b610151610308565b8054848a018601528895508794909301928101610729565b92607f16926106c3565b8491346101df5760203660031901126101df573563ffffffff60e01b81168091036101df57602092506380ac58cd60e01b81149081156107be575b81156107ad575b5015158152f35b6301ffc9a760e01b149050836107a6565b635b5e139f60e01b8114915061079f565b919082519283825260005b8481106107fb575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016107da565b600435906001600160a01b038216820361082557565b600080fd5b602435906001600160a01b038216820361082557565b6060906003190112610825576001600160a01b0390600435828116810361082557916024359081168103610825579060443590565b6020810190811067ffffffffffffffff82111761089157604052565b634e487b7160e01b600052604160045260246000fd5b90601f8019910116810190811067ffffffffffffffff82111761089157604052565b67ffffffffffffffff811161089157601f01601f191660200190565b156108ec57565b60405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606490fd5b6000908152600260205260409020546001600160a01b03166109548115156108e5565b90565b61096081610c56565b6000908152600460205260409020546001600160a01b031690565b1561098257565b60405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608490fd5b90610a019392916109f16105018433610a78565b6109fc838383610b40565b610c7b565b15610a0857565b60405162461bcd60e51b815280610a2160048201610a25565b0390fd5b60809060208152603260208201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60608201520190565b906001600160a01b038080610a8c84610931565b16931691838314938415610abf575b508315610aa9575b50505090565b610ab591929350610957565b1614388080610aa3565b909350600052600560205260406000208260005260205260ff604060002054169238610a9b565b15610aed57565b60405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b90610b6891610b4e84610931565b6001600160a01b0393918416928492909183168414610ae6565b16918215610c055781610b8591610b7e86610931565b1614610ae6565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60008481526004602052604081206bffffffffffffffffffffffff60a01b9081815416905583825260036020526040822060001981540190558482526040822060018154019055858252600260205284604083209182541617905580a4565b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b600090815260026020526040902054610c79906001600160a01b031615156108e5565b565b9293600093909291803b15610d9157948491610cd59660405180948193630a85bd0160e11b9788845233600485015260018060a01b0380921660248501526044840152608060648401528260209b8c9760848301906107cf565b0393165af1849181610d51575b50610d40575050503d600014610d38573d610cfc816108c9565b90610d0a60405192836108a7565b81528091833d92013e5b80519182610d355760405162461bcd60e51b815280610a2160048201610a25565b01fd5b506060610d14565b6001600160e01b0319161492509050565b9091508581813d8311610d8a575b610d6981836108a7565b810103126102af57516001600160e01b0319811681036102af579038610ce2565b503d610d5f565b50505091505060019056fea2646970667358221220fffdba8d8070acba7f371e06abbf20db409b3a52ad99becc00c319ebb2c1eacd64736f6c63430008110033", "sourceMap": "628:16327:18:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;-1:-1:-1;;;;;628:16327:18;;;;;4508:18;628:16327;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;628:16327:18;;;;2914:7;628:16327;;;2914:7;:::i;:::-;628:16327;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;628:16327:18;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;628:16327:18;;719:10:24;13216:17:18;;628:16327;;719:10:24;;628:16327:18;;13273:18;628:16327;;;;;;;;;;;;;;;;;;;;;;;;;;;;13334:41;628:16327;719:10:24;13334:41:18;;628:16327;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2721:7;628:16327;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;628:16327:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;628:16327:18;;;;;;;;;;;-1:-1:-1;;628:16327:18;;;;;;;;;;;;;;;;-1:-1:-1;628:16327:18;;-1:-1:-1;628:16327:18;;-1:-1:-1;628:16327:18;;-1:-1:-1;628:16327:18;;;-1:-1:-1;;;628:16327:18;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;628:16327:18;;;;-1:-1:-1;;;;;628:16327:18;;:::i;:::-;;2028:19;;;628:16327;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;628:16327:18;;;;;;;;;;;;;-1:-1:-1;;628:16327:18;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;628:16327:18;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;5137:39;628:16327;;;;;;;5137:39;:::i;628:16327::-;-1:-1:-1;;;628:16327:18;;;;;;;;;;;;;4923:7;628:16327;;;:::i;:::-;719:10:24;4793:99:18;4801:41;719:10:24;;4801:41:18;:::i;:::-;4793:99;:::i;:::-;4923:7;:::i;628:16327::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;;;;628:16327:18;;;;3564:23;628:16327;3564:23;:::i;:::-;628:16327;;;3605:11;;;;628:16327;;719:10:24;;3686:21:18;:62;;;;;628:16327;;;;;;;;;;;;;;-1:-1:-1;;;;;;628:16327:18;;;;;12895:23;628:16327;12895:23;:::i;:::-;628:16327;12886:46;;;;628:16327;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3686:62;628:16327;;;;4508:18;628:16327;;;;;719:10:24;628:16327:18;;;;;;;;;;3686:62;;;628:16327;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;628:16327:18;;;;;;;;;;;;;-1:-1:-1;;628:16327:18;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;628:16327:18;;;;;;;;;;;;;;;;;;;-1:-1:-1;628:16327:18;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;628:16327:18;;;;;;;;;;;;;;;;;-1:-1:-1;;;;1707:40:18;;;:104;;;;628:16327;1707:156;;;;628:16327;;;;;;;1707:156;-1:-1:-1;;;937:40:27;;-1:-1:-1;1707:156:18;;;:104;-1:-1:-1;;;1763:48:18;;;-1:-1:-1;1707:104:18;;628:16327;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;628:16327:18;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;;;;628:16327:18;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;;;;628:16327:18;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;-1:-1:-1;;628:16327:18;;;;:::o;:::-;;;;:::o;:::-;;;-1:-1:-1;;;628:16327:18;;;;;;;;;;;;;;;;;;;;2190:219;-1:-1:-1;628:16327:18;;;6930:7;628:16327;;;;;;-1:-1:-1;;;;;628:16327:18;2324:56;2332:19;;;2324:56;:::i;:::-;2190:219;:::o;3935:167::-;4045:7;;;:::i;:::-;-1:-1:-1;628:16327:18;;;4071:15;628:16327;;;;;;-1:-1:-1;;;;;628:16327:18;;3935:167::o;628:16327::-;;;;:::o;:::-;;;-1:-1:-1;;;628:16327:18;;;;;;;;;;;;;;;;;-1:-1:-1;;;628:16327:18;;;;;;;5249:314;;6620:47;5249:314;;;5409:99;5417:41;719:10:24;;5417:41:18;:::i;5409:99::-;6594:7;;;;;:::i;:::-;6620:47;:::i;:::-;628:16327;;;5249:314::o;628:16327::-;;;-1:-1:-1;;;628:16327:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;628:16327:18;;;;;;:::o;7540:261::-;;-1:-1:-1;;;;;628:16327:18;;7665:23;7540:261;7665:23;:::i;:::-;628:16327;;;7706:16;;;;:52;;;;;7540:261;7706:87;;;;;7540:261;7698:96;;;7540:261;:::o;7706:87::-;7762:20;;;;;;:::i;:::-;628:16327;7762:31;7706:87;;;;;:52;628:16327;;;-1:-1:-1;628:16327:18;4508:18;628:16327;;;-1:-1:-1;628:16327:18;;-1:-1:-1;628:16327:18;;;;;-1:-1:-1;628:16327:18;;;7706:52;;;;628:16327;;;;:::o;:::-;;;-1:-1:-1;;;628:16327:18;;;;;;;;;;;;;;;;;-1:-1:-1;;;628:16327:18;;;;;;;11423:1233;;11542:81;11423:1233;11550:23;;;:::i;:::-;-1:-1:-1;;;;;628:16327:18;;;;;;;;;;;11550:31;;11542:81;:::i;:::-;628:16327;11641:16;;;628:16327;;11851:23;11843:81;11851:23;;;;:::i;:::-;628:16327;11851:31;11843:81;:::i;:::-;12570:27;11655:1;628:16327;;;11993:15;628:16327;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12533:7;628:16327;;;;;;;;;;;;;12570:27;;11423:1233::o;628:16327::-;;;-1:-1:-1;;;628:16327:18;;;;;;;;;;;;;;;;;-1:-1:-1;;;628:16327:18;;;;;;;13466:133;-1:-1:-1;628:16327:18;;;6930:7;628:16327;;;;;;13539:53;;-1:-1:-1;;;;;628:16327:18;7344:31;;13539:53;:::i;:::-;13466:133::o;14151:831::-;;;628:16327;;14151:831;;;1465:19:22;;:23;:19;;628:16327:18;;;;;;;;;;;;;;14355:71;;;;719:10:24;14355:71:18;;;628:16327;;;;;;;;;;;;;;;;;;;;;;14355:71;;628:16327;;;;;;;;:::i;:::-;14355:71;628:16327;;14355:71;;;;;;;14316:660;-1:-1:-1;14351:573:18;;14543:381;;;628:16327;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;14593:18;;;628:16327;;-1:-1:-1;;;14635:60:18;;628:16327;14635:60;14355:71;14635:60;;;:::i;14589:321::-;14797:95;;628:16327;;;;;14351:573;-1:-1:-1;;;;;;628:16327:18;14476:51;;-1:-1:-1;628:16327:18;-1:-1:-1;14469:58:18:o;14355:71::-;;;;;;;;;;;;;;;;;:::i;:::-;;;628:16327;;;;;-1:-1:-1;;;;;;628:16327:18;;;;;;14355:71;;;;;;;;;14316:660;14954:11;;;;;;14961:4;14954:11;:::o", "linkReferences": {} }, "methodIdentifiers": { "approve(address,uint256)": "095ea7b3", "balanceOf(address)": "70a08231", "getApproved(uint256)": "081812fc", "isApprovedForAll(address,address)": "e985e9c5", "name()": "06fdde03", "ownerOf(uint256)": "6352211e", "safeTransferFrom(address,address,uint256)": "42842e0e", "safeTransferFrom(address,address,uint256,bytes)": "b88d4fde", "setApprovalForAll(address,bool)": "a22cb465", "supportsInterface(bytes4)": "01ffc9a7", "symbol()": "95d89b41", "tokenURI(uint256)": "c87b56dd", "transferFrom(address,address,uint256)": "23b872dd" }, "rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"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\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\"}],\"devdoc\":{\"details\":\"Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including the Metadata extension, but not including the Enumerable extension, which is available separately as {ERC721Enumerable}.\",\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"constructor\":{\"details\":\"Initializes the contract by setting a `name` and a `symbol` to the token collection.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":\"ERC721\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xd89f3585b211fc9e3408384a4c4efdc3a93b2f877a3821046fa01c219d35be1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ea15ef7c8980240ccd46df13809d163f749bc0a01d8bced1875660d4872da1c\",\"dweb:/ipfs/QmbDfAT9VeCSG4cnPd6tjDMp8ED85dLHbWyMyv7wbmL4CH\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"version\":1}", "metadata": { "compiler": { "version": "0.8.17+commit.8df45f5f" }, "language": "Solidity", "output": { "abi": [ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address", "indexed": true }, { "internalType": "address", "name": "approved", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "tokenId", "type": "uint256", "indexed": true } ], "type": "event", "name": "Approval", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address", "indexed": true }, { "internalType": "address", "name": "operator", "type": "address", "indexed": true }, { "internalType": "bool", "name": "approved", "type": "bool", "indexed": false } ], "type": "event", "name": "ApprovalForAll", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address", "indexed": true }, { "internalType": "address", "name": "to", "type": "address", "indexed": true }, { "internalType": "uint256", "name": "tokenId", "type": "uint256", "indexed": true } ], "type": "event", "name": "Transfer", "anonymous": false }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function", "name": "approve" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "stateMutability": "view", "type": "function", "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ] }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "view", "type": "function", "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ] }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "stateMutability": "view", "type": "function", "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ] }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "view", "type": "function", "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ] }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function", "name": "safeTransferFrom" }, { "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" } ], "stateMutability": "nonpayable", "type": "function", "name": "safeTransferFrom" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function", "name": "setApprovalForAll" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "stateMutability": "view", "type": "function", "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ] }, { "inputs": [], "stateMutability": "view", "type": "function", "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ] }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "view", "type": "function", "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ] }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function", "name": "transferFrom" } ], "devdoc": { "kind": "dev", "methods": { "approve(address,uint256)": { "details": "See {IERC721-approve}." }, "balanceOf(address)": { "details": "See {IERC721-balanceOf}." }, "constructor": { "details": "Initializes the contract by setting a `name` and a `symbol` to the token collection." }, "getApproved(uint256)": { "details": "See {IERC721-getApproved}." }, "isApprovedForAll(address,address)": { "details": "See {IERC721-isApprovedForAll}." }, "name()": { "details": "See {IERC721Metadata-name}." }, "ownerOf(uint256)": { "details": "See {IERC721-ownerOf}." }, "safeTransferFrom(address,address,uint256)": { "details": "See {IERC721-safeTransferFrom}." }, "safeTransferFrom(address,address,uint256,bytes)": { "details": "See {IERC721-safeTransferFrom}." }, "setApprovalForAll(address,bool)": { "details": "See {IERC721-setApprovalForAll}." }, "supportsInterface(bytes4)": { "details": "See {IERC165-supportsInterface}." }, "symbol()": { "details": "See {IERC721Metadata-symbol}." }, "tokenURI(uint256)": { "details": "See {IERC721Metadata-tokenURI}." }, "transferFrom(address,address,uint256)": { "details": "See {IERC721-transferFrom}." } }, "version": 1 }, "userdoc": { "kind": "user", "methods": {}, "version": 1 } }, "settings": { "remappings": [ ":@ensdomains/=node_modules/@ensdomains/", ":@openzeppelin/=node_modules/@openzeppelin/", ":ds-test/=lib/forge-std/lib/ds-test/src/", ":eth-gas-reporter/=node_modules/eth-gas-reporter/", ":forge-std/=lib/forge-std/src/", ":hardhat-deploy/=node_modules/hardhat-deploy/", ":hardhat/=node_modules/hardhat/" ], "optimizer": { "enabled": true, "runs": 200 }, "metadata": { "bytecodeHash": "ipfs" }, "compilationTarget": { "node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol": "ERC721" }, "libraries": {}, "viaIR": true }, "sources": { "node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol": { "keccak256": "0xd89f3585b211fc9e3408384a4c4efdc3a93b2f877a3821046fa01c219d35be1b", "urls": [ "bzz-raw://5ea15ef7c8980240ccd46df13809d163f749bc0a01d8bced1875660d4872da1c", "dweb:/ipfs/QmbDfAT9VeCSG4cnPd6tjDMp8ED85dLHbWyMyv7wbmL4CH" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol": { "keccak256": "0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68", "urls": [ "bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56", "dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": { "keccak256": "0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da", "urls": [ "bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708", "dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": { "keccak256": "0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9", "urls": [ "bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146", "dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/Address.sol": { "keccak256": "0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1", "urls": [ "bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269", "dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/Context.sol": { "keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7", "urls": [ "bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92", "dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/Strings.sol": { "keccak256": "0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a", "urls": [ "bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634", "dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol": { "keccak256": "0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b", "urls": [ "bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d", "dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": { "keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1", "urls": [ "bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f", "dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy" ], "license": "MIT" }, "node_modules/@openzeppelin/contracts/utils/math/Math.sol": { "keccak256": "0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6", "urls": [ "bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b", "dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz" ], "license": "MIT" } }, "version": 1 }, "ast": { "absolutePath": "node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol", "id": 26720, "exportedSymbols": { "Address": [ 27210 ], "Context": [ 27279 ], "ERC165": [ 27552 ], "ERC721": [ 26719 ], "IERC165": [ 27564 ], "IERC721": [ 26835 ], "IERC721Metadata": [ 26880 ], "IERC721Receiver": [ 26853 ], "Math": [ 28429 ], "Strings": [ 27528 ] }, "nodeType": "SourceUnit", "src": "107:16849:18", "nodes": [ { "id": 25776, "nodeType": "PragmaDirective", "src": "107:23:18", "nodes": [], "literals": [ "solidity", "^", "0.8", ".0" ] }, { "id": 25777, "nodeType": "ImportDirective", "src": "132:23:18", "nodes": [], "absolutePath": "node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol", "file": "./IERC721.sol", "nameLocation": "-1:-1:-1", "scope": 26720, "sourceUnit": 26836, "symbolAliases": [], "unitAlias": "" }, { "id": 25778, "nodeType": "ImportDirective", "src": "156:31:18", "nodes": [], "absolutePath": "node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol", "file": "./IERC721Receiver.sol", "nameLocation": "-1:-1:-1", "scope": 26720, "sourceUnit": 26854, "symbolAliases": [], "unitAlias": "" }, { "id": 25779, "nodeType": "ImportDirective", "src": "188:42:18", "nodes": [], "absolutePath": "node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol", "file": "./extensions/IERC721Metadata.sol", "nameLocation": "-1:-1:-1", "scope": 26720, "sourceUnit": 26881, "symbolAliases": [], "unitAlias": "" }, { "id": 25780, "nodeType": "ImportDirective", "src": "231:33:18", "nodes": [], "absolutePath": "node_modules/@openzeppelin/contracts/utils/Address.sol", "file": "../../utils/Address.sol", "nameLocation": "-1:-1:-1", "scope": 26720, "sourceUnit": 27211, "symbolAliases": [], "unitAlias": "" }, { "id": 25781, "nodeType": "ImportDirective", "src": "265:33:18", "nodes": [], "absolutePath": "node_modules/@openzeppelin/contracts/utils/Context.sol", "file": "../../utils/Context.sol", "nameLocation": "-1:-1:-1", "scope": 26720, "sourceUnit": 27280, "symbolAliases": [], "unitAlias": "" }, { "id": 25782, "nodeType": "ImportDirective", "src": "299:33:18", "nodes": [], "absolutePath": "node_modules/@openzeppelin/contracts/utils/Strings.sol", "file": "../../utils/Strings.sol", "nameLocation": "-1:-1:-1", "scope": 26720, "sourceUnit": 27529, "symbolAliases": [], "unitAlias": "" }, { "id": 25783, "nodeType": "ImportDirective", "src": "333:46:18", "nodes": [], "absolutePath": "node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol", "file": "../../utils/introspection/ERC165.sol", "nameLocation": "-1:-1:-1", "scope": 26720, "sourceUnit": 27553, "symbolAliases": [], "unitAlias": "" }, { "id": 26719, "nodeType": "ContractDefinition", "src": "628:16327:18", "nodes": [ { "id": 25795, "nodeType": "UsingForDirective", "src": "695:26:18", "nodes": [], "global": false, "libraryName": { "id": 25793, "name": "Address", "nameLocations": [ "701:7:18" ], "nodeType": "IdentifierPath", "referencedDeclaration": 27210, "src": "701:7:18" }, "typeName": { "id": 25794, "name": "address", "nodeType": "ElementaryTypeName", "src": "713:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } }, { "id": 25798, "nodeType": "UsingForDirective", "src": "726:26:18", "nodes": [], "global": false, "libraryName": { "id": 25796, "name": "Strings", "nameLocations": [ "732:7:18" ], "nodeType": "IdentifierPath", "referencedDeclaration": 27528, "src": "732:7:18" }, "typeName": { "id": 25797, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "744:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, { "id": 25800, "nodeType": "VariableDeclaration", "src": "776:20:18", "nodes": [], "constant": false, "mutability": "mutable", "name": "_name", "nameLocation": "791:5:18", "scope": 26719, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 25799, "name": "string", "nodeType": "ElementaryTypeName", "src": "776:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "private" }, { "id": 25802, "nodeType": "VariableDeclaration", "src": "823:22:18", "nodes": [], "constant": false, "mutability": "mutable", "name": "_symbol", "nameLocation": "838:7:18", "scope": 26719, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string" }, "typeName": { "id": 25801, "name": "string", "nodeType": "ElementaryTypeName", "src": "823:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "private" }, { "id": 25806, "nodeType": "VariableDeclaration", "src": "898:43:18", "nodes": [], "constant": false, "mutability": "mutable", "name": "_owners", "nameLocation": "934:7:18", "scope": 26719, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" }, "typeName": { "id": 25805, "keyType": { "id": 25803, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "906:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", "src": "898:27:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" }, "valueType": { "id": 25804, "name": "address", "nodeType": "ElementaryTypeName", "src": "917:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } }, "visibility": "private" }, { "id": 25810, "nodeType": "VariableDeclaration", "src": "992:45:18", "nodes": [], "constant": false, "mutability": "mutable", "name": "_balances", "nameLocation": "1028:9:18", "scope": 26719, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "typeName": { "id": 25809, "keyType": { "id": 25807, "name": "address", "nodeType": "ElementaryTypeName", "src": "1000:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "992:27:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" }, "valueType": { "id": 25808, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1011:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } }, "visibility": "private" }, { "id": 25814, "nodeType": "VariableDeclaration", "src": "1093:51:18", "nodes": [], "constant": false, "mutability": "mutable", "name": "_tokenApprovals", "nameLocation": "1129:15:18", "scope": 26719, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" }, "typeName": { "id": 25813, "keyType": { "id": 25811, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "1101:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Mapping", "src": "1093:27:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" }, "valueType": { "id": 25812, "name": "address", "nodeType": "ElementaryTypeName", "src": "1112:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } }, "visibility": "private" }, { "id": 25820, "nodeType": "VariableDeclaration", "src": "1199:71:18", "nodes": [], "constant": false, "mutability": "mutable", "name": "_operatorApprovals", "nameLocation": "1252:18:18", "scope": 26719, "stateVariable": true, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" }, "typeName": { "id": 25819, "keyType": { "id": 25815, "name": "address", "nodeType": "ElementaryTypeName", "src": "1207:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1199:44:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" }, "valueType": { "id": 25818, "keyType": { "id": 25816, "name": "address", "nodeType": "ElementaryTypeName", "src": "1226:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Mapping", "src": "1218:24:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" }, "valueType": { "id": 25817, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1237:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } } }, "visibility": "private" }, { "id": 25837, "nodeType": "FunctionDefinition", "src": "1390:113:18", "nodes": [], "body": { "id": 25836, "nodeType": "Block", "src": "1446:57:18", "nodes": [], "statements": [ { "expression": { "id": 25830, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 25828, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25800, "src": "1456:5:18", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 25829, "name": "name_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25823, "src": "1464:5:18", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "1456:13:18", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 25831, "nodeType": "ExpressionStatement", "src": "1456:13:18" }, { "expression": { "id": 25834, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 25832, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25802, "src": "1479:7:18", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 25833, "name": "symbol_", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25825, "src": "1489:7:18", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "src": "1479:17:18", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "id": 25835, "nodeType": "ExpressionStatement", "src": "1479:17:18" } ] }, "documentation": { "id": 25821, "nodeType": "StructuredDocumentation", "src": "1277:108:18", "text": " @dev Initializes the contract by setting a `name` and a `symbol` to the token collection." }, "implemented": true, "kind": "constructor", "modifiers": [], "name": "", "nameLocation": "-1:-1:-1", "parameters": { "id": 25826, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 25823, "mutability": "mutable", "name": "name_", "nameLocation": "1416:5:18", "nodeType": "VariableDeclaration", "scope": 25837, "src": "1402:19:18", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 25822, "name": "string", "nodeType": "ElementaryTypeName", "src": "1402:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" }, { "constant": false, "id": 25825, "mutability": "mutable", "name": "symbol_", "nameLocation": "1437:7:18", "nodeType": "VariableDeclaration", "scope": 25837, "src": "1423:21:18", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 25824, "name": "string", "nodeType": "ElementaryTypeName", "src": "1423:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "1401:44:18" }, "returnParameters": { "id": 25827, "nodeType": "ParameterList", "parameters": [], "src": "1446:0:18" }, "scope": 26719, "stateMutability": "nonpayable", "virtual": false, "visibility": "public" }, { "id": 25868, "nodeType": "FunctionDefinition", "src": "1570:300:18", "nodes": [], "body": { "id": 25867, "nodeType": "Block", "src": "1678:192:18", "nodes": [], "statements": [ { "expression": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 25865, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 25860, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "id": 25853, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 25848, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25840, "src": "1707:11:18", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "arguments": [ { "id": 25850, "name": "IERC721", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26835, "src": "1727:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC721_$26835_$", "typeString": "type(contract IERC721)" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_type$_t_contract$_IERC721_$26835_$", "typeString": "type(contract IERC721)" } ], "id": 25849, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "1722:4:18", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 25851, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1722:13:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_magic_meta_type_t_contract$_IERC721_$26835", "typeString": "type(contract IERC721)" } }, "id": 25852, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1736:11:18", "memberName": "interfaceId", "nodeType": "MemberAccess", "src": "1722:25:18", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "src": "1707:40:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "commonType": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "id": 25859, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 25854, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25840, "src": "1763:11:18", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "arguments": [ { "id": 25856, "name": "IERC721Metadata", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26880, "src": "1783:15:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC721Metadata_$26880_$", "typeString": "type(contract IERC721Metadata)" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_type$_t_contract$_IERC721Metadata_$26880_$", "typeString": "type(contract IERC721Metadata)" } ], "id": 25855, "name": "type", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -27, "src": "1778:4:18", "typeDescriptions": { "typeIdentifier": "t_function_metatype_pure$__$returns$__$", "typeString": "function () pure" } }, "id": 25857, "isConstant": false, "isLValue": false, "isPure": true, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1778:21:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_magic_meta_type_t_contract$_IERC721Metadata_$26880", "typeString": "type(contract IERC721Metadata)" } }, "id": 25858, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "1800:11:18", "memberName": "interfaceId", "nodeType": "MemberAccess", "src": "1778:33:18", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "src": "1763:48:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "1707:104:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "arguments": [ { "id": 25863, "name": "interfaceId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25840, "src": "1851:11:18", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } ], "expression": { "id": 25861, "name": "super", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -25, "src": "1827:5:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_super$_ERC721_$26719_$", "typeString": "type(contract super ERC721)" } }, "id": 25862, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "1833:17:18", "memberName": "supportsInterface", "nodeType": "MemberAccess", "referencedDeclaration": 27551, "src": "1827:23:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$", "typeString": "function (bytes4) view returns (bool)" } }, "id": 25864, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "1827:36:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "1707:156:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 25847, "id": 25866, "nodeType": "Return", "src": "1688:175:18" } ] }, "baseFunctions": [ 27551, 27563 ], "documentation": { "id": 25838, "nodeType": "StructuredDocumentation", "src": "1509:56:18", "text": " @dev See {IERC165-supportsInterface}." }, "functionSelector": "01ffc9a7", "implemented": true, "kind": "function", "modifiers": [], "name": "supportsInterface", "nameLocation": "1579:17:18", "overrides": { "id": 25844, "nodeType": "OverrideSpecifier", "overrides": [ { "id": 25842, "name": "ERC165", "nameLocations": [ "1646:6:18" ], "nodeType": "IdentifierPath", "referencedDeclaration": 27552, "src": "1646:6:18" }, { "id": 25843, "name": "IERC165", "nameLocations": [ "1654:7:18" ], "nodeType": "IdentifierPath", "referencedDeclaration": 27564, "src": "1654:7:18" } ], "src": "1637:25:18" }, "parameters": { "id": 25841, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 25840, "mutability": "mutable", "name": "interfaceId", "nameLocation": "1604:11:18", "nodeType": "VariableDeclaration", "scope": 25868, "src": "1597:18:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 25839, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "1597:6:18", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "visibility": "internal" } ], "src": "1596:20:18" }, "returnParameters": { "id": 25847, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 25846, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 25868, "src": "1672:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 25845, "name": "bool", "nodeType": "ElementaryTypeName", "src": "1672:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "1671:6:18" }, "scope": 26719, "stateMutability": "view", "virtual": true, "visibility": "public" }, { "id": 25892, "nodeType": "FunctionDefinition", "src": "1929:204:18", "nodes": [], "body": { "id": 25891, "nodeType": "Block", "src": "2010:123:18", "nodes": [], "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 25883, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 25878, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25871, "src": "2028:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "hexValue": "30", "id": 25881, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2045:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 25880, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2037:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 25879, "name": "address", "nodeType": "ElementaryTypeName", "src": "2037:7:18", "typeDescriptions": {} } }, "id": 25882, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2037:10:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "2028:19:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552433732313a2061646472657373207a65726f206973206e6f7420612076616c6964206f776e6572", "id": 25884, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2049:43:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", "typeString": "literal_string \"ERC721: address zero is not a valid owner\"" }, "value": "ERC721: address zero is not a valid owner" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_6d05c90094f31cfeb8f0eb86f0a513af3f7f8992991fbde41b08aa7960677159", "typeString": "literal_string \"ERC721: address zero is not a valid owner\"" } ], "id": 25877, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "2020:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 25885, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2020:73:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 25886, "nodeType": "ExpressionStatement", "src": "2020:73:18" }, { "expression": { "baseExpression": { "id": 25887, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25810, "src": "2110:9:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 25889, "indexExpression": { "id": 25888, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25871, "src": "2120:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "2110:16:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "functionReturnParameters": 25876, "id": 25890, "nodeType": "Return", "src": "2103:23:18" } ] }, "baseFunctions": [ 26760 ], "documentation": { "id": 25869, "nodeType": "StructuredDocumentation", "src": "1876:48:18", "text": " @dev See {IERC721-balanceOf}." }, "functionSelector": "70a08231", "implemented": true, "kind": "function", "modifiers": [], "name": "balanceOf", "nameLocation": "1938:9:18", "overrides": { "id": 25873, "nodeType": "OverrideSpecifier", "overrides": [], "src": "1983:8:18" }, "parameters": { "id": 25872, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 25871, "mutability": "mutable", "name": "owner", "nameLocation": "1956:5:18", "nodeType": "VariableDeclaration", "scope": 25892, "src": "1948:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 25870, "name": "address", "nodeType": "ElementaryTypeName", "src": "1948:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "1947:15:18" }, "returnParameters": { "id": 25876, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 25875, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 25892, "src": "2001:7:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 25874, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2001:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "2000:9:18" }, "scope": 26719, "stateMutability": "view", "virtual": true, "visibility": "public" }, { "id": 25920, "nodeType": "FunctionDefinition", "src": "2190:219:18", "nodes": [], "body": { "id": 25919, "nodeType": "Block", "src": "2271:138:18", "nodes": [], "statements": [ { "assignments": [ 25902 ], "declarations": [ { "constant": false, "id": 25902, "mutability": "mutable", "name": "owner", "nameLocation": "2289:5:18", "nodeType": "VariableDeclaration", "scope": 25919, "src": "2281:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 25901, "name": "address", "nodeType": "ElementaryTypeName", "src": "2281:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "id": 25906, "initialValue": { "arguments": [ { "id": 25904, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25895, "src": "2306:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 25903, "name": "_ownerOf", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26202, "src": "2297:8:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, "id": 25905, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2297:17:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "2281:33:18" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 25913, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 25908, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25902, "src": "2332:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "hexValue": "30", "id": 25911, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "2349:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 25910, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2341:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 25909, "name": "address", "nodeType": "ElementaryTypeName", "src": "2341:7:18", "typeDescriptions": {} } }, "id": 25912, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2341:10:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "2332:19:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552433732313a20696e76616c696420746f6b656e204944", "id": 25914, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "2353:26:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", "typeString": "literal_string \"ERC721: invalid token ID\"" }, "value": "ERC721: invalid token ID" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", "typeString": "literal_string \"ERC721: invalid token ID\"" } ], "id": 25907, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "2324:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 25915, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2324:56:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 25916, "nodeType": "ExpressionStatement", "src": "2324:56:18" }, { "expression": { "id": 25917, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25902, "src": "2397:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 25900, "id": 25918, "nodeType": "Return", "src": "2390:12:18" } ] }, "baseFunctions": [ 26768 ], "documentation": { "id": 25893, "nodeType": "StructuredDocumentation", "src": "2139:46:18", "text": " @dev See {IERC721-ownerOf}." }, "functionSelector": "6352211e", "implemented": true, "kind": "function", "modifiers": [], "name": "ownerOf", "nameLocation": "2199:7:18", "overrides": { "id": 25897, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2244:8:18" }, "parameters": { "id": 25896, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 25895, "mutability": "mutable", "name": "tokenId", "nameLocation": "2215:7:18", "nodeType": "VariableDeclaration", "scope": 25920, "src": "2207:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 25894, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2207:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "2206:17:18" }, "returnParameters": { "id": 25900, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 25899, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 25920, "src": "2262:7:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 25898, "name": "address", "nodeType": "ElementaryTypeName", "src": "2262:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "2261:9:18" }, "scope": 26719, "stateMutability": "view", "virtual": true, "visibility": "public" }, { "id": 25930, "nodeType": "FunctionDefinition", "src": "2471:98:18", "nodes": [], "body": { "id": 25929, "nodeType": "Block", "src": "2540:29:18", "nodes": [], "statements": [ { "expression": { "id": 25927, "name": "_name", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25800, "src": "2557:5:18", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 25926, "id": 25928, "nodeType": "Return", "src": "2550:12:18" } ] }, "baseFunctions": [ 26865 ], "documentation": { "id": 25921, "nodeType": "StructuredDocumentation", "src": "2415:51:18", "text": " @dev See {IERC721Metadata-name}." }, "functionSelector": "06fdde03", "implemented": true, "kind": "function", "modifiers": [], "name": "name", "nameLocation": "2480:4:18", "overrides": { "id": 25923, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2507:8:18" }, "parameters": { "id": 25922, "nodeType": "ParameterList", "parameters": [], "src": "2484:2:18" }, "returnParameters": { "id": 25926, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 25925, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 25930, "src": "2525:13:18", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 25924, "name": "string", "nodeType": "ElementaryTypeName", "src": "2525:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "2524:15:18" }, "scope": 26719, "stateMutability": "view", "virtual": true, "visibility": "public" }, { "id": 25940, "nodeType": "FunctionDefinition", "src": "2633:102:18", "nodes": [], "body": { "id": 25939, "nodeType": "Block", "src": "2704:31:18", "nodes": [], "statements": [ { "expression": { "id": 25937, "name": "_symbol", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25802, "src": "2721:7:18", "typeDescriptions": { "typeIdentifier": "t_string_storage", "typeString": "string storage ref" } }, "functionReturnParameters": 25936, "id": 25938, "nodeType": "Return", "src": "2714:14:18" } ] }, "baseFunctions": [ 26871 ], "documentation": { "id": 25931, "nodeType": "StructuredDocumentation", "src": "2575:53:18", "text": " @dev See {IERC721Metadata-symbol}." }, "functionSelector": "95d89b41", "implemented": true, "kind": "function", "modifiers": [], "name": "symbol", "nameLocation": "2642:6:18", "overrides": { "id": 25933, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2671:8:18" }, "parameters": { "id": 25932, "nodeType": "ParameterList", "parameters": [], "src": "2648:2:18" }, "returnParameters": { "id": 25936, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 25935, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 25940, "src": "2689:13:18", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 25934, "name": "string", "nodeType": "ElementaryTypeName", "src": "2689:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "2688:15:18" }, "scope": 26719, "stateMutability": "view", "virtual": true, "visibility": "public" }, { "id": 25979, "nodeType": "FunctionDefinition", "src": "2801:276:18", "nodes": [], "body": { "id": 25978, "nodeType": "Block", "src": "2889:188:18", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 25950, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25943, "src": "2914:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 25949, "name": "_requireMinted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26597, "src": "2899:14:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view" } }, "id": 25951, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2899:23:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 25952, "nodeType": "ExpressionStatement", "src": "2899:23:18" }, { "assignments": [ 25954 ], "declarations": [ { "constant": false, "id": 25954, "mutability": "mutable", "name": "baseURI", "nameLocation": "2947:7:18", "nodeType": "VariableDeclaration", "scope": 25978, "src": "2933:21:18", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 25953, "name": "string", "nodeType": "ElementaryTypeName", "src": "2933:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "id": 25957, "initialValue": { "arguments": [], "expression": { "argumentTypes": [], "id": 25955, "name": "_baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25988, "src": "2957:8:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$", "typeString": "function () view returns (string memory)" } }, "id": 25956, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2957:10:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "nodeType": "VariableDeclarationStatement", "src": "2933:34:18" }, { "expression": { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 25964, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "arguments": [ { "id": 25960, "name": "baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25954, "src": "2990:7:18", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "id": 25959, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "2984:5:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_bytes_storage_ptr_$", "typeString": "type(bytes storage pointer)" }, "typeName": { "id": 25958, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "2984:5:18", "typeDescriptions": {} } }, "id": 25961, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "2984:14:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 25962, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "2999:6:18", "memberName": "length", "nodeType": "MemberAccess", "src": "2984:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "hexValue": "30", "id": 25963, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "3008:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "2984:25:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseExpression": { "hexValue": "", "id": 25975, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3068:2:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, "id": 25976, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "Conditional", "src": "2984:86:18", "trueExpression": { "arguments": [ { "arguments": [ { "id": 25969, "name": "baseURI", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25954, "src": "3036:7:18", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 25970, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25943, "src": "3045:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 25971, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3053:8:18", "memberName": "toString", "nodeType": "MemberAccess", "referencedDeclaration": 27411, "src": "3045:16:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$bound_to$_t_uint256_$", "typeString": "function (uint256) pure returns (string memory)" } }, "id": 25972, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3045:18:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" }, { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } ], "expression": { "id": 25967, "name": "abi", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": -1, "src": "3019:3:18", "typeDescriptions": { "typeIdentifier": "t_magic_abi", "typeString": "abi" } }, "id": 25968, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "3023:12:18", "memberName": "encodePacked", "nodeType": "MemberAccess", "src": "3019:16:18", "typeDescriptions": { "typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$", "typeString": "function () pure returns (bytes memory)" } }, "id": 25973, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3019:45:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 25966, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "3012:6:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_string_storage_ptr_$", "typeString": "type(string storage pointer)" }, "typeName": { "id": 25965, "name": "string", "nodeType": "ElementaryTypeName", "src": "3012:6:18", "typeDescriptions": {} } }, "id": 25974, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3012:53:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string memory" } }, "functionReturnParameters": 25948, "id": 25977, "nodeType": "Return", "src": "2977:93:18" } ] }, "baseFunctions": [ 26879 ], "documentation": { "id": 25941, "nodeType": "StructuredDocumentation", "src": "2741:55:18", "text": " @dev See {IERC721Metadata-tokenURI}." }, "functionSelector": "c87b56dd", "implemented": true, "kind": "function", "modifiers": [], "name": "tokenURI", "nameLocation": "2810:8:18", "overrides": { "id": 25945, "nodeType": "OverrideSpecifier", "overrides": [], "src": "2856:8:18" }, "parameters": { "id": 25944, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 25943, "mutability": "mutable", "name": "tokenId", "nameLocation": "2827:7:18", "nodeType": "VariableDeclaration", "scope": 25979, "src": "2819:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 25942, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "2819:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "2818:17:18" }, "returnParameters": { "id": 25948, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 25947, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 25979, "src": "2874:13:18", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 25946, "name": "string", "nodeType": "ElementaryTypeName", "src": "2874:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "2873:15:18" }, "scope": 26719, "stateMutability": "view", "virtual": true, "visibility": "public" }, { "id": 25988, "nodeType": "FunctionDefinition", "src": "3319:92:18", "nodes": [], "body": { "id": 25987, "nodeType": "Block", "src": "3385:26:18", "nodes": [], "statements": [ { "expression": { "hexValue": "", "id": 25985, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3402:2:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" }, "functionReturnParameters": 25984, "id": 25986, "nodeType": "Return", "src": "3395:9:18" } ] }, "documentation": { "id": 25980, "nodeType": "StructuredDocumentation", "src": "3083:231:18", "text": " @dev Base URI for computing {tokenURI}. If set, the resulting URI for each\n token will be the concatenation of the `baseURI` and the `tokenId`. Empty\n by default, can be overridden in child contracts." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_baseURI", "nameLocation": "3328:8:18", "parameters": { "id": 25981, "nodeType": "ParameterList", "parameters": [], "src": "3336:2:18" }, "returnParameters": { "id": 25984, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 25983, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 25988, "src": "3370:13:18", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_string_memory_ptr", "typeString": "string" }, "typeName": { "id": 25982, "name": "string", "nodeType": "ElementaryTypeName", "src": "3370:6:18", "typeDescriptions": { "typeIdentifier": "t_string_storage_ptr", "typeString": "string" } }, "visibility": "internal" } ], "src": "3369:15:18" }, "scope": 26719, "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "id": 26031, "nodeType": "FunctionDefinition", "src": "3468:406:18", "nodes": [], "body": { "id": 26030, "nodeType": "Block", "src": "3538:336:18", "nodes": [], "statements": [ { "assignments": [ 25998 ], "declarations": [ { "constant": false, "id": 25998, "mutability": "mutable", "name": "owner", "nameLocation": "3556:5:18", "nodeType": "VariableDeclaration", "scope": 26030, "src": "3548:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 25997, "name": "address", "nodeType": "ElementaryTypeName", "src": "3548:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "id": 26003, "initialValue": { "arguments": [ { "id": 26001, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25993, "src": "3579:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 25999, "name": "ERC721", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26719, "src": "3564:6:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC721_$26719_$", "typeString": "type(contract ERC721)" } }, "id": 26000, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "3571:7:18", "memberName": "ownerOf", "nodeType": "MemberAccess", "referencedDeclaration": 25920, "src": "3564:14:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, "id": 26002, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3564:23:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "3548:39:18" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 26007, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 26005, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25991, "src": "3605:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "id": 26006, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25998, "src": "3611:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "3605:11:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552433732313a20617070726f76616c20746f2063757272656e74206f776e6572", "id": 26008, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3618:35:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", "typeString": "literal_string \"ERC721: approval to current owner\"" }, "value": "ERC721: approval to current owner" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_b51b4875eede07862961e8f9365c6749f5fe55c6ee5d7a9e42b6912ad0b15942", "typeString": "literal_string \"ERC721: approval to current owner\"" } ], "id": 26004, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "3597:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 26009, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3597:57:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26010, "nodeType": "ExpressionStatement", "src": "3597:57:18" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 26021, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 26015, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [], "expression": { "argumentTypes": [], "id": 26012, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 27269, "src": "3686:10:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, "id": 26013, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3686:12:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 26014, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25998, "src": "3702:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "3686:21:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "arguments": [ { "id": 26017, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25998, "src": "3728:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "arguments": [], "expression": { "argumentTypes": [], "id": 26018, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 27269, "src": "3735:10:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, "id": 26019, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3735:12:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 26016, "name": "isApprovedForAll", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26084, "src": "3711:16:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) view returns (bool)" } }, "id": 26020, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3711:37:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "3686:62:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c", "id": 26022, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "3762:63:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83", "typeString": "literal_string \"ERC721: approve caller is not token owner or approved for all\"" }, "value": "ERC721: approve caller is not token owner or approved for all" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_c6e14a63ffb144eeef7cce6988e5dce07c60a7e0a7b1ef25dbe18c61483e0a83", "typeString": "literal_string \"ERC721: approve caller is not token owner or approved for all\"" } ], "id": 26011, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "3665:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 26023, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3665:170:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26024, "nodeType": "ExpressionStatement", "src": "3665:170:18" }, { "expression": { "arguments": [ { "id": 26026, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25991, "src": "3855:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26027, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25993, "src": "3859:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 26025, "name": "_approve", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26551, "src": "3846:8:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 26028, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "3846:21:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26029, "nodeType": "ExpressionStatement", "src": "3846:21:18" } ] }, "baseFunctions": [ 26808 ], "documentation": { "id": 25989, "nodeType": "StructuredDocumentation", "src": "3417:46:18", "text": " @dev See {IERC721-approve}." }, "functionSelector": "095ea7b3", "implemented": true, "kind": "function", "modifiers": [], "name": "approve", "nameLocation": "3477:7:18", "overrides": { "id": 25995, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3529:8:18" }, "parameters": { "id": 25994, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 25991, "mutability": "mutable", "name": "to", "nameLocation": "3493:2:18", "nodeType": "VariableDeclaration", "scope": 26031, "src": "3485:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 25990, "name": "address", "nodeType": "ElementaryTypeName", "src": "3485:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 25993, "mutability": "mutable", "name": "tokenId", "nameLocation": "3505:7:18", "nodeType": "VariableDeclaration", "scope": 26031, "src": "3497:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 25992, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3497:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "3484:29:18" }, "returnParameters": { "id": 25996, "nodeType": "ParameterList", "parameters": [], "src": "3538:0:18" }, "scope": 26719, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "id": 26049, "nodeType": "FunctionDefinition", "src": "3935:167:18", "nodes": [], "body": { "id": 26048, "nodeType": "Block", "src": "4020:82:18", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 26041, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26034, "src": "4045:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 26040, "name": "_requireMinted", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26597, "src": "4030:14:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$", "typeString": "function (uint256) view" } }, "id": 26042, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4030:23:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26043, "nodeType": "ExpressionStatement", "src": "4030:23:18" }, { "expression": { "baseExpression": { "id": 26044, "name": "_tokenApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25814, "src": "4071:15:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, "id": 26046, "indexExpression": { "id": 26045, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26034, "src": "4087:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4071:24:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 26039, "id": 26047, "nodeType": "Return", "src": "4064:31:18" } ] }, "baseFunctions": [ 26824 ], "documentation": { "id": 26032, "nodeType": "StructuredDocumentation", "src": "3880:50:18", "text": " @dev See {IERC721-getApproved}." }, "functionSelector": "081812fc", "implemented": true, "kind": "function", "modifiers": [], "name": "getApproved", "nameLocation": "3944:11:18", "overrides": { "id": 26036, "nodeType": "OverrideSpecifier", "overrides": [], "src": "3993:8:18" }, "parameters": { "id": 26035, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26034, "mutability": "mutable", "name": "tokenId", "nameLocation": "3964:7:18", "nodeType": "VariableDeclaration", "scope": 26049, "src": "3956:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26033, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "3956:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "3955:17:18" }, "returnParameters": { "id": 26039, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26038, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 26049, "src": "4011:7:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26037, "name": "address", "nodeType": "ElementaryTypeName", "src": "4011:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "4010:9:18" }, "scope": 26719, "stateMutability": "view", "virtual": true, "visibility": "public" }, { "id": 26066, "nodeType": "FunctionDefinition", "src": "4169:153:18", "nodes": [], "body": { "id": 26065, "nodeType": "Block", "src": "4253:69:18", "nodes": [], "statements": [ { "expression": { "arguments": [ { "arguments": [], "expression": { "argumentTypes": [], "id": 26059, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 27269, "src": "4282:10:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, "id": 26060, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4282:12:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26061, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26052, "src": "4296:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26062, "name": "approved", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26054, "src": "4306:8:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 26058, "name": "_setApprovalForAll", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26583, "src": "4263:18:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", "typeString": "function (address,address,bool)" } }, "id": 26063, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4263:52:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26064, "nodeType": "ExpressionStatement", "src": "4263:52:18" } ] }, "baseFunctions": [ 26816 ], "documentation": { "id": 26050, "nodeType": "StructuredDocumentation", "src": "4108:56:18", "text": " @dev See {IERC721-setApprovalForAll}." }, "functionSelector": "a22cb465", "implemented": true, "kind": "function", "modifiers": [], "name": "setApprovalForAll", "nameLocation": "4178:17:18", "overrides": { "id": 26056, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4244:8:18" }, "parameters": { "id": 26055, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26052, "mutability": "mutable", "name": "operator", "nameLocation": "4204:8:18", "nodeType": "VariableDeclaration", "scope": 26066, "src": "4196:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26051, "name": "address", "nodeType": "ElementaryTypeName", "src": "4196:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26054, "mutability": "mutable", "name": "approved", "nameLocation": "4219:8:18", "nodeType": "VariableDeclaration", "scope": 26066, "src": "4214:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 26053, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4214:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "4195:33:18" }, "returnParameters": { "id": 26057, "nodeType": "ParameterList", "parameters": [], "src": "4253:0:18" }, "scope": 26719, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "id": 26084, "nodeType": "FunctionDefinition", "src": "4388:162:18", "nodes": [], "body": { "id": 26083, "nodeType": "Block", "src": "4491:59:18", "nodes": [], "statements": [ { "expression": { "baseExpression": { "baseExpression": { "id": 26077, "name": "_operatorApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25820, "src": "4508:18:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, "id": 26079, "indexExpression": { "id": 26078, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26069, "src": "4527:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4508:25:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 26081, "indexExpression": { "id": 26080, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26071, "src": "4534:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "4508:35:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 26076, "id": 26082, "nodeType": "Return", "src": "4501:42:18" } ] }, "baseFunctions": [ 26834 ], "documentation": { "id": 26067, "nodeType": "StructuredDocumentation", "src": "4328:55:18", "text": " @dev See {IERC721-isApprovedForAll}." }, "functionSelector": "e985e9c5", "implemented": true, "kind": "function", "modifiers": [], "name": "isApprovedForAll", "nameLocation": "4397:16:18", "overrides": { "id": 26073, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4467:8:18" }, "parameters": { "id": 26072, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26069, "mutability": "mutable", "name": "owner", "nameLocation": "4422:5:18", "nodeType": "VariableDeclaration", "scope": 26084, "src": "4414:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26068, "name": "address", "nodeType": "ElementaryTypeName", "src": "4414:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26071, "mutability": "mutable", "name": "operator", "nameLocation": "4437:8:18", "nodeType": "VariableDeclaration", "scope": 26084, "src": "4429:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26070, "name": "address", "nodeType": "ElementaryTypeName", "src": "4429:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "4413:33:18" }, "returnParameters": { "id": 26076, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26075, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 26084, "src": "4485:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 26074, "name": "bool", "nodeType": "ElementaryTypeName", "src": "4485:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "4484:6:18" }, "scope": 26719, "stateMutability": "view", "virtual": true, "visibility": "public" }, { "id": 26111, "nodeType": "FunctionDefinition", "src": "4612:326:18", "nodes": [], "body": { "id": 26110, "nodeType": "Block", "src": "4731:207:18", "nodes": [], "statements": [ { "expression": { "arguments": [ { "arguments": [ { "arguments": [], "expression": { "argumentTypes": [], "id": 26097, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 27269, "src": "4820:10:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, "id": 26098, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4820:12:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26099, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26091, "src": "4834:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 26096, "name": "_isApprovedOrOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26254, "src": "4801:18:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) view returns (bool)" } }, "id": 26100, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4801:41:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f766564", "id": 26101, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "4844:47:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", "typeString": "literal_string \"ERC721: caller is not token owner or approved\"" }, "value": "ERC721: caller is not token owner or approved" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", "typeString": "literal_string \"ERC721: caller is not token owner or approved\"" } ], "id": 26095, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "4793:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 26102, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4793:99:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26103, "nodeType": "ExpressionStatement", "src": "4793:99:18" }, { "expression": { "arguments": [ { "id": 26105, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26087, "src": "4913:4:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26106, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26089, "src": "4919:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26107, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26091, "src": "4923:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 26104, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26527, "src": "4903:9:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 26108, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "4903:28:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26109, "nodeType": "ExpressionStatement", "src": "4903:28:18" } ] }, "baseFunctions": [ 26800 ], "documentation": { "id": 26085, "nodeType": "StructuredDocumentation", "src": "4556:51:18", "text": " @dev See {IERC721-transferFrom}." }, "functionSelector": "23b872dd", "implemented": true, "kind": "function", "modifiers": [], "name": "transferFrom", "nameLocation": "4621:12:18", "overrides": { "id": 26093, "nodeType": "OverrideSpecifier", "overrides": [], "src": "4722:8:18" }, "parameters": { "id": 26092, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26087, "mutability": "mutable", "name": "from", "nameLocation": "4651:4:18", "nodeType": "VariableDeclaration", "scope": 26111, "src": "4643:12:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26086, "name": "address", "nodeType": "ElementaryTypeName", "src": "4643:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26089, "mutability": "mutable", "name": "to", "nameLocation": "4673:2:18", "nodeType": "VariableDeclaration", "scope": 26111, "src": "4665:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26088, "name": "address", "nodeType": "ElementaryTypeName", "src": "4665:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26091, "mutability": "mutable", "name": "tokenId", "nameLocation": "4693:7:18", "nodeType": "VariableDeclaration", "scope": 26111, "src": "4685:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26090, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "4685:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "4633:73:18" }, "returnParameters": { "id": 26094, "nodeType": "ParameterList", "parameters": [], "src": "4731:0:18" }, "scope": 26719, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "id": 26130, "nodeType": "FunctionDefinition", "src": "5004:179:18", "nodes": [], "body": { "id": 26129, "nodeType": "Block", "src": "5127:56:18", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 26123, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26114, "src": "5154:4:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26124, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26116, "src": "5160:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26125, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26118, "src": "5164:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "", "id": 26126, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5173:2:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" } ], "id": 26122, "name": "safeTransferFrom", "nodeType": "Identifier", "overloadedDeclarations": [ 26130, 26160 ], "referencedDeclaration": 26160, "src": "5137:16:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,bytes memory)" } }, "id": 26127, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5137:39:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26128, "nodeType": "ExpressionStatement", "src": "5137:39:18" } ] }, "baseFunctions": [ 26790 ], "documentation": { "id": 26112, "nodeType": "StructuredDocumentation", "src": "4944:55:18", "text": " @dev See {IERC721-safeTransferFrom}." }, "functionSelector": "42842e0e", "implemented": true, "kind": "function", "modifiers": [], "name": "safeTransferFrom", "nameLocation": "5013:16:18", "overrides": { "id": 26120, "nodeType": "OverrideSpecifier", "overrides": [], "src": "5118:8:18" }, "parameters": { "id": 26119, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26114, "mutability": "mutable", "name": "from", "nameLocation": "5047:4:18", "nodeType": "VariableDeclaration", "scope": 26130, "src": "5039:12:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26113, "name": "address", "nodeType": "ElementaryTypeName", "src": "5039:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26116, "mutability": "mutable", "name": "to", "nameLocation": "5069:2:18", "nodeType": "VariableDeclaration", "scope": 26130, "src": "5061:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26115, "name": "address", "nodeType": "ElementaryTypeName", "src": "5061:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26118, "mutability": "mutable", "name": "tokenId", "nameLocation": "5089:7:18", "nodeType": "VariableDeclaration", "scope": 26130, "src": "5081:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26117, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5081:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "5029:73:18" }, "returnParameters": { "id": 26121, "nodeType": "ParameterList", "parameters": [], "src": "5127:0:18" }, "scope": 26719, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "id": 26160, "nodeType": "FunctionDefinition", "src": "5249:314:18", "nodes": [], "body": { "id": 26159, "nodeType": "Block", "src": "5399:164:18", "nodes": [], "statements": [ { "expression": { "arguments": [ { "arguments": [ { "arguments": [], "expression": { "argumentTypes": [], "id": 26145, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 27269, "src": "5436:10:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, "id": 26146, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5436:12:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26147, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26137, "src": "5450:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 26144, "name": "_isApprovedOrOwner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26254, "src": "5417:18:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$", "typeString": "function (address,uint256) view returns (bool)" } }, "id": 26148, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5417:41:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6572206f7220617070726f766564", "id": 26149, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "5460:47:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", "typeString": "literal_string \"ERC721: caller is not token owner or approved\"" }, "value": "ERC721: caller is not token owner or approved" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_12a8e5623d251e191fe4a291d9a59bcc01a4db7a1f5c20fc8de44358c18308af", "typeString": "literal_string \"ERC721: caller is not token owner or approved\"" } ], "id": 26143, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "5409:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 26150, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5409:99:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26151, "nodeType": "ExpressionStatement", "src": "5409:99:18" }, { "expression": { "arguments": [ { "id": 26153, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26133, "src": "5532:4:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26154, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26135, "src": "5538:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26155, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26137, "src": "5542:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 26156, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26139, "src": "5551:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 26152, "name": "_safeTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26189, "src": "5518:13:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,address,uint256,bytes memory)" } }, "id": 26157, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "5518:38:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26158, "nodeType": "ExpressionStatement", "src": "5518:38:18" } ] }, "baseFunctions": [ 26780 ], "documentation": { "id": 26131, "nodeType": "StructuredDocumentation", "src": "5189:55:18", "text": " @dev See {IERC721-safeTransferFrom}." }, "functionSelector": "b88d4fde", "implemented": true, "kind": "function", "modifiers": [], "name": "safeTransferFrom", "nameLocation": "5258:16:18", "overrides": { "id": 26141, "nodeType": "OverrideSpecifier", "overrides": [], "src": "5390:8:18" }, "parameters": { "id": 26140, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26133, "mutability": "mutable", "name": "from", "nameLocation": "5292:4:18", "nodeType": "VariableDeclaration", "scope": 26160, "src": "5284:12:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26132, "name": "address", "nodeType": "ElementaryTypeName", "src": "5284:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26135, "mutability": "mutable", "name": "to", "nameLocation": "5314:2:18", "nodeType": "VariableDeclaration", "scope": 26160, "src": "5306:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26134, "name": "address", "nodeType": "ElementaryTypeName", "src": "5306:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26137, "mutability": "mutable", "name": "tokenId", "nameLocation": "5334:7:18", "nodeType": "VariableDeclaration", "scope": 26160, "src": "5326:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26136, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "5326:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 26139, "mutability": "mutable", "name": "data", "nameLocation": "5364:4:18", "nodeType": "VariableDeclaration", "scope": 26160, "src": "5351:17:18", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 26138, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "5351:5:18", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "5274:100:18" }, "returnParameters": { "id": 26142, "nodeType": "ParameterList", "parameters": [], "src": "5399:0:18" }, "scope": 26719, "stateMutability": "nonpayable", "virtual": true, "visibility": "public" }, { "id": 26189, "nodeType": "FunctionDefinition", "src": "6424:305:18", "nodes": [], "body": { "id": 26188, "nodeType": "Block", "src": "6564:165:18", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 26173, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26163, "src": "6584:4:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26174, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26165, "src": "6590:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26175, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26167, "src": "6594:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 26172, "name": "_transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26527, "src": "6574:9:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 26176, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6574:28:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26177, "nodeType": "ExpressionStatement", "src": "6574:28:18" }, { "expression": { "arguments": [ { "arguments": [ { "id": 26180, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26163, "src": "6643:4:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26181, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26165, "src": "6649:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26182, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26167, "src": "6653:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 26183, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26169, "src": "6662:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 26179, "name": "_checkOnERC721Received", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26659, "src": "6620:22:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,address,uint256,bytes memory) returns (bool)" } }, "id": 26184, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6620:47:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", "id": 26185, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "6669:52:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" }, "value": "ERC721: transfer to non ERC721Receiver implementer" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" } ], "id": 26178, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "6612:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 26186, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "6612:110:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26187, "nodeType": "ExpressionStatement", "src": "6612:110:18" } ] }, "documentation": { "id": 26161, "nodeType": "StructuredDocumentation", "src": "5569:850: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 `data` is additional data, it has no specified format and it is sent in call to `to`.\n This internal function is equivalent to {safeTransferFrom}, and can be used to e.g.\n implement alternative mechanisms to perform token transfer, such as signature-based.\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 `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer.\n Emits a {Transfer} event." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_safeTransfer", "nameLocation": "6433:13:18", "parameters": { "id": 26170, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26163, "mutability": "mutable", "name": "from", "nameLocation": "6464:4:18", "nodeType": "VariableDeclaration", "scope": 26189, "src": "6456:12:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26162, "name": "address", "nodeType": "ElementaryTypeName", "src": "6456:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26165, "mutability": "mutable", "name": "to", "nameLocation": "6486:2:18", "nodeType": "VariableDeclaration", "scope": 26189, "src": "6478:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26164, "name": "address", "nodeType": "ElementaryTypeName", "src": "6478:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26167, "mutability": "mutable", "name": "tokenId", "nameLocation": "6506:7:18", "nodeType": "VariableDeclaration", "scope": 26189, "src": "6498:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26166, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6498:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 26169, "mutability": "mutable", "name": "data", "nameLocation": "6536:4:18", "nodeType": "VariableDeclaration", "scope": 26189, "src": "6523:17:18", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 26168, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "6523:5:18", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "6446:100:18" }, "returnParameters": { "id": 26171, "nodeType": "ParameterList", "parameters": [], "src": "6564:0:18" }, "scope": 26719, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 26202, "nodeType": "FunctionDefinition", "src": "6838:115:18", "nodes": [], "body": { "id": 26201, "nodeType": "Block", "src": "6913:40:18", "nodes": [], "statements": [ { "expression": { "baseExpression": { "id": 26197, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25806, "src": "6930:7:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, "id": 26199, "indexExpression": { "id": 26198, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26192, "src": "6938:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "6930:16:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "functionReturnParameters": 26196, "id": 26200, "nodeType": "Return", "src": "6923:23:18" } ] }, "documentation": { "id": 26190, "nodeType": "StructuredDocumentation", "src": "6735:98:18", "text": " @dev Returns the owner of the `tokenId`. Does NOT revert if token doesn't exist" }, "implemented": true, "kind": "function", "modifiers": [], "name": "_ownerOf", "nameLocation": "6847:8:18", "parameters": { "id": 26193, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26192, "mutability": "mutable", "name": "tokenId", "nameLocation": "6864:7:18", "nodeType": "VariableDeclaration", "scope": 26202, "src": "6856:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26191, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "6856:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "6855:17:18" }, "returnParameters": { "id": 26196, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26195, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 26202, "src": "6904:7:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26194, "name": "address", "nodeType": "ElementaryTypeName", "src": "6904:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "src": "6903:9:18" }, "scope": 26719, "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "id": 26220, "nodeType": "FunctionDefinition", "src": "7256:126:18", "nodes": [], "body": { "id": 26219, "nodeType": "Block", "src": "7327:55:18", "nodes": [], "statements": [ { "expression": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 26217, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "id": 26211, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26205, "src": "7353:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 26210, "name": "_ownerOf", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26202, "src": "7344:8:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, "id": 26212, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7344:17:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "hexValue": "30", "id": 26215, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "7373:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 26214, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "7365:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 26213, "name": "address", "nodeType": "ElementaryTypeName", "src": "7365:7:18", "typeDescriptions": {} } }, "id": 26216, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7365:10:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "7344:31:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 26209, "id": 26218, "nodeType": "Return", "src": "7337:38:18" } ] }, "documentation": { "id": 26203, "nodeType": "StructuredDocumentation", "src": "6959:292:18", "text": " @dev Returns whether `tokenId` exists.\n Tokens can be managed by their owner or approved accounts via {approve} or {setApprovalForAll}.\n Tokens start existing when they are minted (`_mint`),\n and stop existing when they are burned (`_burn`)." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_exists", "nameLocation": "7265:7:18", "parameters": { "id": 26206, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26205, "mutability": "mutable", "name": "tokenId", "nameLocation": "7281:7:18", "nodeType": "VariableDeclaration", "scope": 26220, "src": "7273:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26204, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7273:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "7272:17:18" }, "returnParameters": { "id": 26209, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26208, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 26220, "src": "7321:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 26207, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7321:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "7320:6:18" }, "scope": 26719, "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "id": 26254, "nodeType": "FunctionDefinition", "src": "7540:261:18", "nodes": [], "body": { "id": 26253, "nodeType": "Block", "src": "7639:162:18", "nodes": [], "statements": [ { "assignments": [ 26231 ], "declarations": [ { "constant": false, "id": 26231, "mutability": "mutable", "name": "owner", "nameLocation": "7657:5:18", "nodeType": "VariableDeclaration", "scope": 26253, "src": "7649:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26230, "name": "address", "nodeType": "ElementaryTypeName", "src": "7649:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "id": 26236, "initialValue": { "arguments": [ { "id": 26234, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26225, "src": "7680:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 26232, "name": "ERC721", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26719, "src": "7665:6:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC721_$26719_$", "typeString": "type(contract ERC721)" } }, "id": 26233, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "7672:7:18", "memberName": "ownerOf", "nodeType": "MemberAccess", "referencedDeclaration": 25920, "src": "7665:14:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, "id": 26235, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7665:23:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "7649:39:18" }, { "expression": { "components": [ { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 26250, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_bool", "typeString": "bool" }, "id": 26244, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 26239, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 26237, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26223, "src": "7706:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 26238, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26231, "src": "7717:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "7706:16:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "arguments": [ { "id": 26241, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26231, "src": "7743:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26242, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26223, "src": "7750:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 26240, "name": "isApprovedForAll", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26084, "src": "7726:16:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$", "typeString": "function (address,address) view returns (bool)" } }, "id": 26243, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7726:32:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "7706:52:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "BinaryOperation", "operator": "||", "rightExpression": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 26249, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "id": 26246, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26225, "src": "7774:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 26245, "name": "getApproved", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26049, "src": "7762:11:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, "id": 26247, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "7762:20:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 26248, "name": "spender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26223, "src": "7786:7:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "7762:31:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "7706:87:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "id": 26251, "isConstant": false, "isInlineArray": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "TupleExpression", "src": "7705:89:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 26229, "id": 26252, "nodeType": "Return", "src": "7698:96:18" } ] }, "documentation": { "id": 26221, "nodeType": "StructuredDocumentation", "src": "7388:147:18", "text": " @dev Returns whether `spender` is allowed to manage `tokenId`.\n Requirements:\n - `tokenId` must exist." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_isApprovedOrOwner", "nameLocation": "7549:18:18", "parameters": { "id": 26226, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26223, "mutability": "mutable", "name": "spender", "nameLocation": "7576:7:18", "nodeType": "VariableDeclaration", "scope": 26254, "src": "7568:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26222, "name": "address", "nodeType": "ElementaryTypeName", "src": "7568:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26225, "mutability": "mutable", "name": "tokenId", "nameLocation": "7593:7:18", "nodeType": "VariableDeclaration", "scope": 26254, "src": "7585:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26224, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "7585:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "7567:34:18" }, "returnParameters": { "id": 26229, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26228, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 26254, "src": "7633:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 26227, "name": "bool", "nodeType": "ElementaryTypeName", "src": "7633:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "7632:6:18" }, "scope": 26719, "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "id": 26269, "nodeType": "FunctionDefinition", "src": "8131:108:18", "nodes": [], "body": { "id": 26268, "nodeType": "Block", "src": "8196:43:18", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 26263, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26257, "src": "8216:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26264, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26259, "src": "8220:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "", "id": 26265, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8229:2:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" }, "value": "" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470", "typeString": "literal_string \"\"" } ], "id": 26262, "name": "_safeMint", "nodeType": "Identifier", "overloadedDeclarations": [ 26269, 26298 ], "referencedDeclaration": 26298, "src": "8206:9:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$", "typeString": "function (address,uint256,bytes memory)" } }, "id": 26266, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8206:26:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26267, "nodeType": "ExpressionStatement", "src": "8206:26:18" } ] }, "documentation": { "id": 26255, "nodeType": "StructuredDocumentation", "src": "7807:319:18", "text": " @dev Safely mints `tokenId` and transfers it to `to`.\n Requirements:\n - `tokenId` must not exist.\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." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_safeMint", "nameLocation": "8140:9:18", "parameters": { "id": 26260, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26257, "mutability": "mutable", "name": "to", "nameLocation": "8158:2:18", "nodeType": "VariableDeclaration", "scope": 26269, "src": "8150:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26256, "name": "address", "nodeType": "ElementaryTypeName", "src": "8150:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26259, "mutability": "mutable", "name": "tokenId", "nameLocation": "8170:7:18", "nodeType": "VariableDeclaration", "scope": 26269, "src": "8162:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26258, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8162:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "8149:29:18" }, "returnParameters": { "id": 26261, "nodeType": "ParameterList", "parameters": [], "src": "8196:0:18" }, "scope": 26719, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 26298, "nodeType": "FunctionDefinition", "src": "8460:309:18", "nodes": [], "body": { "id": 26297, "nodeType": "Block", "src": "8574:195:18", "nodes": [], "statements": [ { "expression": { "arguments": [ { "id": 26280, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26272, "src": "8590:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26281, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26274, "src": "8594:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 26279, "name": "_mint", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26375, "src": "8584:5:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,uint256)" } }, "id": 26282, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8584:18:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26283, "nodeType": "ExpressionStatement", "src": "8584:18:18" }, { "expression": { "arguments": [ { "arguments": [ { "arguments": [ { "hexValue": "30", "id": 26288, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "8664:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 26287, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "8656:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 26286, "name": "address", "nodeType": "ElementaryTypeName", "src": "8656:7:18", "typeDescriptions": {} } }, "id": 26289, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8656:10:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26290, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26272, "src": "8668:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26291, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26274, "src": "8672:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 26292, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26276, "src": "8681:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "id": 26285, "name": "_checkOnERC721Received", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26659, "src": "8633:22:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bool_$", "typeString": "function (address,address,uint256,bytes memory) returns (bool)" } }, "id": 26293, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8633:53:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", "id": 26294, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "8700:52:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" }, "value": "ERC721: transfer to non ERC721Receiver implementer" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" } ], "id": 26284, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "8612:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 26295, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "8612:150:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26296, "nodeType": "ExpressionStatement", "src": "8612:150:18" } ] }, "documentation": { "id": 26270, "nodeType": "StructuredDocumentation", "src": "8245:210:18", "text": " @dev Same as {xref-ERC721-_safeMint-address-uint256-}[`_safeMint`], with an additional `data` parameter which is\n forwarded in {IERC721Receiver-onERC721Received} to contract recipients." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_safeMint", "nameLocation": "8469:9:18", "parameters": { "id": 26277, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26272, "mutability": "mutable", "name": "to", "nameLocation": "8496:2:18", "nodeType": "VariableDeclaration", "scope": 26298, "src": "8488:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26271, "name": "address", "nodeType": "ElementaryTypeName", "src": "8488:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26274, "mutability": "mutable", "name": "tokenId", "nameLocation": "8516:7:18", "nodeType": "VariableDeclaration", "scope": 26298, "src": "8508:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26273, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "8508:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 26276, "mutability": "mutable", "name": "data", "nameLocation": "8546:4:18", "nodeType": "VariableDeclaration", "scope": 26298, "src": "8533:17:18", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 26275, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "8533:5:18", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "8478:78:18" }, "returnParameters": { "id": 26278, "nodeType": "ParameterList", "parameters": [], "src": "8574:0:18" }, "scope": 26719, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 26375, "nodeType": "FunctionDefinition", "src": "9091:920:18", "nodes": [], "body": { "id": 26374, "nodeType": "Block", "src": "9152:859:18", "nodes": [], "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 26312, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 26307, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26301, "src": "9170:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "hexValue": "30", "id": 26310, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9184:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 26309, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9176:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 26308, "name": "address", "nodeType": "ElementaryTypeName", "src": "9176:7:18", "typeDescriptions": {} } }, "id": 26311, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9176:10:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "9170:16:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552433732313a206d696e7420746f20746865207a65726f2061646472657373", "id": 26313, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9188:34:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", "typeString": "literal_string \"ERC721: mint to the zero address\"" }, "value": "ERC721: mint to the zero address" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_8a66f4bb6512ffbfcc3db9b42318eb65f26ac15163eaa9a1e5cfa7bee9d1c7c6", "typeString": "literal_string \"ERC721: mint to the zero address\"" } ], "id": 26306, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "9162:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 26314, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9162:61:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26315, "nodeType": "ExpressionStatement", "src": "9162:61:18" }, { "expression": { "arguments": [ { "id": 26320, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "9241:17:18", "subExpression": { "arguments": [ { "id": 26318, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26303, "src": "9250:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 26317, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26220, "src": "9242:7:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, "id": 26319, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9242:16:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", "id": 26321, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9260:30:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", "typeString": "literal_string \"ERC721: token already minted\"" }, "value": "ERC721: token already minted" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", "typeString": "literal_string \"ERC721: token already minted\"" } ], "id": 26316, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "9233:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 26322, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9233:58:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26323, "nodeType": "ExpressionStatement", "src": "9233:58:18" }, { "expression": { "arguments": [ { "arguments": [ { "hexValue": "30", "id": 26327, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9331:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 26326, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9323:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 26325, "name": "address", "nodeType": "ElementaryTypeName", "src": "9323:7:18", "typeDescriptions": {} } }, "id": 26328, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9323:10:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26329, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26301, "src": "9335:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26330, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26303, "src": "9339:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "31", "id": 26331, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9348:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" } ], "id": 26324, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26705, "src": "9302:20:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256,uint256)" } }, "id": 26332, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9302:48:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26333, "nodeType": "ExpressionStatement", "src": "9302:48:18" }, { "expression": { "arguments": [ { "id": 26338, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "!", "prefix": true, "src": "9445:17:18", "subExpression": { "arguments": [ { "id": 26336, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26303, "src": "9454:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 26335, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26220, "src": "9446:7:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, "id": 26337, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9446:16:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552433732313a20746f6b656e20616c7265616479206d696e746564", "id": 26339, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "9464:30:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", "typeString": "literal_string \"ERC721: token already minted\"" }, "value": "ERC721: token already minted" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_2a63ce106ef95058ed21fd07c42a10f11dc5c32ac13a4e847923f7759f635d57", "typeString": "literal_string \"ERC721: token already minted\"" } ], "id": 26334, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "9437:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 26340, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9437:58:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26341, "nodeType": "ExpressionStatement", "src": "9437:58:18" }, { "id": 26348, "nodeType": "UncheckedBlock", "src": "9506:360:18", "statements": [ { "expression": { "id": 26346, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 26342, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25810, "src": "9837:9:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 26344, "indexExpression": { "id": 26343, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26301, "src": "9847:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "9837:13:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "hexValue": "31", "id": 26345, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9854:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "9837:18:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 26347, "nodeType": "ExpressionStatement", "src": "9837:18:18" } ] }, { "expression": { "id": 26353, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 26349, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25806, "src": "9876:7:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, "id": 26351, "indexExpression": { "id": 26350, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26303, "src": "9884:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "9876:16:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 26352, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26301, "src": "9895:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "9876:21:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 26354, "nodeType": "ExpressionStatement", "src": "9876:21:18" }, { "eventCall": { "arguments": [ { "arguments": [ { "hexValue": "30", "id": 26358, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9930:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 26357, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9922:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 26356, "name": "address", "nodeType": "ElementaryTypeName", "src": "9922:7:18", "typeDescriptions": {} } }, "id": 26359, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9922:10:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26360, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26301, "src": "9934:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26361, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26303, "src": "9938:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 26355, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26734, "src": "9913:8:18", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 26362, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9913:33:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26363, "nodeType": "EmitStatement", "src": "9908:38:18" }, { "expression": { "arguments": [ { "arguments": [ { "hexValue": "30", "id": 26367, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "9985:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 26366, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "9977:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 26365, "name": "address", "nodeType": "ElementaryTypeName", "src": "9977:7:18", "typeDescriptions": {} } }, "id": 26368, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9977:10:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26369, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26301, "src": "9989:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26370, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26303, "src": "9993:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "31", "id": 26371, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10002:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" } ], "id": 26364, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26718, "src": "9957:19:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256,uint256)" } }, "id": 26372, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "9957:47:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26373, "nodeType": "ExpressionStatement", "src": "9957:47:18" } ] }, "documentation": { "id": 26299, "nodeType": "StructuredDocumentation", "src": "8775:311:18", "text": " @dev Mints `tokenId` and transfers it to `to`.\n WARNING: Usage of this method is discouraged, use {_safeMint} whenever possible\n Requirements:\n - `tokenId` must not exist.\n - `to` cannot be the zero address.\n Emits a {Transfer} event." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_mint", "nameLocation": "9100:5:18", "parameters": { "id": 26304, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26301, "mutability": "mutable", "name": "to", "nameLocation": "9114:2:18", "nodeType": "VariableDeclaration", "scope": 26375, "src": "9106:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26300, "name": "address", "nodeType": "ElementaryTypeName", "src": "9106:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26303, "mutability": "mutable", "name": "tokenId", "nameLocation": "9126:7:18", "nodeType": "VariableDeclaration", "scope": 26375, "src": "9118:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26302, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "9118:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "9105:29:18" }, "returnParameters": { "id": 26305, "nodeType": "ParameterList", "parameters": [], "src": "9152:0:18" }, "scope": 26719, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 26442, "nodeType": "FunctionDefinition", "src": "10337:762:18", "nodes": [], "body": { "id": 26441, "nodeType": "Block", "src": "10386:713:18", "nodes": [], "statements": [ { "assignments": [ 26382 ], "declarations": [ { "constant": false, "id": 26382, "mutability": "mutable", "name": "owner", "nameLocation": "10404:5:18", "nodeType": "VariableDeclaration", "scope": 26441, "src": "10396:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26381, "name": "address", "nodeType": "ElementaryTypeName", "src": "10396:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" } ], "id": 26387, "initialValue": { "arguments": [ { "id": 26385, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26378, "src": "10427:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 26383, "name": "ERC721", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26719, "src": "10412:6:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC721_$26719_$", "typeString": "type(contract ERC721)" } }, "id": 26384, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "10419:7:18", "memberName": "ownerOf", "nodeType": "MemberAccess", "referencedDeclaration": 25920, "src": "10412:14:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, "id": 26386, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10412:23:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "VariableDeclarationStatement", "src": "10396:39:18" }, { "expression": { "arguments": [ { "id": 26389, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26382, "src": "10467:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "arguments": [ { "hexValue": "30", "id": 26392, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10482:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 26391, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "10474:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 26390, "name": "address", "nodeType": "ElementaryTypeName", "src": "10474:7:18", "typeDescriptions": {} } }, "id": 26393, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10474:10:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26394, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26378, "src": "10486:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "31", "id": 26395, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10495:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" } ], "id": 26388, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26705, "src": "10446:20:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256,uint256)" } }, "id": 26396, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10446:51:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26397, "nodeType": "ExpressionStatement", "src": "10446:51:18" }, { "expression": { "id": 26403, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "id": 26398, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26382, "src": "10599:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "arguments": [ { "id": 26401, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26378, "src": "10622:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 26399, "name": "ERC721", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26719, "src": "10607:6:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC721_$26719_$", "typeString": "type(contract ERC721)" } }, "id": 26400, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "10614:7:18", "memberName": "ownerOf", "nodeType": "MemberAccess", "referencedDeclaration": 25920, "src": "10607:14:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, "id": 26402, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10607:23:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "10599:31:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 26404, "nodeType": "ExpressionStatement", "src": "10599:31:18" }, { "expression": { "id": 26408, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, "src": "10668:31:18", "subExpression": { "baseExpression": { "id": 26405, "name": "_tokenApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25814, "src": "10675:15:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, "id": 26407, "indexExpression": { "id": 26406, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26378, "src": "10691:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "10675:24:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26409, "nodeType": "ExpressionStatement", "src": "10668:31:18" }, { "id": 26416, "nodeType": "UncheckedBlock", "src": "10710:237:18", "statements": [ { "expression": { "id": 26414, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 26410, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25810, "src": "10915:9:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 26412, "indexExpression": { "id": 26411, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26382, "src": "10925:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "10915:16:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "-=", "rightHandSide": { "hexValue": "31", "id": 26413, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "10935:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "10915:21:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 26415, "nodeType": "ExpressionStatement", "src": "10915:21:18" } ] }, { "expression": { "id": 26420, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, "src": "10956:23:18", "subExpression": { "baseExpression": { "id": 26417, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25806, "src": "10963:7:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, "id": 26419, "indexExpression": { "id": 26418, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26378, "src": "10971:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "10963:16:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26421, "nodeType": "ExpressionStatement", "src": "10956:23:18" }, { "eventCall": { "arguments": [ { "id": 26423, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26382, "src": "11004:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "arguments": [ { "hexValue": "30", "id": 26426, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11019:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 26425, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "11011:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 26424, "name": "address", "nodeType": "ElementaryTypeName", "src": "11011:7:18", "typeDescriptions": {} } }, "id": 26427, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11011:10:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26428, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26378, "src": "11023:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 26422, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26734, "src": "10995:8:18", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 26429, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "10995:36:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26430, "nodeType": "EmitStatement", "src": "10990:41:18" }, { "expression": { "arguments": [ { "id": 26432, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26382, "src": "11062:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "arguments": [ { "hexValue": "30", "id": 26435, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11077:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 26434, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "11069:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 26433, "name": "address", "nodeType": "ElementaryTypeName", "src": "11069:7:18", "typeDescriptions": {} } }, "id": 26436, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11069:10:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26437, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26378, "src": "11081:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "31", "id": 26438, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11090:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" } ], "id": 26431, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26718, "src": "11042:19:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256,uint256)" } }, "id": 26439, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11042:50:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26440, "nodeType": "ExpressionStatement", "src": "11042:50:18" } ] }, "documentation": { "id": 26376, "nodeType": "StructuredDocumentation", "src": "10017:315:18", "text": " @dev Destroys `tokenId`.\n The approval is cleared when the token is burned.\n This is an internal function that does not check if the sender is authorized to operate on the token.\n Requirements:\n - `tokenId` must exist.\n Emits a {Transfer} event." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_burn", "nameLocation": "10346:5:18", "parameters": { "id": 26379, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26378, "mutability": "mutable", "name": "tokenId", "nameLocation": "10360:7:18", "nodeType": "VariableDeclaration", "scope": 26442, "src": "10352:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26377, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "10352:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "10351:17:18" }, "returnParameters": { "id": 26380, "nodeType": "ParameterList", "parameters": [], "src": "10386:0:18" }, "scope": 26719, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 26527, "nodeType": "FunctionDefinition", "src": "11423:1233:18", "nodes": [], "body": { "id": 26526, "nodeType": "Block", "src": "11532:1124:18", "nodes": [], "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 26458, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "id": 26455, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26449, "src": "11565:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 26453, "name": "ERC721", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26719, "src": "11550:6:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC721_$26719_$", "typeString": "type(contract ERC721)" } }, "id": 26454, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "11557:7:18", "memberName": "ownerOf", "nodeType": "MemberAccess", "referencedDeclaration": 25920, "src": "11550:14:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, "id": 26456, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11550:23:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 26457, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26445, "src": "11577:4:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "11550:31:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572", "id": 26459, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11583:39:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", "typeString": "literal_string \"ERC721: transfer from incorrect owner\"" }, "value": "ERC721: transfer from incorrect owner" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", "typeString": "literal_string \"ERC721: transfer from incorrect owner\"" } ], "id": 26452, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "11542:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 26460, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11542:81:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26461, "nodeType": "ExpressionStatement", "src": "11542:81:18" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 26468, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 26463, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26447, "src": "11641:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "hexValue": "30", "id": 26466, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11655:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 26465, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "11647:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 26464, "name": "address", "nodeType": "ElementaryTypeName", "src": "11647:7:18", "typeDescriptions": {} } }, "id": 26467, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11647:10:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "11641:16:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373", "id": 26469, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11659:38:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", "typeString": "literal_string \"ERC721: transfer to the zero address\"" }, "value": "ERC721: transfer to the zero address" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_455fea98ea03c32d7dd1a6f1426917d80529bf47b3ccbde74e7206e889e709f4", "typeString": "literal_string \"ERC721: transfer to the zero address\"" } ], "id": 26462, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "11633:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 26470, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11633:65:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26471, "nodeType": "ExpressionStatement", "src": "11633:65:18" }, { "expression": { "arguments": [ { "id": 26473, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26445, "src": "11730:4:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26474, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26447, "src": "11736:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26475, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26449, "src": "11740:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "31", "id": 26476, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "11749:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" } ], "id": 26472, "name": "_beforeTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26705, "src": "11709:20:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256,uint256)" } }, "id": 26477, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11709:42:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26478, "nodeType": "ExpressionStatement", "src": "11709:42:18" }, { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 26485, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "arguments": [ { "id": 26482, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26449, "src": "11866:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 26480, "name": "ERC721", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26719, "src": "11851:6:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC721_$26719_$", "typeString": "type(contract ERC721)" } }, "id": 26481, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "11858:7:18", "memberName": "ownerOf", "nodeType": "MemberAccess", "referencedDeclaration": 25920, "src": "11851:14:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, "id": 26483, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11851:23:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "id": 26484, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26445, "src": "11878:4:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "11851:31:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552433732313a207472616e736665722066726f6d20696e636f7272656374206f776e6572", "id": 26486, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "11884:39:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", "typeString": "literal_string \"ERC721: transfer from incorrect owner\"" }, "value": "ERC721: transfer from incorrect owner" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_277f8ee9d5b4fc3c4149386f24de0fc1bbc63a8210e2197bfd1c0376a2ac5f48", "typeString": "literal_string \"ERC721: transfer from incorrect owner\"" } ], "id": 26479, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "11843:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 26487, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "11843:81:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26488, "nodeType": "ExpressionStatement", "src": "11843:81:18" }, { "expression": { "id": 26492, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "nodeType": "UnaryOperation", "operator": "delete", "prefix": true, "src": "11986:31:18", "subExpression": { "baseExpression": { "id": 26489, "name": "_tokenApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25814, "src": "11993:15:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, "id": 26491, "indexExpression": { "id": 26490, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26449, "src": "12009:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "11993:24:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26493, "nodeType": "ExpressionStatement", "src": "11986:31:18" }, { "id": 26506, "nodeType": "UncheckedBlock", "src": "12028:496:18", "statements": [ { "expression": { "id": 26498, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 26494, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25810, "src": "12461:9:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 26496, "indexExpression": { "id": 26495, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26445, "src": "12471:4:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "12461:15:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "-=", "rightHandSide": { "hexValue": "31", "id": 26497, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12480:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "12461:20:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 26499, "nodeType": "ExpressionStatement", "src": "12461:20:18" }, { "expression": { "id": 26504, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 26500, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25810, "src": "12495:9:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 26502, "indexExpression": { "id": 26501, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26447, "src": "12505:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "12495:13:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "hexValue": "31", "id": 26503, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12512:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "12495:18:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 26505, "nodeType": "ExpressionStatement", "src": "12495:18:18" } ] }, { "expression": { "id": 26511, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 26507, "name": "_owners", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25806, "src": "12533:7:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, "id": 26509, "indexExpression": { "id": 26508, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26449, "src": "12541:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "12533:16:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 26510, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26447, "src": "12552:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "12533:21:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 26512, "nodeType": "ExpressionStatement", "src": "12533:21:18" }, { "eventCall": { "arguments": [ { "id": 26514, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26445, "src": "12579:4:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26515, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26447, "src": "12585:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26516, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26449, "src": "12589:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 26513, "name": "Transfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26734, "src": "12570:8:18", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 26517, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12570:27:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26518, "nodeType": "EmitStatement", "src": "12565:32:18" }, { "expression": { "arguments": [ { "id": 26520, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26445, "src": "12628:4:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26521, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26447, "src": "12634:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26522, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26449, "src": "12638:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "hexValue": "31", "id": 26523, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "12647:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" } ], "id": 26519, "name": "_afterTokenTransfer", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26718, "src": "12608:19:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256,uint256)" } }, "id": 26524, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12608:41:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26525, "nodeType": "ExpressionStatement", "src": "12608:41:18" } ] }, "documentation": { "id": 26443, "nodeType": "StructuredDocumentation", "src": "11105:313:18", "text": " @dev Transfers `tokenId` from `from` to `to`.\n As opposed to {transferFrom}, this imposes no restrictions on msg.sender.\n Requirements:\n - `to` cannot be the zero address.\n - `tokenId` token must be owned by `from`.\n Emits a {Transfer} event." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_transfer", "nameLocation": "11432:9:18", "parameters": { "id": 26450, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26445, "mutability": "mutable", "name": "from", "nameLocation": "11459:4:18", "nodeType": "VariableDeclaration", "scope": 26527, "src": "11451:12:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26444, "name": "address", "nodeType": "ElementaryTypeName", "src": "11451:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26447, "mutability": "mutable", "name": "to", "nameLocation": "11481:2:18", "nodeType": "VariableDeclaration", "scope": 26527, "src": "11473:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26446, "name": "address", "nodeType": "ElementaryTypeName", "src": "11473:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26449, "mutability": "mutable", "name": "tokenId", "nameLocation": "11501:7:18", "nodeType": "VariableDeclaration", "scope": 26527, "src": "11493:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26448, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "11493:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "11441:73:18" }, "returnParameters": { "id": 26451, "nodeType": "ParameterList", "parameters": [], "src": "11532:0:18" }, "scope": 26719, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 26551, "nodeType": "FunctionDefinition", "src": "12768:171:18", "nodes": [], "body": { "id": 26550, "nodeType": "Block", "src": "12832:107:18", "nodes": [], "statements": [ { "expression": { "id": 26539, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 26535, "name": "_tokenApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25814, "src": "12842:15:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$", "typeString": "mapping(uint256 => address)" } }, "id": 26537, "indexExpression": { "id": 26536, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26532, "src": "12858:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "12842:24:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 26538, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26530, "src": "12869:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "12842:29:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 26540, "nodeType": "ExpressionStatement", "src": "12842:29:18" }, { "eventCall": { "arguments": [ { "arguments": [ { "id": 26544, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26532, "src": "12910:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "expression": { "id": 26542, "name": "ERC721", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26719, "src": "12895:6:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_ERC721_$26719_$", "typeString": "type(contract ERC721)" } }, "id": 26543, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "12902:7:18", "memberName": "ownerOf", "nodeType": "MemberAccess", "referencedDeclaration": 25920, "src": "12895:14:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$", "typeString": "function (uint256) view returns (address)" } }, "id": 26545, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12895:23:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26546, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26530, "src": "12920:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26547, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26532, "src": "12924:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 26541, "name": "Approval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26743, "src": "12886:8:18", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$", "typeString": "function (address,address,uint256)" } }, "id": 26548, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "12886:46:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26549, "nodeType": "EmitStatement", "src": "12881:51:18" } ] }, "documentation": { "id": 26528, "nodeType": "StructuredDocumentation", "src": "12662:101:18", "text": " @dev Approve `to` to operate on `tokenId`\n Emits an {Approval} event." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_approve", "nameLocation": "12777:8:18", "parameters": { "id": 26533, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26530, "mutability": "mutable", "name": "to", "nameLocation": "12794:2:18", "nodeType": "VariableDeclaration", "scope": 26551, "src": "12786:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26529, "name": "address", "nodeType": "ElementaryTypeName", "src": "12786:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26532, "mutability": "mutable", "name": "tokenId", "nameLocation": "12806:7:18", "nodeType": "VariableDeclaration", "scope": 26551, "src": "12798:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26531, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "12798:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "12785:29:18" }, "returnParameters": { "id": 26534, "nodeType": "ParameterList", "parameters": [], "src": "12832:0:18" }, "scope": 26719, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 26583, "nodeType": "FunctionDefinition", "src": "13075:307:18", "nodes": [], "body": { "id": 26582, "nodeType": "Block", "src": "13198:184:18", "nodes": [], "statements": [ { "expression": { "arguments": [ { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 26564, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 26562, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26554, "src": "13216:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "id": 26563, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26556, "src": "13225:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "13216:17:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552433732313a20617070726f766520746f2063616c6c6572", "id": 26565, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13235:27:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", "typeString": "literal_string \"ERC721: approve to caller\"" }, "value": "ERC721: approve to caller" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_45fe4329685be5ecd250fd0e6a25aea0ea4d0e30fb6a73c118b95749e6d70d05", "typeString": "literal_string \"ERC721: approve to caller\"" } ], "id": 26561, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "13208:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 26566, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13208:55:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26567, "nodeType": "ExpressionStatement", "src": "13208:55:18" }, { "expression": { "id": 26574, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "baseExpression": { "id": 26568, "name": "_operatorApprovals", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25820, "src": "13273:18:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$", "typeString": "mapping(address => mapping(address => bool))" } }, "id": 26571, "indexExpression": { "id": 26569, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26554, "src": "13292:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": false, "nodeType": "IndexAccess", "src": "13273:25:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_bool_$", "typeString": "mapping(address => bool)" } }, "id": 26572, "indexExpression": { "id": 26570, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26556, "src": "13299:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "13273:35:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "nodeType": "Assignment", "operator": "=", "rightHandSide": { "id": 26573, "name": "approved", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26558, "src": "13311:8:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "src": "13273:46:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 26575, "nodeType": "ExpressionStatement", "src": "13273:46:18" }, { "eventCall": { "arguments": [ { "id": 26577, "name": "owner", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26554, "src": "13349:5:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26578, "name": "operator", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26556, "src": "13356:8:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26579, "name": "approved", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26558, "src": "13366:8:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_bool", "typeString": "bool" } ], "id": 26576, "name": "ApprovalForAll", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26752, "src": "13334:14:18", "typeDescriptions": { "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$", "typeString": "function (address,address,bool)" } }, "id": 26580, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13334:41:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26581, "nodeType": "EmitStatement", "src": "13329:46:18" } ] }, "documentation": { "id": 26552, "nodeType": "StructuredDocumentation", "src": "12945:125:18", "text": " @dev Approve `operator` to operate on all of `owner` tokens\n Emits an {ApprovalForAll} event." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_setApprovalForAll", "nameLocation": "13084:18:18", "parameters": { "id": 26559, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26554, "mutability": "mutable", "name": "owner", "nameLocation": "13120:5:18", "nodeType": "VariableDeclaration", "scope": 26583, "src": "13112:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26553, "name": "address", "nodeType": "ElementaryTypeName", "src": "13112:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26556, "mutability": "mutable", "name": "operator", "nameLocation": "13143:8:18", "nodeType": "VariableDeclaration", "scope": 26583, "src": "13135:16:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26555, "name": "address", "nodeType": "ElementaryTypeName", "src": "13135:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26558, "mutability": "mutable", "name": "approved", "nameLocation": "13166:8:18", "nodeType": "VariableDeclaration", "scope": 26583, "src": "13161:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 26557, "name": "bool", "nodeType": "ElementaryTypeName", "src": "13161:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "13102:78:18" }, "returnParameters": { "id": 26560, "nodeType": "ParameterList", "parameters": [], "src": "13198:0:18" }, "scope": 26719, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 26597, "nodeType": "FunctionDefinition", "src": "13466:133:18", "nodes": [], "body": { "id": 26596, "nodeType": "Block", "src": "13529:70:18", "nodes": [], "statements": [ { "expression": { "arguments": [ { "arguments": [ { "id": 26591, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26586, "src": "13555:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_uint256", "typeString": "uint256" } ], "id": 26590, "name": "_exists", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26220, "src": "13547:7:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$", "typeString": "function (uint256) view returns (bool)" } }, "id": 26592, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13547:16:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, { "hexValue": "4552433732313a20696e76616c696420746f6b656e204944", "id": 26593, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "13565:26:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", "typeString": "literal_string \"ERC721: invalid token ID\"" }, "value": "ERC721: invalid token ID" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_bool", "typeString": "bool" }, { "typeIdentifier": "t_stringliteral_b08d2b0fec7cc108ab049809a8beb42779d969a49299d0c317c907d9db22974f", "typeString": "literal_string \"ERC721: invalid token ID\"" } ], "id": 26589, "name": "require", "nodeType": "Identifier", "overloadedDeclarations": [ -18, -18 ], "referencedDeclaration": -18, "src": "13539:7:18", "typeDescriptions": { "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$", "typeString": "function (bool,string memory) pure" } }, "id": 26594, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "13539:53:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26595, "nodeType": "ExpressionStatement", "src": "13539:53:18" } ] }, "documentation": { "id": 26584, "nodeType": "StructuredDocumentation", "src": "13388:73:18", "text": " @dev Reverts if the `tokenId` has not been minted yet." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_requireMinted", "nameLocation": "13475:14:18", "parameters": { "id": 26587, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26586, "mutability": "mutable", "name": "tokenId", "nameLocation": "13498:7:18", "nodeType": "VariableDeclaration", "scope": 26597, "src": "13490:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26585, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "13490:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "13489:17:18" }, "returnParameters": { "id": 26588, "nodeType": "ParameterList", "parameters": [], "src": "13529:0:18" }, "scope": 26719, "stateMutability": "view", "virtual": true, "visibility": "internal" }, { "id": 26659, "nodeType": "FunctionDefinition", "src": "14151:831:18", "nodes": [], "body": { "id": 26658, "nodeType": "Block", "src": "14306:676:18", "nodes": [], "statements": [ { "condition": { "arguments": [], "expression": { "argumentTypes": [], "expression": { "id": 26611, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26602, "src": "14320:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "id": 26612, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "14323:10:18", "memberName": "isContract", "nodeType": "MemberAccess", "referencedDeclaration": 26898, "src": "14320:13:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$bound_to$_t_address_$", "typeString": "function (address) view returns (bool)" } }, "id": 26613, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14320:15:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 26656, "nodeType": "Block", "src": "14940:36:18", "statements": [ { "expression": { "hexValue": "74727565", "id": 26654, "isConstant": false, "isLValue": false, "isPure": true, "kind": "bool", "lValueRequested": false, "nodeType": "Literal", "src": "14961:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "value": "true" }, "functionReturnParameters": 26610, "id": 26655, "nodeType": "Return", "src": "14954:11:18" } ] }, "id": 26657, "nodeType": "IfStatement", "src": "14316:660:18", "trueBody": { "id": 26653, "nodeType": "Block", "src": "14337:597:18", "statements": [ { "clauses": [ { "block": { "id": 26633, "nodeType": "Block", "src": "14451:91:18", "statements": [ { "expression": { "commonType": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "id": 26631, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 26627, "name": "retval", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26625, "src": "14476:6:18", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "expression": { "expression": { "id": 26628, "name": "IERC721Receiver", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26853, "src": "14486:15:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$26853_$", "typeString": "type(contract IERC721Receiver)" } }, "id": 26629, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "14502:16:18", "memberName": "onERC721Received", "nodeType": "MemberAccess", "referencedDeclaration": 26852, "src": "14486:32:18", "typeDescriptions": { "typeIdentifier": "t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$", "typeString": "function IERC721Receiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)" } }, "id": 26630, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "memberLocation": "14519:8:18", "memberName": "selector", "nodeType": "MemberAccess", "src": "14486:41:18", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "src": "14476:51:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "functionReturnParameters": 26610, "id": 26632, "nodeType": "Return", "src": "14469:58:18" } ] }, "errorName": "", "id": 26634, "nodeType": "TryCatchClause", "parameters": { "id": 26626, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26625, "mutability": "mutable", "name": "retval", "nameLocation": "14443:6:18", "nodeType": "VariableDeclaration", "scope": 26634, "src": "14436:13:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" }, "typeName": { "id": 26624, "name": "bytes4", "nodeType": "ElementaryTypeName", "src": "14436:6:18", "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "visibility": "internal" } ], "src": "14435:15:18" }, "src": "14427:115:18" }, { "block": { "id": 26650, "nodeType": "Block", "src": "14571:353:18", "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 26641, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "expression": { "id": 26638, "name": "reason", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26636, "src": "14593:6:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } }, "id": 26639, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "14600:6:18", "memberName": "length", "nodeType": "MemberAccess", "src": "14593:13:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": "==", "rightExpression": { "hexValue": "30", "id": 26640, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "14610:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" }, "src": "14593:18:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "falseBody": { "id": 26648, "nodeType": "Block", "src": "14720:190:18", "statements": [ { "AST": { "nodeType": "YulBlock", "src": "14806:86:18", "statements": [ { "expression": { "arguments": [ { "arguments": [ { "kind": "number", "nodeType": "YulLiteral", "src": "14843:2:18", "type": "", "value": "32" }, { "name": "reason", "nodeType": "YulIdentifier", "src": "14847:6:18" } ], "functionName": { "name": "add", "nodeType": "YulIdentifier", "src": "14839:3:18" }, "nodeType": "YulFunctionCall", "src": "14839:15:18" }, { "arguments": [ { "name": "reason", "nodeType": "YulIdentifier", "src": "14862:6:18" } ], "functionName": { "name": "mload", "nodeType": "YulIdentifier", "src": "14856:5:18" }, "nodeType": "YulFunctionCall", "src": "14856:13:18" } ], "functionName": { "name": "revert", "nodeType": "YulIdentifier", "src": "14832:6:18" }, "nodeType": "YulFunctionCall", "src": "14832:38:18" }, "nodeType": "YulExpressionStatement", "src": "14832:38:18" } ] }, "documentation": "@solidity memory-safe-assembly", "evmVersion": "london", "externalReferences": [ { "declaration": 26636, "isOffset": false, "isSlot": false, "src": "14847:6:18", "valueSize": 1 }, { "declaration": 26636, "isOffset": false, "isSlot": false, "src": "14862:6:18", "valueSize": 1 } ], "id": 26647, "nodeType": "InlineAssembly", "src": "14797:95:18" } ] }, "id": 26649, "nodeType": "IfStatement", "src": "14589:321:18", "trueBody": { "id": 26646, "nodeType": "Block", "src": "14613:101:18", "statements": [ { "expression": { "arguments": [ { "hexValue": "4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e746572", "id": 26643, "isConstant": false, "isLValue": false, "isPure": true, "kind": "string", "lValueRequested": false, "nodeType": "Literal", "src": "14642:52:18", "typeDescriptions": { "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" }, "value": "ERC721: transfer to non ERC721Receiver implementer" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_stringliteral_1e766a06da43a53d0f4c380e06e5a342e14d5af1bf8501996c844905530ca84e", "typeString": "literal_string \"ERC721: transfer to non ERC721Receiver implementer\"" } ], "id": 26642, "name": "revert", "nodeType": "Identifier", "overloadedDeclarations": [ -19, -19 ], "referencedDeclaration": -19, "src": "14635:6:18", "typeDescriptions": { "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$", "typeString": "function (string memory) pure" } }, "id": 26644, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14635:60:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_tuple$__$", "typeString": "tuple()" } }, "id": 26645, "nodeType": "ExpressionStatement", "src": "14635:60:18" } ] } } ] }, "errorName": "", "id": 26651, "nodeType": "TryCatchClause", "parameters": { "id": 26637, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26636, "mutability": "mutable", "name": "reason", "nameLocation": "14563:6:18", "nodeType": "VariableDeclaration", "scope": 26651, "src": "14550:19:18", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 26635, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "14550:5:18", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "14549:21:18" }, "src": "14543:381:18" } ], "externalCall": { "arguments": [ { "arguments": [], "expression": { "argumentTypes": [], "id": 26618, "name": "_msgSender", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 27269, "src": "14392:10:18", "typeDescriptions": { "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$", "typeString": "function () view returns (address)" } }, "id": 26619, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14392:12:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26620, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26600, "src": "14406:4:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, { "id": 26621, "name": "tokenId", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26604, "src": "14412:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, { "id": 26622, "name": "data", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26606, "src": "14421:4:18", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_address", "typeString": "address" }, { "typeIdentifier": "t_uint256", "typeString": "uint256" }, { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes memory" } ], "expression": { "arguments": [ { "id": 26615, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26602, "src": "14371:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_address", "typeString": "address" } ], "id": 26614, "name": "IERC721Receiver", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26853, "src": "14355:15:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_contract$_IERC721Receiver_$26853_$", "typeString": "type(contract IERC721Receiver)" } }, "id": 26616, "isConstant": false, "isLValue": false, "isPure": false, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14355:19:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_contract$_IERC721Receiver_$26853", "typeString": "contract IERC721Receiver" } }, "id": 26617, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "memberLocation": "14375:16:18", "memberName": "onERC721Received", "nodeType": "MemberAccess", "referencedDeclaration": 26852, "src": "14355:36:18", "typeDescriptions": { "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$_t_bytes4_$", "typeString": "function (address,address,uint256,bytes memory) external returns (bytes4)" } }, "id": 26623, "isConstant": false, "isLValue": false, "isPure": false, "kind": "functionCall", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "14355:71:18", "tryCall": true, "typeDescriptions": { "typeIdentifier": "t_bytes4", "typeString": "bytes4" } }, "id": 26652, "nodeType": "TryStatement", "src": "14351:573:18" } ] } } ] }, "documentation": { "id": 26598, "nodeType": "StructuredDocumentation", "src": "13605:541:18", "text": " @dev Internal function to invoke {IERC721Receiver-onERC721Received} on a target address.\n The call is not executed if the target address is not a contract.\n @param from address representing the previous owner of the given token ID\n @param to target address that will receive the tokens\n @param tokenId uint256 ID of the token to be transferred\n @param data bytes optional data to send along with the call\n @return bool whether the call correctly returned the expected magic value" }, "implemented": true, "kind": "function", "modifiers": [], "name": "_checkOnERC721Received", "nameLocation": "14160:22:18", "parameters": { "id": 26607, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26600, "mutability": "mutable", "name": "from", "nameLocation": "14200:4:18", "nodeType": "VariableDeclaration", "scope": 26659, "src": "14192:12:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26599, "name": "address", "nodeType": "ElementaryTypeName", "src": "14192:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26602, "mutability": "mutable", "name": "to", "nameLocation": "14222:2:18", "nodeType": "VariableDeclaration", "scope": 26659, "src": "14214:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26601, "name": "address", "nodeType": "ElementaryTypeName", "src": "14214:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26604, "mutability": "mutable", "name": "tokenId", "nameLocation": "14242:7:18", "nodeType": "VariableDeclaration", "scope": 26659, "src": "14234:15:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26603, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "14234:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 26606, "mutability": "mutable", "name": "data", "nameLocation": "14272:4:18", "nodeType": "VariableDeclaration", "scope": 26659, "src": "14259:17:18", "stateVariable": false, "storageLocation": "memory", "typeDescriptions": { "typeIdentifier": "t_bytes_memory_ptr", "typeString": "bytes" }, "typeName": { "id": 26605, "name": "bytes", "nodeType": "ElementaryTypeName", "src": "14259:5:18", "typeDescriptions": { "typeIdentifier": "t_bytes_storage_ptr", "typeString": "bytes" } }, "visibility": "internal" } ], "src": "14182:100:18" }, "returnParameters": { "id": 26610, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26609, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 26659, "src": "14300:4:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" }, "typeName": { "id": 26608, "name": "bool", "nodeType": "ElementaryTypeName", "src": "14300:4:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "visibility": "internal" } ], "src": "14299:6:18" }, "scope": 26719, "stateMutability": "nonpayable", "virtual": false, "visibility": "private" }, { "id": 26705, "nodeType": "FunctionDefinition", "src": "15698:396:18", "nodes": [], "body": { "id": 26704, "nodeType": "Block", "src": "15856:238:18", "nodes": [], "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "id": 26673, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 26671, "name": "batchSize", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26668, "src": "15870:9:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "BinaryOperation", "operator": ">", "rightExpression": { "hexValue": "31", "id": 26672, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "15882:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_1_by_1", "typeString": "int_const 1" }, "value": "1" }, "src": "15870:13:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 26703, "nodeType": "IfStatement", "src": "15866:222:18", "trueBody": { "id": 26702, "nodeType": "Block", "src": "15885:203:18", "statements": [ { "condition": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 26679, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 26674, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26662, "src": "15903:4:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "hexValue": "30", "id": 26677, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "15919:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 26676, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "15911:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 26675, "name": "address", "nodeType": "ElementaryTypeName", "src": "15911:7:18", "typeDescriptions": {} } }, "id": 26678, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "15911:10:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "15903:18:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 26687, "nodeType": "IfStatement", "src": "15899:85:18", "trueBody": { "id": 26686, "nodeType": "Block", "src": "15923:61:18", "statements": [ { "expression": { "id": 26684, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 26680, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25810, "src": "15941:9:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 26682, "indexExpression": { "id": 26681, "name": "from", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26662, "src": "15951:4:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "15941:15:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "-=", "rightHandSide": { "id": 26683, "name": "batchSize", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26668, "src": "15960:9:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "15941:28:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 26685, "nodeType": "ExpressionStatement", "src": "15941:28:18" } ] } }, { "condition": { "commonType": { "typeIdentifier": "t_address", "typeString": "address" }, "id": 26693, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftExpression": { "id": 26688, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26664, "src": "16001:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "nodeType": "BinaryOperation", "operator": "!=", "rightExpression": { "arguments": [ { "hexValue": "30", "id": 26691, "isConstant": false, "isLValue": false, "isPure": true, "kind": "number", "lValueRequested": false, "nodeType": "Literal", "src": "16015:1:18", "typeDescriptions": { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" }, "value": "0" } ], "expression": { "argumentTypes": [ { "typeIdentifier": "t_rational_0_by_1", "typeString": "int_const 0" } ], "id": 26690, "isConstant": false, "isLValue": false, "isPure": true, "lValueRequested": false, "nodeType": "ElementaryTypeNameExpression", "src": "16007:7:18", "typeDescriptions": { "typeIdentifier": "t_type$_t_address_$", "typeString": "type(address)" }, "typeName": { "id": 26689, "name": "address", "nodeType": "ElementaryTypeName", "src": "16007:7:18", "typeDescriptions": {} } }, "id": 26692, "isConstant": false, "isLValue": false, "isPure": true, "kind": "typeConversion", "lValueRequested": false, "nameLocations": [], "names": [], "nodeType": "FunctionCall", "src": "16007:10:18", "tryCall": false, "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "src": "16001:16:18", "typeDescriptions": { "typeIdentifier": "t_bool", "typeString": "bool" } }, "id": 26701, "nodeType": "IfStatement", "src": "15997:81:18", "trueBody": { "id": 26700, "nodeType": "Block", "src": "16019:59:18", "statements": [ { "expression": { "id": 26698, "isConstant": false, "isLValue": false, "isPure": false, "lValueRequested": false, "leftHandSide": { "baseExpression": { "id": 26694, "name": "_balances", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 25810, "src": "16037:9:18", "typeDescriptions": { "typeIdentifier": "t_mapping$_t_address_$_t_uint256_$", "typeString": "mapping(address => uint256)" } }, "id": 26696, "indexExpression": { "id": 26695, "name": "to", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26664, "src": "16047:2:18", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "isConstant": false, "isLValue": true, "isPure": false, "lValueRequested": true, "nodeType": "IndexAccess", "src": "16037:13:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "nodeType": "Assignment", "operator": "+=", "rightHandSide": { "id": 26697, "name": "batchSize", "nodeType": "Identifier", "overloadedDeclarations": [], "referencedDeclaration": 26668, "src": "16054:9:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "src": "16037:26:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "id": 26699, "nodeType": "ExpressionStatement", "src": "16037:26:18" } ] } } ] } } ] }, "documentation": { "id": 26660, "nodeType": "StructuredDocumentation", "src": "14988:705:18", "text": " @dev Hook that is called before any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s tokens will be transferred to `to`.\n - When `from` is zero, the tokens will be minted for `to`.\n - When `to` is zero, ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n - `batchSize` is non-zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_beforeTokenTransfer", "nameLocation": "15707:20:18", "parameters": { "id": 26669, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26662, "mutability": "mutable", "name": "from", "nameLocation": "15745:4:18", "nodeType": "VariableDeclaration", "scope": 26705, "src": "15737:12:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26661, "name": "address", "nodeType": "ElementaryTypeName", "src": "15737:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26664, "mutability": "mutable", "name": "to", "nameLocation": "15767:2:18", "nodeType": "VariableDeclaration", "scope": 26705, "src": "15759:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26663, "name": "address", "nodeType": "ElementaryTypeName", "src": "15759:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26666, "mutability": "mutable", "name": "", "nameLocation": "-1:-1:-1", "nodeType": "VariableDeclaration", "scope": 26705, "src": "15779:7:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26665, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "15779:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 26668, "mutability": "mutable", "name": "batchSize", "nameLocation": "15823:9:18", "nodeType": "VariableDeclaration", "scope": 26705, "src": "15815:17:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26667, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "15815:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "15727:111:18" }, "returnParameters": { "id": 26670, "nodeType": "ParameterList", "parameters": [], "src": "15856:0:18" }, "scope": 26719, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" }, { "id": 26718, "nodeType": "FunctionDefinition", "src": "16800:153:18", "nodes": [], "body": { "id": 26717, "nodeType": "Block", "src": "16951:2:18", "nodes": [], "statements": [] }, "documentation": { "id": 26706, "nodeType": "StructuredDocumentation", "src": "16100:695:18", "text": " @dev Hook that is called after any token transfer. This includes minting and burning. If {ERC721Consecutive} is\n used, the hook may be called as part of a consecutive (batch) mint, as indicated by `batchSize` greater than 1.\n Calling conditions:\n - When `from` and `to` are both non-zero, ``from``'s tokens were transferred to `to`.\n - When `from` is zero, the tokens were minted for `to`.\n - When `to` is zero, ``from``'s tokens were burned.\n - `from` and `to` are never both zero.\n - `batchSize` is non-zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]." }, "implemented": true, "kind": "function", "modifiers": [], "name": "_afterTokenTransfer", "nameLocation": "16809:19:18", "parameters": { "id": 26715, "nodeType": "ParameterList", "parameters": [ { "constant": false, "id": 26708, "mutability": "mutable", "name": "from", "nameLocation": "16846:4:18", "nodeType": "VariableDeclaration", "scope": 26718, "src": "16838:12:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26707, "name": "address", "nodeType": "ElementaryTypeName", "src": "16838:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26710, "mutability": "mutable", "name": "to", "nameLocation": "16868:2:18", "nodeType": "VariableDeclaration", "scope": 26718, "src": "16860:10:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" }, "typeName": { "id": 26709, "name": "address", "nodeType": "ElementaryTypeName", "src": "16860:7:18", "stateMutability": "nonpayable", "typeDescriptions": { "typeIdentifier": "t_address", "typeString": "address" } }, "visibility": "internal" }, { "constant": false, "id": 26712, "mutability": "mutable", "name": "firstTokenId", "nameLocation": "16888:12:18", "nodeType": "VariableDeclaration", "scope": 26718, "src": "16880:20:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26711, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "16880:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" }, { "constant": false, "id": 26714, "mutability": "mutable", "name": "batchSize", "nameLocation": "16918:9:18", "nodeType": "VariableDeclaration", "scope": 26718, "src": "16910:17:18", "stateVariable": false, "storageLocation": "default", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" }, "typeName": { "id": 26713, "name": "uint256", "nodeType": "ElementaryTypeName", "src": "16910:7:18", "typeDescriptions": { "typeIdentifier": "t_uint256", "typeString": "uint256" } }, "visibility": "internal" } ], "src": "16828:105:18" }, "returnParameters": { "id": 26716, "nodeType": "ParameterList", "parameters": [], "src": "16951:0:18" }, "scope": 26719, "stateMutability": "nonpayable", "virtual": true, "visibility": "internal" } ], "abstract": false, "baseContracts": [ { "baseName": { "id": 25785, "name": "Context", "nameLocations": [ "647:7:18" ], "nodeType": "IdentifierPath", "referencedDeclaration": 27279, "src": "647:7:18" }, "id": 25786, "nodeType": "InheritanceSpecifier", "src": "647:7:18" }, { "baseName": { "id": 25787, "name": "ERC165", "nameLocations": [ "656:6:18" ], "nodeType": "IdentifierPath", "referencedDeclaration": 27552, "src": "656:6:18" }, "id": 25788, "nodeType": "InheritanceSpecifier", "src": "656:6:18" }, { "baseName": { "id": 25789, "name": "IERC721", "nameLocations": [ "664:7:18" ], "nodeType": "IdentifierPath", "referencedDeclaration": 26835, "src": "664:7:18" }, "id": 25790, "nodeType": "InheritanceSpecifier", "src": "664:7:18" }, { "baseName": { "id": 25791, "name": "IERC721Metadata", "nameLocations": [ "673:15:18" ], "nodeType": "IdentifierPath", "referencedDeclaration": 26880, "src": "673:15:18" }, "id": 25792, "nodeType": "InheritanceSpecifier", "src": "673:15:18" } ], "canonicalName": "ERC721", "contractDependencies": [], "contractKind": "contract", "documentation": { "id": 25784, "nodeType": "StructuredDocumentation", "src": "381:246:18", "text": " @dev Implementation of https://eips.ethereum.org/EIPS/eip-721[ERC721] Non-Fungible Token Standard, including\n the Metadata extension, but not including the Enumerable extension, which is available separately as\n {ERC721Enumerable}." }, "fullyImplemented": true, "linearizedBaseContracts": [ 26719, 26880, 26835, 27552, 27564, 27279 ], "name": "ERC721", "nameLocation": "637:6:18", "scope": 26720, "usedErrors": [] } ], "license": "MIT" }, "id": 18 }