Files
BappTutorial/nftbapp/backend-nftdapp/build/contracts/ERC721Token.json
elegant651 6e0388b653 init
2020-03-24 14:39:38 +09:00

9682 lines
415 KiB
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": "0x60806040523480156200001157600080fd5b5060405162001eaf38038062001eaf83398101806040528101908080518201929190602001805182019291905050506200007d6301ffc9a77c010000000000000000000000000000000000000000000000000000000002620001ab640100000000026401000000009004565b620000ba6380ac58cd7c010000000000000000000000000000000000000000000000000000000002620001ab640100000000026401000000009004565b620000f7634f558e797c010000000000000000000000000000000000000000000000000000000002620001ab640100000000026401000000009004565b81600590805190602001906200010f92919062000269565b5080600690805190602001906200012892919062000269565b506200016663780e9d637c010000000000000000000000000000000000000000000000000000000002620001ab640100000000026401000000009004565b620001a3635b5e139f7c010000000000000000000000000000000000000000000000000000000002620001ab640100000000026401000000009004565b505062000318565b63ffffffff7c010000000000000000000000000000000000000000000000000000000002817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614151515620001fd57600080fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002ac57805160ff1916838001178555620002dd565b82800160010185558215620002dd579182015b82811115620002dc578251825591602001919060010190620002bf565b5b509050620002ec9190620002f0565b5090565b6200031591905b8082111562000311576000816000905550600101620002f7565b5090565b90565b611b8780620003286000396000f3006080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a71461010157806306fdde0314610165578063081812fc146101f5578063095ea7b31461026257806318160ddd146102af57806319fa8f50146102da57806323b872dd146103435780632f745c59146103b057806342842e0e146104115780634f558e791461047e5780634f6ccce7146104c35780636352211e1461050457806370a082311461057157806395d89b41146105c8578063a22cb46514610658578063b88d4fde146106a7578063c87b56dd1461075a578063e985e9c514610800575b600080fd5b34801561010d57600080fd5b5061014b60048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061087b565b604051808215151515815260200191505060405180910390f35b34801561017157600080fd5b5061017a6108e2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ba57808201518184015260208101905061019f565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020157600080fd5b5061022060048036038101908080359060200190929190505050610984565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561026e57600080fd5b506102ad600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109c1565b005b3480156102bb57600080fd5b506102c4610b06565b6040518082815260200191505060405180910390f35b3480156102e657600080fd5b506102ef610b13565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b34801561034f57600080fd5b506103ae600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b3a565b005b3480156103bc57600080fd5b506103fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c45565b6040518082815260200191505060405180910390f35b34801561041d57600080fd5b5061047c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cbc565b005b34801561048a57600080fd5b506104a960048036038101908080359060200190929190505050610cdd565b604051808215151515815260200191505060405180910390f35b3480156104cf57600080fd5b506104ee60048036038101908080359060200190929190505050610d4f565b6040518082815260200191505060405180910390f35b34801561051057600080fd5b5061052f60048036038101908080359060200190929190505050610d87565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057d57600080fd5b506105b2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e05565b6040518082815260200191505060405180910390f35b3480156105d457600080fd5b506105dd610e89565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561061d578082015181840152602081019050610602565b50505050905090810190601f16801561064a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561066457600080fd5b506106a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610f2b565b005b3480156106b357600080fd5b50610758600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611067565b005b34801561076657600080fd5b506107856004803603810190808035906020019092919050505061108f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107c55780820151818401526020810190506107aa565b50505050905090810190601f1680156107f25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561080c57600080fd5b50610861600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611158565b604051808215151515815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050905090565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006109cc82610d87565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610a0957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a495750610a488133611158565b5b1515610a5457600080fd5b826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000600980549050905090565b6301ffc9a77c01000000000000000000000000000000000000000000000000000000000281565b610b4433826111ec565b1515610b4f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610b8b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610bc757600080fd5b610bd18382611281565b610bdb8382611384565b610be58282611540565b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000610c5083610e05565b82101515610c5d57600080fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515610ca957fe5b9060005260206000200154905092915050565b610cd88383836020604051908101604052806000815250611067565b505050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b6000610d59610b06565b82101515610d6657600080fd5b600982815481101515610d7557fe5b90600052602060002001549050919050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610dfc57600080fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610e4257600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f215780601f10610ef657610100808354040283529160200191610f21565b820191906000526020600020905b815481529060010190602001808311610f0457829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610f6657600080fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b611072848484610b3a565b61107e84848484611617565b151561108957600080fd5b50505050565b606061109a82610cdd565b15156110a557600080fd5b600b60008381526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561114c5780601f106111215761010080835404028352916020019161114c565b820191906000526020600020905b81548152906001019060200180831161112f57829003601f168201915b50505050509050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806111f883610d87565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061126757508373ffffffffffffffffffffffffffffffffffffffff1661124f84610984565b73ffffffffffffffffffffffffffffffffffffffff16145b8061127857506112778185611158565b5b91505092915050565b8173ffffffffffffffffffffffffffffffffffffffff166112a182610d87565b73ffffffffffffffffffffffffffffffffffffffff161415156112c357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156113805760006002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5050565b60008060006113938585611839565b600860008581526020019081526020016000205492506113ff6001600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061196890919063ffffffff16565b9150600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561144d57fe5b9060005260206000200154905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811015156114a757fe5b9060005260206000200181905550600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054809190600190036115079190611b0a565b50600060086000868152602001908152602001600020819055508260086000838152602001908152602001600020819055505050505050565b600061154c8383611981565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020829080600181540180825580915050906001820390600052602060002001600090919290919091505550806008600084815260200190815260200160002081905550505050565b6000806116398573ffffffffffffffffffffffffffffffffffffffff16611adb565b15156116485760019150611830565b8473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561173d578082015181840152602081019050611722565b50505050905090810190601f16801561176a5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561178c57600080fd5b505af11580156117a0573d6000803e3d6000fd5b505050506040513d60208110156117b657600080fd5b8101908080519060200190929190505050905063150b7a027c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505b50949350505050565b8173ffffffffffffffffffffffffffffffffffffffff1661185982610d87565b73ffffffffffffffffffffffffffffffffffffffff1614151561187b57600080fd5b6118ce6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196890919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600082821115151561197657fe5b818303905092915050565b600073ffffffffffffffffffffffffffffffffffffffff166001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156119ef57600080fd5b816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a946001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aee90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600080823b905060008111915050919050565b60008183019050828110151515611b0157fe5b80905092915050565b815481835581811115611b3157818360005260206000209182019101611b309190611b36565b5b505050565b611b5891905b80821115611b54576000816000905550600101611b3c565b5090565b905600a165627a7a7230582043bb0021aecc936855e9684a534146cd79da6dbf6c9bf52ddaf822bc235ded8d0029",
"deployedBytecode": "0x6080604052600436106100fc576000357c0100000000000000000000000000000000000000000000000000000000900463ffffffff16806301ffc9a71461010157806306fdde0314610165578063081812fc146101f5578063095ea7b31461026257806318160ddd146102af57806319fa8f50146102da57806323b872dd146103435780632f745c59146103b057806342842e0e146104115780634f558e791461047e5780634f6ccce7146104c35780636352211e1461050457806370a082311461057157806395d89b41146105c8578063a22cb46514610658578063b88d4fde146106a7578063c87b56dd1461075a578063e985e9c514610800575b600080fd5b34801561010d57600080fd5b5061014b60048036038101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061087b565b604051808215151515815260200191505060405180910390f35b34801561017157600080fd5b5061017a6108e2565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156101ba57808201518184015260208101905061019f565b50505050905090810190601f1680156101e75780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561020157600080fd5b5061022060048036038101908080359060200190929190505050610984565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561026e57600080fd5b506102ad600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506109c1565b005b3480156102bb57600080fd5b506102c4610b06565b6040518082815260200191505060405180910390f35b3480156102e657600080fd5b506102ef610b13565b60405180827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200191505060405180910390f35b34801561034f57600080fd5b506103ae600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610b3a565b005b3480156103bc57600080fd5b506103fb600480360381019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c45565b6040518082815260200191505060405180910390f35b34801561041d57600080fd5b5061047c600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610cbc565b005b34801561048a57600080fd5b506104a960048036038101908080359060200190929190505050610cdd565b604051808215151515815260200191505060405180910390f35b3480156104cf57600080fd5b506104ee60048036038101908080359060200190929190505050610d4f565b6040518082815260200191505060405180910390f35b34801561051057600080fd5b5061052f60048036038101908080359060200190929190505050610d87565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561057d57600080fd5b506105b2600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610e05565b6040518082815260200191505060405180910390f35b3480156105d457600080fd5b506105dd610e89565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561061d578082015181840152602081019050610602565b50505050905090810190601f16801561064a5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561066457600080fd5b506106a5600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803515159060200190929190505050610f2b565b005b3480156106b357600080fd5b50610758600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001908201803590602001908080601f0160208091040260200160405190810160405280939291908181526020018383808284378201915050505050509192919290505050611067565b005b34801561076657600080fd5b506107856004803603810190808035906020019092919050505061108f565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156107c55780820151818401526020810190506107aa565b50505050905090810190601f1680156107f25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561080c57600080fd5b50610861600480360381019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611158565b604051808215151515815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b606060058054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561097a5780601f1061094f5761010080835404028352916020019161097a565b820191906000526020600020905b81548152906001019060200180831161095d57829003601f168201915b5050505050905090565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006109cc82610d87565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610a0957600080fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161480610a495750610a488133611158565b5b1515610a5457600080fd5b826002600084815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b6000600980549050905090565b6301ffc9a77c01000000000000000000000000000000000000000000000000000000000281565b610b4433826111ec565b1515610b4f57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614151515610b8b57600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610bc757600080fd5b610bd18382611281565b610bdb8382611384565b610be58282611540565b808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000610c5083610e05565b82101515610c5d57600080fd5b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082815481101515610ca957fe5b9060005260206000200154905092915050565b610cd88383836020604051908101604052806000815250611067565b505050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415915050919050565b6000610d59610b06565b82101515610d6657600080fd5b600982815481101515610d7557fe5b90600052602060002001549050919050565b6000806001600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614151515610dfc57600080fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610e4257600080fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b606060068054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f215780601f10610ef657610100808354040283529160200191610f21565b820191906000526020600020905b815481529060010190602001808311610f0457829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614151515610f6657600080fd5b80600460003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051808215151515815260200191505060405180910390a35050565b611072848484610b3a565b61107e84848484611617565b151561108957600080fd5b50505050565b606061109a82610cdd565b15156110a557600080fd5b600b60008381526020019081526020016000208054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561114c5780601f106111215761010080835404028352916020019161114c565b820191906000526020600020905b81548152906001019060200180831161112f57829003601f168201915b50505050509050919050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000806111f883610d87565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061126757508373ffffffffffffffffffffffffffffffffffffffff1661124f84610984565b73ffffffffffffffffffffffffffffffffffffffff16145b8061127857506112778185611158565b5b91505092915050565b8173ffffffffffffffffffffffffffffffffffffffff166112a182610d87565b73ffffffffffffffffffffffffffffffffffffffff161415156112c357600080fd5b600073ffffffffffffffffffffffffffffffffffffffff166002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156113805760006002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b5050565b60008060006113938585611839565b600860008581526020019081526020016000205492506113ff6001600760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061196890919063ffffffff16565b9150600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208281548110151561144d57fe5b9060005260206000200154905080600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020848154811015156114a757fe5b9060005260206000200181905550600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054809190600190036115079190611b0a565b50600060086000868152602001908152602001600020819055508260086000838152602001908152602001600020819055505050505050565b600061154c8383611981565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805490509050600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020829080600181540180825580915050906001820390600052602060002001600090919290919091505550806008600084815260200190815260200160002081905550505050565b6000806116398573ffffffffffffffffffffffffffffffffffffffff16611adb565b15156116485760019150611830565b8473ffffffffffffffffffffffffffffffffffffffff1663150b7a02338887876040518563ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b8381101561173d578082015181840152602081019050611722565b50505050905090810190601f16801561176a5780820380516001836020036101000a031916815260200191505b5095505050505050602060405180830381600087803b15801561178c57600080fd5b505af11580156117a0573d6000803e3d6000fd5b505050506040513d60208110156117b657600080fd5b8101908080519060200190929190505050905063150b7a027c0100000000000000000000000000000000000000000000000000000000027bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505b50949350505050565b8173ffffffffffffffffffffffffffffffffffffffff1661185982610d87565b73ffffffffffffffffffffffffffffffffffffffff1614151561187b57600080fd5b6118ce6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461196890919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b600082821115151561197657fe5b818303905092915050565b600073ffffffffffffffffffffffffffffffffffffffff166001600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415156119ef57600080fd5b816001600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a946001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611aee90919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b600080823b905060008111915050919050565b60008183019050828110151515611b0157fe5b80905092915050565b815481835581811115611b3157818360005260206000209182019101611b309190611b36565b5b505050565b611b5891905b80821115611b54576000816000905550600101611b3c565b5090565b905600a165627a7a7230582043bb0021aecc936855e9684a534146cd79da6dbf6c9bf52ddaf822bc235ded8d0029",
"sourceMap": "437:6317:10:-;;;1166:276;8:9:-1;5:2;;;30:1;27;20:12;5:2;1166:276:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;649:38:4;274:10;668:18;;649;;;:38;;;:::i;:::-;1258::8;293:10:7;1277:18:8;;1258;;;:38;;;:::i;:::-;1302:44;935:10:7;1321:24:8;;1302:18;;;:44;;;:::i;:::-;1229:5:10;1221;:13;;;;;;;;;;;;:::i;:::-;;1250:7;1240;:17;;;;;;;;;;;;:::i;:::-;;1337:48;1081:10:7;1356:28:10;;1337:18;;;:48;;;:::i;:::-;1391:46;1343:10:7;1410:26:10;;1391:18;;;:46;;;:::i;:::-;1166:276;;437:6317;;987:156:4;1081:10;1065:26;;:12;:26;;;;;1057:35;;;;;;;;1134:4;1098:19;:33;1118:12;1098:33;;;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;987:156;:::o;437:6317:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;",
"deployedSourceMap": "437:6317:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;775:142:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;775:142:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1536:70:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1536:70:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1536:70:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3289:111:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3289:111:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2785:277;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2785:277:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2805:87:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2805:87:10;;;;;;;;;;;;;;;;;;;;;;;230:54:4;;8:9:-1;5:2;;;30:1;27;20:12;5:2;230:54:4;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4780:370:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4780:370:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2460:203:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2460:203:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5766:199:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5766:199:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2240:140;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2240:140:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3216::10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3216:140:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1898:164:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1898:164:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1543:142;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1543:142:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1704:74:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1704:74:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1704:74:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3680:205:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3680:205:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6647:276;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6647:276:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1966:133:10;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1966:133:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;1966:133:10;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4194:168:8;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4194:168:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;775:142:4;858:4;879:19;:33;899:12;879:33;;;;;;;;;;;;;;;;;;;;;;;;;;;872:40;;775:142;;;:::o;1536:70:10:-;1575:6;1596:5;1589:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1536:70;:::o;3289:111:8:-;3349:7;3371:14;:24;3386:8;3371:24;;;;;;;;;;;;;;;;;;;;;3364:31;;3289:111;;;:::o;2785:277::-;2846:13;2862:17;2870:8;2862:7;:17::i;:::-;2846:33;;2900:5;2893:12;;:3;:12;;;;2885:21;;;;;;;;2934:5;2920:19;;:10;:19;;;:58;;;;2943:35;2960:5;2967:10;2943:16;:35::i;:::-;2920:58;2912:67;;;;;;;;3013:3;2986:14;:24;3001:8;2986:24;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;3048:8;3043:3;3027:30;;3036:5;3027:30;;;;;;;;;;;;2785:277;;;:::o;2805:87:10:-;2849:7;2871:9;:16;;;;2864:23;;2805:87;:::o;230:54:4:-;274:10;230:54;;;:::o;4780:370:8:-;4891:39;4909:10;4921:8;4891:17;:39::i;:::-;4883:48;;;;;;;;4962:1;4945:19;;:5;:19;;;;4937:28;;;;;;;;4994:1;4979:17;;:3;:17;;;;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;5115:30;;5124:5;5115:30;;;;;;;;;;;;4780:370;;;:::o;2460:203:10:-;2566:7;2600:17;2610:6;2600:9;:17::i;:::-;2591:6;:26;2583:35;;;;;;;;2631:11;:19;2643:6;2631:19;;;;;;;;;;;;;;;2651:6;2631:27;;;;;;;;;;;;;;;;;;2624:34;;2460:203;;;;:::o;5766:199:8:-;5918:42;5935:5;5942:3;5947:8;5918:42;;;;;;;;;;;;;:16;:42::i;:::-;5766:199;;;:::o;2240:140::-;2295:4;2307:13;2323:10;:20;2334:8;2323:20;;;;;;;;;;;;;;;;;;;;;2307:36;;2373:1;2356:19;;:5;:19;;;;2349:26;;2240:140;;;;:::o;3216::10:-;3275:7;3307:13;:11;:13::i;:::-;3298:6;:22;3290:31;;;;;;;;3334:9;3344:6;3334:17;;;;;;;;;;;;;;;;;;3327:24;;3216:140;;;:::o;1898:164:8:-;1954:7;1969:13;1985:10;:20;1996:8;1985:20;;;;;;;;;;;;;;;;;;;;;1969:36;;2036:1;2019:19;;:5;:19;;;;2011:28;;;;;;;;2052:5;2045:12;;1898:164;;;;:::o;1543:142::-;1599:7;1640:1;1622:20;;:6;:20;;;;1614:29;;;;;;;;1656:16;:24;1673:6;1656:24;;;;;;;;;;;;;;;;1649:31;;1543:142;;;:::o;1704:74:10:-;1745:6;1766:7;1759:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1704:74;:::o;3680:205:8:-;3764:10;3757:17;;:3;:17;;;;3749:26;;;;;;;;3818:9;3781:17;:29;3799:10;3781:29;;;;;;;;;;;;;;;:34;3811:3;3781:34;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;3865:3;3838:42;;3853:10;3838:42;;;3870:9;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:10:-;2023:6;2045:16;2052:8;2045:6;:16::i;:::-;2037:25;;;;;;;;2075:9;:19;2085:8;2075:19;;;;;;;;;;;2068:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1966:133;;;:::o;4194:168:8:-;4300:4;4321:17;:25;4339:6;4321:25;;;;;;;;;;;;;;;:36;4347:9;4321:36;;;;;;;;;;;;;;;;;;;;;;;;;4314:43;;4194:168;;;;:::o;7270:438::-;7380:4;7394:13;7410:17;7418:8;7410:7;:17::i;:::-;7394:33;;7606:5;7594:17;;:8;:17;;;:60;;;;7646:8;7621:33;;:21;7633:8;7621:11;:21::i;:::-;:33;;;7594:60;:103;;;;7664:33;7681:5;7688:8;7664:16;:33::i;:::-;7594:103;7579:124;;7270:438;;;;;:::o;8762:214::-;8863:6;8842:27;;:17;8850:8;8842:7;:17::i;:::-;:27;;;8834:36;;;;;;;;8916:1;8880:38;;:14;:24;8895:8;8880:24;;;;;;;;;;;;;;;;;;;;;:38;;;;8876:96;;;8963:1;8928:14;:24;8943:8;8928:24;;;;;;;;;;;;:37;;;;;;;;;;;;;;;;;;8876:96;8762:214;;:::o;4479:1022:10:-;4734:18;4787:22;4850:17;4552:38;4574:5;4581:8;4552:21;:38::i;:::-;4755:16;:26;4772:8;4755:26;;;;;;;;;;;;4734:47;;4812:32;4842:1;4812:11;:18;4824:5;4812:18;;;;;;;;;;;;;;;:25;;;;:29;;:32;;;;:::i;:::-;4787:57;;4870:11;:18;4882:5;4870:18;;;;;;;;;;;;;;;4889:14;4870:34;;;;;;;;;;;;;;;;;;4850:54;;4944:9;4911:11;:18;4923:5;4911:18;;;;;;;;;;;;;;;4930:10;4911:30;;;;;;;;;;;;;;;;;:42;;;;5031:11;:18;5043:5;5031:18;;;;;;;;;;;;;;;:27;;;;;;;;;;;;:::i;:::-;;5449:1;5420:16;:26;5437:8;5420:26;;;;;;;;;;;:30;;;;5486:10;5456:16;:27;5473:9;5456:27;;;;;;;;;;;:40;;;;4479:1022;;;;;:::o;3974:226::-;4077:14;4040:31;4057:3;4062:8;4040:16;:31::i;:::-;4094:11;:16;4106:3;4094:16;;;;;;;;;;;;;;;:23;;;;4077:40;;4123:11;:16;4135:3;4123:16;;;;;;;;;;;;;;;4145:8;4123:31;;39:1:-1;33:3;27:10;23:18;57:10;52:3;45:23;79:10;72:17;;0:93;4123:31:10;;;;;;;;;;;;;;;;;;;;;;4189:6;4160:16;:26;4177:8;4160:26;;;;;;;;;;;:35;;;;3974:226;;;:::o;10442:347:8:-;10581:4;10649:13;10600:16;:3;:14;;;:16::i;:::-;10599:17;10595:49;;;10633:4;10626:11;;;;10595:49;10680:3;10665:36;;;10709:10;10721:5;10728:8;10738:5;10665:79;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;99:1;94:3;90:11;84:18;80:1;75:3;71:11;64:39;52:2;49:1;45:10;40:15;;8:100;;;12:14;10665:79:8;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10665:79:8;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;10665:79:8;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;10665:79:8;;;;;;;;;;;;;;;;10649:95;;712:10;10768:15;;10758:25;;;:6;:25;;;;10750:34;;10442:347;;;;;;;;:::o;9722:214::-;9824:5;9803:26;;:17;9811:8;9803:7;:17::i;:::-;:26;;;9795:35;;;;;;;;9862:30;9890:1;9862:16;:23;9879:5;9862:23;;;;;;;;;;;;;;;;:27;;:30;;;;:::i;:::-;9836:16;:23;9853:5;9836:23;;;;;;;;;;;;;;;:56;;;;9929:1;9898:10;:20;9909:8;9898:20;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;9722:214;;:::o;1060:116:5:-;1120:7;1148:2;1142;:8;;1135:16;;;;;;1169:2;1164;:7;1157:14;;1060:116;;;;:::o;9239:204:8:-;9345:1;9313:34;;:10;:20;9324:8;9313:20;;;;;;;;;;;;;;;;;;;;;:34;;;9305:43;;;;;;;;9377:3;9354:10;:20;9365:8;9354:20;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;9410:28;9436:1;9410:16;:21;9427:3;9410:21;;;;;;;;;;;;;;;;:25;;:28;;;;:::i;:::-;9386:16;:21;9403:3;9386:21;;;;;;;;;;;;;;;:52;;;;9239:204;;:::o;438:578:2:-;496:4;508:12;983:5;971:18;963:26;;1010:1;1003:4;:8;996:15;;438:578;;;;:::o;1238:128:5:-;1298:9;1324:2;1319;:7;1315:11;;1344:2;1339:1;:7;;1332:15;;;;;;1360:1;1353:8;;1238:128;;;;:::o;437:6317:10:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o",
"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": "/Users/willpark/Desktop/bookwork-blockchain/testcodes/9nftdapp-new/backend-nftdapp/node_modules/zeppelin-solidity/contracts/token/ERC721/ERC721Token.sol",
"ast": {
"absolutePath": "/Users/willpark/Desktop/bookwork-blockchain/testcodes/9nftdapp-new/backend-nftdapp/node_modules/zeppelin-solidity/contracts/token/ERC721/ERC721Token.sol",
"exportedSymbols": {
"ERC721Token": [
1684
]
},
"id": 1685,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1313,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:10"
},
{
"absolutePath": "/Users/willpark/Desktop/bookwork-blockchain/testcodes/9nftdapp-new/backend-nftdapp/node_modules/zeppelin-solidity/contracts/token/ERC721/ERC721.sol",
"file": "./ERC721.sol",
"id": 1314,
"nodeType": "ImportDirective",
"scope": 1685,
"sourceUnit": 623,
"src": "26:22:10",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/willpark/Desktop/bookwork-blockchain/testcodes/9nftdapp-new/backend-nftdapp/node_modules/zeppelin-solidity/contracts/token/ERC721/ERC721BasicToken.sol",
"file": "./ERC721BasicToken.sol",
"id": 1315,
"nodeType": "ImportDirective",
"scope": 1685,
"sourceUnit": 1293,
"src": "49:32:10",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/willpark/Desktop/bookwork-blockchain/testcodes/9nftdapp-new/backend-nftdapp/node_modules/zeppelin-solidity/contracts/introspection/SupportsInterfaceWithLookup.sol",
"file": "../../introspection/SupportsInterfaceWithLookup.sol",
"id": 1316,
"nodeType": "ImportDirective",
"scope": 1685,
"sourceUnit": 475,
"src": "82:61:10",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1317,
"name": "SupportsInterfaceWithLookup",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 474,
"src": "461:27:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$474",
"typeString": "contract SupportsInterfaceWithLookup"
}
},
"id": 1318,
"nodeType": "InheritanceSpecifier",
"src": "461:27:10"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1319,
"name": "ERC721BasicToken",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1292,
"src": "490:16:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC721BasicToken_$1292",
"typeString": "contract ERC721BasicToken"
}
},
"id": 1320,
"nodeType": "InheritanceSpecifier",
"src": "490:16:10"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1321,
"name": "ERC721",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 622,
"src": "508:6:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC721_$622",
"typeString": "contract ERC721"
}
},
"id": 1322,
"nodeType": "InheritanceSpecifier",
"src": "508:6:10"
}
],
"contractDependencies": [
423,
474,
595,
615,
622,
744,
1292
],
"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": 1684,
"linearizedBaseContracts": [
1684,
622,
615,
595,
1292,
744,
474,
423
],
"name": "ERC721Token",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 1324,
"name": "name_",
"nodeType": "VariableDeclaration",
"scope": 1684,
"src": "536:21:10",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 1323,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "536:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1326,
"name": "symbol_",
"nodeType": "VariableDeclaration",
"scope": 1684,
"src": "580:23:10",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 1325,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "580:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1331,
"name": "ownedTokens",
"nodeType": "VariableDeclaration",
"scope": 1684,
"src": "659:50:10",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(address => uint256[])"
},
"typeName": {
"id": 1330,
"keyType": {
"id": 1327,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "667:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "659:29:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(address => uint256[])"
},
"valueType": {
"baseType": {
"id": 1328,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "678:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1329,
"length": null,
"nodeType": "ArrayTypeName",
"src": "678:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1335,
"name": "ownedTokensIndex",
"nodeType": "VariableDeclaration",
"scope": 1684,
"src": "775:53:10",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"typeName": {
"id": 1334,
"keyType": {
"id": 1332,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "783:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "775:27:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"valueType": {
"id": 1333,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "794:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1338,
"name": "allTokens",
"nodeType": "VariableDeclaration",
"scope": 1684,
"src": "885:28:10",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 1336,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "885:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1337,
"length": null,
"nodeType": "ArrayTypeName",
"src": "885:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1342,
"name": "allTokensIndex",
"nodeType": "VariableDeclaration",
"scope": 1684,
"src": "980:51:10",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"typeName": {
"id": 1341,
"keyType": {
"id": 1339,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "988:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "980:27:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"valueType": {
"id": 1340,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "999:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1346,
"name": "tokenURIs",
"nodeType": "VariableDeclaration",
"scope": 1684,
"src": "1073:45:10",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
"typeString": "mapping(uint256 => string)"
},
"typeName": {
"id": 1345,
"keyType": {
"id": 1343,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1081:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "1073:26:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
"typeString": "mapping(uint256 => string)"
},
"valueType": {
"id": 1344,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1092:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
}
},
"value": null,
"visibility": "internal"
},
{
"body": {
"id": 1369,
"nodeType": "Block",
"src": "1215:227:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1355,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1353,
"name": "name_",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1324,
"src": "1221:5:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1354,
"name": "_name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1348,
"src": "1229:5:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "1221:13:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 1356,
"nodeType": "ExpressionStatement",
"src": "1221:13:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1359,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1357,
"name": "symbol_",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1326,
"src": "1240:7:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1358,
"name": "_symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1350,
"src": "1250:7:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "1240:17:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 1360,
"nodeType": "ExpressionStatement",
"src": "1240:17:10"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1362,
"name": "InterfaceId_ERC721Enumerable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 636,
"src": "1356:28:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"id": 1361,
"name": "_registerInterface",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 473,
"src": "1337:18:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$",
"typeString": "function (bytes4)"
}
},
"id": 1363,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1337:48:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1364,
"nodeType": "ExpressionStatement",
"src": "1337:48:10"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1366,
"name": "InterfaceId_ERC721Metadata",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 639,
"src": "1410:26:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"id": 1365,
"name": "_registerInterface",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 473,
"src": "1391:18:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$",
"typeString": "function (bytes4)"
}
},
"id": 1367,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1391:46:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1368,
"nodeType": "ExpressionStatement",
"src": "1391:46:10"
}
]
},
"documentation": "@dev Constructor function",
"id": 1370,
"implemented": true,
"isConstructor": true,
"isDeclaredConst": false,
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1351,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1348,
"name": "_name",
"nodeType": "VariableDeclaration",
"scope": 1370,
"src": "1178:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 1347,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1178:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1350,
"name": "_symbol",
"nodeType": "VariableDeclaration",
"scope": 1370,
"src": "1192:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 1349,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1192:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1177:30:10"
},
"payable": false,
"returnParameters": {
"id": 1352,
"nodeType": "ParameterList",
"parameters": [],
"src": "1215:0:10"
},
"scope": 1684,
"src": "1166:276:10",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 1377,
"nodeType": "Block",
"src": "1583:23:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1375,
"name": "name_",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1324,
"src": "1596:5:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"functionReturnParameters": 1374,
"id": 1376,
"nodeType": "Return",
"src": "1589:12:10"
}
]
},
"documentation": "@dev Gets the token name\n@return string representing the token name",
"id": 1378,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "name",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1371,
"nodeType": "ParameterList",
"parameters": [],
"src": "1549:2:10"
},
"payable": false,
"returnParameters": {
"id": 1374,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1373,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1378,
"src": "1575:6:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 1372,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1575:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1574:8:10"
},
"scope": 1684,
"src": "1536:70:10",
"stateMutability": "view",
"superFunction": 602,
"visibility": "external"
},
{
"body": {
"id": 1385,
"nodeType": "Block",
"src": "1753:25:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1383,
"name": "symbol_",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1326,
"src": "1766:7:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"functionReturnParameters": 1382,
"id": 1384,
"nodeType": "Return",
"src": "1759:14:10"
}
]
},
"documentation": "@dev Gets the token symbol\n@return string representing the token symbol",
"id": 1386,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "symbol",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1379,
"nodeType": "ParameterList",
"parameters": [],
"src": "1719:2:10"
},
"payable": false,
"returnParameters": {
"id": 1382,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1381,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1386,
"src": "1745:6:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 1380,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1745:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1744:8:10"
},
"scope": 1684,
"src": "1704:74:10",
"stateMutability": "view",
"superFunction": 607,
"visibility": "external"
},
{
"body": {
"id": 1403,
"nodeType": "Block",
"src": "2031:68:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1395,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1388,
"src": "2052:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 1394,
"name": "exists",
"nodeType": "Identifier",
"overloadedDeclarations": [
858
],
"referencedDeclaration": 858,
"src": "2045:6:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
"typeString": "function (uint256) view returns (bool)"
}
},
"id": 1396,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2045:16:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 1393,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
1702,
1703
],
"referencedDeclaration": 1702,
"src": "2037:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 1397,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2037:25:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1398,
"nodeType": "ExpressionStatement",
"src": "2037:25:10"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1399,
"name": "tokenURIs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1346,
"src": "2075:9:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
"typeString": "mapping(uint256 => string storage ref)"
}
},
"id": 1401,
"indexExpression": {
"argumentTypes": null,
"id": 1400,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1388,
"src": "2085:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2075:19:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"functionReturnParameters": 1392,
"id": 1402,
"nodeType": "Return",
"src": "2068:26:10"
}
]
},
"documentation": "@dev Returns an URI for a given token ID\nThrows if the token ID does not exist. May return an empty string.\n@param _tokenId uint256 ID of the token to query",
"id": 1404,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "tokenURI",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1389,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1388,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 1404,
"src": "1984:16:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1387,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1984:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1983:18:10"
},
"payable": false,
"returnParameters": {
"id": 1392,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1391,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1404,
"src": "2023:6:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 1390,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2023:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2022:8:10"
},
"scope": 1684,
"src": "1966:133:10",
"stateMutability": "view",
"superFunction": 614,
"visibility": "public"
},
{
"body": {
"id": 1427,
"nodeType": "Block",
"src": "2577:86:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 1418,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 1414,
"name": "_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1408,
"src": "2591:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1416,
"name": "_owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1406,
"src": "2610:6:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 1415,
"name": "balanceOf",
"nodeType": "Identifier",
"overloadedDeclarations": [
814
],
"referencedDeclaration": 814,
"src": "2600:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
"typeString": "function (address) view returns (uint256)"
}
},
"id": 1417,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2600:17:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2591:26:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 1413,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
1702,
1703
],
"referencedDeclaration": 1702,
"src": "2583:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 1419,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2583:35:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1420,
"nodeType": "ExpressionStatement",
"src": "2583:35:10"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1421,
"name": "ownedTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1331,
"src": "2631:11:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(address => uint256[] storage ref)"
}
},
"id": 1423,
"indexExpression": {
"argumentTypes": null,
"id": 1422,
"name": "_owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1406,
"src": "2643:6:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2631:19:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1425,
"indexExpression": {
"argumentTypes": null,
"id": 1424,
"name": "_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1408,
"src": "2651:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2631:27:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 1412,
"id": 1426,
"nodeType": "Return",
"src": "2624:34:10"
}
]
},
"documentation": "@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",
"id": 1428,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "tokenOfOwnerByIndex",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1409,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1406,
"name": "_owner",
"nodeType": "VariableDeclaration",
"scope": 1428,
"src": "2494:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1405,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2494:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1408,
"name": "_index",
"nodeType": "VariableDeclaration",
"scope": 1428,
"src": "2514:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1407,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2514:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2488:44:10"
},
"payable": false,
"returnParameters": {
"id": 1412,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1411,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1428,
"src": "2566:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1410,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2566:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2565:9:10"
},
"scope": 1684,
"src": "2460:203:10",
"stateMutability": "view",
"superFunction": 587,
"visibility": "public"
},
{
"body": {
"id": 1436,
"nodeType": "Block",
"src": "2858:34:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 1433,
"name": "allTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1338,
"src": "2871:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1434,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2871:16:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 1432,
"id": 1435,
"nodeType": "Return",
"src": "2864:23:10"
}
]
},
"documentation": "@dev Gets the total amount of tokens stored by the contract\n@return uint256 representing the total amount of tokens",
"id": 1437,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "totalSupply",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1429,
"nodeType": "ParameterList",
"parameters": [],
"src": "2825:2:10"
},
"payable": false,
"returnParameters": {
"id": 1432,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1431,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1437,
"src": "2849:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1430,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2849:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2848:9:10"
},
"scope": 1684,
"src": "2805:87:10",
"stateMutability": "view",
"superFunction": 578,
"visibility": "public"
},
{
"body": {
"id": 1455,
"nodeType": "Block",
"src": "3284:72:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 1448,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 1445,
"name": "_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1439,
"src": "3298:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 1446,
"name": "totalSupply",
"nodeType": "Identifier",
"overloadedDeclarations": [
1437
],
"referencedDeclaration": 1437,
"src": "3307:11:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
"id": 1447,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3307:13:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3298:22:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 1444,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
1702,
1703
],
"referencedDeclaration": 1702,
"src": "3290:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 1449,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3290:31:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1450,
"nodeType": "ExpressionStatement",
"src": "3290:31:10"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1451,
"name": "allTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1338,
"src": "3334:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1453,
"indexExpression": {
"argumentTypes": null,
"id": 1452,
"name": "_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1439,
"src": "3344:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3334:17:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 1443,
"id": 1454,
"nodeType": "Return",
"src": "3327:24:10"
}
]
},
"documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts 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",
"id": 1456,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "tokenByIndex",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1440,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1439,
"name": "_index",
"nodeType": "VariableDeclaration",
"scope": 1456,
"src": "3238:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1438,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3238:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3237:16:10"
},
"payable": false,
"returnParameters": {
"id": 1443,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1442,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1456,
"src": "3275:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1441,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3275:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3274:9:10"
},
"scope": 1684,
"src": "3216:140:10",
"stateMutability": "view",
"superFunction": 594,
"visibility": "public"
},
{
"body": {
"id": 1475,
"nodeType": "Block",
"src": "3643:68:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1465,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1458,
"src": "3664:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 1464,
"name": "exists",
"nodeType": "Identifier",
"overloadedDeclarations": [
858
],
"referencedDeclaration": 858,
"src": "3657:6:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
"typeString": "function (uint256) view returns (bool)"
}
},
"id": 1466,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3657:16:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 1463,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
1702,
1703
],
"referencedDeclaration": 1702,
"src": "3649:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 1467,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3649:25:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1468,
"nodeType": "ExpressionStatement",
"src": "3649:25:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1473,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1469,
"name": "tokenURIs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1346,
"src": "3680:9:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
"typeString": "mapping(uint256 => string storage ref)"
}
},
"id": 1471,
"indexExpression": {
"argumentTypes": null,
"id": 1470,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1458,
"src": "3690:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3680:19:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1472,
"name": "_uri",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1460,
"src": "3702:4:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "3680:26:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 1474,
"nodeType": "ExpressionStatement",
"src": "3680:26:10"
}
]
},
"documentation": "@dev Internal function to set the token URI for a given token\nReverts 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",
"id": 1476,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "_setTokenURI",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1461,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1458,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 1476,
"src": "3603:16:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1457,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3603:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1460,
"name": "_uri",
"nodeType": "VariableDeclaration",
"scope": 1476,
"src": "3621:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 1459,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "3621:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3602:31:10"
},
"payable": false,
"returnParameters": {
"id": 1462,
"nodeType": "ParameterList",
"parameters": [],
"src": "3643:0:10"
},
"scope": 1684,
"src": "3581:130:10",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 1510,
"nodeType": "Block",
"src": "4034:166:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1486,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1478,
"src": "4057:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 1487,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1480,
"src": "4062:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 1483,
"name": "super",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1733,
"src": "4040:5:10",
"typeDescriptions": {
"typeIdentifier": "t_super$_ERC721Token_$1684",
"typeString": "contract super ERC721Token"
}
},
"id": 1485,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "addTokenTo",
"nodeType": "MemberAccess",
"referencedDeclaration": 1216,
"src": "4040:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 1488,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4040:31:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1489,
"nodeType": "ExpressionStatement",
"src": "4040:31:10"
},
{
"assignments": [
1491
],
"declarations": [
{
"constant": false,
"id": 1491,
"name": "length",
"nodeType": "VariableDeclaration",
"scope": 1511,
"src": "4077:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1490,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4077:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 1496,
"initialValue": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1492,
"name": "ownedTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1331,
"src": "4094:11:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(address => uint256[] storage ref)"
}
},
"id": 1494,
"indexExpression": {
"argumentTypes": null,
"id": 1493,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1478,
"src": "4106:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4094:16:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1495,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4094:23:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4077:40:10"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1501,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1480,
"src": "4145:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1497,
"name": "ownedTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1331,
"src": "4123:11:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(address => uint256[] storage ref)"
}
},
"id": 1499,
"indexExpression": {
"argumentTypes": null,
"id": 1498,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1478,
"src": "4135:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4123:16:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1500,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4123:21:10",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256) returns (uint256)"
}
},
"id": 1502,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4123:31:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1503,
"nodeType": "ExpressionStatement",
"src": "4123:31:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1508,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1504,
"name": "ownedTokensIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1335,
"src": "4160:16:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 1506,
"indexExpression": {
"argumentTypes": null,
"id": 1505,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1480,
"src": "4177:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4160:26:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1507,
"name": "length",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1491,
"src": "4189:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4160:35:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1509,
"nodeType": "ExpressionStatement",
"src": "4160:35:10"
}
]
},
"documentation": "@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",
"id": 1511,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "addTokenTo",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1481,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1478,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 1511,
"src": "3994:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1477,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3994:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1480,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 1511,
"src": "4007:16:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1479,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4007:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3993:31:10"
},
"payable": false,
"returnParameters": {
"id": 1482,
"nodeType": "ParameterList",
"parameters": [],
"src": "4034:0:10"
},
"scope": 1684,
"src": "3974:226:10",
"stateMutability": "nonpayable",
"superFunction": 1216,
"visibility": "internal"
},
{
"body": {
"id": 1575,
"nodeType": "Block",
"src": "4546:955:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1521,
"name": "_from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1513,
"src": "4574:5:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 1522,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1515,
"src": "4581:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 1518,
"name": "super",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1733,
"src": "4552:5:10",
"typeDescriptions": {
"typeIdentifier": "t_super$_ERC721Token_$1684",
"typeString": "contract super ERC721Token"
}
},
"id": 1520,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "removeTokenFrom",
"nodeType": "MemberAccess",
"referencedDeclaration": 1251,
"src": "4552:21:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 1523,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4552:38:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1524,
"nodeType": "ExpressionStatement",
"src": "4552:38:10"
},
{
"assignments": [
1526
],
"declarations": [
{
"constant": false,
"id": 1526,
"name": "tokenIndex",
"nodeType": "VariableDeclaration",
"scope": 1576,
"src": "4734:18:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1525,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4734:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 1530,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1527,
"name": "ownedTokensIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1335,
"src": "4755:16:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 1529,
"indexExpression": {
"argumentTypes": null,
"id": 1528,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1515,
"src": "4772:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4755:26:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4734:47:10"
},
{
"assignments": [
1532
],
"declarations": [
{
"constant": false,
"id": 1532,
"name": "lastTokenIndex",
"nodeType": "VariableDeclaration",
"scope": 1576,
"src": "4787:22:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1531,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4787:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 1540,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "31",
"id": 1538,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4842:1:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
}
],
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1533,
"name": "ownedTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1331,
"src": "4812:11:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(address => uint256[] storage ref)"
}
},
"id": 1535,
"indexExpression": {
"argumentTypes": null,
"id": 1534,
"name": "_from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1513,
"src": "4824:5:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4812:18:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1536,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4812:25:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1537,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 543,
"src": "4812:29:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
"id": 1539,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4812:32:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4787:57:10"
},
{
"assignments": [
1542
],
"declarations": [
{
"constant": false,
"id": 1542,
"name": "lastToken",
"nodeType": "VariableDeclaration",
"scope": 1576,
"src": "4850:17:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1541,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4850:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 1548,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1543,
"name": "ownedTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1331,
"src": "4870:11:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(address => uint256[] storage ref)"
}
},
"id": 1545,
"indexExpression": {
"argumentTypes": null,
"id": 1544,
"name": "_from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1513,
"src": "4882:5:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4870:18:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1547,
"indexExpression": {
"argumentTypes": null,
"id": 1546,
"name": "lastTokenIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1532,
"src": "4889:14:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4870:34:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4850:54:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1555,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1549,
"name": "ownedTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1331,
"src": "4911:11:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(address => uint256[] storage ref)"
}
},
"id": 1552,
"indexExpression": {
"argumentTypes": null,
"id": 1550,
"name": "_from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1513,
"src": "4923:5:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4911:18:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1553,
"indexExpression": {
"argumentTypes": null,
"id": 1551,
"name": "tokenIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1526,
"src": "4930:10:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4911:30:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1554,
"name": "lastToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1542,
"src": "4944:9:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4911:42:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1556,
"nodeType": "ExpressionStatement",
"src": "4911:42:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1561,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "--",
"prefix": false,
"src": "5031:27:10",
"subExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1557,
"name": "ownedTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1331,
"src": "5031:11:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(address => uint256[] storage ref)"
}
},
"id": 1559,
"indexExpression": {
"argumentTypes": null,
"id": 1558,
"name": "_from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1513,
"src": "5043:5:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5031:18:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1560,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5031:25:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1562,
"nodeType": "ExpressionStatement",
"src": "5031:27:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1567,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1563,
"name": "ownedTokensIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1335,
"src": "5420:16:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 1565,
"indexExpression": {
"argumentTypes": null,
"id": 1564,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1515,
"src": "5437:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5420:26:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "30",
"id": 1566,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5449:1:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "5420:30:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1568,
"nodeType": "ExpressionStatement",
"src": "5420:30:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1573,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1569,
"name": "ownedTokensIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1335,
"src": "5456:16:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 1571,
"indexExpression": {
"argumentTypes": null,
"id": 1570,
"name": "lastToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1542,
"src": "5473:9:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5456:27:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1572,
"name": "tokenIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1526,
"src": "5486:10:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5456:40:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1574,
"nodeType": "ExpressionStatement",
"src": "5456:40:10"
}
]
},
"documentation": "@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",
"id": 1576,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "removeTokenFrom",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1516,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1513,
"name": "_from",
"nodeType": "VariableDeclaration",
"scope": 1576,
"src": "4504:13:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1512,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4504:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1515,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 1576,
"src": "4519:16:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1514,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4519:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4503:33:10"
},
"payable": false,
"returnParameters": {
"id": 1517,
"nodeType": "ParameterList",
"parameters": [],
"src": "4546:0:10"
},
"scope": 1684,
"src": "4479:1022:10",
"stateMutability": "nonpayable",
"superFunction": 1251,
"visibility": "internal"
},
{
"body": {
"id": 1603,
"nodeType": "Block",
"src": "5817:117:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1586,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1578,
"src": "5835:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 1587,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1580,
"src": "5840:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 1583,
"name": "super",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1733,
"src": "5823:5:10",
"typeDescriptions": {
"typeIdentifier": "t_super$_ERC721Token_$1684",
"typeString": "contract super ERC721Token"
}
},
"id": 1585,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "_mint",
"nodeType": "MemberAccess",
"referencedDeclaration": 1122,
"src": "5823:11:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 1588,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5823:26:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1589,
"nodeType": "ExpressionStatement",
"src": "5823:26:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1595,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1590,
"name": "allTokensIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1342,
"src": "5856:14:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 1592,
"indexExpression": {
"argumentTypes": null,
"id": 1591,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1580,
"src": "5871:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5856:24:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 1593,
"name": "allTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1338,
"src": "5883:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1594,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5883:16:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5856:43:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1596,
"nodeType": "ExpressionStatement",
"src": "5856:43:10"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1600,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1580,
"src": "5920:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 1597,
"name": "allTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1338,
"src": "5905:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1599,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5905:14:10",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256) returns (uint256)"
}
},
"id": 1601,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5905:24:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1602,
"nodeType": "ExpressionStatement",
"src": "5905:24:10"
}
]
},
"documentation": "@dev Internal function to mint a new token\nReverts 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",
"id": 1604,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "_mint",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1581,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1578,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 1604,
"src": "5777:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1577,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5777:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1580,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 1604,
"src": "5790:16:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1579,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5790:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5776:31:10"
},
"payable": false,
"returnParameters": {
"id": 1582,
"nodeType": "ParameterList",
"parameters": [],
"src": "5817:0:10"
},
"scope": 1684,
"src": "5762:172:10",
"stateMutability": "nonpayable",
"superFunction": 1122,
"visibility": "internal"
},
{
"body": {
"id": 1682,
"nodeType": "Block",
"src": "6224:527:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1614,
"name": "_owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1606,
"src": "6242:6:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 1615,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1608,
"src": "6250:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 1611,
"name": "super",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1733,
"src": "6230:5:10",
"typeDescriptions": {
"typeIdentifier": "t_super$_ERC721Token_$1684",
"typeString": "contract super ERC721Token"
}
},
"id": 1613,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "_burn",
"nodeType": "MemberAccess",
"referencedDeclaration": 1148,
"src": "6230:11:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 1616,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6230:29:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1617,
"nodeType": "ExpressionStatement",
"src": "6230:29:10"
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 1625,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1619,
"name": "tokenURIs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1346,
"src": "6307:9:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
"typeString": "mapping(uint256 => string storage ref)"
}
},
"id": 1621,
"indexExpression": {
"argumentTypes": null,
"id": 1620,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1608,
"src": "6317:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6307:19:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 1618,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6301:5:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
"typeString": "type(bytes storage pointer)"
},
"typeName": "bytes"
},
"id": 1622,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6301:26:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 1623,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6301:33:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 1624,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6338:1:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "6301:38:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 1632,
"nodeType": "IfStatement",
"src": "6297:85:10",
"trueBody": {
"id": 1631,
"nodeType": "Block",
"src": "6341:41:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1629,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "6349:26:10",
"subExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1626,
"name": "tokenURIs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1346,
"src": "6356:9:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
"typeString": "mapping(uint256 => string storage ref)"
}
},
"id": 1628,
"indexExpression": {
"argumentTypes": null,
"id": 1627,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1608,
"src": "6366:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6356:19:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1630,
"nodeType": "ExpressionStatement",
"src": "6349:26:10"
}
]
}
},
{
"assignments": [
1634
],
"declarations": [
{
"constant": false,
"id": 1634,
"name": "tokenIndex",
"nodeType": "VariableDeclaration",
"scope": 1683,
"src": "6418:18:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1633,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6418:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 1638,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1635,
"name": "allTokensIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1342,
"src": "6439:14:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 1637,
"indexExpression": {
"argumentTypes": null,
"id": 1636,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1608,
"src": "6454:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6439:24:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6418:45:10"
},
{
"assignments": [
1640
],
"declarations": [
{
"constant": false,
"id": 1640,
"name": "lastTokenIndex",
"nodeType": "VariableDeclaration",
"scope": 1683,
"src": "6469:22:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1639,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6469:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 1646,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "31",
"id": 1644,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6515:1:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
}
],
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 1641,
"name": "allTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1338,
"src": "6494:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1642,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6494:16:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1643,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 543,
"src": "6494:20:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
"id": 1645,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6494:23:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6469:48:10"
},
{
"assignments": [
1648
],
"declarations": [
{
"constant": false,
"id": 1648,
"name": "lastToken",
"nodeType": "VariableDeclaration",
"scope": 1683,
"src": "6523:17:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1647,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6523:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 1652,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1649,
"name": "allTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1338,
"src": "6543:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1651,
"indexExpression": {
"argumentTypes": null,
"id": 1650,
"name": "lastTokenIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1640,
"src": "6553:14:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6543:25:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6523:45:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1657,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1653,
"name": "allTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1338,
"src": "6575:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1655,
"indexExpression": {
"argumentTypes": null,
"id": 1654,
"name": "tokenIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1634,
"src": "6585:10:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6575:21:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1656,
"name": "lastToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1648,
"src": "6599:9:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "6575:33:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1658,
"nodeType": "ExpressionStatement",
"src": "6575:33:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1663,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1659,
"name": "allTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1338,
"src": "6614:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1661,
"indexExpression": {
"argumentTypes": null,
"id": 1660,
"name": "lastTokenIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1640,
"src": "6624:14:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6614:25:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "30",
"id": 1662,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6642:1:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "6614:29:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1664,
"nodeType": "ExpressionStatement",
"src": "6614:29:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1668,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "--",
"prefix": false,
"src": "6650:18:10",
"subExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 1665,
"name": "allTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1338,
"src": "6650:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1667,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6650:16:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1669,
"nodeType": "ExpressionStatement",
"src": "6650:18:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1674,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1670,
"name": "allTokensIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1342,
"src": "6674:14:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 1672,
"indexExpression": {
"argumentTypes": null,
"id": 1671,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1608,
"src": "6689:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6674:24:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "30",
"id": 1673,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6701:1:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "6674:28:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1675,
"nodeType": "ExpressionStatement",
"src": "6674:28:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1680,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1676,
"name": "allTokensIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1342,
"src": "6708:14:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 1678,
"indexExpression": {
"argumentTypes": null,
"id": 1677,
"name": "lastToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1648,
"src": "6723:9:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6708:25:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1679,
"name": "tokenIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1634,
"src": "6736:10:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "6708:38:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1681,
"nodeType": "ExpressionStatement",
"src": "6708:38:10"
}
]
},
"documentation": "@dev Internal function to burn a specific token\nReverts 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",
"id": 1683,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "_burn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1609,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1606,
"name": "_owner",
"nodeType": "VariableDeclaration",
"scope": 1683,
"src": "6181:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1605,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6181:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1608,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 1683,
"src": "6197:16:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1607,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6197:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6180:34:10"
},
"payable": false,
"returnParameters": {
"id": 1610,
"nodeType": "ParameterList",
"parameters": [],
"src": "6224:0:10"
},
"scope": 1684,
"src": "6166:585:10",
"stateMutability": "nonpayable",
"superFunction": 1148,
"visibility": "internal"
}
],
"scope": 1685,
"src": "437:6317:10"
}
],
"src": "0:6755:10"
},
"legacyAST": {
"absolutePath": "/Users/willpark/Desktop/bookwork-blockchain/testcodes/9nftdapp-new/backend-nftdapp/node_modules/zeppelin-solidity/contracts/token/ERC721/ERC721Token.sol",
"exportedSymbols": {
"ERC721Token": [
1684
]
},
"id": 1685,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 1313,
"literals": [
"solidity",
"^",
"0.4",
".24"
],
"nodeType": "PragmaDirective",
"src": "0:24:10"
},
{
"absolutePath": "/Users/willpark/Desktop/bookwork-blockchain/testcodes/9nftdapp-new/backend-nftdapp/node_modules/zeppelin-solidity/contracts/token/ERC721/ERC721.sol",
"file": "./ERC721.sol",
"id": 1314,
"nodeType": "ImportDirective",
"scope": 1685,
"sourceUnit": 623,
"src": "26:22:10",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/willpark/Desktop/bookwork-blockchain/testcodes/9nftdapp-new/backend-nftdapp/node_modules/zeppelin-solidity/contracts/token/ERC721/ERC721BasicToken.sol",
"file": "./ERC721BasicToken.sol",
"id": 1315,
"nodeType": "ImportDirective",
"scope": 1685,
"sourceUnit": 1293,
"src": "49:32:10",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/Users/willpark/Desktop/bookwork-blockchain/testcodes/9nftdapp-new/backend-nftdapp/node_modules/zeppelin-solidity/contracts/introspection/SupportsInterfaceWithLookup.sol",
"file": "../../introspection/SupportsInterfaceWithLookup.sol",
"id": 1316,
"nodeType": "ImportDirective",
"scope": 1685,
"sourceUnit": 475,
"src": "82:61:10",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1317,
"name": "SupportsInterfaceWithLookup",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 474,
"src": "461:27:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_SupportsInterfaceWithLookup_$474",
"typeString": "contract SupportsInterfaceWithLookup"
}
},
"id": 1318,
"nodeType": "InheritanceSpecifier",
"src": "461:27:10"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1319,
"name": "ERC721BasicToken",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 1292,
"src": "490:16:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC721BasicToken_$1292",
"typeString": "contract ERC721BasicToken"
}
},
"id": 1320,
"nodeType": "InheritanceSpecifier",
"src": "490:16:10"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 1321,
"name": "ERC721",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 622,
"src": "508:6:10",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC721_$622",
"typeString": "contract ERC721"
}
},
"id": 1322,
"nodeType": "InheritanceSpecifier",
"src": "508:6:10"
}
],
"contractDependencies": [
423,
474,
595,
615,
622,
744,
1292
],
"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": 1684,
"linearizedBaseContracts": [
1684,
622,
615,
595,
1292,
744,
474,
423
],
"name": "ERC721Token",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 1324,
"name": "name_",
"nodeType": "VariableDeclaration",
"scope": 1684,
"src": "536:21:10",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 1323,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "536:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1326,
"name": "symbol_",
"nodeType": "VariableDeclaration",
"scope": 1684,
"src": "580:23:10",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 1325,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "580:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1331,
"name": "ownedTokens",
"nodeType": "VariableDeclaration",
"scope": 1684,
"src": "659:50:10",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(address => uint256[])"
},
"typeName": {
"id": 1330,
"keyType": {
"id": 1327,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "667:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Mapping",
"src": "659:29:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(address => uint256[])"
},
"valueType": {
"baseType": {
"id": 1328,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "678:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1329,
"length": null,
"nodeType": "ArrayTypeName",
"src": "678:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1335,
"name": "ownedTokensIndex",
"nodeType": "VariableDeclaration",
"scope": 1684,
"src": "775:53:10",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"typeName": {
"id": 1334,
"keyType": {
"id": 1332,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "783:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "775:27:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"valueType": {
"id": 1333,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "794:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1338,
"name": "allTokens",
"nodeType": "VariableDeclaration",
"scope": 1684,
"src": "885:28:10",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[]"
},
"typeName": {
"baseType": {
"id": 1336,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "885:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1337,
"length": null,
"nodeType": "ArrayTypeName",
"src": "885:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
"typeString": "uint256[]"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1342,
"name": "allTokensIndex",
"nodeType": "VariableDeclaration",
"scope": 1684,
"src": "980:51:10",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"typeName": {
"id": 1341,
"keyType": {
"id": 1339,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "988:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "980:27:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"valueType": {
"id": 1340,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "999:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1346,
"name": "tokenURIs",
"nodeType": "VariableDeclaration",
"scope": 1684,
"src": "1073:45:10",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
"typeString": "mapping(uint256 => string)"
},
"typeName": {
"id": 1345,
"keyType": {
"id": 1343,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1081:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "1073:26:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
"typeString": "mapping(uint256 => string)"
},
"valueType": {
"id": 1344,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1092:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
}
},
"value": null,
"visibility": "internal"
},
{
"body": {
"id": 1369,
"nodeType": "Block",
"src": "1215:227:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1355,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1353,
"name": "name_",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1324,
"src": "1221:5:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1354,
"name": "_name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1348,
"src": "1229:5:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "1221:13:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 1356,
"nodeType": "ExpressionStatement",
"src": "1221:13:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1359,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 1357,
"name": "symbol_",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1326,
"src": "1240:7:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1358,
"name": "_symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1350,
"src": "1250:7:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "1240:17:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 1360,
"nodeType": "ExpressionStatement",
"src": "1240:17:10"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1362,
"name": "InterfaceId_ERC721Enumerable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 636,
"src": "1356:28:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"id": 1361,
"name": "_registerInterface",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 473,
"src": "1337:18:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$",
"typeString": "function (bytes4)"
}
},
"id": 1363,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1337:48:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1364,
"nodeType": "ExpressionStatement",
"src": "1337:48:10"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1366,
"name": "InterfaceId_ERC721Metadata",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 639,
"src": "1410:26:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"id": 1365,
"name": "_registerInterface",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 473,
"src": "1391:18:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes4_$returns$__$",
"typeString": "function (bytes4)"
}
},
"id": 1367,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "1391:46:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1368,
"nodeType": "ExpressionStatement",
"src": "1391:46:10"
}
]
},
"documentation": "@dev Constructor function",
"id": 1370,
"implemented": true,
"isConstructor": true,
"isDeclaredConst": false,
"modifiers": [],
"name": "",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1351,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1348,
"name": "_name",
"nodeType": "VariableDeclaration",
"scope": 1370,
"src": "1178:12:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 1347,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1178:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1350,
"name": "_symbol",
"nodeType": "VariableDeclaration",
"scope": 1370,
"src": "1192:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 1349,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1192:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1177:30:10"
},
"payable": false,
"returnParameters": {
"id": 1352,
"nodeType": "ParameterList",
"parameters": [],
"src": "1215:0:10"
},
"scope": 1684,
"src": "1166:276:10",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 1377,
"nodeType": "Block",
"src": "1583:23:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1375,
"name": "name_",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1324,
"src": "1596:5:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"functionReturnParameters": 1374,
"id": 1376,
"nodeType": "Return",
"src": "1589:12:10"
}
]
},
"documentation": "@dev Gets the token name\n@return string representing the token name",
"id": 1378,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "name",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1371,
"nodeType": "ParameterList",
"parameters": [],
"src": "1549:2:10"
},
"payable": false,
"returnParameters": {
"id": 1374,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1373,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1378,
"src": "1575:6:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 1372,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1575:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1574:8:10"
},
"scope": 1684,
"src": "1536:70:10",
"stateMutability": "view",
"superFunction": 602,
"visibility": "external"
},
{
"body": {
"id": 1385,
"nodeType": "Block",
"src": "1753:25:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1383,
"name": "symbol_",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1326,
"src": "1766:7:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"functionReturnParameters": 1382,
"id": 1384,
"nodeType": "Return",
"src": "1759:14:10"
}
]
},
"documentation": "@dev Gets the token symbol\n@return string representing the token symbol",
"id": 1386,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "symbol",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1379,
"nodeType": "ParameterList",
"parameters": [],
"src": "1719:2:10"
},
"payable": false,
"returnParameters": {
"id": 1382,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1381,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1386,
"src": "1745:6:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 1380,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1745:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1744:8:10"
},
"scope": 1684,
"src": "1704:74:10",
"stateMutability": "view",
"superFunction": 607,
"visibility": "external"
},
{
"body": {
"id": 1403,
"nodeType": "Block",
"src": "2031:68:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1395,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1388,
"src": "2052:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 1394,
"name": "exists",
"nodeType": "Identifier",
"overloadedDeclarations": [
858
],
"referencedDeclaration": 858,
"src": "2045:6:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
"typeString": "function (uint256) view returns (bool)"
}
},
"id": 1396,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2045:16:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 1393,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
1702,
1703
],
"referencedDeclaration": 1702,
"src": "2037:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 1397,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2037:25:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1398,
"nodeType": "ExpressionStatement",
"src": "2037:25:10"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1399,
"name": "tokenURIs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1346,
"src": "2075:9:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
"typeString": "mapping(uint256 => string storage ref)"
}
},
"id": 1401,
"indexExpression": {
"argumentTypes": null,
"id": 1400,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1388,
"src": "2085:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2075:19:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"functionReturnParameters": 1392,
"id": 1402,
"nodeType": "Return",
"src": "2068:26:10"
}
]
},
"documentation": "@dev Returns an URI for a given token ID\nThrows if the token ID does not exist. May return an empty string.\n@param _tokenId uint256 ID of the token to query",
"id": 1404,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "tokenURI",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1389,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1388,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 1404,
"src": "1984:16:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1387,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1984:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1983:18:10"
},
"payable": false,
"returnParameters": {
"id": 1392,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1391,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1404,
"src": "2023:6:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 1390,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2023:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2022:8:10"
},
"scope": 1684,
"src": "1966:133:10",
"stateMutability": "view",
"superFunction": 614,
"visibility": "public"
},
{
"body": {
"id": 1427,
"nodeType": "Block",
"src": "2577:86:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 1418,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 1414,
"name": "_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1408,
"src": "2591:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1416,
"name": "_owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1406,
"src": "2610:6:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 1415,
"name": "balanceOf",
"nodeType": "Identifier",
"overloadedDeclarations": [
814
],
"referencedDeclaration": 814,
"src": "2600:9:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_uint256_$",
"typeString": "function (address) view returns (uint256)"
}
},
"id": 1417,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2600:17:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2591:26:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 1413,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
1702,
1703
],
"referencedDeclaration": 1702,
"src": "2583:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 1419,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "2583:35:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1420,
"nodeType": "ExpressionStatement",
"src": "2583:35:10"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1421,
"name": "ownedTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1331,
"src": "2631:11:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(address => uint256[] storage ref)"
}
},
"id": 1423,
"indexExpression": {
"argumentTypes": null,
"id": 1422,
"name": "_owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1406,
"src": "2643:6:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2631:19:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1425,
"indexExpression": {
"argumentTypes": null,
"id": 1424,
"name": "_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1408,
"src": "2651:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2631:27:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 1412,
"id": 1426,
"nodeType": "Return",
"src": "2624:34:10"
}
]
},
"documentation": "@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",
"id": 1428,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "tokenOfOwnerByIndex",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1409,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1406,
"name": "_owner",
"nodeType": "VariableDeclaration",
"scope": 1428,
"src": "2494:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1405,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2494:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1408,
"name": "_index",
"nodeType": "VariableDeclaration",
"scope": 1428,
"src": "2514:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1407,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2514:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2488:44:10"
},
"payable": false,
"returnParameters": {
"id": 1412,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1411,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1428,
"src": "2566:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1410,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2566:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2565:9:10"
},
"scope": 1684,
"src": "2460:203:10",
"stateMutability": "view",
"superFunction": 587,
"visibility": "public"
},
{
"body": {
"id": 1436,
"nodeType": "Block",
"src": "2858:34:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 1433,
"name": "allTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1338,
"src": "2871:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1434,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "2871:16:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 1432,
"id": 1435,
"nodeType": "Return",
"src": "2864:23:10"
}
]
},
"documentation": "@dev Gets the total amount of tokens stored by the contract\n@return uint256 representing the total amount of tokens",
"id": 1437,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "totalSupply",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1429,
"nodeType": "ParameterList",
"parameters": [],
"src": "2825:2:10"
},
"payable": false,
"returnParameters": {
"id": 1432,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1431,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1437,
"src": "2849:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1430,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2849:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2848:9:10"
},
"scope": 1684,
"src": "2805:87:10",
"stateMutability": "view",
"superFunction": 578,
"visibility": "public"
},
{
"body": {
"id": 1455,
"nodeType": "Block",
"src": "3284:72:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 1448,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 1445,
"name": "_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1439,
"src": "3298:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<",
"rightExpression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 1446,
"name": "totalSupply",
"nodeType": "Identifier",
"overloadedDeclarations": [
1437
],
"referencedDeclaration": 1437,
"src": "3307:11:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
"id": 1447,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3307:13:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "3298:22:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 1444,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
1702,
1703
],
"referencedDeclaration": 1702,
"src": "3290:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 1449,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3290:31:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1450,
"nodeType": "ExpressionStatement",
"src": "3290:31:10"
},
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1451,
"name": "allTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1338,
"src": "3334:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1453,
"indexExpression": {
"argumentTypes": null,
"id": 1452,
"name": "_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1439,
"src": "3344:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3334:17:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 1443,
"id": 1454,
"nodeType": "Return",
"src": "3327:24:10"
}
]
},
"documentation": "@dev Gets the token ID at a given index of all the tokens in this contract\nReverts 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",
"id": 1456,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "tokenByIndex",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1440,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1439,
"name": "_index",
"nodeType": "VariableDeclaration",
"scope": 1456,
"src": "3238:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1438,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3238:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3237:16:10"
},
"payable": false,
"returnParameters": {
"id": 1443,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1442,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 1456,
"src": "3275:7:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1441,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3275:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3274:9:10"
},
"scope": 1684,
"src": "3216:140:10",
"stateMutability": "view",
"superFunction": 594,
"visibility": "public"
},
{
"body": {
"id": 1475,
"nodeType": "Block",
"src": "3643:68:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1465,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1458,
"src": "3664:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 1464,
"name": "exists",
"nodeType": "Identifier",
"overloadedDeclarations": [
858
],
"referencedDeclaration": 858,
"src": "3657:6:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
"typeString": "function (uint256) view returns (bool)"
}
},
"id": 1466,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3657:16:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 1463,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
1702,
1703
],
"referencedDeclaration": 1702,
"src": "3649:7:10",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 1467,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3649:25:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1468,
"nodeType": "ExpressionStatement",
"src": "3649:25:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1473,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1469,
"name": "tokenURIs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1346,
"src": "3680:9:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
"typeString": "mapping(uint256 => string storage ref)"
}
},
"id": 1471,
"indexExpression": {
"argumentTypes": null,
"id": 1470,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1458,
"src": "3690:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3680:19:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1472,
"name": "_uri",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1460,
"src": "3702:4:10",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "3680:26:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 1474,
"nodeType": "ExpressionStatement",
"src": "3680:26:10"
}
]
},
"documentation": "@dev Internal function to set the token URI for a given token\nReverts 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",
"id": 1476,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "_setTokenURI",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1461,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1458,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 1476,
"src": "3603:16:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1457,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3603:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1460,
"name": "_uri",
"nodeType": "VariableDeclaration",
"scope": 1476,
"src": "3621:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 1459,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "3621:6:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3602:31:10"
},
"payable": false,
"returnParameters": {
"id": 1462,
"nodeType": "ParameterList",
"parameters": [],
"src": "3643:0:10"
},
"scope": 1684,
"src": "3581:130:10",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 1510,
"nodeType": "Block",
"src": "4034:166:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1486,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1478,
"src": "4057:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 1487,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1480,
"src": "4062:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 1483,
"name": "super",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1733,
"src": "4040:5:10",
"typeDescriptions": {
"typeIdentifier": "t_super$_ERC721Token_$1684",
"typeString": "contract super ERC721Token"
}
},
"id": 1485,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "addTokenTo",
"nodeType": "MemberAccess",
"referencedDeclaration": 1216,
"src": "4040:16:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 1488,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4040:31:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1489,
"nodeType": "ExpressionStatement",
"src": "4040:31:10"
},
{
"assignments": [
1491
],
"declarations": [
{
"constant": false,
"id": 1491,
"name": "length",
"nodeType": "VariableDeclaration",
"scope": 1511,
"src": "4077:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1490,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4077:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 1496,
"initialValue": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1492,
"name": "ownedTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1331,
"src": "4094:11:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(address => uint256[] storage ref)"
}
},
"id": 1494,
"indexExpression": {
"argumentTypes": null,
"id": 1493,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1478,
"src": "4106:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4094:16:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1495,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4094:23:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4077:40:10"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1501,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1480,
"src": "4145:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1497,
"name": "ownedTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1331,
"src": "4123:11:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(address => uint256[] storage ref)"
}
},
"id": 1499,
"indexExpression": {
"argumentTypes": null,
"id": 1498,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1478,
"src": "4135:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4123:16:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1500,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4123:21:10",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256) returns (uint256)"
}
},
"id": 1502,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4123:31:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1503,
"nodeType": "ExpressionStatement",
"src": "4123:31:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1508,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1504,
"name": "ownedTokensIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1335,
"src": "4160:16:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 1506,
"indexExpression": {
"argumentTypes": null,
"id": 1505,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1480,
"src": "4177:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4160:26:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1507,
"name": "length",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1491,
"src": "4189:6:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4160:35:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1509,
"nodeType": "ExpressionStatement",
"src": "4160:35:10"
}
]
},
"documentation": "@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",
"id": 1511,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "addTokenTo",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1481,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1478,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 1511,
"src": "3994:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1477,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3994:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1480,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 1511,
"src": "4007:16:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1479,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4007:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3993:31:10"
},
"payable": false,
"returnParameters": {
"id": 1482,
"nodeType": "ParameterList",
"parameters": [],
"src": "4034:0:10"
},
"scope": 1684,
"src": "3974:226:10",
"stateMutability": "nonpayable",
"superFunction": 1216,
"visibility": "internal"
},
{
"body": {
"id": 1575,
"nodeType": "Block",
"src": "4546:955:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1521,
"name": "_from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1513,
"src": "4574:5:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 1522,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1515,
"src": "4581:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 1518,
"name": "super",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1733,
"src": "4552:5:10",
"typeDescriptions": {
"typeIdentifier": "t_super$_ERC721Token_$1684",
"typeString": "contract super ERC721Token"
}
},
"id": 1520,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "removeTokenFrom",
"nodeType": "MemberAccess",
"referencedDeclaration": 1251,
"src": "4552:21:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 1523,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4552:38:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1524,
"nodeType": "ExpressionStatement",
"src": "4552:38:10"
},
{
"assignments": [
1526
],
"declarations": [
{
"constant": false,
"id": 1526,
"name": "tokenIndex",
"nodeType": "VariableDeclaration",
"scope": 1576,
"src": "4734:18:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1525,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4734:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 1530,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1527,
"name": "ownedTokensIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1335,
"src": "4755:16:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 1529,
"indexExpression": {
"argumentTypes": null,
"id": 1528,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1515,
"src": "4772:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4755:26:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4734:47:10"
},
{
"assignments": [
1532
],
"declarations": [
{
"constant": false,
"id": 1532,
"name": "lastTokenIndex",
"nodeType": "VariableDeclaration",
"scope": 1576,
"src": "4787:22:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1531,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4787:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 1540,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "31",
"id": 1538,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4842:1:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
}
],
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1533,
"name": "ownedTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1331,
"src": "4812:11:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(address => uint256[] storage ref)"
}
},
"id": 1535,
"indexExpression": {
"argumentTypes": null,
"id": 1534,
"name": "_from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1513,
"src": "4824:5:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4812:18:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1536,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4812:25:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1537,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 543,
"src": "4812:29:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
"id": 1539,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4812:32:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4787:57:10"
},
{
"assignments": [
1542
],
"declarations": [
{
"constant": false,
"id": 1542,
"name": "lastToken",
"nodeType": "VariableDeclaration",
"scope": 1576,
"src": "4850:17:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1541,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4850:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 1548,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1543,
"name": "ownedTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1331,
"src": "4870:11:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(address => uint256[] storage ref)"
}
},
"id": 1545,
"indexExpression": {
"argumentTypes": null,
"id": 1544,
"name": "_from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1513,
"src": "4882:5:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4870:18:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1547,
"indexExpression": {
"argumentTypes": null,
"id": 1546,
"name": "lastTokenIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1532,
"src": "4889:14:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4870:34:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4850:54:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1555,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1549,
"name": "ownedTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1331,
"src": "4911:11:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(address => uint256[] storage ref)"
}
},
"id": 1552,
"indexExpression": {
"argumentTypes": null,
"id": 1550,
"name": "_from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1513,
"src": "4923:5:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4911:18:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1553,
"indexExpression": {
"argumentTypes": null,
"id": 1551,
"name": "tokenIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1526,
"src": "4930:10:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4911:30:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1554,
"name": "lastToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1542,
"src": "4944:9:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4911:42:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1556,
"nodeType": "ExpressionStatement",
"src": "4911:42:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1561,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "--",
"prefix": false,
"src": "5031:27:10",
"subExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1557,
"name": "ownedTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1331,
"src": "5031:11:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
"typeString": "mapping(address => uint256[] storage ref)"
}
},
"id": 1559,
"indexExpression": {
"argumentTypes": null,
"id": 1558,
"name": "_from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1513,
"src": "5043:5:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5031:18:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1560,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5031:25:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1562,
"nodeType": "ExpressionStatement",
"src": "5031:27:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1567,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1563,
"name": "ownedTokensIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1335,
"src": "5420:16:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 1565,
"indexExpression": {
"argumentTypes": null,
"id": 1564,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1515,
"src": "5437:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5420:26:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "30",
"id": 1566,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5449:1:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "5420:30:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1568,
"nodeType": "ExpressionStatement",
"src": "5420:30:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1573,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1569,
"name": "ownedTokensIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1335,
"src": "5456:16:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 1571,
"indexExpression": {
"argumentTypes": null,
"id": 1570,
"name": "lastToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1542,
"src": "5473:9:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5456:27:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1572,
"name": "tokenIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1526,
"src": "5486:10:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5456:40:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1574,
"nodeType": "ExpressionStatement",
"src": "5456:40:10"
}
]
},
"documentation": "@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",
"id": 1576,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "removeTokenFrom",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1516,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1513,
"name": "_from",
"nodeType": "VariableDeclaration",
"scope": 1576,
"src": "4504:13:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1512,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4504:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1515,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 1576,
"src": "4519:16:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1514,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4519:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4503:33:10"
},
"payable": false,
"returnParameters": {
"id": 1517,
"nodeType": "ParameterList",
"parameters": [],
"src": "4546:0:10"
},
"scope": 1684,
"src": "4479:1022:10",
"stateMutability": "nonpayable",
"superFunction": 1251,
"visibility": "internal"
},
{
"body": {
"id": 1603,
"nodeType": "Block",
"src": "5817:117:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1586,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1578,
"src": "5835:3:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 1587,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1580,
"src": "5840:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 1583,
"name": "super",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1733,
"src": "5823:5:10",
"typeDescriptions": {
"typeIdentifier": "t_super$_ERC721Token_$1684",
"typeString": "contract super ERC721Token"
}
},
"id": 1585,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "_mint",
"nodeType": "MemberAccess",
"referencedDeclaration": 1122,
"src": "5823:11:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 1588,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5823:26:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1589,
"nodeType": "ExpressionStatement",
"src": "5823:26:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1595,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1590,
"name": "allTokensIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1342,
"src": "5856:14:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 1592,
"indexExpression": {
"argumentTypes": null,
"id": 1591,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1580,
"src": "5871:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5856:24:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 1593,
"name": "allTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1338,
"src": "5883:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1594,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5883:16:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5856:43:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1596,
"nodeType": "ExpressionStatement",
"src": "5856:43:10"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1600,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1580,
"src": "5920:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 1597,
"name": "allTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1338,
"src": "5905:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1599,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "push",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5905:14:10",
"typeDescriptions": {
"typeIdentifier": "t_function_arraypush_nonpayable$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256) returns (uint256)"
}
},
"id": 1601,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5905:24:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1602,
"nodeType": "ExpressionStatement",
"src": "5905:24:10"
}
]
},
"documentation": "@dev Internal function to mint a new token\nReverts 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",
"id": 1604,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "_mint",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1581,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1578,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 1604,
"src": "5777:11:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1577,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5777:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1580,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 1604,
"src": "5790:16:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1579,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5790:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5776:31:10"
},
"payable": false,
"returnParameters": {
"id": 1582,
"nodeType": "ParameterList",
"parameters": [],
"src": "5817:0:10"
},
"scope": 1684,
"src": "5762:172:10",
"stateMutability": "nonpayable",
"superFunction": 1122,
"visibility": "internal"
},
{
"body": {
"id": 1682,
"nodeType": "Block",
"src": "6224:527:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 1614,
"name": "_owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1606,
"src": "6242:6:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 1615,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1608,
"src": "6250:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"argumentTypes": null,
"id": 1611,
"name": "super",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1733,
"src": "6230:5:10",
"typeDescriptions": {
"typeIdentifier": "t_super$_ERC721Token_$1684",
"typeString": "contract super ERC721Token"
}
},
"id": 1613,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "_burn",
"nodeType": "MemberAccess",
"referencedDeclaration": 1148,
"src": "6230:11:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 1616,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6230:29:10",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1617,
"nodeType": "ExpressionStatement",
"src": "6230:29:10"
},
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 1625,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1619,
"name": "tokenURIs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1346,
"src": "6307:9:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
"typeString": "mapping(uint256 => string storage ref)"
}
},
"id": 1621,
"indexExpression": {
"argumentTypes": null,
"id": 1620,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1608,
"src": "6317:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6307:19:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 1618,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6301:5:10",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
"typeString": "type(bytes storage pointer)"
},
"typeName": "bytes"
},
"id": 1622,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6301:26:10",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage",
"typeString": "bytes storage ref"
}
},
"id": 1623,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6301:33:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"hexValue": "30",
"id": 1624,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6338:1:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "6301:38:10",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 1632,
"nodeType": "IfStatement",
"src": "6297:85:10",
"trueBody": {
"id": 1631,
"nodeType": "Block",
"src": "6341:41:10",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 1629,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "6349:26:10",
"subExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1626,
"name": "tokenURIs",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1346,
"src": "6356:9:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
"typeString": "mapping(uint256 => string storage ref)"
}
},
"id": 1628,
"indexExpression": {
"argumentTypes": null,
"id": 1627,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1608,
"src": "6366:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6356:19:10",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 1630,
"nodeType": "ExpressionStatement",
"src": "6349:26:10"
}
]
}
},
{
"assignments": [
1634
],
"declarations": [
{
"constant": false,
"id": 1634,
"name": "tokenIndex",
"nodeType": "VariableDeclaration",
"scope": 1683,
"src": "6418:18:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1633,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6418:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 1638,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1635,
"name": "allTokensIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1342,
"src": "6439:14:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 1637,
"indexExpression": {
"argumentTypes": null,
"id": 1636,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1608,
"src": "6454:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6439:24:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6418:45:10"
},
{
"assignments": [
1640
],
"declarations": [
{
"constant": false,
"id": 1640,
"name": "lastTokenIndex",
"nodeType": "VariableDeclaration",
"scope": 1683,
"src": "6469:22:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1639,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6469:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 1646,
"initialValue": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "31",
"id": 1644,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6515:1:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
}
],
"expression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 1641,
"name": "allTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1338,
"src": "6494:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1642,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6494:16:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1643,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sub",
"nodeType": "MemberAccess",
"referencedDeclaration": 543,
"src": "6494:20:10",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$bound_to$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
"id": 1645,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6494:23:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6469:48:10"
},
{
"assignments": [
1648
],
"declarations": [
{
"constant": false,
"id": 1648,
"name": "lastToken",
"nodeType": "VariableDeclaration",
"scope": 1683,
"src": "6523:17:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1647,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6523:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 1652,
"initialValue": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1649,
"name": "allTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1338,
"src": "6543:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1651,
"indexExpression": {
"argumentTypes": null,
"id": 1650,
"name": "lastTokenIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1640,
"src": "6553:14:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6543:25:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "6523:45:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1657,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1653,
"name": "allTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1338,
"src": "6575:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1655,
"indexExpression": {
"argumentTypes": null,
"id": 1654,
"name": "tokenIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1634,
"src": "6585:10:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6575:21:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1656,
"name": "lastToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1648,
"src": "6599:9:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "6575:33:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1658,
"nodeType": "ExpressionStatement",
"src": "6575:33:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1663,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1659,
"name": "allTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1338,
"src": "6614:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1661,
"indexExpression": {
"argumentTypes": null,
"id": 1660,
"name": "lastTokenIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1640,
"src": "6624:14:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6614:25:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "30",
"id": 1662,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6642:1:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "6614:29:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1664,
"nodeType": "ExpressionStatement",
"src": "6614:29:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1668,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "--",
"prefix": false,
"src": "6650:18:10",
"subExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 1665,
"name": "allTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1338,
"src": "6650:9:10",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_uint256_$dyn_storage",
"typeString": "uint256[] storage ref"
}
},
"id": 1667,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6650:16:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1669,
"nodeType": "ExpressionStatement",
"src": "6650:18:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1674,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1670,
"name": "allTokensIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1342,
"src": "6674:14:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 1672,
"indexExpression": {
"argumentTypes": null,
"id": 1671,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1608,
"src": "6689:8:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6674:24:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"hexValue": "30",
"id": 1673,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6701:1:10",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "6674:28:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1675,
"nodeType": "ExpressionStatement",
"src": "6674:28:10"
},
{
"expression": {
"argumentTypes": null,
"id": 1680,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 1676,
"name": "allTokensIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1342,
"src": "6708:14:10",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 1678,
"indexExpression": {
"argumentTypes": null,
"id": 1677,
"name": "lastToken",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1648,
"src": "6723:9:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6708:25:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 1679,
"name": "tokenIndex",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 1634,
"src": "6736:10:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "6708:38:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 1681,
"nodeType": "ExpressionStatement",
"src": "6708:38:10"
}
]
},
"documentation": "@dev Internal function to burn a specific token\nReverts 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",
"id": 1683,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "_burn",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 1609,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 1606,
"name": "_owner",
"nodeType": "VariableDeclaration",
"scope": 1683,
"src": "6181:14:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 1605,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6181:7:10",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 1608,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 1683,
"src": "6197:16:10",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 1607,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6197:7:10",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6180:34:10"
},
"payable": false,
"returnParameters": {
"id": 1610,
"nodeType": "ParameterList",
"parameters": [],
"src": "6224:0:10"
},
"scope": 1684,
"src": "6166:585:10",
"stateMutability": "nonpayable",
"superFunction": 1148,
"visibility": "internal"
}
],
"scope": 1685,
"src": "437:6317:10"
}
],
"src": "0:6755:10"
},
"compiler": {
"name": "solc",
"version": "0.4.25+commit.59dbf8f1.Emscripten.clang"
},
"networks": {},
"schemaVersion": "2.0.2",
"updatedAt": "2019-01-10T18:16:54.195Z"
}