Platform: Code4rena
Start Date: 21/06/2022
Pot Size: $55,000 USDC
Total HM: 29
Participants: 88
Period: 5 days
Judge: gzeon
Total Solo HM: 7
Id: 134
League: ETH
Rank: 49/88
Findings: 2
Award: $142.90
π Selected for report: 0
π Solo Findings: 0
π Selected for report: defsec
Also found by: 0x1f8b, 0x29A, 0xDjango, 0xNazgul, 0xNineDec, 0xf15ers, 0xkowloon, 0xmint, Bnke0x0, BowTiedWardens, Chom, ElKu, Funen, GalloDaSballo, GimelSec, IllIllI, JC, Kenshin, Kulk0, Lambda, Limbooo, MadWookie, Metatron, Picodes, Soosh, StErMi, TomJ, WatchPug, Waze, Yiko, _Adam, ak1, asutorufos, aysha, bardamu, catchup, datapunk, delfin454000, dipp, fatherOfBlocks, grGred, hake, hansfriese, hyh, joestakey, kebabsec, kenzo, kirk-baird, oyc_109, pashov, poirots, rfa, robee, saian, sashik_eth, shenwilly, simon135, slywaters, z3s, zeesaw, zer0dot
63.8877 USDC - $63.89
1.File: 2022-06-illuminate/marketplace/Safe.sol (line 108):
`return result;`
2.File: 2022-06-illuminate/marketplace/Safe.sol (line 172):
`return result;`
3.File: 022-06-illuminate/redeemer/Safe.sol (line 108):
`return result;`
4.File: 022-06-illuminate/redeemer/Safe.sol (line 172):
`return result;`
3.File: 2022-06-illuminate/lender/Safe.sol (line 108):
`return result;`
4.File: 2022-06-illuminate/lender/Safe.sol (line 172):
`return result;`
π Selected for report: BowTiedWardens
Also found by: 0v3rf10w, 0x1f8b, 0x29A, 0xKitsune, 0xNazgul, 0xf15ers, 0xkatana, 0xkowloon, Bnke0x0, ElKu, Fitraldys, Funen, GalloDaSballo, IllIllI, JC, Kaiziron, Lambda, MadWookie, Noah3o6, Nyamcil, RoiEvenHaim, TomJ, Tomio, UnusualTurtle, Waze, _Adam, ajtra, asutorufos, bardamu, c3phas, catchup, datapunk, defsec, delfin454000, fatherOfBlocks, grGred, hake, hansfriese, hyh, ignacio, joestakey, kebabsec, ladboy233, oyc_109, pashov, poirots, rfa, robee, sach1r0, samruna, sashik_eth, simon135, slywaters, z3s, zer0dot
79.0114 USDC - $79.01
1.File: 2022-06-illuminate/lender/Lender.sol (line 26):
`address public admin;`
2.File: 2022-06-illuminate/lender/Lender.sol (line 28):
`address public marketPlace;`
3.File: 2022-06-illuminate/lender/Lender.sol (line 33):
`address public swivelAddr;`
4.File: 2022-06-illuminate/lender/Lender.sol (line 35):
`address public immutable pendleAddr;`
5.File: 2022-06-illuminate/lender/Lender.sol (line 37):
`address public immutable tempusAddr;`
6.File: 2022-06-illuminate/lender/Lender.sol (line 40):
`uint256 public feenominator;`
7.File: 2022-06-illuminate/marketplace/MarketPlace.sol (line 41):
`address public admin;`
8.File: 2022-06-illuminate/marketplace/MarketPlace.sol (line 43):
`address public immutable redeemer;`
9.File: 2022-06-illuminate/marketplace/MarketPlace.sol (line 45):
`address public immutable lender;`
10.File: 2022-06-illuminate/redeemer/Redeemer.sol (line 19):
`address public admin;`
11.File: 2022-06-illuminate/redeemer/Redeemer.sol (line 21):
`address public marketPlace;`
12.File: 2022-06-illuminate/redeemer/Redeemer.sol (line 23):
`address public lender;`
13.File: 22022-06-illuminate/redeemer/Redeemer.sol (line 27):
`address public swivelAddr;`
14.File: 2022-06-illuminate/redeemer/Redeemer.sol (line 29):
`address public immutable pendleAddr;`
15.File: 2022-06-illuminate/redeemer/Redeemer.sol (line 31):
`address public immutable tempusAddr;`
16.File: 2022-06-illuminate/redeemer/Redeemer.sol (line 33):
`address public apwineAddr;`
1.File: 2022-06-illuminate/lender/Safe.sol (line 89):
`revert(0, returnDataSize)`
2.File: 2022-06-illuminate/lender/Safe.sol (line 153):
`revert(0, returnDataSize)`
3.File: 2022-06-illuminate/lender/Cast.sol(line 9):
`require(n <= type(uint128).max, '');`
4.File: 2022-06-illuminate/lender/Safe.sol (line 41):
`require(success(result), 'transfer failed');`
5.File: 2022-06-illuminate/lender/Safe.sol (line 71):
`require(success(result), 'transfer from failed');`
6.File: 2022-06-illuminate/lender/Safe.sol (line 134):
`require(didLastOptionalReturnCallSucceed(callStatus), 'APPROVE_FAILED');`
7.File: 2022-06-illuminate/redeemer/Safe.sol (line 89):
`revert(0, returnDataSize)`
8.File: 2022-06-illuminate/marketplace/Safe.sol (line 84):
`revert(0, returnDataSize)`
9.File: 2022-06-illuminate/redeemer/Safe.sol (line 44):
`require(success(result), 'transfer from failed');` 10.File: 2022-06-illuminate/redeemer/Safe.sol (line 71): `require(success(result), 'transfer failed');` 11.File: 2022-06-illuminate/marketplace/ERC20.sol (line 116): `require(_balanceOf[src] >= wad, "ERC20: Insufficient balance");` 12.File: 2022-06-illuminate/marketplace/ERC20.sol (line 152): `require(allowed >= wad, "ERC20: Insufficient approval");` 13.File: 2022-06-illuminate/marketplace/ERC20.sol (line 189): `require(_balanceOf[src] >= wad, "ERC20: Insufficient balance");` 14.File: 2022-06-illuminate/marketplace/ERC20Permit.sol (line 56): `require(deadline >= block.timestamp, "ERC20Permit: expired deadline");` 15.File: 2022-06-illuminate/marketplace/ERC5095.sol (line 100): `require(_allowance[holder][msg.sender] >= underlyingAmount, 'not enough approvals');` 16.File: 2022-06-illuminate/marketplace/ERC5095.sol (line 116): `require(_allowance[holder][msg.sender] >= underlyingAmount, 'not enough approvals');` 17.File: 2022-06-illuminate/marketplace/ERC5095.sol (line 139): `require(msg.sender == a, 'sender must be admin');` 16.File: 2022-06-illuminate/marketplace/Safe.sol (line 39): `require(success(result), 'approve failed');` 17.File: 2022-06-illuminate/marketplace/Safe.sol (line 66): `require(success(result), 'transfer failed');`
1.File: 2022-06-illuminate/lender/Lender.sol (line 265): `for (uint256 i = 0; i < o.length; ) {`
1.File: 2022-06-illuminate/lender/Lender.sol (line 265): `for (uint256 i = 0; i < o.length; ) {`
++i
costs less gas compared to i++
or i += 1
`++i` costs less gas compared to i++ or i += 1 for unsigned integer, as pre-increment is cheaper (about 5 gas per iteration). This statement is true even with the optimizer enabled. 1.File: 2022-06-illuminate/lender/Lender.sol (line 96): `i++;` 2.File: 2022-06-illuminate/lender/Lender.sol (line 120): `i++;` 3.File: 2022-06-illuminate/lender/Lender.sol (line 289): `i++;`
1.File: 2022-06-illuminate/redeemer/Redeemer.sol (line 14): `error Invalid(string);` 2.File: 2022-06-illuminate/redeemer/Redeemer.sol (line 15): `error Unauthorized();` 3.File: 2022-06-illuminate/redeemer/Redeemer.sol (line 16): `error Exists(string);` 4.File: 2022-06-illuminate/marketplace/ERC5095.sol (line 19): `error Maturity(uint256 timestamp); ` 5.File: 2022-06-illuminate/marketplace/MarketPlace.sol (line 29): `error Exists(string);` 6.File: 2022-06-illuminate/marketplace/MarketPlace.sol (line 30): `error Unauthorized();` 7.File: 2022-06-illuminate/marketplace/MarketPlace.sol (line 31): `error Invalid(string);` 8.File: 2022-06-illuminate/lender/Lender.sol (line 17): `error Unauthorized();` 9.File: 2022-06-illuminate/lender/Lender.sol (line 18): `error NotEqual(string);` 10.File: 2022-06-illuminate/lender/Lender.sol (line 19): `error Exists(address);` 11.File: 2022-06-illuminate/lender/Lender.sol (line 2o): `error Invalid(string);`