kleros-interaction-2
Version:
Smart contracts interacting with Kleros.
7,748 lines • 331 kB
JSON
{
"contractName": "KittyOwnership",
"abi": [
{
"constant": true,
"inputs": [],
"name": "cfoAddress",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "name",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "ceoAddress",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_newCEO",
"type": "address"
}
],
"name": "setCEO",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_newCOO",
"type": "address"
}
],
"name": "setCOO",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "unpause",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"name": "sireAllowedToAddress",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"name": "kittyIndexToApproved",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_newCFO",
"type": "address"
}
],
"name": "setCFO",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "paused",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "withdrawBalance",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [],
"name": "pause",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "symbol",
"outputs": [
{
"name": "",
"type": "string"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"name": "cooldowns",
"outputs": [
{
"name": "",
"type": "uint32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "",
"type": "uint256"
}
],
"name": "kittyIndexToOwner",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "cooAddress",
"outputs": [
{
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"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": false,
"name": "kittyId",
"type": "uint256"
},
{
"indexed": false,
"name": "matronId",
"type": "uint256"
},
{
"indexed": false,
"name": "sireId",
"type": "uint256"
},
{
"indexed": false,
"name": "genes",
"type": "uint256"
}
],
"name": "Birth",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"name": "newContract",
"type": "address"
}
],
"name": "ContractUpgrade",
"type": "event"
},
{
"constant": true,
"inputs": [],
"name": "implementsERC721",
"outputs": [
{
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "pure",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_kittyId",
"type": "uint256"
},
{
"name": "_recipient",
"type": "address"
}
],
"name": "rescueLostKitty",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"name": "count",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_to",
"type": "address"
},
{
"name": "_tokenId",
"type": "uint256"
}
],
"name": "transfer",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"name": "_to",
"type": "address"
},
{
"name": "_tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"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": true,
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_tokenId",
"type": "uint256"
}
],
"name": "ownerOf",
"outputs": [
{
"name": "owner",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"name": "_owner",
"type": "address"
},
{
"name": "_index",
"type": "uint256"
}
],
"name": "tokensOfOwnerByIndex",
"outputs": [
{
"name": "tokenId",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x6002805460a060020a60ff0219169055610240604052603c6080908152607860a05261012c60c05261025860e05261070861010052610e1061012052611c2061014052613840610160526170806101805261e1006101a052620151806101c0526202a3006101e052620546006102005262093a80610220526200008790600390600e6200012a565b5060408051808201909152600d8082527f43727970746f4b697474696573000000000000000000000000000000000000006020909201918252620000ce91600a91620001cd565b506040805180820190915260028082527f434b00000000000000000000000000000000000000000000000000000000000060209092019182526200011591600b91620001cd565b503480156200012357600080fd5b5062000292565b600283019183908215620001bb5791602002820160005b838211156200018757835183826101000a81548163ffffffff021916908363ffffffff160217905550926020019260040160208160030104928301926001030262000141565b8015620001b95782816101000a81549063ffffffff021916905560040160208160030104928301926001030262000187565b505b50620001c99291506200024e565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200021057805160ff191683800117855562000240565b8280016001018555821562000240579182015b828111156200024057825182559160200191906001019062000223565b50620001c992915062000275565b6200027291905b80821115620001c957805463ffffffff1916815560010162000255565b90565b6200027291905b80821115620001c957600081556001016200027c565b610c3f80620002a26000396000f3006080604052600436106101485763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663030c4741811461014d5780630519ce791461017357806306fdde03146101a4578063095ea7b31461022e5780630a0f8168146102525780631051db341461026757806318160ddd1461029057806323b872dd146102b757806327d7874c146102e15780632ba73c15146103025780633f4ba83a1461032357806346116e6f146103385780634707f44f14610350578063481af3d3146103745780634e0a33791461038c5780635c975abb146103ad5780635fd8c710146103c25780636352211e146103d757806370a08231146103ef5780638456cb591461041057806395d89b41146104255780639d6fac6f1461043a578063a45f4bfc1461046b578063a9059cbb14610483578063b047fb50146104a7575b600080fd5b34801561015957600080fd5b50610171600435600160a060020a03602435166104bc565b005b34801561017f57600080fd5b5061018861050e565b60408051600160a060020a039092168252519081900360200190f35b3480156101b057600080fd5b506101b961051d565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f35781810151838201526020016101db565b50505050905090810190601f1680156102205780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023a57600080fd5b50610171600160a060020a03600435166024356105ab565b34801561025e57600080fd5b5061018861061d565b34801561027357600080fd5b5061027c61062c565b604080519115158252519081900360200190f35b34801561029c57600080fd5b506102a5610631565b60408051918252519081900360200190f35b3480156102c357600080fd5b50610171600160a060020a036004358116906024351660443561063b565b3480156102ed57600080fd5b50610171600160a060020a036004351661068c565b34801561030e57600080fd5b50610171600160a060020a03600435166106e7565b34801561032f57600080fd5b50610171610742565b34801561034457600080fd5b50610188600435610791565b34801561035c57600080fd5b506102a5600160a060020a03600435166024356107ac565b34801561038057600080fd5b50610188600435610809565b34801561039857600080fd5b50610171600160a060020a0360043516610824565b3480156103b957600080fd5b5061027c61087f565b3480156103ce57600080fd5b5061017161088f565b3480156103e357600080fd5b506101886004356108e3565b3480156103fb57600080fd5b506102a5600160a060020a036004351661090c565b34801561041c57600080fd5b50610171610927565b34801561043157600080fd5b506101b96109a7565b34801561044657600080fd5b50610452600435610a02565b6040805163ffffffff9092168252519081900360200190f35b34801561047757600080fd5b50610188600435610a2f565b34801561048f57600080fd5b50610171600160a060020a0360043516602435610a4a565b3480156104b357600080fd5b50610188610a96565b600254600160a060020a031633146104d357600080fd5b60025460a060020a900460ff16156104ea57600080fd5b6104f43083610aa5565b15156104ff57600080fd5b61050a308284610ac5565b5050565b600154600160a060020a031681565b600a805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b505050505081565b60025460a060020a900460ff16156105c257600080fd5b6105cc3382610aa5565b15156105d757600080fd5b6105e18183610bb8565b6040518190600160a060020a0384169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590600090a45050565b600054600160a060020a031681565b600190565b6005546000190190565b60025460a060020a900460ff161561065257600080fd5b61065c3382610bf3565b151561066757600080fd5b6106718382610aa5565b151561067c57600080fd5b610687838383610ac5565b505050565b600054600160a060020a031633146106a357600080fd5b600160a060020a03811615156106b857600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146106fe57600080fd5b600160a060020a038116151561071357600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a0316331461075957600080fd5b60025460a060020a900460ff16151561077157600080fd5b6002805474ff000000000000000000000000000000000000000019169055565b600960205260009081526040902054600160a060020a031681565b60008060015b6107ba610631565b811161014857600081815260066020526040902054600160a060020a03868116911614156107f957838214156107f257809250610801565b6001909101905b6001016107b2565b505092915050565b600860205260009081526040902054600160a060020a031681565b600054600160a060020a0316331461083b57600080fd5b600160a060020a038116151561085057600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60025460a060020a900460ff1681565b600154600160a060020a031633146108a657600080fd5b600154604051600160a060020a0390911690303180156108fc02916000818181858888f193505050501580156108e0573d6000803e3d6000fd5b50565b600081815260066020526040902054600160a060020a031680151561090757600080fd5b919050565b600160a060020a031660009081526007602052604090205490565b600254600160a060020a031633148061094a5750600054600160a060020a031633145b8061095f5750600154600160a060020a031633145b151561096a57600080fd5b60025460a060020a900460ff161561098157600080fd5b6002805474ff0000000000000000000000000000000000000000191660a060020a179055565b600b805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105a35780601f10610578576101008083540402835291602001916105a3565b600381600e8110610a0f57fe5b60089182820401919006600402915054906101000a900463ffffffff1681565b600660205260009081526040902054600160a060020a031681565b60025460a060020a900460ff1615610a6157600080fd5b600160a060020a0382161515610a7657600080fd5b610a803382610aa5565b1515610a8b57600080fd5b61050a338383610ac5565b600254600160a060020a031681565b600090815260066020526040902054600160a060020a0391821691161490565b600160a060020a0380831660008181526007602090815260408083208054600101905585835260069091529020805473ffffffffffffffffffffffffffffffffffffffff19169091179055831615610b7257600160a060020a0383166000908152600760209081526040808320805460001901905583835260098252808320805473ffffffffffffffffffffffffffffffffffffffff199081169091556008909252909120805490911690555b8082600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600091825260086020526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600090815260086020526040902054600160a060020a03918216911614905600a165627a7a7230582012daf510a3448f97f78e579081bb4da49c61feb47801eed88c2c96c1aeba30060029",
"deployedBytecode": "0x6080604052600436106101485763ffffffff7c0100000000000000000000000000000000000000000000000000000000600035041663030c4741811461014d5780630519ce791461017357806306fdde03146101a4578063095ea7b31461022e5780630a0f8168146102525780631051db341461026757806318160ddd1461029057806323b872dd146102b757806327d7874c146102e15780632ba73c15146103025780633f4ba83a1461032357806346116e6f146103385780634707f44f14610350578063481af3d3146103745780634e0a33791461038c5780635c975abb146103ad5780635fd8c710146103c25780636352211e146103d757806370a08231146103ef5780638456cb591461041057806395d89b41146104255780639d6fac6f1461043a578063a45f4bfc1461046b578063a9059cbb14610483578063b047fb50146104a7575b600080fd5b34801561015957600080fd5b50610171600435600160a060020a03602435166104bc565b005b34801561017f57600080fd5b5061018861050e565b60408051600160a060020a039092168252519081900360200190f35b3480156101b057600080fd5b506101b961051d565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f35781810151838201526020016101db565b50505050905090810190601f1680156102205780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023a57600080fd5b50610171600160a060020a03600435166024356105ab565b34801561025e57600080fd5b5061018861061d565b34801561027357600080fd5b5061027c61062c565b604080519115158252519081900360200190f35b34801561029c57600080fd5b506102a5610631565b60408051918252519081900360200190f35b3480156102c357600080fd5b50610171600160a060020a036004358116906024351660443561063b565b3480156102ed57600080fd5b50610171600160a060020a036004351661068c565b34801561030e57600080fd5b50610171600160a060020a03600435166106e7565b34801561032f57600080fd5b50610171610742565b34801561034457600080fd5b50610188600435610791565b34801561035c57600080fd5b506102a5600160a060020a03600435166024356107ac565b34801561038057600080fd5b50610188600435610809565b34801561039857600080fd5b50610171600160a060020a0360043516610824565b3480156103b957600080fd5b5061027c61087f565b3480156103ce57600080fd5b5061017161088f565b3480156103e357600080fd5b506101886004356108e3565b3480156103fb57600080fd5b506102a5600160a060020a036004351661090c565b34801561041c57600080fd5b50610171610927565b34801561043157600080fd5b506101b96109a7565b34801561044657600080fd5b50610452600435610a02565b6040805163ffffffff9092168252519081900360200190f35b34801561047757600080fd5b50610188600435610a2f565b34801561048f57600080fd5b50610171600160a060020a0360043516602435610a4a565b3480156104b357600080fd5b50610188610a96565b600254600160a060020a031633146104d357600080fd5b60025460a060020a900460ff16156104ea57600080fd5b6104f43083610aa5565b15156104ff57600080fd5b61050a308284610ac5565b5050565b600154600160a060020a031681565b600a805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105a35780601f10610578576101008083540402835291602001916105a3565b820191906000526020600020905b81548152906001019060200180831161058657829003601f168201915b505050505081565b60025460a060020a900460ff16156105c257600080fd5b6105cc3382610aa5565b15156105d757600080fd5b6105e18183610bb8565b6040518190600160a060020a0384169033907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590600090a45050565b600054600160a060020a031681565b600190565b6005546000190190565b60025460a060020a900460ff161561065257600080fd5b61065c3382610bf3565b151561066757600080fd5b6106718382610aa5565b151561067c57600080fd5b610687838383610ac5565b505050565b600054600160a060020a031633146106a357600080fd5b600160a060020a03811615156106b857600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a031633146106fe57600080fd5b600160a060020a038116151561071357600080fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600054600160a060020a0316331461075957600080fd5b60025460a060020a900460ff16151561077157600080fd5b6002805474ff000000000000000000000000000000000000000019169055565b600960205260009081526040902054600160a060020a031681565b60008060015b6107ba610631565b811161014857600081815260066020526040902054600160a060020a03868116911614156107f957838214156107f257809250610801565b6001909101905b6001016107b2565b505092915050565b600860205260009081526040902054600160a060020a031681565b600054600160a060020a0316331461083b57600080fd5b600160a060020a038116151561085057600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60025460a060020a900460ff1681565b600154600160a060020a031633146108a657600080fd5b600154604051600160a060020a0390911690303180156108fc02916000818181858888f193505050501580156108e0573d6000803e3d6000fd5b50565b600081815260066020526040902054600160a060020a031680151561090757600080fd5b919050565b600160a060020a031660009081526007602052604090205490565b600254600160a060020a031633148061094a5750600054600160a060020a031633145b8061095f5750600154600160a060020a031633145b151561096a57600080fd5b60025460a060020a900460ff161561098157600080fd5b6002805474ff0000000000000000000000000000000000000000191660a060020a179055565b600b805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156105a35780601f10610578576101008083540402835291602001916105a3565b600381600e8110610a0f57fe5b60089182820401919006600402915054906101000a900463ffffffff1681565b600660205260009081526040902054600160a060020a031681565b60025460a060020a900460ff1615610a6157600080fd5b600160a060020a0382161515610a7657600080fd5b610a803382610aa5565b1515610a8b57600080fd5b61050a338383610ac5565b600254600160a060020a031681565b600090815260066020526040902054600160a060020a0391821691161490565b600160a060020a0380831660008181526007602090815260408083208054600101905585835260069091529020805473ffffffffffffffffffffffffffffffffffffffff19169091179055831615610b7257600160a060020a0383166000908152600760209081526040808320805460001901905583835260098252808320805473ffffffffffffffffffffffffffffffffffffffff199081169091556008909252909120805490911690555b8082600160a060020a031684600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b600091825260086020526040909120805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03909216919091179055565b600090815260086020526040902054600160a060020a03918216911614905600a165627a7a7230582012daf510a3448f97f78e579081bb4da49c61feb47801eed88c2c96c1aeba30060029",
"sourceMap": "2135:26:21:-;;;-1:-1:-1;;;;;;2135:26:21;;;4302:395:23;720:6959:27;4302:395:23;4349:9;720:6959:27;4302:395:23;;;4376:9;4302:395;;4403:9;4302:395;;4430:10;4302:395;;4458:10;2135:26:21;4302:395:23;4486:7;4302:395;;4511:7;4302:395;;4536:7;4302:395;;4561:7;4302:395;;4586:8;4302:395;;4612:6;4302:395;;4636:6;4302:395;;4660:6;4302:395;;4684:6;4302:395;;;;;;;;:::i;:::-;-1:-1:-1;853:36:27;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;895:27:27;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;720:6959;8:9:-1;5:2;;;30:1;27;20:12;5:2;720:6959:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;720:6959:27;;;-1:-1:-1;720:6959:27;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;720:6959:27;;;-1:-1:-1;720:6959:27;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;720:6959:27;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;",
"deployedSourceMap": "720:6959:27:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3016:186;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3016:186:27;;;-1:-1:-1;;;;;3016:186:27;;;;;;;1972:25:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1972:25:21;;;;;;;;-1:-1:-1;;;;;1972:25:21;;;;;;;;;;;;;;853:36:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;853:36:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;853:36:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4787:398;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4787:398:27;-1:-1:-1;;;;;4787:398:27;;;;;;;1941:25:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1941:25:21;;;;980:87:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;980:87:27;;;;;;;;;;;;;;;;;;;;;;6200:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6200:92:27;;;;;;;;;;;;;;;;;;;;5652:420;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5652:420:27;-1:-1:-1;;;;;5652:420:27;;;;;;;;;;;;2924:126:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2924:126:21;-1:-1:-1;;;;;2924:126:21;;;;;3466;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3466:126:21;-1:-1:-1;;;;;3466:126:21;;;;;4466;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4466:126:21;;;;6138:56:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6138:56:23;;;;;7225:452:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;7225:452:27;-1:-1:-1;;;;;7225:452:27;;;;;;;5820:56:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5820:56:23;;;;;3195:126:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3195:126:21;-1:-1:-1;;;;;3195:126:21;;;;;2135:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2135:26:21;;;;3598:94;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3598:94:21;;;;6427:190:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6427:190:27;;;;;3378:122;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3378:122:27;-1:-1:-1;;;;;3378:122:27;;;;;4202:79:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4202:79:21;;;;895:27:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;895:27:27;;;;4302:395:23;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4302:395:23;;;;;;;;;;;;;;;;;;;;;;;;5320:53;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5320:53:23;;;;;3925:438:27;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3925:438:27;-1:-1:-1;;;;;3925:438:27;;;;;;;2003:25:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2003:25:21;;;;3016:186:27;2559:10:21;;-1:-1:-1;;;;;2559:10:21;2545;:24;2537:33;;;;;;3883:6;;-1:-1:-1;;;3883:6:21;;;;3882:7;3874:16;;;;;;3126:21:27;3132:4;3138:8;3126:5;:21::i;:::-;3118:30;;;;;;;;3158:37;3168:4;3174:10;3186:8;3158:9;:37::i;:::-;3016:186;;:::o;1972:25:21:-;;;-1:-1:-1;;;;;1972:25:21;;:::o;853:36:27:-;;;;;;;;;;;;;;;-1:-1:-1;;853:36:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4787:398::-;3883:6:21;;-1:-1:-1;;;3883:6:21;;;;3882:7;3874:16;;;;;;4970:27:27;4976:10;4988:8;4970:5;:27::i;:::-;4962:36;;;;;;;;5077:23;5086:8;5096:3;5077:8;:23::i;:::-;5143:35;;5169:8;;-1:-1:-1;;;;;5143:35:27;;;5152:10;;5143:35;;;;;4787:398;;:::o;1941:25:21:-;;;-1:-1:-1;;;;;1941:25:21;;:::o;980:87:27:-;1056:4;980:87;:::o;6200:92::-;6267:7;:14;-1:-1:-1;;6267:18:27;6200:92;:::o;5652:420::-;3883:6:21;;-1:-1:-1;;;3883:6:21;;;;3882:7;3874:16;;;;;;5859:34:27;5872:10;5884:8;5859:12;:34::i;:::-;5851:43;;;;;;;;5912:22;5918:5;5925:8;5912:5;:22::i;:::-;5904:31;;;;;;;;6034;6044:5;6051:3;6056:8;6034:9;:31::i;:::-;5652:420;;;:::o;2924:126:21:-;2275:10;;-1:-1:-1;;;;;2275:10:21;2261;:24;2253:33;;;;;;-1:-1:-1;;;;;2990:21:21;;;;2982:30;;;;;;3023:10;:20;;-1:-1:-1;;3023:20:21;-1:-1:-1;;;;;3023:20:21;;;;;;;;;;2924:126::o;3466:::-;2275:10;;-1:-1:-1;;;;;2275:10:21;2261;:24;2253:33;;;;;;-1:-1:-1;;;;;3532:21:21;;;;3524:30;;;;;;3565:10;:20;;-1:-1:-1;;3565:20:21;-1:-1:-1;;;;;3565:20:21;;;;;;;;;;3466:126::o;4466:::-;2275:10;;-1:-1:-1;;;;;2275:10:21;2261;:24;2253:33;;;;;;4024:6;;-1:-1:-1;;;4024:6:21;;;;4016:15;;;;;;;;4571:6;:14;;-1:-1:-1;;4571:14:21;;;4466:126::o;6138:56:23:-;;;;;;;;;;;;-1:-1:-1;;;;;6138:56:23;;:::o;7225:452:27:-;7334:15;;7409:1;7392:261;7417:13;:11;:13::i;:::-;7412:18;;7392:261;;7455:20;;;;:17;:20;;;;;;-1:-1:-1;;;;;7455:30:27;;;:20;;:30;7451:192;;;7518:6;7509:5;:15;7505:124;;;7555:1;7548:8;;;;7505:124;7603:7;;;;;7505:124;7432:3;;7392:261;;7225:452;;;;;;;:::o;5820:56:23:-;;;;;;;;;;;;-1:-1:-1;;;;;5820:56:23;;:::o;3195:126:21:-;2275:10;;-1:-1:-1;;;;;2275:10:21;2261;:24;2253:33;;;;;;-1:-1:-1;;;;;3261:21:21;;;;3253:30;;;;;;3294:10;:20;;-1:-1:-1;;3294:20:21;-1:-1:-1;;;;;3294:20:21;;;;;;;;;;3195:126::o;2135:26::-;;;-1:-1:-1;;;2135:26:21;;;;;:::o;3598:94::-;2417:10;;-1:-1:-1;;;;;2417:10:21;2403;:24;2395:33;;;;;;3652:10;;:33;;-1:-1:-1;;;;;3652:10:21;;;;3672:4;:12;3652:33;;;;;:10;:33;:10;:33;3672:12;3652:10;:33;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3652:33:21;3598:94::o;6427:190:27:-;6507:13;6544:27;;;:17;:27;;;;;;-1:-1:-1;;;;;6544:27:27;6590:19;;;6582:28;;;;;;6427:190;;;:::o;3378:122::-;-1:-1:-1;;;;;3466:27:27;3434:13;3466:27;;;:19;:27;;;;;;;3378:122::o;4202:79:21:-;2661:10;;-1:-1:-1;;;;;2661:10:21;2647;:24;;:64;;-1:-1:-1;2701:10:21;;-1:-1:-1;;;;;2701:10:21;2687;:24;2647:64;:104;;;-1:-1:-1;2741:10:21;;-1:-1:-1;;;;;2741:10:21;2727;:24;2647:104;2626:135;;;;;;;;3883:6;;-1:-1:-1;;;3883:6:21;;;;3882:7;3874:16;;;;;;4261:6;:13;;-1:-1:-1;;4261:13:21;-1:-1:-1;;;4261:13:21;;;4202:79::o;895:27:27:-;;;;;;;;;;;;;;;-1:-1:-1;;895:27:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4302:395:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5320:53::-;;;;;;;;;;;;-1:-1:-1;;;;;5320:53:23;;:::o;3925:438:27:-;3883:6:21;;-1:-1:-1;;;3883:6:21;;;;3882:7;3874:16;;;;;;-1:-1:-1;;;;;4125:17:27;;;;4117:26;;;;;;4204:27;4210:10;4222:8;4204:5;:27::i;:::-;4196:36;;;;;;;;4320;4330:10;4342:3;4347:8;4320:9;:36::i;2003:25:21:-;;;-1:-1:-1;;;;;2003:25:21;;:::o;1480:145:27:-;1555:4;1578:27;;;:17;:27;;;;;;-1:-1:-1;;;;;1578:40:27;;;:27;;:40;;1480:145::o;6267:784:23:-;-1:-1:-1;;;;;6452:24:23;;;;;;;:19;:24;;;;;;;;:26;;;;;;6518:27;;;:17;:27;;;;;:33;;-1:-1:-1;;6518:33:23;;;;;;6651:19;;;6647:317;;-1:-1:-1;;;;;6686:26:23;;;;;;:19;:26;;;;;;;;:28;;-1:-1:-1;;6686:28:23;;;6808:30;;;:20;:30;;;;;6801:37;;-1:-1:-1;;6801:37:23;;;;;;6923:20;:30;;;;;;6916:37;;;;;;;6647:317;7035:8;7030:3;-1:-1:-1;;;;;7014:30:23;7023:5;-1:-1:-1;;;;;7014:30:23;;;;;;;;;;;6267:784;;;:::o;2457:123:27:-;2531:30;;;;:20;:30;;;;;;:42;;-1:-1:-1;;2531:42:27;-1:-1:-1;;;;;2531:42:27;;;;;;;;;2457:123::o;1859:155::-;1941:4;1964:30;;;:20;:30;;;;;;-1:-1:-1;;;;;1964:43:27;;;:30;;:43;;1859:155::o",
"source": "/* solium-disable */\n/**\n * @title The facet of the CryptoKitties core contract that manages ownership, ERC-721 (draft) compliant.\n * @author Axiom Zen (https://www.axiomzen.co)\n * This code was taken from https://github.com/dapperlabs at\n * https://github.com/dapperlabs/cryptokitties-bounty and is NOT kleros code.\n */\npragma solidity ^0.4.18;\n\nimport \"./KittyBase.sol\";\nimport \"./ERC721.sol\";\n\n/// @title The facet of the CryptoKitties core contract that manages ownership, ERC-721 (draft) compliant.\n/// @author Axiom Zen (https://www.axiomzen.co)\n/// @dev Ref: https://github.com/ethereum/EIPs/issues/721\n/// See the KittyCore contract documentation to understand how the various contract facets are arranged.\ncontract KittyOwnership is KittyBase, ERC721 {\n\n /// @notice Name and symbol of the non fungible token, as defined in ERC721.\n string public name = \"CryptoKitties\";\n string public symbol = \"CK\";\n\n // bool public implementsERC721 = true;\n //\n function implementsERC721() public pure returns (bool)\n {\n return true;\n }\n \n // Internal utility functions: These functions all assume that their input arguments\n // are valid. We leave it to public methods to sanitize their inputs and follow\n // the required logic.\n\n /// @dev Checks if a given address is the current owner of a particular Kitty.\n /// @param _claimant the address we are validating against.\n /// @param _tokenId kitten id, only valid when > 0\n function _owns(address _claimant, uint256 _tokenId) internal view returns (bool) {\n return kittyIndexToOwner[_tokenId] == _claimant;\n }\n\n /// @dev Checks if a given address currently has transferApproval for a particular Kitty.\n /// @param _claimant the address we are confirming kitten is approved for.\n /// @param _tokenId kitten id, only valid when > 0\n function _approvedFor(address _claimant, uint256 _tokenId) internal view returns (bool) {\n return kittyIndexToApproved[_tokenId] == _claimant;\n }\n\n /// @dev Marks an address as being approved for transferFrom(), overwriting any previous\n /// approval. Setting _approved to address(0) clears all transfer approval.\n /// NOTE: _approve() does NOT send the Approval event. This is intentional because\n /// _approve() and transferFrom() are used together for putting Kitties on auction, and\n /// there is no value in spamming the log with Approval events in that case.\n function _approve(uint256 _tokenId, address _approved) internal {\n kittyIndexToApproved[_tokenId] = _approved;\n }\n\n /// @dev Transfers a kitty owned by this contract to the specified address.\n /// Used to rescue lost kitties. (There is no \"proper\" flow where this contract\n /// should be the owner of any Kitty. This function exists for us to reassign\n /// the ownership of Kitties that users may have accidentally sent to our address.)\n /// @param _kittyId - ID of kitty\n /// @param _recipient - Address to send the cat to\n function rescueLostKitty(uint256 _kittyId, address _recipient) public onlyCOO whenNotPaused {\n require(_owns(this, _kittyId));\n _transfer(this, _recipient, _kittyId);\n }\n\n /// @notice Returns the number of Kitties owned by a specific address.\n /// @param _owner The owner address to check.\n /// @dev Required for ERC-721 compliance\n function balanceOf(address _owner) public view returns (uint256 count) {\n return ownershipTokenCount[_owner];\n }\n\n /// @notice Transfers a Kitty to another address. If transferring to a smart\n /// contract be VERY CAREFUL to ensure that it is aware of ERC-721 (or\n /// CryptoKitties specifically) or your Kitty may be lost forever. Seriously.\n /// @param _to The address of the recipient, can be a user or contract.\n /// @param _tokenId The ID of the Kitty to transfer.\n /// @dev Required for ERC-721 compliance.\n function transfer(\n address _to,\n uint256 _tokenId\n )\n public\n whenNotPaused\n {\n // Safety check to prevent against an unexpected 0x0 default.\n require(_to != address(0));\n // You can only send your own cat.\n require(_owns(msg.sender, _tokenId));\n\n // Reassign ownership, clear pending approvals, emit Transfer event.\n _transfer(msg.sender, _to, _tokenId);\n }\n\n /// @notice Grant another address the right to transfer a specific Kitty via\n /// transferFrom(). This is the preferred flow for transfering NFTs to contracts.\n /// @param _to The address to be granted transfer approval. Pass address(0) to\n /// clear all approvals.\n /// @param _tokenId The ID of the Kitty that can be transferred if this call succeeds.\n /// @dev Required for ERC-721 compliance.\n function approve(\n address _to,\n uint256 _tokenId\n )\n public\n whenNotPaused\n {\n // Only an owner can grant transfer approval.\n require(_owns(msg.sender, _tokenId));\n\n // Register the approval (replacing any previous approval).\n _approve(_tokenId, _to);\n\n // Emit approval event.\n Approval(msg.sender, _to, _tokenId);\n }\n\n /// @notice Transfer a Kitty owned by another address, for which the calling address\n /// has previously been granted transfer approval by the owner.\n /// @param _from The address that owns the Kitty to be transfered.\n /// @param _to The address that should take ownership of the Kitty. Can be any address,\n /// including the caller.\n /// @param _tokenId The ID of the Kitty to be transferred.\n /// @dev Required for ERC-721 compliance.\n function transferFrom(\n address _from,\n address _to,\n uint256 _tokenId\n )\n public\n whenNotPaused\n {\n // Check for approval and valid ownership\n require(_approvedFor(msg.sender, _tokenId));\n require(_owns(_from, _tokenId));\n\n // Reassign ownership (also clears pending approvals and emits Transfer event).\n _transfer(_from, _to, _tokenId);\n }\n\n /// @notice Returns the total number of Kitties currently in existence.\n /// @dev Required for ERC-721 compliance.\n function totalSupply() public view returns (uint) {\n return kitties.length - 1;\n }\n\n /// @notice Returns the address currently assigned ownership of a given Kitty.\n /// @dev Required for ERC-721 compliance.\n function ownerOf(uint256 _tokenId)\n public\n view\n returns (address owner)\n {\n owner = kittyIndexToOwner[_tokenId];\n\n require(owner != address(0));\n }\n\n /// @notice Returns the nth Kitty assigned to an address, with n specified by the\n /// _index argument.\n /// @param _owner The owner whose Kitties we are interested in.\n /// @param _index The zero-based index of the cat within the owner's list of cats.\n /// Must be less than balanceOf(_owner).\n /// @dev This method MUST NEVER be called by smart contract code. It will almost\n /// certainly blow past the block gas limit once there are a large number of\n /// Kitties in existence. Exists only to allow off-chain queries of ownership.\n /// Optional method for ERC-721.\n function tokensOfOwnerByIndex(address _owner, uint256 _index)\n external\n view\n returns (uint256 tokenId)\n {\n uint256 count = 0;\n for (uint256 i = 1; i <= totalSupply(); i++) {\n if (kittyIndexToOwner[i] == _owner) {\n if (count == _index) {\n return i;\n } else {\n count++;\n }\n }\n }\n revert();\n }\n}\n",
"sourcePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/KittyOwnership.sol",
"ast": {
"absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/KittyOwnership.sol",
"exportedSymbols": {
"KittyOwnership": [
8459
]
},
"id": 8460,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 8178,
"literals": [
"solidity",
"^",
"0.4",
".18"
],
"nodeType": "PragmaDirective",
"src": "325:24:27"
},
{
"absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/KittyBase.sol",
"file": "./KittyBase.sol",
"id": 8179,
"nodeType": "ImportDirective",
"scope": 8460,
"sourceUnit": 7169,
"src": "351:25:27",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/ERC721.sol",
"file": "./ERC721.sol",
"id": 8180,
"nodeType": "ImportDirective",
"scope": 8460,
"sourceUnit": 6436,
"src": "377:22:27",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 8181,
"name": "KittyBase",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7168,
"src": "747:9:27",
"typeDescriptions": {
"typeIdentifier": "t_contract$_KittyBase_$7168",
"typeString": "contract KittyBase"
}
},
"id": 8182,
"nodeType": "InheritanceSpecifier",
"src": "747:9:27"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 8183,
"name": "ERC721",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 6435,
"src": "758:6:27",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC721_$6435",
"typeString": "contract ERC721"
}
},
"id": 8184,
"nodeType": "InheritanceSpecifier",
"src": "758:6:27"
}
],
"contractDependencies": [
6435,
6662,
7168
],
"contractKind": "contract",
"documentation": "@title The facet of the CryptoKitties core contract that manages ownership, ERC-721 (draft) compliant.\n @author Axiom Zen (https://www.axiomzen.co)\n @dev Ref: https://github.com/ethereum/EIPs/issues/721\n See the KittyCore contract documentation to understand how the various contract facets are arranged.",
"fullyImplemented": true,
"id": 8459,
"linearizedBaseContracts": [
8459,
6435,
7168,
6662
],
"name": "KittyOwnership",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 8187,
"name": "name",
"nodeType": "VariableDeclaration",
"scope": 8459,
"src": "853:36:27",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 8185,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "853:6:27",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"argumentTypes": null,
"hexValue": "43727970746f4b697474696573",
"id": 8186,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "874:15:27",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c13b881b7ab0310915e32767fd83683d3c5150c07e8da093f99668a8f0d0e463",
"typeString": "literal_string \"CryptoKitties\""
},
"value": "CryptoKitties"
},
"visibility": "public"
},
{
"constant": false,
"id": 8190,
"name": "symbol",
"nodeType": "VariableDeclaration",
"scope": 8459,
"src": "895:27:27",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 8188,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "895:6:27",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"argumentTypes": null,
"hexValue": "434b",
"id": 8189,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "918:4:27",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_04713d815a01f55260c897073f342459cf47ca62d132be73155ba8970113380e",
"typeString": "literal_string \"CK\""
},
"value": "CK"
},
"visibility": "public"
},
{
"body": {
"id": 8197,
"nodeType": "Block",
"src": "1039:28:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 8195,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1056:4:27",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 8194,
"id": 8196,
"nodeType": "Return",
"src": "1049:11:27"
}
]
},
"documentation": null,
"id": 8198,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "implementsERC721",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8191,
"nodeType": "ParameterList",
"parameters": [],
"src": "1005:2:27"
},
"payable": false,
"returnParameters": {
"id": 8194,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8193,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 8198,
"src": "1029:4:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 8192,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1029:4:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1028:6:27"
},
"scope": 8459,
"src": "980:87:27",
"stateMutability": "pure",
"superFunction": 6376,
"visibility": "public"
},
{
"body": {
"id": 8213,
"nodeType": "Block",
"src": "1561:64:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 8211,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 8207,
"name": "kittyIndexToOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7013,
"src": "1578:17:27",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
}
},
"id": 8209,
"indexExpression": {
"argumentTypes": null,
"id": 8208,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8202,
"src": "1596:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1578:27:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 8210,
"name": "_claimant",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8200,
"src": "1609:9:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "1578:40:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 8206,
"id": 8212,
"nodeType": "Return",
"src": "1571:47:27"
}
]
},
"documentation": "@dev Checks if a given address is the current owner of a particular Kitty.\n @param _claimant the address we are validating against.\n @param _tokenId kitten id, only valid when > 0",
"id": 8214,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "_owns",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8203,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8200,
"name": "_claimant",
"nodeType": "VariableDeclaration",
"scope": 8214,
"src": "1495:17:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8199,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1495:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8202,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 8214,
"src": "1514:16:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8201,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1514:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1494:37:27"
},
"payable": false,
"returnParameters": {
"id": 8206,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8205,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 8214,
"src": "1555:4:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 8204,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1555:4:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1554:6:27"
},
"scope": 8459,
"src": "1480:145:27",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 8229,
"nodeType": "Block",
"src": "1947:67:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 8227,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 8223,
"name": "kittyIndexToApproved",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7021,
"src": "1964:20:27",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
}
},
"id": 8225,
"indexExpression": {
"argumentTypes": null,
"id": 8224,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8218,
"src": "1985:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1964:30:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 8226,
"name": "_claimant",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8216,
"src": "1998:9:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "1964:43:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 8222,
"id": 8228,
"nodeType": "Return",
"src": "1957:50:27"
}
]
},
"documentation": "@dev Checks if a given address currently has transferApproval for a particular Kitty.\n @param _claimant the address we are confirming kitten is approved for.\n @param _tokenId kitten id, only valid when > 0",
"id": 8230,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "_approvedFor",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8219,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8216,
"name": "_claimant",
"nodeType": "VariableDeclaration",
"scope": 8230,
"src": "1881:17:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8215,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1881:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8218,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 8230,
"src": "1900:16:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8217,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1900:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1880:37:27"
},
"payable": false,
"returnParameters": {
"id": 8222,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8221,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 8230,
"src": "1941:4:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 8220,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1941:4:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1940:6:27"
},
"scope": 8459,
"src": "1859:155:27",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 8243,
"nodeType": "Block",
"src": "2521:59:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 8241,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 8237,
"name": "kittyIndexToApproved",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7021,
"src": "2531:20:27",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
}
},
"id": 8239,
"indexExpression": {
"argumentTypes": null,
"id": 8238,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8232,
"src": "2552:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2531:30:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 8240,
"name": "_approved",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8234,
"src": "2564:9:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "2531:42:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 8242,
"nodeType": "ExpressionStatement",
"src": "2531:42:27"
}
]
},
"documentation": "@dev Marks an address as being approved for transferFrom(), overwriting any previous\n approval. Setting _approved to address(0) clears all transfer approval.\n NOTE: _approve() does NOT send the Approval event. This is intentional because\n _approve() and transferFrom() are used together for putting Kitties on auction, and\n there is no value in spamming the log with Approval events in that case.",
"id": 8244,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "_approve",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8235,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8232,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 8244,
"src": "2475:16:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8231,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2475:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8234,
"name": "_approved",
"nodeType": "VariableDeclaration",
"scope": 8244,
"src": "2493:17:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8233,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2493:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2474:37:27"
},
"payable": false,
"returnParameters": {
"id": 8236,
"nodeType": "ParameterList",
"parameters": [],
"src": "2521:0:27"
},
"scope": 8459,
"src": "2457:123:27",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 8268,
"nodeType": "Block",
"src": "3108:94:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 8257,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20676,
"src": "3132:4:27",
"typeDescriptions": {
"typeIdentifier": "t_contract$_KittyOwnership_$8459",
"typeString": "contract KittyOwnership"
}
},
{
"argumentTypes": null,
"id": 8258,
"name": "_kittyId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8246,
"src": "3138:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_KittyOwnership_$8459",
"typeString": "contract KittyOwnership"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8256,
"name": "_owns",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8214,
"src": "3126:5:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (address,uint256) view returns (bool)"
}
},
"id": 8259,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3126:21:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 8255,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
20642,
20643
],
"referencedDeclaration": 20642,
"src": "3118:7:27",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 8260,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3118:30:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8261,
"nodeType": "ExpressionStatement",
"src": "3118:30:27"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 8263,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20676,
"src": "3168:4:27",
"typeDescriptions": {
"typeIdentifier": "t_contract$_KittyOwnership_$8459",
"typeString": "contract KittyOwnership"
}
},
{
"argumentTypes": null,
"id": 8264,
"name": "_recipient",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8248,
"src": "3174:10:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8265,
"name": "_kittyId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8246,
"src": "3186:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_KittyOwnership_$8459",
"typeString": "contract KittyOwnership"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8262,
"name": "_transfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7074,
"src": "3158:9:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 8266,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3158:37:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8267,
"nodeType": "ExpressionStatement",
"src": "3158:37:27"
}
]
},
"documentation": "@dev Transfers a kitty owned by this contract to the specified address.\n Used to rescue lost kitties. (There is no \"proper\" flow where this contract\n should be the owner of any Kitty. This function exists for us to reassign\n the ownership of Kitties that users may have accidentally sent to our address.)\n @param _kittyId - ID of kitty\n @param _recipient - Address to send the cat to",
"id": 8269,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 8251,
"modifierName": {
"argumentTypes": null,
"id": 8250,
"name": "onlyCOO",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6526,
"src": "3086:7:27",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "3086:7:27"
},
{
"arguments": null,
"id": 8253,
"modifierName": {
"argumentTypes": null,
"id": 8252,
"name": "whenNotPaused",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6629,
"src": "3094:13:27",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "3094:13:27"
}
],
"name": "rescueLostKitty",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8249,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8246,
"name": "_kittyId",
"nodeType": "VariableDeclaration",
"scope": 8269,
"src": "3041:16:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8245,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3041:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8248,
"name": "_recipient",
"nodeType": "VariableDeclaration",
"scope": 8269,
"src": "3059:18:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8247,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3059:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3040:38:27"
},
"payable": false,
"returnParameters": {
"id": 8254,
"nodeType": "ParameterList",
"parameters": [],
"src": "3108:0:27"
},
"scope": 8459,
"src": "3016:186:27",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 8280,
"nodeType": "Block",
"src": "3449:51:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 8276,
"name": "ownershipTokenCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7017,
"src": "3466:19:27",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 8278,
"indexExpression": {
"argumentTypes": null,
"id": 8277,
"name": "_owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8271,
"src": "3486:6:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3466:27:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 8275,
"id": 8279,
"nodeType": "Return",
"src": "3459:34:27"
}
]
},
"documentation": "@notice Returns the number of Kitties owned by a specific address.\n @param _owner The owner address to check.\n @dev Required for ERC-721 compliance",
"id": 8281,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "balanceOf",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8272,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8271,
"name": "_owner",
"nodeType": "VariableDeclaration",
"scope": 8281,
"src": "3397:14:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8270,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3397:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3396:16:27"
},
"payable": false,
"returnParameters": {
"id": 8275,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8274,
"name": "count",
"nodeType": "VariableDeclaration",
"scope": 8281,
"src": "3434:13:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8273,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3434:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3433:15:27"
},
"scope": 8459,
"src": "3378:122:27",
"stateMutability": "view",
"superFunction": 6388,
"visibility": "public"
},
{
"body": {
"id": 8313,
"nodeType": "Block",
"src": "4037:326:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 8295,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 8291,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8283,
"src": "4125:3:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 8293,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4140:1:27",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 8292,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "4132:7:27",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 8294,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4132:10:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "4125:17:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 8290,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
20642,
20643
],
"referencedDeclaration": 20642,
"src": "4117:7:27",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 8296,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4117:26:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8297,
"nodeType": "ExpressionStatement",
"src": "4117:26:27"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 8300,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20639,
"src": "4210:3:27",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 8301,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4210:10:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8302,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8285,
"src": "4222:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8299,
"name": "_owns",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8214,
"src": "4204:5:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (address,uint256) view returns (bool)"
}
},
"id": 8303,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4204:27:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 8298,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
20642,
20643
],
"referencedDeclaration": 20642,
"src": "4196:7:27",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 8304,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4196:36:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8305,
"nodeType": "ExpressionStatement",
"src": "4196:36:27"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 8307,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20639,
"src": "4330:3:27",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 8308,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4330:10:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8309,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8283,
"src": "4342:3:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8310,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8285,
"src": "4347:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8306,
"name": "_transfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7074,
"src": "4320:9:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 8311,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4320:36:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8312,
"nodeType": "ExpressionStatement",
"src": "4320:36:27"
}
]
},
"documentation": "@notice Transfers a Kitty to another address. If transferring to a smart\n contract be VERY CAREFUL to ensure that it is aware of ERC-721 (or\n CryptoKitties specifically) or your Kitty may be lost forever. Seriously.\n @param _to The address of the recipient, can be a user or contract.\n @param _tokenId The ID of the Kitty to transfer.\n @dev Required for ERC-721 compliance.",
"id": 8314,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 8288,
"modifierName": {
"argumentTypes": null,
"id": 8287,
"name": "whenNotPaused",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6629,
"src": "4019:13:27",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "4019:13:27"
}
],
"name": "transfer",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8286,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8283,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 8314,
"src": "3952:11:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8282,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3952:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8285,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 8314,
"src": "3973:16:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8284,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3973:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3942:53:27"
},
"payable": false,
"returnParameters": {
"id": 8289,
"nodeType": "ParameterList",
"parameters": [],
"src": "4037:0:27"
},
"scope": 8459,
"src": "3925:438:27",
"stateMutability": "nonpayable",
"superFunction": 6418,
"visibility": "public"
},
{
"body": {
"id": 8343,
"nodeType": "Block",
"src": "4898:287:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 8325,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20639,
"src": "4976:3:27",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 8326,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4976:10:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8327,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8318,
"src": "4988:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8324,
"name": "_owns",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8214,
"src": "4970:5:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (address,uint256) view returns (bool)"
}
},
"id": 8328,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4970:27:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 8323,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
20642,
20643
],
"referencedDeclaration": 20642,
"src": "4962:7:27",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 8329,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4962:36:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8330,
"nodeType": "ExpressionStatement",
"src": "4962:36:27"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 8332,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8318,
"src": "5086:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 8333,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8316,
"src": "5096:3:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 8331,
"name": "_approve",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8244,
"src": "5077:8:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$",
"typeString": "function (uint256,address)"
}
},
"id": 8334,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5077:23:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8335,
"nodeType": "ExpressionStatement",
"src": "5077:23:27"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 8337,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20639,
"src": "5152:3:27",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 8338,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5152:10:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8339,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8316,
"src": "5164:3:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8340,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8318,
"src": "5169:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8336,
"name": "Approval",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6434,
"src": "5143:8:27",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 8341,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5143:35:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8342,
"nodeType": "ExpressionStatement",
"src": "5143:35:27"
}
]
},
"documentation": "@notice Grant another address the right to transfer a specific Kitty via\n transferFrom(). This is the preferred flow for transfering NFTs to contracts.\n @param _to The address to be granted transfer approval. Pass address(0) to\n clear all approvals.\n @param _tokenId The ID of the Kitty that can be transferred if this call succeeds.\n @dev Required for ERC-721 compliance.",
"id": 8344,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 8321,
"modifierName": {
"argumentTypes": null,
"id": 8320,
"name": "whenNotPaused",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6629,
"src": "4880:13:27",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "4880:13:27"
}
],
"name": "approve",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8319,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8316,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 8344,
"src": "4813:11:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8315,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4813:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8318,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 8344,
"src": "4834:16:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8317,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4834:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4803:53:27"
},
"payable": false,
"returnParameters": {
"id": 8322,
"nodeType": "ParameterList",
"parameters": [],
"src": "4898:0:27"
},
"scope": 8459,
"src": "4787:398:27",
"stateMutability": "nonpayable",
"superFunction": 6402,
"visibility": "public"
},
{
"body": {
"id": 8376,
"nodeType": "Block",
"src": "5791:281:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 8357,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20639,
"src": "5872:3:27",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 8358,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5872:10:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8359,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8350,
"src": "5884:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8356,
"name": "_approvedFor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8230,
"src": "5859:12:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (address,uint256) view returns (bool)"
}
},
"id": 8360,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5859:34:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 8355,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
20642,
20643
],
"referencedDeclaration": 20642,
"src": "5851:7:27",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 8361,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5851:43:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8362,
"nodeType": "ExpressionStatement",
"src": "5851:43:27"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 8365,
"name": "_from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8346,
"src": "5918:5:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8366,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8350,
"src": "5925:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8364,
"name": "_owns",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8214,
"src": "5912:5:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (address,uint256) view returns (bool)"
}
},
"id": 8367,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5912:22:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 8363,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
20642,
20643
],
"referencedDeclaration": 20642,
"src": "5904:7:27",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 8368,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5904:31:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8369,
"nodeType": "ExpressionStatement",
"src": "5904:31:27"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 8371,
"name": "_from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8346,
"src": "6044:5:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8372,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8348,
"src": "6051:3:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8373,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8350,
"src": "6056:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8370,
"name": "_transfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7074,
"src": "6034:9:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 8374,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6034:31:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8375,
"nodeType": "ExpressionStatement",
"src": "6034:31:27"
}
]
},
"documentation": "@notice Transfer a Kitty owned by another address, for which the calling address\n has previously been granted transfer approval by the owner.\n @param _from The address that owns the Kitty to be transfered.\n @param _to The address that should take ownership of the Kitty. Can be any address,\n including the caller.\n @param _tokenId The ID of the Kitty to be transferred.\n @dev Required for ERC-721 compliance.",
"id": 8377,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 8353,
"modifierName": {
"argumentTypes": null,
"id": 8352,
"name": "whenNotPaused",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6629,
"src": "5773:13:27",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "5773:13:27"
}
],
"name": "transferFrom",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8351,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8346,
"name": "_from",
"nodeType": "VariableDeclaration",
"scope": 8377,
"src": "5683:13:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8345,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5683:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8348,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 8377,
"src": "5706:11:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8347,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5706:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8350,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 8377,
"src": "5727:16:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8349,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5727:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5673:76:27"
},
"payable": false,
"returnParameters": {
"id": 8354,
"nodeType": "ParameterList",
"parameters": [],
"src": "5791:0:27"
},
"scope": 8459,
"src": "5652:420:27",
"stateMutability": "nonpayable",
"superFunction": 6411,
"visibility": "public"
},
{
"body": {
"id": 8387,
"nodeType": "Block",
"src": "6250:42:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 8385,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 8382,
"name": "kitties",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7009,
"src": "6267:7:27",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Kitty_$6959_storage_$dyn_storage",
"typeString": "struct KittyBase.Kitty storage ref[] storage ref"
}
},
"id": 8383,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6267:14:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 8384,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6284:1:27",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "6267:18:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 8381,
"id": 8386,
"nodeType": "Return",
"src": "6260:25:27"
}
]
},
"documentation": "@notice Returns the total number of Kitties currently in existence.\n @dev Required for ERC-721 compliance.",
"id": 8388,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "totalSupply",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8378,
"nodeType": "ParameterList",
"parameters": [],
"src": "6220:2:27"
},
"payable": false,
"returnParameters": {
"id": 8381,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8380,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 8388,
"src": "6244:4:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8379,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "6244:4:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6243:6:27"
},
"scope": 8459,
"src": "6200:92:27",
"stateMutability": "view",
"superFunction": 6381,
"visibility": "public"
},
{
"body": {
"id": 8409,
"nodeType": "Block",
"src": "6526:91:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 8399,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 8395,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8393,
"src": "6536:5:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 8396,
"name": "kittyIndexToOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7013,
"src": "6544:17:27",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
}
},
"id": 8398,
"indexExpression": {
"argumentTypes": null,
"id": 8397,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8390,
"src": "6562:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6544:27:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "6536:35:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 8400,
"nodeType": "ExpressionStatement",
"src": "6536:35:27"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 8406,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 8402,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8393,
"src": "6590:5:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 8404,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6607:1:27",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 8403,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6599:7:27",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 8405,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6599:10:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "6590:19:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 8401,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
20642,
20643
],
"referencedDeclaration": 20642,
"src": "6582:7:27",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 8407,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6582:28:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8408,
"nodeType": "ExpressionStatement",
"src": "6582:28:27"
}
]
},
"documentation": "@notice Returns the address currently assigned ownership of a given Kitty.\n @dev Required for ERC-721 compliance.",
"id": 8410,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "ownerOf",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8391,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8390,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 8410,
"src": "6444:16:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8389,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6444:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6443:18:27"
},
"payable": false,
"returnParameters": {
"id": 8394,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8393,
"name": "owner",
"nodeType": "VariableDeclaration",
"scope": 8410,
"src": "6507:13:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8392,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6507:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6506:15:27"
},
"scope": 8459,
"src": "6427:190:27",
"stateMutability": "view",
"superFunction": 6395,
"visibility": "public"
},
{
"body": {
"id": 8457,
"nodeType": "Block",
"src": "7355:322:27",
"statements": [
{
"assignments": [
8420
],
"declarations": [
{
"constant": false,
"id": 8420,
"name": "count",
"nodeType": "VariableDeclaration",
"scope": 8458,
"src": "7365:13:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8419,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7365:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 8422,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 8421,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7381:1:27",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "7365:17:27"
},
{
"body": {
"id": 8452,
"nodeType": "Block",
"src": "7437:216:27",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 8438,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 8434,
"name": "kittyIndexToOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7013,
"src": "7455:17:27",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
}
},
"id": 8436,
"indexExpression": {
"argumentTypes": null,
"id": 8435,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8424,
"src": "7473:1:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7455:20:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 8437,
"name": "_owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8412,
"src": "7479:6:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "7455:30:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 8451,
"nodeType": "IfStatement",
"src": "7451:192:27",
"trueBody": {
"id": 8450,
"nodeType": "Block",
"src": "7487:156:27",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 8441,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 8439,
"name": "count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8420,
"src": "7509:5:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 8440,
"name": "_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8414,
"src": "7518:6:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "7509:15:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 8448,
"nodeType": "Block",
"src": "7581:48:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 8446,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "7603:7:27",
"subExpression": {
"argumentTypes": null,
"id": 8445,
"name": "count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8420,
"src": "7603:5:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 8447,
"nodeType": "ExpressionStatement",
"src": "7603:7:27"
}
]
},
"id": 8449,
"nodeType": "IfStatement",
"src": "7505:124:27",
"trueBody": {
"id": 8444,
"nodeType": "Block",
"src": "7526:49:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 8442,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8424,
"src": "7555:1:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 8418,
"id": 8443,
"nodeType": "Return",
"src": "7548:8:27"
}
]
}
}
]
}
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 8430,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 8427,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8424,
"src": "7412:1:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 8428,
"name": "totalSupply",
"nodeType": "Identifier",
"overloadedDeclarations": [
8388
],
"referencedDeclaration": 8388,
"src": "7417:11:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
"id": 8429,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7417:13:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "7412:18:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 8453,
"initializationExpression": {
"assignments": [
8424
],
"declarations": [
{
"constant": false,
"id": 8424,
"name": "i",
"nodeType": "VariableDeclaration",
"scope": 8458,
"src": "7397:9:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8423,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7397:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 8426,
"initialValue": {
"argumentTypes": null,
"hexValue": "31",
"id": 8425,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7409:1:27",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"nodeType": "VariableDeclarationStatement",
"src": "7397:13:27"
},
"loopExpression": {
"expression": {
"argumentTypes": null,
"id": 8432,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "7432:3:27",
"subExpression": {
"argumentTypes": null,
"id": 8431,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8424,
"src": "7432:1:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 8433,
"nodeType": "ExpressionStatement",
"src": "7432:3:27"
},
"nodeType": "ForStatement",
"src": "7392:261:27"
},
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 8454,
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
20644,
20645
],
"referencedDeclaration": 20644,
"src": "7662:6:27",
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 8455,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7662:8:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8456,
"nodeType": "ExpressionStatement",
"src": "7662:8:27"
}
]
},
"documentation": "@notice Returns the nth Kitty assigned to an address, with n specified by the\n _index argument.\n @param _owner The owner whose Kitties we are interested in.\n @param _index The zero-based index of the cat within the owner's list of cats.\n Must be less than balanceOf(_owner).\n @dev This method MUST NEVER be called by smart contract code. It will almost\n certainly blow past the block gas limit once there are a large number of\n Kitties in existence. Exists only to allow off-chain queries of ownership.\n Optional method for ERC-721.",
"id": 8458,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "tokensOfOwnerByIndex",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8415,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8412,
"name": "_owner",
"nodeType": "VariableDeclaration",
"scope": 8458,
"src": "7255:14:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8411,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7255:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8414,
"name": "_index",
"nodeType": "VariableDeclaration",
"scope": 8458,
"src": "7271:14:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8413,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7271:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7254:32:27"
},
"payable": false,
"returnParameters": {
"id": 8418,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8417,
"name": "tokenId",
"nodeType": "VariableDeclaration",
"scope": 8458,
"src": "7334:15:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8416,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7334:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7333:17:27"
},
"scope": 8459,
"src": "7225:452:27",
"stateMutability": "view",
"superFunction": null,
"visibility": "external"
}
],
"scope": 8460,
"src": "720:6959:27"
}
],
"src": "325:7355:27"
},
"legacyAST": {
"absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/KittyOwnership.sol",
"exportedSymbols": {
"KittyOwnership": [
8459
]
},
"id": 8460,
"nodeType": "SourceUnit",
"nodes": [
{
"id": 8178,
"literals": [
"solidity",
"^",
"0.4",
".18"
],
"nodeType": "PragmaDirective",
"src": "325:24:27"
},
{
"absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/KittyBase.sol",
"file": "./KittyBase.sol",
"id": 8179,
"nodeType": "ImportDirective",
"scope": 8460,
"sourceUnit": 7169,
"src": "351:25:27",
"symbolAliases": [],
"unitAlias": ""
},
{
"absolutePath": "/private/tmp/kleros-interaction/contracts/standard/arbitration/CriptoKitties/ERC721.sol",
"file": "./ERC721.sol",
"id": 8180,
"nodeType": "ImportDirective",
"scope": 8460,
"sourceUnit": 6436,
"src": "377:22:27",
"symbolAliases": [],
"unitAlias": ""
},
{
"baseContracts": [
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 8181,
"name": "KittyBase",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 7168,
"src": "747:9:27",
"typeDescriptions": {
"typeIdentifier": "t_contract$_KittyBase_$7168",
"typeString": "contract KittyBase"
}
},
"id": 8182,
"nodeType": "InheritanceSpecifier",
"src": "747:9:27"
},
{
"arguments": null,
"baseName": {
"contractScope": null,
"id": 8183,
"name": "ERC721",
"nodeType": "UserDefinedTypeName",
"referencedDeclaration": 6435,
"src": "758:6:27",
"typeDescriptions": {
"typeIdentifier": "t_contract$_ERC721_$6435",
"typeString": "contract ERC721"
}
},
"id": 8184,
"nodeType": "InheritanceSpecifier",
"src": "758:6:27"
}
],
"contractDependencies": [
6435,
6662,
7168
],
"contractKind": "contract",
"documentation": "@title The facet of the CryptoKitties core contract that manages ownership, ERC-721 (draft) compliant.\n @author Axiom Zen (https://www.axiomzen.co)\n @dev Ref: https://github.com/ethereum/EIPs/issues/721\n See the KittyCore contract documentation to understand how the various contract facets are arranged.",
"fullyImplemented": true,
"id": 8459,
"linearizedBaseContracts": [
8459,
6435,
7168,
6662
],
"name": "KittyOwnership",
"nodeType": "ContractDefinition",
"nodes": [
{
"constant": false,
"id": 8187,
"name": "name",
"nodeType": "VariableDeclaration",
"scope": 8459,
"src": "853:36:27",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 8185,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "853:6:27",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"argumentTypes": null,
"hexValue": "43727970746f4b697474696573",
"id": 8186,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "874:15:27",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c13b881b7ab0310915e32767fd83683d3c5150c07e8da093f99668a8f0d0e463",
"typeString": "literal_string \"CryptoKitties\""
},
"value": "CryptoKitties"
},
"visibility": "public"
},
{
"constant": false,
"id": 8190,
"name": "symbol",
"nodeType": "VariableDeclaration",
"scope": 8459,
"src": "895:27:27",
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 8188,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "895:6:27",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"value": {
"argumentTypes": null,
"hexValue": "434b",
"id": 8189,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "918:4:27",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_04713d815a01f55260c897073f342459cf47ca62d132be73155ba8970113380e",
"typeString": "literal_string \"CK\""
},
"value": "CK"
},
"visibility": "public"
},
{
"body": {
"id": 8197,
"nodeType": "Block",
"src": "1039:28:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"hexValue": "74727565",
"id": 8195,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1056:4:27",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
},
"functionReturnParameters": 8194,
"id": 8196,
"nodeType": "Return",
"src": "1049:11:27"
}
]
},
"documentation": null,
"id": 8198,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "implementsERC721",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8191,
"nodeType": "ParameterList",
"parameters": [],
"src": "1005:2:27"
},
"payable": false,
"returnParameters": {
"id": 8194,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8193,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 8198,
"src": "1029:4:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 8192,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1029:4:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1028:6:27"
},
"scope": 8459,
"src": "980:87:27",
"stateMutability": "pure",
"superFunction": 6376,
"visibility": "public"
},
{
"body": {
"id": 8213,
"nodeType": "Block",
"src": "1561:64:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 8211,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 8207,
"name": "kittyIndexToOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7013,
"src": "1578:17:27",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
}
},
"id": 8209,
"indexExpression": {
"argumentTypes": null,
"id": 8208,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8202,
"src": "1596:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1578:27:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 8210,
"name": "_claimant",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8200,
"src": "1609:9:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "1578:40:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 8206,
"id": 8212,
"nodeType": "Return",
"src": "1571:47:27"
}
]
},
"documentation": "@dev Checks if a given address is the current owner of a particular Kitty.\n @param _claimant the address we are validating against.\n @param _tokenId kitten id, only valid when > 0",
"id": 8214,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "_owns",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8203,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8200,
"name": "_claimant",
"nodeType": "VariableDeclaration",
"scope": 8214,
"src": "1495:17:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8199,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1495:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8202,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 8214,
"src": "1514:16:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8201,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1514:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1494:37:27"
},
"payable": false,
"returnParameters": {
"id": 8206,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8205,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 8214,
"src": "1555:4:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 8204,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1555:4:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1554:6:27"
},
"scope": 8459,
"src": "1480:145:27",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 8229,
"nodeType": "Block",
"src": "1947:67:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 8227,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 8223,
"name": "kittyIndexToApproved",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7021,
"src": "1964:20:27",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
}
},
"id": 8225,
"indexExpression": {
"argumentTypes": null,
"id": 8224,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8218,
"src": "1985:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1964:30:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 8226,
"name": "_claimant",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8216,
"src": "1998:9:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "1964:43:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 8222,
"id": 8228,
"nodeType": "Return",
"src": "1957:50:27"
}
]
},
"documentation": "@dev Checks if a given address currently has transferApproval for a particular Kitty.\n @param _claimant the address we are confirming kitten is approved for.\n @param _tokenId kitten id, only valid when > 0",
"id": 8230,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "_approvedFor",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8219,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8216,
"name": "_claimant",
"nodeType": "VariableDeclaration",
"scope": 8230,
"src": "1881:17:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8215,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1881:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8218,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 8230,
"src": "1900:16:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8217,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1900:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1880:37:27"
},
"payable": false,
"returnParameters": {
"id": 8222,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8221,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 8230,
"src": "1941:4:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 8220,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1941:4:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "1940:6:27"
},
"scope": 8459,
"src": "1859:155:27",
"stateMutability": "view",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 8243,
"nodeType": "Block",
"src": "2521:59:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 8241,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 8237,
"name": "kittyIndexToApproved",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7021,
"src": "2531:20:27",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
}
},
"id": 8239,
"indexExpression": {
"argumentTypes": null,
"id": 8238,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8232,
"src": "2552:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2531:30:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"id": 8240,
"name": "_approved",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8234,
"src": "2564:9:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "2531:42:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 8242,
"nodeType": "ExpressionStatement",
"src": "2531:42:27"
}
]
},
"documentation": "@dev Marks an address as being approved for transferFrom(), overwriting any previous\n approval. Setting _approved to address(0) clears all transfer approval.\n NOTE: _approve() does NOT send the Approval event. This is intentional because\n _approve() and transferFrom() are used together for putting Kitties on auction, and\n there is no value in spamming the log with Approval events in that case.",
"id": 8244,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [],
"name": "_approve",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8235,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8232,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 8244,
"src": "2475:16:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8231,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2475:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8234,
"name": "_approved",
"nodeType": "VariableDeclaration",
"scope": 8244,
"src": "2493:17:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8233,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2493:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "2474:37:27"
},
"payable": false,
"returnParameters": {
"id": 8236,
"nodeType": "ParameterList",
"parameters": [],
"src": "2521:0:27"
},
"scope": 8459,
"src": "2457:123:27",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "internal"
},
{
"body": {
"id": 8268,
"nodeType": "Block",
"src": "3108:94:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 8257,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20676,
"src": "3132:4:27",
"typeDescriptions": {
"typeIdentifier": "t_contract$_KittyOwnership_$8459",
"typeString": "contract KittyOwnership"
}
},
{
"argumentTypes": null,
"id": 8258,
"name": "_kittyId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8246,
"src": "3138:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_KittyOwnership_$8459",
"typeString": "contract KittyOwnership"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8256,
"name": "_owns",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8214,
"src": "3126:5:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (address,uint256) view returns (bool)"
}
},
"id": 8259,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3126:21:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 8255,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
20642,
20643
],
"referencedDeclaration": 20642,
"src": "3118:7:27",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 8260,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3118:30:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8261,
"nodeType": "ExpressionStatement",
"src": "3118:30:27"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 8263,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20676,
"src": "3168:4:27",
"typeDescriptions": {
"typeIdentifier": "t_contract$_KittyOwnership_$8459",
"typeString": "contract KittyOwnership"
}
},
{
"argumentTypes": null,
"id": 8264,
"name": "_recipient",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8248,
"src": "3174:10:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8265,
"name": "_kittyId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8246,
"src": "3186:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_KittyOwnership_$8459",
"typeString": "contract KittyOwnership"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8262,
"name": "_transfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7074,
"src": "3158:9:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 8266,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "3158:37:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8267,
"nodeType": "ExpressionStatement",
"src": "3158:37:27"
}
]
},
"documentation": "@dev Transfers a kitty owned by this contract to the specified address.\n Used to rescue lost kitties. (There is no \"proper\" flow where this contract\n should be the owner of any Kitty. This function exists for us to reassign\n the ownership of Kitties that users may have accidentally sent to our address.)\n @param _kittyId - ID of kitty\n @param _recipient - Address to send the cat to",
"id": 8269,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 8251,
"modifierName": {
"argumentTypes": null,
"id": 8250,
"name": "onlyCOO",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6526,
"src": "3086:7:27",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "3086:7:27"
},
{
"arguments": null,
"id": 8253,
"modifierName": {
"argumentTypes": null,
"id": 8252,
"name": "whenNotPaused",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6629,
"src": "3094:13:27",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "3094:13:27"
}
],
"name": "rescueLostKitty",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8249,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8246,
"name": "_kittyId",
"nodeType": "VariableDeclaration",
"scope": 8269,
"src": "3041:16:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8245,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3041:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8248,
"name": "_recipient",
"nodeType": "VariableDeclaration",
"scope": 8269,
"src": "3059:18:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8247,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3059:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3040:38:27"
},
"payable": false,
"returnParameters": {
"id": 8254,
"nodeType": "ParameterList",
"parameters": [],
"src": "3108:0:27"
},
"scope": 8459,
"src": "3016:186:27",
"stateMutability": "nonpayable",
"superFunction": null,
"visibility": "public"
},
{
"body": {
"id": 8280,
"nodeType": "Block",
"src": "3449:51:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 8276,
"name": "ownershipTokenCount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7017,
"src": "3466:19:27",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_address_$_t_uint256_$",
"typeString": "mapping(address => uint256)"
}
},
"id": 8278,
"indexExpression": {
"argumentTypes": null,
"id": 8277,
"name": "_owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8271,
"src": "3486:6:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3466:27:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 8275,
"id": 8279,
"nodeType": "Return",
"src": "3459:34:27"
}
]
},
"documentation": "@notice Returns the number of Kitties owned by a specific address.\n @param _owner The owner address to check.\n @dev Required for ERC-721 compliance",
"id": 8281,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "balanceOf",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8272,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8271,
"name": "_owner",
"nodeType": "VariableDeclaration",
"scope": 8281,
"src": "3397:14:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8270,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3397:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3396:16:27"
},
"payable": false,
"returnParameters": {
"id": 8275,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8274,
"name": "count",
"nodeType": "VariableDeclaration",
"scope": 8281,
"src": "3434:13:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8273,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3434:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3433:15:27"
},
"scope": 8459,
"src": "3378:122:27",
"stateMutability": "view",
"superFunction": 6388,
"visibility": "public"
},
{
"body": {
"id": 8313,
"nodeType": "Block",
"src": "4037:326:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 8295,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 8291,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8283,
"src": "4125:3:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 8293,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4140:1:27",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 8292,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "4132:7:27",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 8294,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4132:10:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "4125:17:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 8290,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
20642,
20643
],
"referencedDeclaration": 20642,
"src": "4117:7:27",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 8296,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4117:26:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8297,
"nodeType": "ExpressionStatement",
"src": "4117:26:27"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 8300,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20639,
"src": "4210:3:27",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 8301,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4210:10:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8302,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8285,
"src": "4222:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8299,
"name": "_owns",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8214,
"src": "4204:5:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (address,uint256) view returns (bool)"
}
},
"id": 8303,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4204:27:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 8298,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
20642,
20643
],
"referencedDeclaration": 20642,
"src": "4196:7:27",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 8304,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4196:36:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8305,
"nodeType": "ExpressionStatement",
"src": "4196:36:27"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 8307,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20639,
"src": "4330:3:27",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 8308,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4330:10:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8309,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8283,
"src": "4342:3:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8310,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8285,
"src": "4347:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8306,
"name": "_transfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7074,
"src": "4320:9:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 8311,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4320:36:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8312,
"nodeType": "ExpressionStatement",
"src": "4320:36:27"
}
]
},
"documentation": "@notice Transfers a Kitty to another address. If transferring to a smart\n contract be VERY CAREFUL to ensure that it is aware of ERC-721 (or\n CryptoKitties specifically) or your Kitty may be lost forever. Seriously.\n @param _to The address of the recipient, can be a user or contract.\n @param _tokenId The ID of the Kitty to transfer.\n @dev Required for ERC-721 compliance.",
"id": 8314,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 8288,
"modifierName": {
"argumentTypes": null,
"id": 8287,
"name": "whenNotPaused",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6629,
"src": "4019:13:27",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "4019:13:27"
}
],
"name": "transfer",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8286,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8283,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 8314,
"src": "3952:11:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8282,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3952:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8285,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 8314,
"src": "3973:16:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8284,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3973:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "3942:53:27"
},
"payable": false,
"returnParameters": {
"id": 8289,
"nodeType": "ParameterList",
"parameters": [],
"src": "4037:0:27"
},
"scope": 8459,
"src": "3925:438:27",
"stateMutability": "nonpayable",
"superFunction": 6418,
"visibility": "public"
},
{
"body": {
"id": 8343,
"nodeType": "Block",
"src": "4898:287:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 8325,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20639,
"src": "4976:3:27",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 8326,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "4976:10:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8327,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8318,
"src": "4988:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8324,
"name": "_owns",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8214,
"src": "4970:5:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (address,uint256) view returns (bool)"
}
},
"id": 8328,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4970:27:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 8323,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
20642,
20643
],
"referencedDeclaration": 20642,
"src": "4962:7:27",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 8329,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "4962:36:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8330,
"nodeType": "ExpressionStatement",
"src": "4962:36:27"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 8332,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8318,
"src": "5086:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"argumentTypes": null,
"id": 8333,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8316,
"src": "5096:3:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 8331,
"name": "_approve",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8244,
"src": "5077:8:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$",
"typeString": "function (uint256,address)"
}
},
"id": 8334,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5077:23:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8335,
"nodeType": "ExpressionStatement",
"src": "5077:23:27"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 8337,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20639,
"src": "5152:3:27",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 8338,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5152:10:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8339,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8316,
"src": "5164:3:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8340,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8318,
"src": "5169:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8336,
"name": "Approval",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6434,
"src": "5143:8:27",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 8341,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5143:35:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8342,
"nodeType": "ExpressionStatement",
"src": "5143:35:27"
}
]
},
"documentation": "@notice Grant another address the right to transfer a specific Kitty via\n transferFrom(). This is the preferred flow for transfering NFTs to contracts.\n @param _to The address to be granted transfer approval. Pass address(0) to\n clear all approvals.\n @param _tokenId The ID of the Kitty that can be transferred if this call succeeds.\n @dev Required for ERC-721 compliance.",
"id": 8344,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 8321,
"modifierName": {
"argumentTypes": null,
"id": 8320,
"name": "whenNotPaused",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6629,
"src": "4880:13:27",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "4880:13:27"
}
],
"name": "approve",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8319,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8316,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 8344,
"src": "4813:11:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8315,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4813:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8318,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 8344,
"src": "4834:16:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8317,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4834:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "4803:53:27"
},
"payable": false,
"returnParameters": {
"id": 8322,
"nodeType": "ParameterList",
"parameters": [],
"src": "4898:0:27"
},
"scope": 8459,
"src": "4787:398:27",
"stateMutability": "nonpayable",
"superFunction": 6402,
"visibility": "public"
},
{
"body": {
"id": 8376,
"nodeType": "Block",
"src": "5791:281:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 8357,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 20639,
"src": "5872:3:27",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 8358,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberName": "sender",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "5872:10:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8359,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8350,
"src": "5884:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8356,
"name": "_approvedFor",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8230,
"src": "5859:12:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (address,uint256) view returns (bool)"
}
},
"id": 8360,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5859:34:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 8355,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
20642,
20643
],
"referencedDeclaration": 20642,
"src": "5851:7:27",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 8361,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5851:43:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8362,
"nodeType": "ExpressionStatement",
"src": "5851:43:27"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 8365,
"name": "_from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8346,
"src": "5918:5:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8366,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8350,
"src": "5925:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8364,
"name": "_owns",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8214,
"src": "5912:5:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_address_$_t_uint256_$returns$_t_bool_$",
"typeString": "function (address,uint256) view returns (bool)"
}
},
"id": 8367,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5912:22:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 8363,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
20642,
20643
],
"referencedDeclaration": 20642,
"src": "5904:7:27",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 8368,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "5904:31:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8369,
"nodeType": "ExpressionStatement",
"src": "5904:31:27"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"id": 8371,
"name": "_from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8346,
"src": "6044:5:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8372,
"name": "_to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8348,
"src": "6051:3:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"argumentTypes": null,
"id": 8373,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8350,
"src": "6056:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 8370,
"name": "_transfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7074,
"src": "6034:9:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 8374,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6034:31:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8375,
"nodeType": "ExpressionStatement",
"src": "6034:31:27"
}
]
},
"documentation": "@notice Transfer a Kitty owned by another address, for which the calling address\n has previously been granted transfer approval by the owner.\n @param _from The address that owns the Kitty to be transfered.\n @param _to The address that should take ownership of the Kitty. Can be any address,\n including the caller.\n @param _tokenId The ID of the Kitty to be transferred.\n @dev Required for ERC-721 compliance.",
"id": 8377,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": false,
"modifiers": [
{
"arguments": null,
"id": 8353,
"modifierName": {
"argumentTypes": null,
"id": 8352,
"name": "whenNotPaused",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 6629,
"src": "5773:13:27",
"typeDescriptions": {
"typeIdentifier": "t_modifier$__$",
"typeString": "modifier ()"
}
},
"nodeType": "ModifierInvocation",
"src": "5773:13:27"
}
],
"name": "transferFrom",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8351,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8346,
"name": "_from",
"nodeType": "VariableDeclaration",
"scope": 8377,
"src": "5683:13:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8345,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5683:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8348,
"name": "_to",
"nodeType": "VariableDeclaration",
"scope": 8377,
"src": "5706:11:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8347,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5706:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8350,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 8377,
"src": "5727:16:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8349,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5727:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "5673:76:27"
},
"payable": false,
"returnParameters": {
"id": 8354,
"nodeType": "ParameterList",
"parameters": [],
"src": "5791:0:27"
},
"scope": 8459,
"src": "5652:420:27",
"stateMutability": "nonpayable",
"superFunction": 6411,
"visibility": "public"
},
{
"body": {
"id": 8387,
"nodeType": "Block",
"src": "6250:42:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 8385,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"expression": {
"argumentTypes": null,
"id": 8382,
"name": "kitties",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7009,
"src": "6267:7:27",
"typeDescriptions": {
"typeIdentifier": "t_array$_t_struct$_Kitty_$6959_storage_$dyn_storage",
"typeString": "struct KittyBase.Kitty storage ref[] storage ref"
}
},
"id": 8383,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberName": "length",
"nodeType": "MemberAccess",
"referencedDeclaration": null,
"src": "6267:14:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "-",
"rightExpression": {
"argumentTypes": null,
"hexValue": "31",
"id": 8384,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6284:1:27",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"src": "6267:18:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 8381,
"id": 8386,
"nodeType": "Return",
"src": "6260:25:27"
}
]
},
"documentation": "@notice Returns the total number of Kitties currently in existence.\n @dev Required for ERC-721 compliance.",
"id": 8388,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "totalSupply",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8378,
"nodeType": "ParameterList",
"parameters": [],
"src": "6220:2:27"
},
"payable": false,
"returnParameters": {
"id": 8381,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8380,
"name": "",
"nodeType": "VariableDeclaration",
"scope": 8388,
"src": "6244:4:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8379,
"name": "uint",
"nodeType": "ElementaryTypeName",
"src": "6244:4:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6243:6:27"
},
"scope": 8459,
"src": "6200:92:27",
"stateMutability": "view",
"superFunction": 6381,
"visibility": "public"
},
{
"body": {
"id": 8409,
"nodeType": "Block",
"src": "6526:91:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 8399,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"argumentTypes": null,
"id": 8395,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8393,
"src": "6536:5:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 8396,
"name": "kittyIndexToOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7013,
"src": "6544:17:27",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
}
},
"id": 8398,
"indexExpression": {
"argumentTypes": null,
"id": 8397,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8390,
"src": "6562:8:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6544:27:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "6536:35:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 8400,
"nodeType": "ExpressionStatement",
"src": "6536:35:27"
},
{
"expression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 8406,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 8402,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8393,
"src": "6590:5:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"argumentTypes": null,
"arguments": [
{
"argumentTypes": null,
"hexValue": "30",
"id": 8404,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6607:1:27",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 8403,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6599:7:27",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": "address"
},
"id": 8405,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6599:10:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "6590:19:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"id": 8401,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
20642,
20643
],
"referencedDeclaration": 20642,
"src": "6582:7:27",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
"typeString": "function (bool) pure"
}
},
"id": 8407,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "6582:28:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8408,
"nodeType": "ExpressionStatement",
"src": "6582:28:27"
}
]
},
"documentation": "@notice Returns the address currently assigned ownership of a given Kitty.\n @dev Required for ERC-721 compliance.",
"id": 8410,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "ownerOf",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8391,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8390,
"name": "_tokenId",
"nodeType": "VariableDeclaration",
"scope": 8410,
"src": "6444:16:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8389,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6444:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6443:18:27"
},
"payable": false,
"returnParameters": {
"id": 8394,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8393,
"name": "owner",
"nodeType": "VariableDeclaration",
"scope": 8410,
"src": "6507:13:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8392,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "6507:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "6506:15:27"
},
"scope": 8459,
"src": "6427:190:27",
"stateMutability": "view",
"superFunction": 6395,
"visibility": "public"
},
{
"body": {
"id": 8457,
"nodeType": "Block",
"src": "7355:322:27",
"statements": [
{
"assignments": [
8420
],
"declarations": [
{
"constant": false,
"id": 8420,
"name": "count",
"nodeType": "VariableDeclaration",
"scope": 8458,
"src": "7365:13:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8419,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7365:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 8422,
"initialValue": {
"argumentTypes": null,
"hexValue": "30",
"id": 8421,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7381:1:27",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"nodeType": "VariableDeclarationStatement",
"src": "7365:17:27"
},
{
"body": {
"id": 8452,
"nodeType": "Block",
"src": "7437:216:27",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 8438,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"baseExpression": {
"argumentTypes": null,
"id": 8434,
"name": "kittyIndexToOwner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 7013,
"src": "7455:17:27",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
}
},
"id": 8436,
"indexExpression": {
"argumentTypes": null,
"id": 8435,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8424,
"src": "7473:1:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7455:20:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 8437,
"name": "_owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8412,
"src": "7479:6:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "7455:30:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": null,
"id": 8451,
"nodeType": "IfStatement",
"src": "7451:192:27",
"trueBody": {
"id": 8450,
"nodeType": "Block",
"src": "7487:156:27",
"statements": [
{
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 8441,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 8439,
"name": "count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8420,
"src": "7509:5:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"argumentTypes": null,
"id": 8440,
"name": "_index",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8414,
"src": "7518:6:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "7509:15:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseBody": {
"id": 8448,
"nodeType": "Block",
"src": "7581:48:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 8446,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "7603:7:27",
"subExpression": {
"argumentTypes": null,
"id": 8445,
"name": "count",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8420,
"src": "7603:5:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 8447,
"nodeType": "ExpressionStatement",
"src": "7603:7:27"
}
]
},
"id": 8449,
"nodeType": "IfStatement",
"src": "7505:124:27",
"trueBody": {
"id": 8444,
"nodeType": "Block",
"src": "7526:49:27",
"statements": [
{
"expression": {
"argumentTypes": null,
"id": 8442,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8424,
"src": "7555:1:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 8418,
"id": 8443,
"nodeType": "Return",
"src": "7548:8:27"
}
]
}
}
]
}
}
]
},
"condition": {
"argumentTypes": null,
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 8430,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"argumentTypes": null,
"id": 8427,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8424,
"src": "7412:1:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "<=",
"rightExpression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 8428,
"name": "totalSupply",
"nodeType": "Identifier",
"overloadedDeclarations": [
8388
],
"referencedDeclaration": 8388,
"src": "7417:11:27",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
"typeString": "function () view returns (uint256)"
}
},
"id": 8429,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7417:13:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "7412:18:27",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 8453,
"initializationExpression": {
"assignments": [
8424
],
"declarations": [
{
"constant": false,
"id": 8424,
"name": "i",
"nodeType": "VariableDeclaration",
"scope": 8458,
"src": "7397:9:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8423,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7397:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"id": 8426,
"initialValue": {
"argumentTypes": null,
"hexValue": "31",
"id": 8425,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7409:1:27",
"subdenomination": null,
"typeDescriptions": {
"typeIdentifier": "t_rational_1_by_1",
"typeString": "int_const 1"
},
"value": "1"
},
"nodeType": "VariableDeclarationStatement",
"src": "7397:13:27"
},
"loopExpression": {
"expression": {
"argumentTypes": null,
"id": 8432,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": false,
"src": "7432:3:27",
"subExpression": {
"argumentTypes": null,
"id": 8431,
"name": "i",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 8424,
"src": "7432:1:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 8433,
"nodeType": "ExpressionStatement",
"src": "7432:3:27"
},
"nodeType": "ForStatement",
"src": "7392:261:27"
},
{
"expression": {
"argumentTypes": null,
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 8454,
"name": "revert",
"nodeType": "Identifier",
"overloadedDeclarations": [
20644,
20645
],
"referencedDeclaration": 20644,
"src": "7662:6:27",
"typeDescriptions": {
"typeIdentifier": "t_function_revert_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 8455,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"names": [],
"nodeType": "FunctionCall",
"src": "7662:8:27",
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 8456,
"nodeType": "ExpressionStatement",
"src": "7662:8:27"
}
]
},
"documentation": "@notice Returns the nth Kitty assigned to an address, with n specified by the\n _index argument.\n @param _owner The owner whose Kitties we are interested in.\n @param _index The zero-based index of the cat within the owner's list of cats.\n Must be less than balanceOf(_owner).\n @dev This method MUST NEVER be called by smart contract code. It will almost\n certainly blow past the block gas limit once there are a large number of\n Kitties in existence. Exists only to allow off-chain queries of ownership.\n Optional method for ERC-721.",
"id": 8458,
"implemented": true,
"isConstructor": false,
"isDeclaredConst": true,
"modifiers": [],
"name": "tokensOfOwnerByIndex",
"nodeType": "FunctionDefinition",
"parameters": {
"id": 8415,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8412,
"name": "_owner",
"nodeType": "VariableDeclaration",
"scope": 8458,
"src": "7255:14:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 8411,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "7255:7:27",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"value": null,
"visibility": "internal"
},
{
"constant": false,
"id": 8414,
"name": "_index",
"nodeType": "VariableDeclaration",
"scope": 8458,
"src": "7271:14:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8413,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7271:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7254:32:27"
},
"payable": false,
"returnParameters": {
"id": 8418,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 8417,
"name": "tokenId",
"nodeType": "VariableDeclaration",
"scope": 8458,
"src": "7334:15:27",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 8416,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7334:7:27",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"value": null,
"visibility": "internal"
}
],
"src": "7333:17:27"
},
"scope": 8459,
"src": "7225:452:27",
"stateMutability": "view",
"superFunction": null,
"visibility": "external"
}
],
"scope": 8460,
"src": "720:6959:27"
}
],
"src": "325:7355:27"
},
"compiler": {
"name": "solc",
"version": "0.4.24+commit.e67f0147.Emscripten.clang"
},
"networks": {},
"schemaVersion": "2.0.1",
"updatedAt": "2018-11-02T14:04:11.018Z"
}