cryptokitties-bounty-2
cryptokitties-bounty-2 copied to clipboard
Bug bounty program for CryptoKitties Offers feature smart contract
### Description Query tokensOfOwner always timeout ### Reproduction https://etherscan.io/token/0x06012c8cf97bead5deae237070f9587f8e7a266d#readContract
The winners of the CryptoKitties Offers bug bounty are as follows: Submitter | Point total | BugCat V2 -- | -- | -- @sunsetlover | 300 | Yes @TomLeeFounder |...
Please forgive my naive take on this feature. I'm curious what the pros and cons are of the escrow workflow put in place. On one end of the spectrum, this...
### Description `.updateOffer()` updates both the `offer.total` property and the `offer.expiresAt` property of an `offer` struct. However, it writes each of these changes in two separate writes to storage. We...
### Description The `Offer` struct is composed of two 256-bit words. Since the function `.updateOffer()` only updates a portion of this struct (the `total` and the `expiresAt` portions), we can...
### Description All of the following functions perform an unnecessary read from storage (which is costly in gas): `.cancelOffer()`, `.fulfillOffer()`, and `.batchRemoveExpired()`. Each of these functions calls `tokenIdToOffer[tokenId]` twice, rather...
### Description I had originally believed that these typecasts were necessary. However, I was disproven in issues #9, #11, #13, #14. There are nine unnecessary typecasts to uint256. If you...
### Description Consider adding "indexed" keyword next to the event parameters like address, IDs, etc. The indexed parameters allow filtering events by a specific value. ### Impact This is only...
### Description OffersAccessControl.sol has a function withdrawTotalLostAndFoundBalance() with the onlyLostAndFound modifier which checks if the msg.sender is the lostAndFoundAddress: `require(msg.sender == lostAndFoundAddress, "only LostAndFound is allowed to perform this operation");`...
### Description As the gas inefficiencies are also in the scope, I would like to suggest packing variables in struct more efficiently. OffersBase.sol has an Offer struct: ``` struct Offer...