tokenboost-solidity
Version:
Solidity contracts for TokenBoost
738 lines (737 loc) • 410 kB
JSON
{
"contractName": "ERC721Token",
"abi": [
{
"constant": true,
"inputs": [
{
"name": "_interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_tokenId",
"type": "uint256"
}
],
"name": "getApproved",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_to",
"type": "address"
},
{
"name": "_tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "InterfaceId_ERC165",
"outputs": [
{
"name": "",
"type": "bytes4"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_from",
"type": "address"
},
{
"name": "_to",
"type": "address"
},
{
"name": "_tokenId",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_from",
"type": "address"
},
{
"name": "_to",
"type": "address"
},
{
"name": "_tokenId",
"type": "uint256"
}
],
"name": "safeTransferFrom",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_tokenId",
"type": "uint256"
}
],
"name": "exists",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_tokenId",
"type": "uint256"
}
],
"name": "ownerOf",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_to",
"type": "address"
},
{
"name": "_approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_from",
"type": "address"
},
{
"name": "_to",
"type": "address"
},
{
"name": "_tokenId",
"type": "uint256"
},
{
"name": "_data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_owner",
"type": "address"
},
{
"name": "_operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"name": "_name",
"type": "string"
},
{
"name": "_symbol",
"type": "string"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "_from",
"type": "address"
},
{
"indexed": true,
"name": "_to",
"type": "address"
},
{
"indexed": true,
"name": "_tokenId",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "_owner",
"type": "address"
},
{
"indexed": true,
"name": "_approved",
"type": "address"
},
{
"indexed": true,
"name": "_tokenId",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"name": "_owner",
"type": "address"
},
{
"indexed": true,
"name": "_operator",
"type": "address"
},
{
"indexed": false,
"name": "_approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"constant": true,
"inputs": [],
"name": "name",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "symbol",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_tokenId",
"type": "uint256"
}
],
"name": "tokenURI",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_owner",
"type": "address"
},
{
"name": "_index",
"type": "uint256"
}
],
"name": "tokenOfOwnerByIndex",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_index",
"type": "uint256"
}
],
"name": "tokenByIndex",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x60806040523480156200001157600080fd5b506040516200116e3803806200116e83398101604052805160208201519082019101620000677f01ffc9a7000000000000000000000000000000000000000000000000000000006401000000006200016b810204565b6200009b7f80ac58cd000000000000000000000000000000000000000000000000000000006401000000006200016b810204565b620000cf7f4f558e79000000000000000000000000000000000000000000000000000000006401000000006200016b810204565b8151620000e4906005906020850190620001d8565b508051620000fa906006906020840190620001d8565b506200012f7f780e9d63000000000000000000000000000000000000000000000000000000006401000000006200016b810204565b620001637f5b5e139f000000000000000000000000000000000000000000000000000000006401000000006200016b810204565b50506200027d565b7fffffffff0000000000000000000000000000000000000000000000000000000080821614156200019b57600080fd5b7fffffffff00000000000000000000000000000000000000000000000000000000166000908152602081905260409020805460ff19166001179055565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200021b57805160ff19168380011785556200024b565b828001600101855582156200024b579182015b828111156200024b5782518255916020019190600101906200022e565b50620002599291506200025d565b5090565b6200027a91905b8082111562000259576000815560010162000264565b90565b610ee1806200028d6000396000f3006080604052600436106100fb5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a7811461010057806306fdde0314610136578063081812fc146101c0578063095ea7b3146101f457806318160ddd1461021a57806319fa8f501461024157806323b872dd146102735780632f745c591461029d57806342842e0e146102c15780634f558e79146102eb5780634f6ccce7146103035780636352211e1461031b57806370a082311461033357806395d89b4114610354578063a22cb46514610369578063b88d4fde1461038f578063c87b56dd146103fe578063e985e9c514610416575b600080fd5b34801561010c57600080fd5b50610122600160e060020a03196004351661043d565b604080519115158252519081900360200190f35b34801561014257600080fd5b5061014b61045c565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018557818101518382015260200161016d565b50505050905090810190601f1680156101b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cc57600080fd5b506101d86004356104f3565b60408051600160a060020a039092168252519081900360200190f35b34801561020057600080fd5b50610218600160a060020a036004351660243561050e565b005b34801561022657600080fd5b5061022f6105c4565b60408051918252519081900360200190f35b34801561024d57600080fd5b506102566105ca565b60408051600160e060020a03199092168252519081900360200190f35b34801561027f57600080fd5b50610218600160a060020a03600435811690602435166044356105ee565b3480156102a957600080fd5b5061022f600160a060020a0360043516602435610691565b3480156102cd57600080fd5b50610218600160a060020a03600435811690602435166044356106de565b3480156102f757600080fd5b506101226004356106ff565b34801561030f57600080fd5b5061022f60043561071c565b34801561032757600080fd5b506101d8600435610751565b34801561033f57600080fd5b5061022f600160a060020a036004351661077b565b34801561036057600080fd5b5061014b6107ae565b34801561037557600080fd5b50610218600160a060020a0360043516602435151561080f565b34801561039b57600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261021894600160a060020a0381358116956024803590921695604435953695608494019181908401838280828437509497506108939650505050505050565b34801561040a57600080fd5b5061014b6004356108bb565b34801561042257600080fd5b50610122600160a060020a0360043581169060243516610970565b600160e060020a03191660009081526020819052604090205460ff1690565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104e85780601f106104bd576101008083540402835291602001916104e8565b820191906000526020600020905b8154815290600101906020018083116104cb57829003601f168201915b505050505090505b90565b600090815260026020526040902054600160a060020a031690565b600061051982610751565b9050600160a060020a03838116908216141561053457600080fd5b33600160a060020a038216148061055057506105508133610970565b151561055b57600080fd5b600082815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60095490565b7f01ffc9a70000000000000000000000000000000000000000000000000000000081565b6105f8338261099e565b151561060357600080fd5b600160a060020a038316151561061857600080fd5b600160a060020a038216151561062d57600080fd5b61063783826109fd565b6106418382610a6e565b61064b8282610b75565b8082600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600061069c8361077b565b82106106a757600080fd5b600160a060020a03831660009081526007602052604090208054839081106106cb57fe5b9060005260206000200154905092915050565b6106fa8383836020604051908101604052806000815250610893565b505050565b600090815260016020526040902054600160a060020a0316151590565b60006107266105c4565b821061073157600080fd5b600980548390811061073f57fe5b90600052602060002001549050919050565b600081815260016020526040812054600160a060020a031680151561077557600080fd5b92915050565b6000600160a060020a038216151561079257600080fd5b50600160a060020a031660009081526003602052604090205490565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104e85780601f106104bd576101008083540402835291602001916104e8565b600160a060020a03821633141561082557600080fd5b336000818152600460209081526040808320600160a060020a03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b61089e8484846105ee565b6108aa84848484610bbe565b15156108b557600080fd5b50505050565b60606108c6826106ff565b15156108d157600080fd5b6000828152600b602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156109645780601f1061093957610100808354040283529160200191610964565b820191906000526020600020905b81548152906001019060200180831161094757829003601f168201915b50505050509050919050565b600160a060020a03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000806109aa83610751565b905080600160a060020a031684600160a060020a031614806109e5575083600160a060020a03166109da846104f3565b600160a060020a0316145b806109f557506109f58185610970565b949350505050565b81600160a060020a0316610a1082610751565b600160a060020a031614610a2357600080fd5b600081815260026020526040902054600160a060020a031615610a6a576000818152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff191690555b5050565b6000806000610a7d8585610d2b565b600084815260086020908152604080832054600160a060020a0389168452600790925290912054909350610ab890600163ffffffff610dc116565b600160a060020a038616600090815260076020526040902080549193509083908110610ae057fe5b90600052602060002001549050806007600087600160a060020a0316600160a060020a0316815260200190815260200160002084815481101515610b2057fe5b6000918252602080832090910192909255600160a060020a0387168152600790915260409020805490610b57906000198301610e78565b50600093845260086020526040808520859055908452909220555050565b6000610b818383610dd3565b50600160a060020a039091166000908152600760209081526040808320805460018101825590845282842081018590559383526008909152902055565b600080610bd385600160a060020a0316610e63565b1515610be25760019150610d22565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081523360048201818152600160a060020a03898116602485015260448401889052608060648501908152875160848601528751918a169463150b7a0294938c938b938b93909160a490910190602085019080838360005b83811015610c75578181015183820152602001610c5d565b50505050905090810190601f168015610ca25780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610cc457600080fd5b505af1158015610cd8573d6000803e3d6000fd5b505050506040513d6020811015610cee57600080fd5b5051600160e060020a031981167f150b7a020000000000000000000000000000000000000000000000000000000014925090505b50949350505050565b81600160a060020a0316610d3e82610751565b600160a060020a031614610d5157600080fd5b600160a060020a038216600090815260036020526040902054610d7b90600163ffffffff610dc116565b600160a060020a03909216600090815260036020908152604080832094909455918152600190915220805473ffffffffffffffffffffffffffffffffffffffff19169055565b600082821115610dcd57fe5b50900390565b600081815260016020526040902054600160a060020a031615610df557600080fd5b6000818152600160208181526040808420805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0388169081179091558452600390915290912054610e4391610e6b565b600160a060020a0390921660009081526003602052604090209190915550565b6000903b1190565b8181018281101561077557fe5b8154818355818111156106fa576000838152602090206106fa9181019083016104f091905b80821115610eb15760008155600101610e9d565b50905600a165627a7a72305820c97c245480f72cebfe46bd3877c91b4b3b40d1d5e8d38c0d1003f5950db4e7a30029",
"deployedBytecode": "0x6080604052600436106100fb5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166301ffc9a7811461010057806306fdde0314610136578063081812fc146101c0578063095ea7b3146101f457806318160ddd1461021a57806319fa8f501461024157806323b872dd146102735780632f745c591461029d57806342842e0e146102c15780634f558e79146102eb5780634f6ccce7146103035780636352211e1461031b57806370a082311461033357806395d89b4114610354578063a22cb46514610369578063b88d4fde1461038f578063c87b56dd146103fe578063e985e9c514610416575b600080fd5b34801561010c57600080fd5b50610122600160e060020a03196004351661043d565b604080519115158252519081900360200190f35b34801561014257600080fd5b5061014b61045c565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561018557818101518382015260200161016d565b50505050905090810190601f1680156101b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156101cc57600080fd5b506101d86004356104f3565b60408051600160a060020a039092168252519081900360200190f35b34801561020057600080fd5b50610218600160a060020a036004351660243561050e565b005b34801561022657600080fd5b5061022f6105c4565b60408051918252519081900360200190f35b34801561024d57600080fd5b506102566105ca565b60408051600160e060020a03199092168252519081900360200190f35b34801561027f57600080fd5b50610218600160a060020a03600435811690602435166044356105ee565b3480156102a957600080fd5b5061022f600160a060020a0360043516602435610691565b3480156102cd57600080fd5b50610218600160a060020a03600435811690602435166044356106de565b3480156102f757600080fd5b506101226004356106ff565b34801561030f57600080fd5b5061022f60043561071c565b34801561032757600080fd5b506101d8600435610751565b34801561033f57600080fd5b5061022f600160a060020a036004351661077b565b34801561036057600080fd5b5061014b6107ae565b34801561037557600080fd5b50610218600160a060020a0360043516602435151561080f565b34801561039b57600080fd5b50604080516020601f60643560048181013592830184900484028501840190955281845261021894600160a060020a0381358116956024803590921695604435953695608494019181908401838280828437509497506108939650505050505050565b34801561040a57600080fd5b5061014b6004356108bb565b34801561042257600080fd5b50610122600160a060020a0360043581169060243516610970565b600160e060020a03191660009081526020819052604090205460ff1690565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104e85780601f106104bd576101008083540402835291602001916104e8565b820191906000526020600020905b8154815290600101906020018083116104cb57829003601f168201915b505050505090505b90565b600090815260026020526040902054600160a060020a031690565b600061051982610751565b9050600160a060020a03838116908216141561053457600080fd5b33600160a060020a038216148061055057506105508133610970565b151561055b57600080fd5b600082815260026020526040808220805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b60095490565b7f01ffc9a70000000000000000000000000000000000000000000000000000000081565b6105f8338261099e565b151561060357600080fd5b600160a060020a038316151561061857600080fd5b600160a060020a038216151561062d57600080fd5b61063783826109fd565b6106418382610a6e565b61064b8282610b75565b8082600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600061069c8361077b565b82106106a757600080fd5b600160a060020a03831660009081526007602052604090208054839081106106cb57fe5b9060005260206000200154905092915050565b6106fa8383836020604051908101604052806000815250610893565b505050565b600090815260016020526040902054600160a060020a0316151590565b60006107266105c4565b821061073157600080fd5b600980548390811061073f57fe5b90600052602060002001549050919050565b600081815260016020526040812054600160a060020a031680151561077557600080fd5b92915050565b6000600160a060020a038216151561079257600080fd5b50600160a060020a031660009081526003602052604090205490565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156104e85780601f106104bd576101008083540402835291602001916104e8565b600160a060020a03821633141561082557600080fd5b336000818152600460209081526040808320600160a060020a03871680855290835292819020805460ff1916861515908117909155815190815290519293927f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31929181900390910190a35050565b61089e8484846105ee565b6108aa84848484610bbe565b15156108b557600080fd5b50505050565b60606108c6826106ff565b15156108d157600080fd5b6000828152600b602090815260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156109645780601f1061093957610100808354040283529160200191610964565b820191906000526020600020905b81548152906001019060200180831161094757829003601f168201915b50505050509050919050565b600160a060020a03918216600090815260046020908152604080832093909416825291909152205460ff1690565b6000806109aa83610751565b905080600160a060020a031684600160a060020a031614806109e5575083600160a060020a03166109da846104f3565b600160a060020a0316145b806109f557506109f58185610970565b949350505050565b81600160a060020a0316610a1082610751565b600160a060020a031614610a2357600080fd5b600081815260026020526040902054600160a060020a031615610a6a576000818152600260205260409020805473ffffffffffffffffffffffffffffffffffffffff191690555b5050565b6000806000610a7d8585610d2b565b600084815260086020908152604080832054600160a060020a0389168452600790925290912054909350610ab890600163ffffffff610dc116565b600160a060020a038616600090815260076020526040902080549193509083908110610ae057fe5b90600052602060002001549050806007600087600160a060020a0316600160a060020a0316815260200190815260200160002084815481101515610b2057fe5b6000918252602080832090910192909255600160a060020a0387168152600790915260409020805490610b57906000198301610e78565b50600093845260086020526040808520859055908452909220555050565b6000610b818383610dd3565b50600160a060020a039091166000908152600760209081526040808320805460018101825590845282842081018590559383526008909152902055565b600080610bd385600160a060020a0316610e63565b1515610be25760019150610d22565b6040517f150b7a020000000000000000000000000000000000000000000000000000000081523360048201818152600160a060020a03898116602485015260448401889052608060648501908152875160848601528751918a169463150b7a0294938c938b938b93909160a490910190602085019080838360005b83811015610c75578181015183820152602001610c5d565b50505050905090810190601f168015610ca25780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b158015610cc457600080fd5b505af1158015610cd8573d6000803e3d6000fd5b505050506040513d6020811015610cee57600080fd5b5051600160e060020a031981167f150b7a020000000000000000000000000000000000000000000000000000000014925090505b50949350505050565b81600160a060020a0316610d3e82610751565b600160a060020a031614610d5157600080fd5b600160a060020a038216600090815260036020526040902054610d7b90600163ffffffff610dc116565b600160a060020a03909216600090815260036020908152604080832094909455918152600190915220805473ffffffffffffffffffffffffffffffffffffffff19169055565b600082821115610dcd57fe5b50900390565b600081815260016020526040902054600160a060020a031615610df557600080fd5b6000818152600160208181526040808420805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0388169081179091558452600390915290912054610e4391610e6b565b600160a060020a0390921660009081526003602052604090209190915550565b6000903b1190565b8181018281101561077557fe5b8154818355818111156106fa576000838152602090206106fa9181019083016104f091905b80821115610eb15760008155600101610e9d565b50905600a165627a7a72305820c97c245480f72cebfe46bd3877c91b4b3b40d1d5e8d38c0d1003f5950db4e7a30029",
"sourceMap": "437:6317:33:-;;;1166:276;8:9:-1;5:2;;;30:1;27;20:12;5:2;1166:276:33;;;;;;;;;;;;;;;;;;;;;;;;;649:38:20;668:18;649;;;;:38;:::i;:::-;1258::31;1277:18;1258;;;;:38;:::i;:::-;1302:44;1321:24;1302:18;;;;:44;:::i;:::-;1221:13:33;;;;:5;;:13;;;;;:::i;:::-;-1:-1:-1;1240:17:33;;;;:7;;:17;;;;;:::i;:::-;-1:-1:-1;1337:48:33;1356:28;1337:18;;;;:48;:::i;:::-;1391:46;1410:26;1391:18;;;;:46;:::i;:::-;1166:276;;437:6317;;987:156:20;1065:26;;;;;;1057:35;;;;;;1098:33;;:19;:33;;;;;;;;;;:40;;-1:-1:-1;;1098:40:20;1134:4;1098:40;;;987:156::o;437:6317:33:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;437:6317:33;;;-1:-1:-1;437:6317:33;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;",
"deployedSourceMap": "437:6317:33:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;775:142:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;775:142:20;-1:-1:-1;;;;;;775:142:20;;;;;;;;;;;;;;;;;;;;;;;1536:70:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1536:70:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;1536:70:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3289:111:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3289:111:31;;;;;;;;;-1:-1:-1;;;;;3289:111:31;;;;;;;;;;;;;;2785:277;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2785:277:31;-1:-1:-1;;;;;2785:277:31;;;;;;;;;2805:87:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2805:87:33;;;;;;;;;;;;;;;;;;;;230:54:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;230:54:20;;;;;;;;-1:-1:-1;;;;;;230:54:20;;;;;;;;;;;;;;4780:370:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4780:370:31;-1:-1:-1;;;;;4780:370:31;;;;;;;;;;;;2460:203:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2460:203:33;-1:-1:-1;;;;;2460:203:33;;;;;;;5766:199:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5766:199:31;-1:-1:-1;;;;;5766:199:31;;;;;;;;;;;;2240:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2240:140:31;;;;;3216::33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3216:140:33;;;;;1898:164:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1898:164:31;;;;;1543:142;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1543:142:31;-1:-1:-1;;;;;1543:142:31;;;;;1704:74:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1704:74:33;;;;3680:205:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3680:205:31;-1:-1:-1;;;;;3680:205:31;;;;;;;;;6647:276;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6647:276:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6647:276:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6647:276:31;;-1:-1:-1;6647:276:31;;-1:-1:-1;;;;;;;6647:276:31;1966:133:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1966:133:33;;;;;4194:168:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4194:168:31;-1:-1:-1;;;;;4194:168:31;;;;;;;;;;775:142:20;-1:-1:-1;;;;;;879:33:20;858:4;879:33;;;;;;;;;;;;;;775:142::o;1536:70:33:-;1596:5;1589:12;;;;;;;;-1:-1:-1;;1589:12:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1575:6;;1589:12;;1596:5;;1589:12;;1596:5;1589:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1536:70;;:::o;3289:111:31:-;3349:7;3371:24;;;:14;:24;;;;;;-1:-1:-1;;;;;3371:24:31;;3289:111::o;2785:277::-;2846:13;2862:17;2870:8;2862:7;:17::i;:::-;2846:33;-1:-1:-1;;;;;;2893:12:31;;;;;;;;2885:21;;;;;;2920:10;-1:-1:-1;;;;;2920:19:31;;;;:58;;;2943:35;2960:5;2967:10;2943:16;:35::i;:::-;2912:67;;;;;;;;2986:24;;;;:14;:24;;;;;;:30;;-1:-1:-1;;2986:30:31;-1:-1:-1;;;;;2986:30:31;;;;;;;;;3027;;2986:24;;3027:30;;;;;;;2785:277;;;:::o;2805:87:33:-;2871:9;:16;2805:87;:::o;230:54:20:-;;;:::o;4780:370:31:-;4891:39;4909:10;4921:8;4891:17;:39::i;:::-;4883:48;;;;;;;;-1:-1:-1;;;;;4945:19:31;;;;4937:28;;;;;;-1:-1:-1;;;;;4979:17:31;;;;4971:26;;;;;;5004:30;5018:5;5025:8;5004:13;:30::i;:::-;5040:32;5056:5;5063:8;5040:15;:32::i;:::-;5078:25;5089:3;5094:8;5078:10;:25::i;:::-;5136:8;5131:3;-1:-1:-1;;;;;5115:30:31;5124:5;-1:-1:-1;;;;;5115:30:31;;;;;;;;;;;4780:370;;;:::o;2460:203:33:-;2566:7;2600:17;2610:6;2600:9;:17::i;:::-;2591:26;;2583:35;;;;;;-1:-1:-1;;;;;2631:19:33;;;;;;:11;:19;;;;;:27;;2651:6;;2631:27;;;;;;;;;;;;;;2624:34;;2460:203;;;;:::o;5766:199:31:-;5918:42;5935:5;5942:3;5947:8;5918:42;;;;;;;;;;;;;:16;:42::i;:::-;5766:199;;;:::o;2240:140::-;2295:4;2323:20;;;:10;:20;;;;;;-1:-1:-1;;;;;2323:20:31;2356:19;;;2240:140::o;3216::33:-;3275:7;3307:13;:11;:13::i;:::-;3298:22;;3290:31;;;;;;3334:9;:17;;3344:6;;3334:17;;;;;;;;;;;;;;3327:24;;3216:140;;;:::o;1898:164:31:-;1954:7;1985:20;;;:10;:20;;;;;;-1:-1:-1;;;;;1985:20:31;2019:19;;;2011:28;;;;;;2052:5;1898:164;-1:-1:-1;;1898:164:31:o;1543:142::-;1599:7;-1:-1:-1;;;;;1622:20:31;;;;1614:29;;;;;;-1:-1:-1;;;;;;1656:24:31;;;;;:16;:24;;;;;;;1543:142::o;1704:74:33:-;1766:7;1759:14;;;;;;;;-1:-1:-1;;1759:14:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1745:6;;1759:14;;1766:7;;1759:14;;1766:7;1759:14;;;;;;;;;;;;;;;;;;;;;;;;3680:205:31;-1:-1:-1;;;;;3757:17:31;;3764:10;3757:17;;3749:26;;;;;;3799:10;3781:29;;;;:17;:29;;;;;;;;-1:-1:-1;;;;;3781:34:31;;;;;;;;;;;;:46;;-1:-1:-1;;3781:46:31;;;;;;;;;;3838:42;;;;;;;3781:34;;3799:10;3838:42;;;;;;;;;;;3680:205;;:::o;6647:276::-;6771:34;6784:5;6791:3;6796:8;6771:12;:34::i;:::-;6864:53;6889:5;6896:3;6901:8;6911:5;6864:24;:53::i;:::-;6856:62;;;;;;;;6647:276;;;;:::o;1966:133:33:-;2023:6;2045:16;2052:8;2045:6;:16::i;:::-;2037:25;;;;;;;;2075:19;;;;:9;:19;;;;;;;;;2068:26;;;;;;-1:-1:-1;;2068:26:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2075:19;;2068:26;;2075:19;2068:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1966:133;;;:::o;4194:168:31:-;-1:-1:-1;;;;;4321:25:31;;;4300:4;4321:25;;;:17;:25;;;;;;;;:36;;;;;;;;;;;;;;;4194:168::o;7270:438::-;7380:4;7394:13;7410:17;7418:8;7410:7;:17::i;:::-;7394:33;;7606:5;-1:-1:-1;;;;;7594:17:31;:8;-1:-1:-1;;;;;7594:17:31;;:60;;;;7646:8;-1:-1:-1;;;;;7621:33:31;:21;7633:8;7621:11;:21::i;:::-;-1:-1:-1;;;;;7621:33:31;;7594:60;:103;;;;7664:33;7681:5;7688:8;7664:16;:33::i;:::-;7579:124;7270:438;-1:-1:-1;;;;7270:438:31:o;8762:214::-;8863:6;-1:-1:-1;;;;;8842:27:31;:17;8850:8;8842:7;:17::i;:::-;-1:-1:-1;;;;;8842:27:31;;8834:36;;;;;;8916:1;8880:24;;;:14;:24;;;;;;-1:-1:-1;;;;;8880:24:31;:38;8876:96;;8963:1;8928:24;;;:14;:24;;;;;:37;;-1:-1:-1;;8928:37:31;;;8876:96;8762:214;;:::o;4479:1022:33:-;4734:18;4787:22;4850:17;4552:38;4574:5;4581:8;4552:21;:38::i;:::-;4755:26;;;;:16;:26;;;;;;;;;-1:-1:-1;;;;;4812:18:33;;;;:11;:18;;;;;;:25;4755:26;;-1:-1:-1;4812:32:33;;4842:1;4812:32;:29;:32;:::i;:::-;-1:-1:-1;;;;;4870:18:33;;;;;;:11;:18;;;;;:34;;4787:57;;-1:-1:-1;4870:18:33;4787:57;;4870:34;;;;;;;;;;;;;;4850:54;;4944:9;4911:11;:18;4923:5;-1:-1:-1;;;;;4911:18:33;-1:-1:-1;;;;;4911:18:33;;;;;;;;;;;;4930:10;4911:30;;;;;;;;;;;;;;;;;;;;;:42;;;;-1:-1:-1;;;;;5031:18:33;;;;:11;:18;;;;;;:27;;;;;-1:-1:-1;;5031:27:33;;;:::i;:::-;-1:-1:-1;5449:1:33;5420:26;;;:16;:26;;;;;;:30;;;5456:27;;;;;;:40;-1:-1:-1;;4479:1022:33:o;3974:226::-;4077:14;4040:31;4057:3;4062:8;4040:16;:31::i;:::-;-1:-1:-1;;;;;;4094:16:33;;;;;;;:11;:16;;;;;;;;:23;;39:1:-1;23:18;;45:23;;4123:31:33;;;;;;;;;;;4160:26;;;:16;:26;;;;;:35;3974:226::o;10442:347:31:-;10581:4;10649:13;10600:16;:3;-1:-1:-1;;;;;10600:14:31;;:16::i;:::-;10599:17;10595:49;;;10633:4;10626:11;;;;10595:49;10665:79;;;;;10709:10;10665:79;;;;;;-1:-1:-1;;;;;10665:79:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;;;;10709:10;10721:5;;10728:8;;10738:5;;10665:79;;;;;;;;;;;;;;-1:-1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;10665:79:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10665:79:31;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10665:79:31;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;10665:79:31;-1:-1:-1;;;;;;10758:25:31;;10768:15;10758:25;;-1:-1:-1;10665:79:31;-1:-1:-1;10442:347:31;;;;;;;;:::o;9722:214::-;9824:5;-1:-1:-1;;;;;9803:26:31;:17;9811:8;9803:7;:17::i;:::-;-1:-1:-1;;;;;9803:26:31;;9795:35;;;;;;-1:-1:-1;;;;;9862:23:31;;;;;;:16;:23;;;;;;:30;;9890:1;9862:30;:27;:30;:::i;:::-;-1:-1:-1;;;;;9836:23:31;;;;;;;:16;:23;;;;;;;;:56;;;;9898:20;;;:10;:20;;;;:33;;-1:-1:-1;;9898:33:31;;;9722:214::o;1060:116:21:-;1120:7;1142:8;;;;1135:16;;;;-1:-1:-1;1164:7:21;;;1060:116::o;9239:204:31:-;9345:1;9313:20;;;:10;:20;;;;;;-1:-1:-1;;;;;9313:20:31;:34;9305:43;;;;;;9354:20;;;;:10;:20;;;;;;;;:26;;-1:-1:-1;;9354:26:31;-1:-1:-1;;;;;9354:26:31;;;;;;;;9410:21;;:16;:21;;;;;;;:28;;:25;:28::i;:::-;-1:-1:-1;;;;;9386:21:31;;;;;;;:16;:21;;;;;:52;;;;-1:-1:-1;9239:204:31:o;438:578:18:-;496:4;971:18;;1003:8;;438:578::o;1238:128:21:-;1319:7;;;1339;;;;1332:15;;;437:6317:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;",
"source": "pragma solidity ^0.4.24;\n\nimport \"./ERC721.sol\";\nimport \"./ERC721BasicToken.sol\";\nimport \"../../introspection/SupportsInterfaceWithLookup.sol\";\n\n\n/**\n * @title Full ERC721 Token\n * This implementation includes all the required and some optional functionality of the ERC721 standard\n * Moreover, it includes approve all functionality using operator terminology\n * @dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md\n */\ncontract ERC721Token is SupportsInterfaceWithLookup, ERC721BasicToken, ERC721 {\n\n // Token name\n string internal name_;\n\n // Token symbol\n string internal symbol_;\n\n // Mapping from owner to list of owned token IDs\n mapping(address => uint256[]) internal ownedTokens;\n\n // Mapping from token ID to index of the owner tokens list\n mapping(uint256 => uint256) internal ownedTokensIndex;\n\n // Array with all token ids, used for enumeration\n uint256[] internal allTokens;\n\n // Mapping from token id to position in the allTokens array\n mapping(uint256 => uint256) internal allTokensIndex;\n\n // Optional mapping for token URIs\n mapping(uint256 => string) internal tokenURIs;\n\n /**\n * @dev Constructor function\n */\n constructor(string _name, string _symbol) public {\n name_ = _name;\n symbol_ = _symbol;\n\n // register the supported interfaces to conform to ERC721 via ERC165\n _registerInterface(InterfaceId_ERC721Enumerable);\n _registerInterface(InterfaceId_ERC721Metadata);\n }\n\n /**\n * @dev Gets the token name\n * @return string representing the token name\n */\n function name() external view returns (string) {\n return name_;\n }\n\n /**\n * @dev Gets the token symbol\n * @return string representing the token symbol\n */\n function symbol() external view returns (string) {\n return symbol_;\n }\n\n /**\n * @dev Returns an URI for a given token ID\n * Throws if the token ID does not exist. May return an empty string.\n * @param _tokenId uint256 ID of the token to query\n */\n function tokenURI(uint256 _tokenId) public view returns (string) {\n require(exists(_tokenId));\n return tokenURIs[_tokenId];\n }\n\n /**\n * @dev Gets the token ID at a given index of the tokens list of the requested owner\n * @param _owner address owning the tokens list to be accessed\n * @param _index uint256 representing the index to be accessed of the requested tokens list\n * @return uint256 token ID at the given index of the tokens list owned by the requested address\n */\n function tokenOfOwnerByIndex(\n address _owner,\n uint256 _index\n )\n public\n view\n returns (uint256)\n {\n require(_index < balanceOf(_owner));\n return ownedTokens[_owner][_index];\n }\n\n /**\n * @dev Gets the total amount of tokens stored by the contract\n * @return uint256 representing the total amount of tokens\n */\n function totalSupply() public view returns (uint256) {\n return allTokens.length;\n }\n\n /**\n * @dev Gets the token ID at a given index of all the tokens in this contract\n * Reverts if the index is greater or equal to the total number of tokens\n * @param _index uint256 representing the index to be accessed of the tokens list\n * @return uint256 token ID at the given index of the tokens list\n */\n function tokenByIndex(uint256 _index) public view returns (uint256) {\n require(_index < totalSupply());\n return allTokens[_index];\n }\n\n /**\n * @dev Internal function to set the token URI for a given token\n * Reverts if the token ID does not exist\n * @param _tokenId uint256 ID of the token to set its URI\n * @param _uri string URI to assign\n */\n function _setTokenURI(uint256 _tokenId, string _uri) internal {\n require(exists(_tokenId));\n tokenURIs[_tokenId] = _uri;\n }\n\n /**\n * @dev Internal function to add a token ID to the list of a given address\n * @param _to address representing the new owner of the given token ID\n * @param _tokenId uint256 ID of the token to be added to the tokens list of the given address\n */\n function addTokenTo(address _to, uint256 _tokenId) internal {\n super.addTokenTo(_to, _tokenId);\n uint256 length = ownedTokens[_to].length;\n ownedTokens[_to].push(_tokenId);\n ownedTokensIndex[_tokenId] = length;\n }\n\n /**\n * @dev Internal function to remove a token ID from the list of a given address\n * @param _from address representing the previous owner of the given token ID\n * @param _tokenId uint256 ID of the token to be removed from the tokens list of the given address\n */\n function removeTokenFrom(address _from, uint256 _tokenId) internal {\n super.removeTokenFrom(_from, _tokenId);\n\n // To prevent a gap in the array, we store the last token in the index of the token to delete, and\n // then delete the last slot.\n uint256 tokenIndex = ownedTokensIndex[_tokenId];\n uint256 lastTokenIndex = ownedTokens[_from].length.sub(1);\n uint256 lastToken = ownedTokens[_from][lastTokenIndex];\n\n ownedTokens[_from][tokenIndex] = lastToken;\n // This also deletes the contents at the last position of the array\n ownedTokens[_from].length--;\n\n // Note that this will handle single-element arrays. In that case, both tokenIndex and lastTokenIndex are going to\n // be zero. Then we can make sure that we will remove _tokenId from the ownedTokens list since we are first swapping\n // the lastToken to the first position, and then dropping the element placed in the last position of the list\n\n ownedTokensIndex[_tokenId] = 0;\n ownedTokensIndex[lastToken] = tokenIndex;\n }\n\n /**\n * @dev Internal function to mint a new token\n * Reverts if the given token ID already exists\n * @param _to address the beneficiary that will own the minted token\n * @param _tokenId uint256 ID of the token to be minted by the msg.sender\n */\n function _mint(address _to, uint256 _tokenId) internal {\n super._mint(_to, _tokenId);\n\n allTokensIndex[_tokenId] = allTokens.length;\n allTokens.push(_tokenId);\n }\n\n /**\n * @dev Internal function to burn a specific token\n * Reverts if the token does not exist\n * @param _owner owner of the token to burn\n * @param _tokenId uint256 ID of the token being burned by the msg.sender\n */\n function _burn(address _owner, uint256 _tokenId) internal {\n super._burn(_owner, _tokenId);\n\n // Clear metadata (if any)\n if (bytes(tokenURIs[_tokenId]).length != 0) {\n delete tokenURIs[_tokenId];\n }\n\n // Reorg all tokens array\n uint256 tokenIndex = allTokensIndex[_tokenId];\n uint256 lastTokenIndex = allTokens.length.sub(1);\n uint256 lastToken = allTokens[lastTokenIndex];\n\n allTokens[tokenIndex] = lastToken;\n allTokens[lastTokenIndex] = 0;\n\n allTokens.length--;\n allTokensIndex[_tokenId] = 0;\n allTokensIndex[lastToken] = tokenIndex;\n }\n\n}\n",
"sourcePath": "zeppelin-solidity/contracts/token/ERC721/ERC721Token.sol",
"ast": {
"absolutePath": "zeppelin-solidity/contracts/token/ERC721/ERC721Token.sol",
"exportedSymbols": {
"ERC721Token": [
6558
]
},
"id": 6559,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 6187,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:33"
},
{
"absolutePath": "zeppelin-solidity/contracts/token/ERC721/ERC721.sol",
"file": "./ERC721.sol",
"id": 6188,
"nodeType": "ImportDirective",
"scope": 6559,
"sourceUnit": 5497,
"src": "26:22:33",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "zeppelin-solidity/contracts/token/ERC721/ERC721BasicToken.sol",
"file": "./ERC721BasicToken.sol",
"id": 6189,
"nodeType": "ImportDirective",
"scope": 6559,
"sourceUnit": 6167,
"src": "49:32:33",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "zeppelin-solidity/contracts/introspection/SupportsInterfaceWithLookup.sol",
"file": "../../introspection/SupportsInterfaceWithLookup.sol",
"id": 6190,
"nodeType": "ImportDirective",
"scope": 6559,
"sourceUnit": 4705,
"src": "82:61:33",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 6191,
"name": "SupportsInterfaceWithLookup",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 4704,
"src": "461:27:33",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$4704",
"typeString": "contract SupportsInterfaceWithLookup"
}
},
"id": 6192,
"nodeType": "InheritanceSpecifier",
"src": "461:27:33"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 6193,
"name": "ERC721BasicToken",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 6166,
"src": "490:16:33",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC721BasicToken_$6166",
"typeString": "contract ERC721BasicToken"
}
},
"id": 6194,
"nodeType": "InheritanceSpecifier",
"src": "490:16:33"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 6195,
"name": "ERC721",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 5496,
"src": "508:6:33",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC721_$5496",
"typeString": "contract ERC721"
}
},
"id": 6196,
"nodeType": "InheritanceSpecifier",
"src": "508:6:33"
}
],
"contractDependencies": [
4653,
4704,
5469,
5489,
5496,
5618,
6166
],
"contractKind": "contract",
"documentation": "@title Full ERC721 Token\nThis implementation includes all the required and some optional functionality of the ERC721 standard\nMoreover, it includes approve all functionality using operator terminology\n@dev see https://github.com/ethereum/EIPs/blob/master/EIPS/eip-721.md",
"fullyImplemented": true,
"id": 6558,
"linearizedBaseContracts": [
6558,
5496,
5489,
5469,
6166,
5618,
4704,
4653
],
"name": "ERC721Token",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 6198,
"name": "name_",
"nodeType": "VariableDeclaration",
"scope": 6558,
"src": "536:21:33",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 6197,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "536:6:33",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6200,
"name": "symbol_",
"nodeType": "VariableDeclaration",
"scope": 6558,
"src": "580:23:33",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 6199,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "580:6:33",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6205,
"name": "ownedTokens",
"nodeType": "VariableDeclaration",
"scope": 6558,
"src": "659:50:33",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(address => uint256[])"
},
"typeName": {
"id": 6204,
"keyType": {
"id": 6201,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "667:7:33",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "659:29:33",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(address => uint256[])"
},
"valueType": {
"baseType": {
"id": 6202,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "678:7:33",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 6203,
"length": null,
"nodeType": "ArrayTypeName",
"src": "678:9:33",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6209,
"name": "ownedTokensIndex",
"nodeType": "VariableDeclaration",
"scope": 6558,
"src": "775:53:33",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"typeName": {
"id": 6208,
"keyType": {
"id": 6206,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "783:7:33",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "775:27:33",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"valueType": {
"id": 6207,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "794:7:33",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 6212,
"name": "allTokens",
"nodeType": "VariableDeclaration",
"scope": 6558,
"src": "885:28:33",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 6210,