{"abi":[{"type":"function","name":"onERC721Received","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"bytes4","internalType":"bytes4"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"onERC721Received(address,address,uint256,bytes)":"150b7a02"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.25+commit.b61c2a91\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"onERC721Received\",\"outputs\":[{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/mocks/MockERC721.sol\":\"IERC721TokenReceiver\"},\"evmVersion\":\"cancun\",\"libraries\":{\"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker\":\"0x4200000000000000000000000000000000000776\"},\"metadata\":{\"bytecodeHash\":\"none\"},\"optimizer\":{\"enabled\":true,\"runs\":999999},\"remappings\":[\":@lib-keccak/=lib/lib-keccak/contracts/lib/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/\",\":@rari-capital/solmate/=lib/solmate/\",\":@solady-test/=lib/lib-keccak/lib/solady/test/\",\":@solady/=lib/solady/src/\",\":automate/=lib/automate/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":gelato/=lib/automate/contracts/\",\":hardhat/=lib/automate/node_modules/hardhat/\",\":kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/\",\":lib-keccak/=lib/lib-keccak/contracts/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/\",\":openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/\",\":prb-test/=lib/automate/lib/prb-test/src/\",\":prb/-est/=lib/automate/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/contracts/\",\":solady/=lib/solady/\",\":solmate/=lib/solmate/src/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.25+commit.b61c2a91"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"onERC721Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@lib-keccak/=lib/lib-keccak/contracts/lib/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","@openzeppelin/contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/contracts/","@rari-capital/solmate/=lib/solmate/","@solady-test/=lib/lib-keccak/lib/solady/test/","@solady/=lib/solady/src/","automate/=lib/automate/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts_v5.0.1/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","gelato/=lib/automate/contracts/","hardhat/=lib/automate/node_modules/hardhat/","kontrol-cheatcodes/=lib/kontrol-cheatcodes/src/","lib-keccak/=lib/lib-keccak/contracts/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-contracts_v3.1.0/=lib/openzeppelin-contracts_v3.1.0/contracts/","openzeppelin-contracts_v5.0.1/=lib/openzeppelin-contracts_v5.0.1/","prb-test/=lib/automate/lib/prb-test/src/","prb/-est/=lib/automate/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/contracts/","solady/=lib/solady/","solmate/=lib/solmate/src/"],"optimizer":{"enabled":true,"runs":999999},"metadata":{"bytecodeHash":"none"},"compilationTarget":{"lib/forge-std/src/mocks/MockERC721.sol":"IERC721TokenReceiver"},"evmVersion":"cancun","libraries":{"src/tokamak-contracts/USDC/L2/tokamak-USDC/v2/FiatTokenV2_2.sol:SignatureChecker":"0x4200000000000000000000000000000000000776"}},"sources":{"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"userdoc":{"version":1,"kind":"user"},"devdoc":{"version":1,"kind":"dev"},"ast":{"absolutePath":"lib/forge-std/src/mocks/MockERC721.sol","id":33658,"exportedSymbols":{"IERC721Metadata":[32270],"IERC721TokenReceiver":[33657],"MockERC721":[33643]},"nodeType":"SourceUnit","src":"32:7984:21","nodes":[{"id":33040,"nodeType":"PragmaDirective","src":"32:31:21","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":33042,"nodeType":"ImportDirective","src":"65:58:21","nodes":[],"absolutePath":"lib/forge-std/src/interfaces/IERC721.sol","file":"../interfaces/IERC721.sol","nameLocation":"-1:-1:-1","scope":33658,"sourceUnit":32299,"symbolAliases":[{"foreign":{"id":33041,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32270,"src":"73:15:21","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":33643,"nodeType":"ContractDefinition","src":"381:7498:21","nodes":[{"id":33047,"nodeType":"VariableDeclaration","src":"613:21:21","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"629:5:21","scope":33643,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":33046,"name":"string","nodeType":"ElementaryTypeName","src":"613:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":33049,"nodeType":"VariableDeclaration","src":"641:23:21","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"657:7:21","scope":33643,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":33048,"name":"string","nodeType":"ElementaryTypeName","src":"641:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":33058,"nodeType":"FunctionDefinition","src":"671:92:21","nodes":[],"body":{"id":33057,"nodeType":"Block","src":"734:29:21","nodes":[],"statements":[{"expression":{"id":33055,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33047,"src":"751:5:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":33054,"id":33056,"nodeType":"Return","src":"744:12:21"}]},"baseFunctions":[32255],"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"680:4:21","overrides":{"id":33051,"nodeType":"OverrideSpecifier","overrides":[],"src":"701:8:21"},"parameters":{"id":33050,"nodeType":"ParameterList","parameters":[],"src":"684:2:21"},"returnParameters":{"id":33054,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33053,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33058,"src":"719:13:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":33052,"name":"string","nodeType":"ElementaryTypeName","src":"719:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"718:15:21"},"scope":33643,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":33067,"nodeType":"FunctionDefinition","src":"769:96:21","nodes":[],"body":{"id":33066,"nodeType":"Block","src":"834:31:21","nodes":[],"statements":[{"expression":{"id":33064,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33049,"src":"851:7:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":33063,"id":33065,"nodeType":"Return","src":"844:14:21"}]},"baseFunctions":[32261],"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"778:6:21","overrides":{"id":33060,"nodeType":"OverrideSpecifier","overrides":[],"src":"801:8:21"},"parameters":{"id":33059,"nodeType":"ParameterList","parameters":[],"src":"784:2:21"},"returnParameters":{"id":33063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33062,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33067,"src":"819:13:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":33061,"name":"string","nodeType":"ElementaryTypeName","src":"819:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"818:15:21"},"scope":33643,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":33076,"nodeType":"FunctionDefinition","src":"871:85:21","nodes":[],"body":{"id":33075,"nodeType":"Block","src":"954:2:21","nodes":[],"statements":[]},"baseFunctions":[32269],"functionSelector":"c87b56dd","implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"880:8:21","overrides":{"id":33071,"nodeType":"OverrideSpecifier","overrides":[],"src":"921:8:21"},"parameters":{"id":33070,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33069,"mutability":"mutable","name":"id","nameLocation":"897:2:21","nodeType":"VariableDeclaration","scope":33076,"src":"889:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33068,"name":"uint256","nodeType":"ElementaryTypeName","src":"889:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"888:12:21"},"returnParameters":{"id":33074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33073,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33076,"src":"939:13:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":33072,"name":"string","nodeType":"ElementaryTypeName","src":"939:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"938:15:21"},"scope":33643,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":33080,"nodeType":"VariableDeclaration","src":"1152:45:21","nodes":[],"constant":false,"mutability":"mutable","name":"_ownerOf","nameLocation":"1189:8:21","scope":33643,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":33079,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":33077,"name":"uint256","nodeType":"ElementaryTypeName","src":"1160:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1152:27:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":33078,"name":"address","nodeType":"ElementaryTypeName","src":"1171:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"},{"id":33084,"nodeType":"VariableDeclaration","src":"1204:47:21","nodes":[],"constant":false,"mutability":"mutable","name":"_balanceOf","nameLocation":"1241:10:21","scope":33643,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":33083,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":33081,"name":"address","nodeType":"ElementaryTypeName","src":"1212:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1204:27:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":33082,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"id":33108,"nodeType":"FunctionDefinition","src":"1258:158:21","nodes":[],"body":{"id":33107,"nodeType":"Block","src":"1340:76:21","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"id":33097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33093,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33090,"src":"1359:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":33094,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33080,"src":"1367:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33096,"indexExpression":{"id":33095,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33086,"src":"1376:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1367:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1359:20:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":33098,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1358:22:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":33101,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1392:1:21","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":33100,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1384:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33099,"name":"address","nodeType":"ElementaryTypeName","src":"1384:7:21","typeDescriptions":{}}},"id":33102,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1384:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1358:36:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e4f545f4d494e544544","id":33104,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1396:12:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_e904b298bc24890ae0c043938d840f08b90773c1635904efe1336d6f851f98ca","typeString":"literal_string \"NOT_MINTED\""},"value":"NOT_MINTED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e904b298bc24890ae0c043938d840f08b90773c1635904efe1336d6f851f98ca","typeString":"literal_string \"NOT_MINTED\""}],"id":33092,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1350:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1350:59:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33106,"nodeType":"ExpressionStatement","src":"1350:59:21"}]},"baseFunctions":[32163],"functionSelector":"6352211e","implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1267:7:21","overrides":{"id":33088,"nodeType":"OverrideSpecifier","overrides":[],"src":"1307:8:21"},"parameters":{"id":33087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33086,"mutability":"mutable","name":"id","nameLocation":"1283:2:21","nodeType":"VariableDeclaration","scope":33108,"src":"1275:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33085,"name":"uint256","nodeType":"ElementaryTypeName","src":"1275:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1274:12:21"},"returnParameters":{"id":33091,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33090,"mutability":"mutable","name":"owner","nameLocation":"1333:5:21","nodeType":"VariableDeclaration","scope":33108,"src":"1325:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33089,"name":"address","nodeType":"ElementaryTypeName","src":"1325:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1324:15:21"},"scope":33643,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":33131,"nodeType":"FunctionDefinition","src":"1422:177:21","nodes":[],"body":{"id":33130,"nodeType":"Block","src":"1503:96:21","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33122,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33117,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33110,"src":"1521:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":33120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1538:1:21","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":33119,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1530:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33118,"name":"address","nodeType":"ElementaryTypeName","src":"1530:7:21","typeDescriptions":{}}},"id":33121,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1530:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1521:19:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5a45524f5f41444452455353","id":33123,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1542:14:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_71869b3729b99fadce3ee30cb1aa2a0d639e6a2d24158c1ae1ae0059e81b72af","typeString":"literal_string \"ZERO_ADDRESS\""},"value":"ZERO_ADDRESS"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_71869b3729b99fadce3ee30cb1aa2a0d639e6a2d24158c1ae1ae0059e81b72af","typeString":"literal_string \"ZERO_ADDRESS\""}],"id":33116,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1513:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1513:44:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33125,"nodeType":"ExpressionStatement","src":"1513:44:21"},{"expression":{"baseExpression":{"id":33126,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33084,"src":"1575:10:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":33128,"indexExpression":{"id":33127,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33110,"src":"1586:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1575:17:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":33115,"id":33129,"nodeType":"Return","src":"1568:24:21"}]},"baseFunctions":[32155],"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1431:9:21","overrides":{"id":33112,"nodeType":"OverrideSpecifier","overrides":[],"src":"1476:8:21"},"parameters":{"id":33111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33110,"mutability":"mutable","name":"owner","nameLocation":"1449:5:21","nodeType":"VariableDeclaration","scope":33131,"src":"1441:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33109,"name":"address","nodeType":"ElementaryTypeName","src":"1441:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1440:15:21"},"returnParameters":{"id":33115,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33114,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33131,"src":"1494:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33113,"name":"uint256","nodeType":"ElementaryTypeName","src":"1494:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1493:9:21"},"scope":33643,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":33135,"nodeType":"VariableDeclaration","src":"1793:49:21","nodes":[],"constant":false,"mutability":"mutable","name":"_getApproved","nameLocation":"1830:12:21","scope":33643,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":33134,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":33132,"name":"uint256","nodeType":"ElementaryTypeName","src":"1801:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1793:27:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":33133,"name":"address","nodeType":"ElementaryTypeName","src":"1812:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"},{"id":33141,"nodeType":"VariableDeclaration","src":"1849:71:21","nodes":[],"constant":false,"mutability":"mutable","name":"_isApprovedForAll","nameLocation":"1903:17:21","scope":33643,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":33140,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":33136,"name":"address","nodeType":"ElementaryTypeName","src":"1857:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1849:44:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":33139,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":33137,"name":"address","nodeType":"ElementaryTypeName","src":"1876:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1868:24:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":33138,"name":"bool","nodeType":"ElementaryTypeName","src":"1887:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"internal"},{"id":33154,"nodeType":"FunctionDefinition","src":"1927:120:21","nodes":[],"body":{"id":33153,"nodeType":"Block","src":"2007:40:21","nodes":[],"statements":[{"expression":{"baseExpression":{"id":33149,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33135,"src":"2024:12:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33151,"indexExpression":{"id":33150,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33143,"src":"2037:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2024:16:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":33148,"id":33152,"nodeType":"Return","src":"2017:23:21"}]},"baseFunctions":[32219],"functionSelector":"081812fc","implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"1936:11:21","overrides":{"id":33145,"nodeType":"OverrideSpecifier","overrides":[],"src":"1980:8:21"},"parameters":{"id":33144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33143,"mutability":"mutable","name":"id","nameLocation":"1956:2:21","nodeType":"VariableDeclaration","scope":33154,"src":"1948:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33142,"name":"uint256","nodeType":"ElementaryTypeName","src":"1948:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1947:12:21"},"returnParameters":{"id":33148,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33147,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33154,"src":"1998:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33146,"name":"address","nodeType":"ElementaryTypeName","src":"1998:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1997:9:21"},"scope":33643,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":33171,"nodeType":"FunctionDefinition","src":"2053:161:21","nodes":[],"body":{"id":33170,"nodeType":"Block","src":"2156:58:21","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":33164,"name":"_isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33141,"src":"2173:17:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":33166,"indexExpression":{"id":33165,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33156,"src":"2191:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2173:24:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":33168,"indexExpression":{"id":33167,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33158,"src":"2198:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2173:34:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":33163,"id":33169,"nodeType":"Return","src":"2166:41:21"}]},"baseFunctions":[32229],"functionSelector":"e985e9c5","implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"2062:16:21","overrides":{"id":33160,"nodeType":"OverrideSpecifier","overrides":[],"src":"2132:8:21"},"parameters":{"id":33159,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33156,"mutability":"mutable","name":"owner","nameLocation":"2087:5:21","nodeType":"VariableDeclaration","scope":33171,"src":"2079:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33155,"name":"address","nodeType":"ElementaryTypeName","src":"2079:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33158,"mutability":"mutable","name":"operator","nameLocation":"2102:8:21","nodeType":"VariableDeclaration","scope":33171,"src":"2094:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33157,"name":"address","nodeType":"ElementaryTypeName","src":"2094:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2078:33:21"},"returnParameters":{"id":33163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33171,"src":"2150:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33161,"name":"bool","nodeType":"ElementaryTypeName","src":"2150:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2149:6:21"},"scope":33643,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":33174,"nodeType":"VariableDeclaration","src":"2473:24:21","nodes":[],"constant":false,"documentation":{"id":33172,"nodeType":"StructuredDocumentation","src":"2401:67:21","text":"@dev A bool to track whether the contract has been initialized."},"mutability":"mutable","name":"initialized","nameLocation":"2486:11:21","scope":33643,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33173,"name":"bool","nodeType":"ElementaryTypeName","src":"2473:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":33201,"nodeType":"FunctionDefinition","src":"2706:212:21","nodes":[],"body":{"id":33200,"nodeType":"Block","src":"2777:141:21","nodes":[],"statements":[{"expression":{"arguments":[{"id":33184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2795:12:21","subExpression":{"id":33183,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33174,"src":"2796:11:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"414c52454144595f494e495449414c495a4544","id":33185,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2809:21:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_241395e6b20092ec3fd5dfc22ea70fc2615c08854b7fd10fb3028d965cf738f3","typeString":"literal_string \"ALREADY_INITIALIZED\""},"value":"ALREADY_INITIALIZED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_241395e6b20092ec3fd5dfc22ea70fc2615c08854b7fd10fb3028d965cf738f3","typeString":"literal_string \"ALREADY_INITIALIZED\""}],"id":33182,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2787:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2787:44:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33187,"nodeType":"ExpressionStatement","src":"2787:44:21"},{"expression":{"id":33190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33188,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33047,"src":"2842:5:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33189,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33177,"src":"2850:5:21","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2842:13:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":33191,"nodeType":"ExpressionStatement","src":"2842:13:21"},{"expression":{"id":33194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33192,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33049,"src":"2865:7:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33193,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33179,"src":"2875:7:21","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2865:17:21","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":33195,"nodeType":"ExpressionStatement","src":"2865:17:21"},{"expression":{"id":33198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33196,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33174,"src":"2893:11:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":33197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2907:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2893:18:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33199,"nodeType":"ExpressionStatement","src":"2893:18:21"}]},"documentation":{"id":33175,"nodeType":"StructuredDocumentation","src":"2504:197:21","text":"@dev To hide constructor warnings across solc versions due to different constructor visibility requirements and\n syntaxes, we add an initialization function that can be called only once."},"functionSelector":"4cd88b76","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"2715:10:21","parameters":{"id":33180,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33177,"mutability":"mutable","name":"name_","nameLocation":"2740:5:21","nodeType":"VariableDeclaration","scope":33201,"src":"2726:19:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":33176,"name":"string","nodeType":"ElementaryTypeName","src":"2726:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":33179,"mutability":"mutable","name":"symbol_","nameLocation":"2761:7:21","nodeType":"VariableDeclaration","scope":33201,"src":"2747:21:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":33178,"name":"string","nodeType":"ElementaryTypeName","src":"2747:6:21","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2725:44:21"},"returnParameters":{"id":33181,"nodeType":"ParameterList","parameters":[],"src":"2777:0:21"},"scope":33643,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":33243,"nodeType":"FunctionDefinition","src":"3106:301:21","nodes":[],"body":{"id":33242,"nodeType":"Block","src":"3184:223:21","nodes":[],"statements":[{"assignments":[33210],"declarations":[{"constant":false,"id":33210,"mutability":"mutable","name":"owner","nameLocation":"3202:5:21","nodeType":"VariableDeclaration","scope":33242,"src":"3194:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33209,"name":"address","nodeType":"ElementaryTypeName","src":"3194:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":33214,"initialValue":{"baseExpression":{"id":33211,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33080,"src":"3210:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33213,"indexExpression":{"id":33212,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33205,"src":"3219:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3210:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3194:28:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":33216,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3241:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3245:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3241:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":33218,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33210,"src":"3255:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3241:19:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"baseExpression":{"baseExpression":{"id":33220,"name":"_isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33141,"src":"3264:17:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":33222,"indexExpression":{"id":33221,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33210,"src":"3282:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3264:24:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":33225,"indexExpression":{"expression":{"id":33223,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3289:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3293:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3289:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3264:36:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3241:59:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e4f545f415554484f52495a4544","id":33227,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3302:16:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4","typeString":"literal_string \"NOT_AUTHORIZED\""},"value":"NOT_AUTHORIZED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4","typeString":"literal_string \"NOT_AUTHORIZED\""}],"id":33215,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3233:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3233:86:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33229,"nodeType":"ExpressionStatement","src":"3233:86:21"},{"expression":{"id":33234,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33230,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33135,"src":"3330:12:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33232,"indexExpression":{"id":33231,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33205,"src":"3343:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3330:16:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33233,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33203,"src":"3349:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3330:26:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":33235,"nodeType":"ExpressionStatement","src":"3330:26:21"},{"eventCall":{"arguments":[{"id":33237,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33210,"src":"3381:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33238,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33203,"src":"3388:7:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33239,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33205,"src":"3397:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33236,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32138,"src":"3372:8:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":33240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3372:28:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33241,"nodeType":"EmitStatement","src":"3367:33:21"}]},"baseFunctions":[32203],"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3115:7:21","overrides":{"id":33207,"nodeType":"OverrideSpecifier","overrides":[],"src":"3175:8:21"},"parameters":{"id":33206,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33203,"mutability":"mutable","name":"spender","nameLocation":"3131:7:21","nodeType":"VariableDeclaration","scope":33243,"src":"3123:15:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33202,"name":"address","nodeType":"ElementaryTypeName","src":"3123:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33205,"mutability":"mutable","name":"id","nameLocation":"3148:2:21","nodeType":"VariableDeclaration","scope":33243,"src":"3140:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33204,"name":"uint256","nodeType":"ElementaryTypeName","src":"3140:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3122:29:21"},"returnParameters":{"id":33208,"nodeType":"ParameterList","parameters":[],"src":"3184:0:21"},"scope":33643,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":33268,"nodeType":"FunctionDefinition","src":"3413:213:21","nodes":[],"body":{"id":33267,"nodeType":"Block","src":"3497:129:21","nodes":[],"statements":[{"expression":{"id":33258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":33251,"name":"_isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33141,"src":"3507:17:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":33255,"indexExpression":{"expression":{"id":33252,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3525:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3529:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3525:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3507:29:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":33256,"indexExpression":{"id":33254,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33245,"src":"3537:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3507:39:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33257,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33247,"src":"3549:8:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3507:50:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33259,"nodeType":"ExpressionStatement","src":"3507:50:21"},{"eventCall":{"arguments":[{"expression":{"id":33261,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3588:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3592:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3588:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33263,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33245,"src":"3600:8:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33264,"name":"approved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33247,"src":"3610:8:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":33260,"name":"ApprovalForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32147,"src":"3573:14:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_bool_$returns$__$","typeString":"function (address,address,bool)"}},"id":33265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3573:46:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33266,"nodeType":"EmitStatement","src":"3568:51:21"}]},"baseFunctions":[32211],"functionSelector":"a22cb465","implemented":true,"kind":"function","modifiers":[],"name":"setApprovalForAll","nameLocation":"3422:17:21","overrides":{"id":33249,"nodeType":"OverrideSpecifier","overrides":[],"src":"3488:8:21"},"parameters":{"id":33248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33245,"mutability":"mutable","name":"operator","nameLocation":"3448:8:21","nodeType":"VariableDeclaration","scope":33268,"src":"3440:16:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33244,"name":"address","nodeType":"ElementaryTypeName","src":"3440:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33247,"mutability":"mutable","name":"approved","nameLocation":"3463:8:21","nodeType":"VariableDeclaration","scope":33268,"src":"3458:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33246,"name":"bool","nodeType":"ElementaryTypeName","src":"3458:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3439:33:21"},"returnParameters":{"id":33250,"nodeType":"ParameterList","parameters":[],"src":"3497:0:21"},"scope":33643,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":33347,"nodeType":"FunctionDefinition","src":"3632:693:21","nodes":[],"body":{"id":33346,"nodeType":"Block","src":"3724:601:21","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33279,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33270,"src":"3742:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":33280,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33080,"src":"3750:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33282,"indexExpression":{"id":33281,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33274,"src":"3759:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3750:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3742:20:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"57524f4e475f46524f4d","id":33284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3764:12:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_f70366941d4d371c05a2457cbc0f4d05a3d6bc57ab01a7c3338bfed233eebe93","typeString":"literal_string \"WRONG_FROM\""},"value":"WRONG_FROM"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f70366941d4d371c05a2457cbc0f4d05a3d6bc57ab01a7c3338bfed233eebe93","typeString":"literal_string \"WRONG_FROM\""}],"id":33278,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3734:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3734:43:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33286,"nodeType":"ExpressionStatement","src":"3734:43:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33288,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33272,"src":"3796:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":33291,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3810:1:21","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":33290,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3802:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33289,"name":"address","nodeType":"ElementaryTypeName","src":"3802:7:21","typeDescriptions":{}}},"id":33292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3802:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3796:16:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f524543495049454e54","id":33294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3814:19:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e7bf34c5f9e77c6f415365fc02ea1195419ccebda18d14265f0c098f3687483","typeString":"literal_string \"INVALID_RECIPIENT\""},"value":"INVALID_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5e7bf34c5f9e77c6f415365fc02ea1195419ccebda18d14265f0c098f3687483","typeString":"literal_string \"INVALID_RECIPIENT\""}],"id":33287,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3788:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3788:46:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33296,"nodeType":"ExpressionStatement","src":"3788:46:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":33298,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3866:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33299,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3870:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3866:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":33300,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33270,"src":"3880:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3866:18:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"baseExpression":{"baseExpression":{"id":33302,"name":"_isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33141,"src":"3888:17:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":33304,"indexExpression":{"id":33303,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33270,"src":"3906:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3888:23:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":33307,"indexExpression":{"expression":{"id":33305,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3912:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3916:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3912:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3888:35:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3866:57:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":33309,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3927:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33310,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3931:6:21","memberName":"sender","nodeType":"MemberAccess","src":"3927:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"baseExpression":{"id":33311,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33135,"src":"3941:12:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33313,"indexExpression":{"id":33312,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33274,"src":"3954:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3941:16:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3927:30:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3866:91:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e4f545f415554484f52495a4544","id":33316,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3971:16:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4","typeString":"literal_string \"NOT_AUTHORIZED\""},"value":"NOT_AUTHORIZED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e7e213d5e2bee0acc2c7bf8bfda19ef0cae82e7b8c997e7e898919269971e7c4","typeString":"literal_string \"NOT_AUTHORIZED\""}],"id":33297,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3845:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3845:152:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33318,"nodeType":"ExpressionStatement","src":"3845:152:21"},{"expression":{"id":33322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"4173:18:21","subExpression":{"baseExpression":{"id":33319,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33084,"src":"4173:10:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":33321,"indexExpression":{"id":33320,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33270,"src":"4184:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4173:16:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33323,"nodeType":"ExpressionStatement","src":"4173:18:21"},{"expression":{"id":33327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4202:16:21","subExpression":{"baseExpression":{"id":33324,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33084,"src":"4202:10:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":33326,"indexExpression":{"id":33325,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33272,"src":"4213:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4202:14:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33328,"nodeType":"ExpressionStatement","src":"4202:16:21"},{"expression":{"id":33333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33329,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33080,"src":"4229:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33331,"indexExpression":{"id":33330,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33274,"src":"4238:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4229:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33332,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33272,"src":"4244:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4229:17:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":33334,"nodeType":"ExpressionStatement","src":"4229:17:21"},{"expression":{"id":33338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"4257:23:21","subExpression":{"baseExpression":{"id":33335,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33135,"src":"4264:12:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33337,"indexExpression":{"id":33336,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33274,"src":"4277:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"4264:16:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33339,"nodeType":"ExpressionStatement","src":"4257:23:21"},{"eventCall":{"arguments":[{"id":33341,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33270,"src":"4305:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33342,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33272,"src":"4311:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33343,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33274,"src":"4315:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33340,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32129,"src":"4296:8:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":33344,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4296:22:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33345,"nodeType":"EmitStatement","src":"4291:27:21"}]},"baseFunctions":[32195],"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3641:12:21","overrides":{"id":33276,"nodeType":"OverrideSpecifier","overrides":[],"src":"3715:8:21"},"parameters":{"id":33275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33270,"mutability":"mutable","name":"from","nameLocation":"3662:4:21","nodeType":"VariableDeclaration","scope":33347,"src":"3654:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33269,"name":"address","nodeType":"ElementaryTypeName","src":"3654:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33272,"mutability":"mutable","name":"to","nameLocation":"3676:2:21","nodeType":"VariableDeclaration","scope":33347,"src":"3668:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33271,"name":"address","nodeType":"ElementaryTypeName","src":"3668:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33274,"mutability":"mutable","name":"id","nameLocation":"3688:2:21","nodeType":"VariableDeclaration","scope":33347,"src":"3680:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33273,"name":"uint256","nodeType":"ElementaryTypeName","src":"3680:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3653:38:21"},"returnParameters":{"id":33277,"nodeType":"ParameterList","parameters":[],"src":"3724:0:21"},"scope":33643,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":33387,"nodeType":"FunctionDefinition","src":"4331:386:21","nodes":[],"body":{"id":33386,"nodeType":"Block","src":"4427:290:21","nodes":[],"statements":[{"expression":{"arguments":[{"id":33358,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33349,"src":"4450:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33359,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33351,"src":"4456:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33360,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33353,"src":"4460:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33357,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33347,"src":"4437:12:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":33361,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4437:26:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33362,"nodeType":"ExpressionStatement","src":"4437:26:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4495:16:21","subExpression":{"arguments":[{"id":33365,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33351,"src":"4508:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33364,"name":"_isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33642,"src":"4496:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":33366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4496:15:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":33372,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4573:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4577:6:21","memberName":"sender","nodeType":"MemberAccess","src":"4573:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33374,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33349,"src":"4585:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33375,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33353,"src":"4591:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":33376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4595:2:21","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 \"\""}],"expression":{"arguments":[{"id":33369,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33351,"src":"4552:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33368,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33657,"src":"4531:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33657_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4531:24:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721TokenReceiver_$33657","typeString":"contract IERC721TokenReceiver"}},"id":33371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4556:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33656,"src":"4531:41:21","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":33377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4531:67:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":33378,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33657,"src":"4622:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33657_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4643:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33656,"src":"4622:37:21","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721TokenReceiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":33380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4660:8:21","memberName":"selector","nodeType":"MemberAccess","src":"4622:46:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4531:137:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4495:173:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554e534146455f524543495049454e54","id":33383,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4682:18:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""},"value":"UNSAFE_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""}],"id":33363,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4474:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4474:236:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33385,"nodeType":"ExpressionStatement","src":"4474:236:21"}]},"baseFunctions":[32185],"functionSelector":"42842e0e","implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"4340:16:21","overrides":{"id":33355,"nodeType":"OverrideSpecifier","overrides":[],"src":"4418:8:21"},"parameters":{"id":33354,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33349,"mutability":"mutable","name":"from","nameLocation":"4365:4:21","nodeType":"VariableDeclaration","scope":33387,"src":"4357:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33348,"name":"address","nodeType":"ElementaryTypeName","src":"4357:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33351,"mutability":"mutable","name":"to","nameLocation":"4379:2:21","nodeType":"VariableDeclaration","scope":33387,"src":"4371:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33350,"name":"address","nodeType":"ElementaryTypeName","src":"4371:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33353,"mutability":"mutable","name":"id","nameLocation":"4391:2:21","nodeType":"VariableDeclaration","scope":33387,"src":"4383:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33352,"name":"uint256","nodeType":"ElementaryTypeName","src":"4383:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4356:38:21"},"returnParameters":{"id":33356,"nodeType":"ParameterList","parameters":[],"src":"4427:0:21"},"scope":33643,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":33429,"nodeType":"FunctionDefinition","src":"4723:443:21","nodes":[],"body":{"id":33428,"nodeType":"Block","src":"4874:292:21","nodes":[],"statements":[{"expression":{"arguments":[{"id":33400,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33389,"src":"4897:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33401,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33391,"src":"4903:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33402,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33393,"src":"4907:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33399,"name":"transferFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33347,"src":"4884:12:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":33403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4884:26:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33404,"nodeType":"ExpressionStatement","src":"4884:26:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4942:16:21","subExpression":{"arguments":[{"id":33407,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33391,"src":"4955:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33406,"name":"_isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33642,"src":"4943:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":33408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4943:15:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33423,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":33414,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5020:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5024:6:21","memberName":"sender","nodeType":"MemberAccess","src":"5020:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33416,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33389,"src":"5032:4:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33417,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33393,"src":"5038:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33418,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33395,"src":"5042:4:21","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":33411,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33391,"src":"4999:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33410,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33657,"src":"4978:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33657_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33412,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4978:24:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721TokenReceiver_$33657","typeString":"contract IERC721TokenReceiver"}},"id":33413,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5003:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33656,"src":"4978:41:21","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":33419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4978:69:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":33420,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33657,"src":"5071:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33657_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33421,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5092:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33656,"src":"5071:37:21","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721TokenReceiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":33422,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5109:8:21","memberName":"selector","nodeType":"MemberAccess","src":"5071:46:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"4978:139:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4942:175:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554e534146455f524543495049454e54","id":33425,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5131:18:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""},"value":"UNSAFE_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""}],"id":33405,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4921:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33426,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4921:238:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33427,"nodeType":"ExpressionStatement","src":"4921:238:21"}]},"baseFunctions":[32175],"functionSelector":"b88d4fde","implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"4732:16:21","overrides":{"id":33397,"nodeType":"OverrideSpecifier","overrides":[],"src":"4861:8:21"},"parameters":{"id":33396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33389,"mutability":"mutable","name":"from","nameLocation":"4757:4:21","nodeType":"VariableDeclaration","scope":33429,"src":"4749:12:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33388,"name":"address","nodeType":"ElementaryTypeName","src":"4749:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33391,"mutability":"mutable","name":"to","nameLocation":"4771:2:21","nodeType":"VariableDeclaration","scope":33429,"src":"4763:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33390,"name":"address","nodeType":"ElementaryTypeName","src":"4763:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33393,"mutability":"mutable","name":"id","nameLocation":"4783:2:21","nodeType":"VariableDeclaration","scope":33429,"src":"4775:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33392,"name":"uint256","nodeType":"ElementaryTypeName","src":"4775:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33395,"mutability":"mutable","name":"data","nameLocation":"4800:4:21","nodeType":"VariableDeclaration","scope":33429,"src":"4787:17:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":33394,"name":"bytes","nodeType":"ElementaryTypeName","src":"4787:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"4748:57:21"},"returnParameters":{"id":33398,"nodeType":"ParameterList","parameters":[],"src":"4874:0:21"},"scope":33643,"stateMutability":"payable","virtual":true,"visibility":"public"},{"id":33450,"nodeType":"FunctionDefinition","src":"5354:332:21","nodes":[],"body":{"id":33449,"nodeType":"Block","src":"5445:241:21","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33437,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33431,"src":"5462:11:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783031666663396137","id":33438,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5477:10:21","typeDescriptions":{"typeIdentifier":"t_rational_33540519_by_1","typeString":"int_const 33540519"},"value":"0x01ffc9a7"},"src":"5462:25:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33442,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33440,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33431,"src":"5537:11:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783830616335386364","id":33441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5552:10:21","typeDescriptions":{"typeIdentifier":"t_rational_2158778573_by_1","typeString":"int_const 2158778573"},"value":"0x80ac58cd"},"src":"5537:25:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5462:100:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33444,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33431,"src":"5612:11:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30783562356531333966","id":33445,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5627:10:21","typeDescriptions":{"typeIdentifier":"t_rational_1532892063_by_1","typeString":"int_const 1532892063"},"value":"0x5b5e139f"},"src":"5612:25:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5462:175:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":33436,"id":33448,"nodeType":"Return","src":"5455:182:21"}]},"baseFunctions":[32017],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"5363:17:21","overrides":{"id":33433,"nodeType":"OverrideSpecifier","overrides":[],"src":"5421:8:21"},"parameters":{"id":33432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33431,"mutability":"mutable","name":"interfaceId","nameLocation":"5388:11:21","nodeType":"VariableDeclaration","scope":33450,"src":"5381:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":33430,"name":"bytes4","nodeType":"ElementaryTypeName","src":"5381:6:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"5380:20:21"},"returnParameters":{"id":33436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33435,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33450,"src":"5439:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33434,"name":"bool","nodeType":"ElementaryTypeName","src":"5439:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5438:6:21"},"scope":33643,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":33500,"nodeType":"FunctionDefinition","src":"5880:338:21","nodes":[],"body":{"id":33499,"nodeType":"Block","src":"5936:282:21","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33458,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33452,"src":"5954:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":33461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5968:1:21","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":33460,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5960:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33459,"name":"address","nodeType":"ElementaryTypeName","src":"5960:7:21","typeDescriptions":{}}},"id":33462,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5960:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5954:16:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f524543495049454e54","id":33464,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5972:19:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_5e7bf34c5f9e77c6f415365fc02ea1195419ccebda18d14265f0c098f3687483","typeString":"literal_string \"INVALID_RECIPIENT\""},"value":"INVALID_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_5e7bf34c5f9e77c6f415365fc02ea1195419ccebda18d14265f0c098f3687483","typeString":"literal_string \"INVALID_RECIPIENT\""}],"id":33457,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5946:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5946:46:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33466,"nodeType":"ExpressionStatement","src":"5946:46:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33475,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":33468,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33080,"src":"6011:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33470,"indexExpression":{"id":33469,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33454,"src":"6020:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6011:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":33473,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6035:1:21","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":33472,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6027:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33471,"name":"address","nodeType":"ElementaryTypeName","src":"6027:7:21","typeDescriptions":{}}},"id":33474,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6027:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6011:26:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"414c52454144595f4d494e544544","id":33476,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6039:16:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_e3f56786f4dc15ea567a5bcea1aa6e11424106cac78b0acf41b1b7deccad9f1b","typeString":"literal_string \"ALREADY_MINTED\""},"value":"ALREADY_MINTED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e3f56786f4dc15ea567a5bcea1aa6e11424106cac78b0acf41b1b7deccad9f1b","typeString":"literal_string \"ALREADY_MINTED\""}],"id":33467,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6003:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6003:53:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33478,"nodeType":"ExpressionStatement","src":"6003:53:21"},{"expression":{"id":33482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"6123:16:21","subExpression":{"baseExpression":{"id":33479,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33084,"src":"6123:10:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":33481,"indexExpression":{"id":33480,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33452,"src":"6134:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6123:14:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33483,"nodeType":"ExpressionStatement","src":"6123:16:21"},{"expression":{"id":33488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33484,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33080,"src":"6150:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33486,"indexExpression":{"id":33485,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33454,"src":"6159:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6150:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33487,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33452,"src":"6165:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6150:17:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":33489,"nodeType":"ExpressionStatement","src":"6150:17:21"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":33493,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6200:1:21","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":33492,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6192:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33491,"name":"address","nodeType":"ElementaryTypeName","src":"6192:7:21","typeDescriptions":{}}},"id":33494,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6192:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33495,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33452,"src":"6204:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33496,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33454,"src":"6208:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33490,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32129,"src":"6183:8:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":33497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6183:28:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33498,"nodeType":"EmitStatement","src":"6178:33:21"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"5889:5:21","parameters":{"id":33455,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33452,"mutability":"mutable","name":"to","nameLocation":"5903:2:21","nodeType":"VariableDeclaration","scope":33500,"src":"5895:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33451,"name":"address","nodeType":"ElementaryTypeName","src":"5895:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33454,"mutability":"mutable","name":"id","nameLocation":"5915:2:21","nodeType":"VariableDeclaration","scope":33500,"src":"5907:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33453,"name":"uint256","nodeType":"ElementaryTypeName","src":"5907:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5894:24:21"},"returnParameters":{"id":33456,"nodeType":"ParameterList","parameters":[],"src":"5936:0:21"},"scope":33643,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":33546,"nodeType":"FunctionDefinition","src":"6224:283:21","nodes":[],"body":{"id":33545,"nodeType":"Block","src":"6268:239:21","nodes":[],"statements":[{"assignments":[33506],"declarations":[{"constant":false,"id":33506,"mutability":"mutable","name":"owner","nameLocation":"6286:5:21","nodeType":"VariableDeclaration","scope":33545,"src":"6278:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33505,"name":"address","nodeType":"ElementaryTypeName","src":"6278:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":33510,"initialValue":{"baseExpression":{"id":33507,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33080,"src":"6294:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33509,"indexExpression":{"id":33508,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33502,"src":"6303:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6294:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6278:28:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33512,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33506,"src":"6325:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":33515,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6342:1:21","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":33514,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6334:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33513,"name":"address","nodeType":"ElementaryTypeName","src":"6334:7:21","typeDescriptions":{}}},"id":33516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6334:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6325:19:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e4f545f4d494e544544","id":33518,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6346:12:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_e904b298bc24890ae0c043938d840f08b90773c1635904efe1336d6f851f98ca","typeString":"literal_string \"NOT_MINTED\""},"value":"NOT_MINTED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e904b298bc24890ae0c043938d840f08b90773c1635904efe1336d6f851f98ca","typeString":"literal_string \"NOT_MINTED\""}],"id":33511,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6317:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6317:42:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33520,"nodeType":"ExpressionStatement","src":"6317:42:21"},{"expression":{"id":33524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"--","prefix":false,"src":"6370:19:21","subExpression":{"baseExpression":{"id":33521,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33084,"src":"6370:10:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":33523,"indexExpression":{"id":33522,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33506,"src":"6381:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6370:17:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":33525,"nodeType":"ExpressionStatement","src":"6370:19:21"},{"expression":{"id":33529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6400:19:21","subExpression":{"baseExpression":{"id":33526,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33080,"src":"6407:8:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33528,"indexExpression":{"id":33527,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33502,"src":"6416:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6407:12:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33530,"nodeType":"ExpressionStatement","src":"6400:19:21"},{"expression":{"id":33534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"6430:23:21","subExpression":{"baseExpression":{"id":33531,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33135,"src":"6437:12:21","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33533,"indexExpression":{"id":33532,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33502,"src":"6450:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6437:16:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33535,"nodeType":"ExpressionStatement","src":"6430:23:21"},{"eventCall":{"arguments":[{"id":33537,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33506,"src":"6478:5:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":33540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6493:1:21","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":33539,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6485:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33538,"name":"address","nodeType":"ElementaryTypeName","src":"6485:7:21","typeDescriptions":{}}},"id":33541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6485:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33542,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33502,"src":"6497:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33536,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32129,"src":"6469:8:21","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":33543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6469:31:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33544,"nodeType":"EmitStatement","src":"6464:36:21"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"6233:5:21","parameters":{"id":33503,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33502,"mutability":"mutable","name":"id","nameLocation":"6247:2:21","nodeType":"VariableDeclaration","scope":33546,"src":"6239:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33501,"name":"uint256","nodeType":"ElementaryTypeName","src":"6239:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6238:12:21"},"returnParameters":{"id":33504,"nodeType":"ParameterList","parameters":[],"src":"6268:0:21"},"scope":33643,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":33585,"nodeType":"FunctionDefinition","src":"6701:343:21","nodes":[],"body":{"id":33584,"nodeType":"Block","src":"6761:283:21","nodes":[],"statements":[{"expression":{"arguments":[{"id":33554,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33548,"src":"6777:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33555,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33550,"src":"6781:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33553,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33500,"src":"6771:5:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":33556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6771:13:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33557,"nodeType":"ExpressionStatement","src":"6771:13:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33562,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6816:16:21","subExpression":{"arguments":[{"id":33560,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33548,"src":"6829:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33559,"name":"_isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33642,"src":"6817:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":33561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6817:15:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":33567,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6894:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6898:6:21","memberName":"sender","nodeType":"MemberAccess","src":"6894:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":33571,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6914:1:21","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":33570,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6906:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33569,"name":"address","nodeType":"ElementaryTypeName","src":"6906:7:21","typeDescriptions":{}}},"id":33572,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6906:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33573,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33550,"src":"6918:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"","id":33574,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6922:2:21","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 \"\""}],"expression":{"arguments":[{"id":33564,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33548,"src":"6873:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33563,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33657,"src":"6852:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33657_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6852:24:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721TokenReceiver_$33657","typeString":"contract IERC721TokenReceiver"}},"id":33566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6877:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33656,"src":"6852:41:21","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":33575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6852:73:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":33576,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33657,"src":"6949:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33657_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33577,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6970:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33656,"src":"6949:37:21","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721TokenReceiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":33578,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6987:8:21","memberName":"selector","nodeType":"MemberAccess","src":"6949:46:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"6852:143:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6816:179:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554e534146455f524543495049454e54","id":33581,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7009:18:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""},"value":"UNSAFE_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""}],"id":33558,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6795:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33582,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6795:242:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33583,"nodeType":"ExpressionStatement","src":"6795:242:21"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"6710:9:21","parameters":{"id":33551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33548,"mutability":"mutable","name":"to","nameLocation":"6728:2:21","nodeType":"VariableDeclaration","scope":33585,"src":"6720:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33547,"name":"address","nodeType":"ElementaryTypeName","src":"6720:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33550,"mutability":"mutable","name":"id","nameLocation":"6740:2:21","nodeType":"VariableDeclaration","scope":33585,"src":"6732:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33549,"name":"uint256","nodeType":"ElementaryTypeName","src":"6732:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6719:24:21"},"returnParameters":{"id":33552,"nodeType":"ParameterList","parameters":[],"src":"6761:0:21"},"scope":33643,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":33626,"nodeType":"FunctionDefinition","src":"7050:364:21","nodes":[],"body":{"id":33625,"nodeType":"Block","src":"7129:285:21","nodes":[],"statements":[{"expression":{"arguments":[{"id":33595,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33587,"src":"7145:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33596,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33589,"src":"7149:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33594,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33500,"src":"7139:5:21","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":33597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7139:13:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33598,"nodeType":"ExpressionStatement","src":"7139:13:21"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"7184:16:21","subExpression":{"arguments":[{"id":33601,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33587,"src":"7197:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33600,"name":"_isContract","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33642,"src":"7185:11:21","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":33602,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7185:15:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":33620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"id":33608,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"7262:3:21","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7266:6:21","memberName":"sender","nodeType":"MemberAccess","src":"7262:10:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":33612,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7282:1:21","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":33611,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7274:7:21","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33610,"name":"address","nodeType":"ElementaryTypeName","src":"7274:7:21","typeDescriptions":{}}},"id":33613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7274:10:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33614,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33589,"src":"7286:2:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":33615,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33591,"src":"7290:4:21","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":33605,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33587,"src":"7241:2:21","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":33604,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33657,"src":"7220:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33657_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7220:24:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC721TokenReceiver_$33657","typeString":"contract IERC721TokenReceiver"}},"id":33607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7245:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33656,"src":"7220:41:21","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":33616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7220:75:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":33617,"name":"IERC721TokenReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33657,"src":"7319:20:21","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC721TokenReceiver_$33657_$","typeString":"type(contract IERC721TokenReceiver)"}},"id":33618,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7340:16:21","memberName":"onERC721Received","nodeType":"MemberAccess","referencedDeclaration":33656,"src":"7319:37:21","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bytes_calldata_ptr_$returns$_t_bytes4_$","typeString":"function IERC721TokenReceiver.onERC721Received(address,address,uint256,bytes calldata) returns (bytes4)"}},"id":33619,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7357:8:21","memberName":"selector","nodeType":"MemberAccess","src":"7319:46:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"7220:145:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"7184:181:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"554e534146455f524543495049454e54","id":33622,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7379:18:21","typeDescriptions":{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""},"value":"UNSAFE_RECIPIENT"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_91aca405bce635db2380c779628055bea528973696064aeec59f909f41accf6d","typeString":"literal_string \"UNSAFE_RECIPIENT\""}],"id":33599,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7163:7:21","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7163:244:21","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33624,"nodeType":"ExpressionStatement","src":"7163:244:21"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_safeMint","nameLocation":"7059:9:21","parameters":{"id":33592,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33587,"mutability":"mutable","name":"to","nameLocation":"7077:2:21","nodeType":"VariableDeclaration","scope":33626,"src":"7069:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33586,"name":"address","nodeType":"ElementaryTypeName","src":"7069:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33589,"mutability":"mutable","name":"id","nameLocation":"7089:2:21","nodeType":"VariableDeclaration","scope":33626,"src":"7081:10:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33588,"name":"uint256","nodeType":"ElementaryTypeName","src":"7081:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33591,"mutability":"mutable","name":"data","nameLocation":"7106:4:21","nodeType":"VariableDeclaration","scope":33626,"src":"7093:17:21","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":33590,"name":"bytes","nodeType":"ElementaryTypeName","src":"7093:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7068:43:21"},"returnParameters":{"id":33593,"nodeType":"ParameterList","parameters":[],"src":"7129:0:21"},"scope":33643,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":33642,"nodeType":"FunctionDefinition","src":"7599:278:21","nodes":[],"body":{"id":33641,"nodeType":"Block","src":"7663:214:21","nodes":[],"statements":[{"assignments":[33634],"declarations":[{"constant":false,"id":33634,"mutability":"mutable","name":"codeLength","nameLocation":"7681:10:21","nodeType":"VariableDeclaration","scope":33641,"src":"7673:18:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33633,"name":"uint256","nodeType":"ElementaryTypeName","src":"7673:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":33635,"nodeType":"VariableDeclarationStatement","src":"7673:18:21"},{"AST":{"nativeSrc":"7783:56:21","nodeType":"YulBlock","src":"7783:56:21","statements":[{"nativeSrc":"7797:32:21","nodeType":"YulAssignment","src":"7797:32:21","value":{"arguments":[{"name":"_addr","nativeSrc":"7823:5:21","nodeType":"YulIdentifier","src":"7823:5:21"}],"functionName":{"name":"extcodesize","nativeSrc":"7811:11:21","nodeType":"YulIdentifier","src":"7811:11:21"},"nativeSrc":"7811:18:21","nodeType":"YulFunctionCall","src":"7811:18:21"},"variableNames":[{"name":"codeLength","nativeSrc":"7797:10:21","nodeType":"YulIdentifier","src":"7797:10:21"}]}]},"evmVersion":"cancun","externalReferences":[{"declaration":33628,"isOffset":false,"isSlot":false,"src":"7823:5:21","valueSize":1},{"declaration":33634,"isOffset":false,"isSlot":false,"src":"7797:10:21","valueSize":1}],"id":33636,"nodeType":"InlineAssembly","src":"7774:65:21"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":33639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33637,"name":"codeLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33634,"src":"7856:10:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":33638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7869:1:21","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"7856:14:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":33632,"id":33640,"nodeType":"Return","src":"7849:21:21"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isContract","nameLocation":"7608:11:21","parameters":{"id":33629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33628,"mutability":"mutable","name":"_addr","nameLocation":"7628:5:21","nodeType":"VariableDeclaration","scope":33642,"src":"7620:13:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33627,"name":"address","nodeType":"ElementaryTypeName","src":"7620:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7619:15:21"},"returnParameters":{"id":33632,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33631,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33642,"src":"7657:4:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33630,"name":"bool","nodeType":"ElementaryTypeName","src":"7657:4:21","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"7656:6:21"},"scope":33643,"stateMutability":"view","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":33044,"name":"IERC721Metadata","nameLocations":["404:15:21"],"nodeType":"IdentifierPath","referencedDeclaration":32270,"src":"404:15:21"},"id":33045,"nodeType":"InheritanceSpecifier","src":"404:15:21"}],"canonicalName":"MockERC721","contractDependencies":[],"contractKind":"contract","documentation":{"id":33043,"nodeType":"StructuredDocumentation","src":"125:256:21","text":"@notice This is a mock contract of the ERC721 standard for testing purposes only, it SHOULD NOT be used in production.\n @dev Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC721.sol"},"fullyImplemented":true,"linearizedBaseContracts":[33643,32270,32230,32018],"name":"MockERC721","nameLocation":"390:10:21","scope":33658,"usedErrors":[],"usedEvents":[32129,32138,32147]},{"id":33657,"nodeType":"ContractDefinition","src":"7881:134:21","nodes":[{"id":33656,"nodeType":"FunctionDefinition","src":"7918:95:21","nodes":[],"functionSelector":"150b7a02","implemented":false,"kind":"function","modifiers":[],"name":"onERC721Received","nameLocation":"7927:16:21","parameters":{"id":33652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33645,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33656,"src":"7944:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33644,"name":"address","nodeType":"ElementaryTypeName","src":"7944:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33647,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33656,"src":"7953:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33646,"name":"address","nodeType":"ElementaryTypeName","src":"7953:7:21","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33649,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33656,"src":"7962:7:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33648,"name":"uint256","nodeType":"ElementaryTypeName","src":"7962:7:21","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":33651,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33656,"src":"7971:14:21","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_bytes_calldata_ptr","typeString":"bytes"},"typeName":{"id":33650,"name":"bytes","nodeType":"ElementaryTypeName","src":"7971:5:21","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7943:43:21"},"returnParameters":{"id":33655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33654,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33656,"src":"8005:6:21","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":33653,"name":"bytes4","nodeType":"ElementaryTypeName","src":"8005:6:21","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"8004:8:21"},"scope":33657,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC721TokenReceiver","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[33657],"name":"IERC721TokenReceiver","nameLocation":"7891:20:21","scope":33658,"usedErrors":[],"usedEvents":[]}],"license":"MIT"},"id":21}