Platform: Code4rena
Start Date: 03/05/2022
Pot Size: $75,000 USDC
Total HM: 6
Participants: 55
Period: 7 days
Judge: Albert Chon
Total Solo HM: 2
Id: 116
League: COSMOS
Rank: 49/55
Findings: 1
Award: $75.66
🌟 Selected for report: 0
🚀 Solo Findings: 0
🌟 Selected for report: GermanKuber
Also found by: 0v3rf10w, 0x1f8b, 0xDjango, 0xNazgul, 0xf15ers, 0xkatana, AlleyCat, CertoraInc, Dravee, Funen, GimelSec, IllIllI, JC, MaratCerby, WatchPug, Waze, defsec, delfin454000, ellahi, gzeon, hake, hansfriese, ilan, jonatascm, nahnah, oyc_109, peritoflores, rfa, robee, simon135, slywaters, sorrynotsorry
75.6568 USDC - $75.66
uint length = _users.length; for (uint256 i = 0; i < _users.length; i++) { ............ }
Same for below:
./solidity/contracts/Gravity.sol:149: for (uint256 i = 0; i < _users.length; i++) { ./solidity/contracts/Gravity.sol:267: for (uint256 i = 0; i < _currentValidators.length; i++) { ./solidity/contracts/Gravity.sol:299: for (uint256 i = 0; i < _newValset.validators.length; i++) { ./solidity/contracts/Gravity.sol:489: for (uint256 i = 0; i < _amounts.length; i++) { ./solidity/contracts/Gravity.sol:605: for (uint256 i = 0; i < _args.transferAmounts.length; i++) { ./solidity/contracts/Gravity.sol:616: for (uint256 i = 0; i < _args.feeAmounts.length; i++) { ./solidity/contracts/Gravity.sol:698: for (uint256 i = 0; i < _powers.length; i++) {
0
can be omitted.uint256 public state_lastValsetNonce = 0
External
function are cheaper than public
functionsmanageWhitelist()
, testCheckValidatorSignatures()
updateValset()
submitBatch()
submitLogicCall()
sendToCosmos()
, etc. can be declared external.++i
can be used instead of i++
to save gas.Same for below:
./solidity/contracts/Gravity.sol:150: for (uint256 i = 0; i < _users.length; i++) { ./solidity/contracts/Gravity.sol:268: for (uint256 i = 0; i < _currentValidators.length; i++) { ./solidity/contracts/Gravity.sol:300: for (uint256 i = 0; i < _newValset.validators.length; i++) { ./solidity/contracts/Gravity.sol:490: for (uint256 i = 0; i < _amounts.length; i++) { ./solidity/contracts/Gravity.sol:606: for (uint256 i = 0; i < _args.transferAmounts.length; i++) { ./solidity/contracts/Gravity.sol:617: for (uint256 i = 0; i < _args.feeAmounts.length; i++) { ./solidity/contracts/Gravity.sol:699: for (uint256 i = 0; i < _powers.length; i++) {