cryptokitties-bounty-2
cryptokitties-bounty-2 copied to clipboard
Bug bounty program for CryptoKitties Offers feature smart contract
The comment on lines 14 and 16 in `OffersAccessControl.sol` is ambiguous about the unit of `totalCFOEarnings` and `totalLostAndFoundBalance` which I believe is in wei.
In the ReadMe's payouts matrix, the Cancel column can be stated more simply as: |Cases |Success|Cancel | |---|---|---| |Owner|P|0| |Bidder|0|P| |CFO|T - P| T - P | |Sum|T| T |...
### Description S (offerCut) can only ever be 50% of T (Total). If this is expected behavior, it is unclear that it is so. Even if it is so, it...
### Description Every time `.to(address)` is called, it costs around 10,000 gas (see the ethereum yellow paper). If the expired offers that are being removed belonged to the same address,...
### Description In OffersAccessControl.sol, the modifier `whenFrozen` is missing parentheses in its declaration. As such, it is not a valid modifier and will not properly insert the line `require(frozen, "contract...
### Description Because of overflow errors, a user could accept an offer much lower than they want. It is possible although probably low risk but potentially high impact. ### Scenario...
### Description CryptoKitties Core Contract contains more permissive settings for which accounts can freeze the contract than `Offers.sol`. KittyCore has an `only C-Level` modifier that is accessible to any of...
### Description Including an optional string comment in a passing require statement increases the gas cost of that transaction. ### Scenario Every require statement in the scope of this bounty...
### Description In `batchRemoveExpired`, at every iteration `totalCFOEarnings` is updated. Each update corresponds to updating a state variable which costs 5000 gas each time. ### Fix In the beginning of...
### Description In `Offers.sol`, a require statement compares a uint256 to a uint128. The Solidity compiler will therefore compare not only the actual 128 bits of the variable itself, but...