UNPKG

@tokamak-network/thanos-contracts

Version:
1 lines 152 kB
{"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.15+commit.e14f2714\"},\"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\":\"london\",\"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.15+commit.e14f2714"},"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":"london","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":34151,"exportedSymbols":{"IERC721Metadata":[32763],"IERC721TokenReceiver":[34150],"MockERC721":[34136]},"nodeType":"SourceUnit","src":"32:7984:27","nodes":[{"id":33533,"nodeType":"PragmaDirective","src":"32:31:27","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":33535,"nodeType":"ImportDirective","src":"65:58:27","nodes":[],"absolutePath":"lib/forge-std/src/interfaces/IERC721.sol","file":"../interfaces/IERC721.sol","nameLocation":"-1:-1:-1","scope":34151,"sourceUnit":32792,"symbolAliases":[{"foreign":{"id":33534,"name":"IERC721Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32763,"src":"73:15:27","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":34136,"nodeType":"ContractDefinition","src":"381:7498:27","nodes":[{"id":33540,"nodeType":"VariableDeclaration","src":"613:21:27","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"629:5:27","scope":34136,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":33539,"name":"string","nodeType":"ElementaryTypeName","src":"613:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":33542,"nodeType":"VariableDeclaration","src":"641:23:27","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"657:7:27","scope":34136,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":33541,"name":"string","nodeType":"ElementaryTypeName","src":"641:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":33551,"nodeType":"FunctionDefinition","src":"671:92:27","nodes":[],"body":{"id":33550,"nodeType":"Block","src":"734:29:27","nodes":[],"statements":[{"expression":{"id":33548,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33540,"src":"751:5:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":33547,"id":33549,"nodeType":"Return","src":"744:12:27"}]},"baseFunctions":[32748],"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"680:4:27","overrides":{"id":33544,"nodeType":"OverrideSpecifier","overrides":[],"src":"701:8:27"},"parameters":{"id":33543,"nodeType":"ParameterList","parameters":[],"src":"684:2:27"},"returnParameters":{"id":33547,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33546,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33551,"src":"719:13:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":33545,"name":"string","nodeType":"ElementaryTypeName","src":"719:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"718:15:27"},"scope":34136,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":33560,"nodeType":"FunctionDefinition","src":"769:96:27","nodes":[],"body":{"id":33559,"nodeType":"Block","src":"834:31:27","nodes":[],"statements":[{"expression":{"id":33557,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33542,"src":"851:7:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":33556,"id":33558,"nodeType":"Return","src":"844:14:27"}]},"baseFunctions":[32754],"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"778:6:27","overrides":{"id":33553,"nodeType":"OverrideSpecifier","overrides":[],"src":"801:8:27"},"parameters":{"id":33552,"nodeType":"ParameterList","parameters":[],"src":"784:2:27"},"returnParameters":{"id":33556,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33555,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33560,"src":"819:13:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":33554,"name":"string","nodeType":"ElementaryTypeName","src":"819:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"818:15:27"},"scope":34136,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":33569,"nodeType":"FunctionDefinition","src":"871:85:27","nodes":[],"body":{"id":33568,"nodeType":"Block","src":"954:2:27","nodes":[],"statements":[]},"baseFunctions":[32762],"functionSelector":"c87b56dd","implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"880:8:27","overrides":{"id":33564,"nodeType":"OverrideSpecifier","overrides":[],"src":"921:8:27"},"parameters":{"id":33563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33562,"mutability":"mutable","name":"id","nameLocation":"897:2:27","nodeType":"VariableDeclaration","scope":33569,"src":"889:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33561,"name":"uint256","nodeType":"ElementaryTypeName","src":"889:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"888:12:27"},"returnParameters":{"id":33567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33566,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33569,"src":"939:13:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":33565,"name":"string","nodeType":"ElementaryTypeName","src":"939:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"938:15:27"},"scope":34136,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":33573,"nodeType":"VariableDeclaration","src":"1152:45:27","nodes":[],"constant":false,"mutability":"mutable","name":"_ownerOf","nameLocation":"1189:8:27","scope":34136,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":33572,"keyType":{"id":33570,"name":"uint256","nodeType":"ElementaryTypeName","src":"1160:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1152:27:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":33571,"name":"address","nodeType":"ElementaryTypeName","src":"1171:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"},{"id":33577,"nodeType":"VariableDeclaration","src":"1204:47:27","nodes":[],"constant":false,"mutability":"mutable","name":"_balanceOf","nameLocation":"1241:10:27","scope":34136,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":33576,"keyType":{"id":33574,"name":"address","nodeType":"ElementaryTypeName","src":"1212:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1204:27:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueType":{"id":33575,"name":"uint256","nodeType":"ElementaryTypeName","src":"1223:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"id":33601,"nodeType":"FunctionDefinition","src":"1258:158:27","nodes":[],"body":{"id":33600,"nodeType":"Block","src":"1340:76:27","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"id":33590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33586,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33583,"src":"1359:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":33587,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33573,"src":"1367:8:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33589,"indexExpression":{"id":33588,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33579,"src":"1376:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1367:12:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1359:20:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":33591,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"1358:22:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":33594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1392:1:27","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":33593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1384:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33592,"name":"address","nodeType":"ElementaryTypeName","src":"1384:7:27","typeDescriptions":{}}},"id":33595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1384:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1358:36:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e4f545f4d494e544544","id":33597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1396:12:27","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":33585,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1350:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1350:59:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33599,"nodeType":"ExpressionStatement","src":"1350:59:27"}]},"baseFunctions":[32656],"functionSelector":"6352211e","implemented":true,"kind":"function","modifiers":[],"name":"ownerOf","nameLocation":"1267:7:27","overrides":{"id":33581,"nodeType":"OverrideSpecifier","overrides":[],"src":"1307:8:27"},"parameters":{"id":33580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33579,"mutability":"mutable","name":"id","nameLocation":"1283:2:27","nodeType":"VariableDeclaration","scope":33601,"src":"1275:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33578,"name":"uint256","nodeType":"ElementaryTypeName","src":"1275:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1274:12:27"},"returnParameters":{"id":33584,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33583,"mutability":"mutable","name":"owner","nameLocation":"1333:5:27","nodeType":"VariableDeclaration","scope":33601,"src":"1325:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33582,"name":"address","nodeType":"ElementaryTypeName","src":"1325:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1324:15:27"},"scope":34136,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":33624,"nodeType":"FunctionDefinition","src":"1422:177:27","nodes":[],"body":{"id":33623,"nodeType":"Block","src":"1503:96:27","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":33610,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33603,"src":"1521:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":33613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1538:1:27","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":33612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1530:7:27","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":33611,"name":"address","nodeType":"ElementaryTypeName","src":"1530:7:27","typeDescriptions":{}}},"id":33614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1530:10:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1521:19:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5a45524f5f41444452455353","id":33616,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1542:14:27","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":33609,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"1513:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33617,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"1513:44:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33618,"nodeType":"ExpressionStatement","src":"1513:44:27"},{"expression":{"baseExpression":{"id":33619,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33577,"src":"1575:10:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":33621,"indexExpression":{"id":33620,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33603,"src":"1586:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1575:17:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":33608,"id":33622,"nodeType":"Return","src":"1568:24:27"}]},"baseFunctions":[32648],"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1431:9:27","overrides":{"id":33605,"nodeType":"OverrideSpecifier","overrides":[],"src":"1476:8:27"},"parameters":{"id":33604,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33603,"mutability":"mutable","name":"owner","nameLocation":"1449:5:27","nodeType":"VariableDeclaration","scope":33624,"src":"1441:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33602,"name":"address","nodeType":"ElementaryTypeName","src":"1441:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1440:15:27"},"returnParameters":{"id":33608,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33607,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33624,"src":"1494:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33606,"name":"uint256","nodeType":"ElementaryTypeName","src":"1494:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1493:9:27"},"scope":34136,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":33628,"nodeType":"VariableDeclaration","src":"1793:49:27","nodes":[],"constant":false,"mutability":"mutable","name":"_getApproved","nameLocation":"1830:12:27","scope":34136,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"typeName":{"id":33627,"keyType":{"id":33625,"name":"uint256","nodeType":"ElementaryTypeName","src":"1801:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1793:27:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"},"valueType":{"id":33626,"name":"address","nodeType":"ElementaryTypeName","src":"1812:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"internal"},{"id":33634,"nodeType":"VariableDeclaration","src":"1849:71:27","nodes":[],"constant":false,"mutability":"mutable","name":"_isApprovedForAll","nameLocation":"1903:17:27","scope":34136,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":33633,"keyType":{"id":33629,"name":"address","nodeType":"ElementaryTypeName","src":"1857:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1849:44:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueType":{"id":33632,"keyType":{"id":33630,"name":"address","nodeType":"ElementaryTypeName","src":"1876:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1868:24:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueType":{"id":33631,"name":"bool","nodeType":"ElementaryTypeName","src":"1887:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"internal"},{"id":33647,"nodeType":"FunctionDefinition","src":"1927:120:27","nodes":[],"body":{"id":33646,"nodeType":"Block","src":"2007:40:27","nodes":[],"statements":[{"expression":{"baseExpression":{"id":33642,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33628,"src":"2024:12:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33644,"indexExpression":{"id":33643,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33636,"src":"2037:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2024:16:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":33641,"id":33645,"nodeType":"Return","src":"2017:23:27"}]},"baseFunctions":[32712],"functionSelector":"081812fc","implemented":true,"kind":"function","modifiers":[],"name":"getApproved","nameLocation":"1936:11:27","overrides":{"id":33638,"nodeType":"OverrideSpecifier","overrides":[],"src":"1980:8:27"},"parameters":{"id":33637,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33636,"mutability":"mutable","name":"id","nameLocation":"1956:2:27","nodeType":"VariableDeclaration","scope":33647,"src":"1948:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33635,"name":"uint256","nodeType":"ElementaryTypeName","src":"1948:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1947:12:27"},"returnParameters":{"id":33641,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33640,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33647,"src":"1998:7:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33639,"name":"address","nodeType":"ElementaryTypeName","src":"1998:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1997:9:27"},"scope":34136,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":33664,"nodeType":"FunctionDefinition","src":"2053:161:27","nodes":[],"body":{"id":33663,"nodeType":"Block","src":"2156:58:27","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":33657,"name":"_isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33634,"src":"2173:17:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":33659,"indexExpression":{"id":33658,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33649,"src":"2191:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2173:24:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":33661,"indexExpression":{"id":33660,"name":"operator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33651,"src":"2198:8:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2173:34:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":33656,"id":33662,"nodeType":"Return","src":"2166:41:27"}]},"baseFunctions":[32722],"functionSelector":"e985e9c5","implemented":true,"kind":"function","modifiers":[],"name":"isApprovedForAll","nameLocation":"2062:16:27","overrides":{"id":33653,"nodeType":"OverrideSpecifier","overrides":[],"src":"2132:8:27"},"parameters":{"id":33652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33649,"mutability":"mutable","name":"owner","nameLocation":"2087:5:27","nodeType":"VariableDeclaration","scope":33664,"src":"2079:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33648,"name":"address","nodeType":"ElementaryTypeName","src":"2079:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33651,"mutability":"mutable","name":"operator","nameLocation":"2102:8:27","nodeType":"VariableDeclaration","scope":33664,"src":"2094:16:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33650,"name":"address","nodeType":"ElementaryTypeName","src":"2094:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2078:33:27"},"returnParameters":{"id":33656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33655,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":33664,"src":"2150:4:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33654,"name":"bool","nodeType":"ElementaryTypeName","src":"2150:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2149:6:27"},"scope":34136,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":33667,"nodeType":"VariableDeclaration","src":"2473:24:27","nodes":[],"constant":false,"documentation":{"id":33665,"nodeType":"StructuredDocumentation","src":"2401:67:27","text":"@dev A bool to track whether the contract has been initialized."},"mutability":"mutable","name":"initialized","nameLocation":"2486:11:27","scope":34136,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":33666,"name":"bool","nodeType":"ElementaryTypeName","src":"2473:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":33694,"nodeType":"FunctionDefinition","src":"2706:212:27","nodes":[],"body":{"id":33693,"nodeType":"Block","src":"2777:141:27","nodes":[],"statements":[{"expression":{"arguments":[{"id":33677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2795:12:27","subExpression":{"id":33676,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33667,"src":"2796:11:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"414c52454144595f494e495449414c495a4544","id":33678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2809:21:27","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":33675,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2787:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"2787:44:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33680,"nodeType":"ExpressionStatement","src":"2787:44:27"},{"expression":{"id":33683,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33681,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33540,"src":"2842:5:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33682,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33670,"src":"2850:5:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2842:13:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":33684,"nodeType":"ExpressionStatement","src":"2842:13:27"},{"expression":{"id":33687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33685,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33542,"src":"2865:7:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33686,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33672,"src":"2875:7:27","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2865:17:27","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":33688,"nodeType":"ExpressionStatement","src":"2865:17:27"},{"expression":{"id":33691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":33689,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33667,"src":"2893:11:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":33690,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2907:4:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2893:18:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":33692,"nodeType":"ExpressionStatement","src":"2893:18:27"}]},"documentation":{"id":33668,"nodeType":"StructuredDocumentation","src":"2504:197:27","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:27","parameters":{"id":33673,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33670,"mutability":"mutable","name":"name_","nameLocation":"2740:5:27","nodeType":"VariableDeclaration","scope":33694,"src":"2726:19:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":33669,"name":"string","nodeType":"ElementaryTypeName","src":"2726:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":33672,"mutability":"mutable","name":"symbol_","nameLocation":"2761:7:27","nodeType":"VariableDeclaration","scope":33694,"src":"2747:21:27","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":33671,"name":"string","nodeType":"ElementaryTypeName","src":"2747:6:27","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2725:44:27"},"returnParameters":{"id":33674,"nodeType":"ParameterList","parameters":[],"src":"2777:0:27"},"scope":34136,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":33736,"nodeType":"FunctionDefinition","src":"3106:301:27","nodes":[],"body":{"id":33735,"nodeType":"Block","src":"3184:223:27","nodes":[],"statements":[{"assignments":[33703],"declarations":[{"constant":false,"id":33703,"mutability":"mutable","name":"owner","nameLocation":"3202:5:27","nodeType":"VariableDeclaration","scope":33735,"src":"3194:13:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33702,"name":"address","nodeType":"ElementaryTypeName","src":"3194:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":33707,"initialValue":{"baseExpression":{"id":33704,"name":"_ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33573,"src":"3210:8:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33706,"indexExpression":{"id":33705,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33698,"src":"3219:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3210:12:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3194:28:27"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":33719,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":33712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":33709,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3241:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3241:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":33711,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33703,"src":"3255:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3241:19:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"baseExpression":{"baseExpression":{"id":33713,"name":"_isApprovedForAll","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33634,"src":"3264:17:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":33715,"indexExpression":{"id":33714,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33703,"src":"3282:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3264:24:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":33718,"indexExpression":{"expression":{"id":33716,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3289:3:27","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":33717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberName":"sender","nodeType":"MemberAccess","src":"3289:10:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3264:36:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3241:59:27","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"4e4f545f415554484f52495a4544","id":33720,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3302:16:27","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":33708,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3233:7:27","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":33721,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3233:86:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33722,"nodeType":"ExpressionStatement","src":"3233:86:27"},{"expression":{"id":33727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":33723,"name":"_getApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33628,"src":"3330:12:27","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_address_$","typeString":"mapping(uint256 => address)"}},"id":33725,"indexExpression":{"id":33724,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33698,"src":"3343:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3330:16:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":33726,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33696,"src":"3349:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3330:26:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":33728,"nodeType":"ExpressionStatement","src":"3330:26:27"},{"eventCall":{"arguments":[{"id":33730,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33703,"src":"3381:5:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33731,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33696,"src":"3388:7:27","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":33732,"name":"id","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":33698,"src":"3397:2:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":33729,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":32631,"src":"3372:8:27","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":33733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"names":[],"nodeType":"FunctionCall","src":"3372:28:27","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":33734,"nodeType":"EmitStatement","src":"3367:33:27"}]},"baseFunctions":[32696],"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3115:7:27","overrides":{"id":33700,"nodeType":"OverrideSpecifier","overrides":[],"src":"3175:8:27"},"parameters":{"id":33699,"nodeType":"ParameterList","parameters":[{"constant":false,"id":33696,"mutability":"mutable","name":"spender","nameLocation":"3131:7:27","nodeType":"VariableDeclaration","scope":33736,"src":"3123:15:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":33695,"name":"address","nodeType":"ElementaryTypeName","src":"3123:7:27","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":33698,"mutability":"mutable","name":"id","nameLocation":"3148:2:27","nodeType":"VariableDeclaration","scope":33736,"src":"3140:10:27","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33697,"name":"uint256","nodeType":"ElementaryTypeName","src":"3140:7:27","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3122:29:27"},"returnParameters":{"id":33701,"nodeType":"Parame