Ajna Protocol - okolicodes's results

A peer to peer, oracleless, permissionless lending protocol with no governance, accepting both fungible and non fungible tokens as collateral.

General Information

Platform: Code4rena

Start Date: 03/05/2023

Pot Size: $60,500 USDC

Total HM: 25

Participants: 114

Period: 8 days

Judge: Picodes

Total Solo HM: 6

Id: 234

League: ETH

Ajna Protocol

Findings Distribution

Researcher Performance

Rank: 106/114

Findings: 1

Award: $22.28

Gas:
grade-b

🌟 Selected for report: 0

🚀 Solo Findings: 0

Awards

22.2767 USDC - $22.28

Labels

bug
G (Gas Optimization)
grade-b
G-32

External Links

Gas

Issue index

[G-01] Use constants for variables whose value is known beforehand and is never changed

https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-core/src/PositionManager.sol/#L62

[G-02] Use Calldata instead of memory

https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-core/src/PositionManager.sol/#L360 https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-core/src/PositionManager.sol/#L469 https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-core/src/RewardsManager.sol/#L227 https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-core/src/RewardsManager.sol/#L289 https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-core/src/RewardsManager.sol/#L334 https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-core/src/RewardsManager.sol/#L580 https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-core/src/RewardsManager.sol/#L609 https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-core/src/RewardsManager.sol/#L673 https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-grants/src/grants/base/StandardFunding.sol/#L344 https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-grants/src/grants/base/StandardFunding.sol/#L345 https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-grants/src/grants/base/StandardFunding.sol/#L346 https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-grants/src/grants/base/StandardFunding.sol/#L367 https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-grants/src/grants/base/StandardFunding.sol/#L368 https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-grants/src/grants/base/StandardFunding.sol/#L369 https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-grants/src/grants/base/StandardFunding.sol/#L370 https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-grants/src/grants/GrantFund.sol/#L23 https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-grants/src/grants/GrantFund.sol/#L24 https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-grants/src/grants/GrantFund.sol/#L25

[G-03] Multiple address/ID mappings can be combined into a single mapping of an address/ID to a struct, where appropriate

https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-core/src/RewardsManager.sol/#L72 https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-core/src/RewardsManager.sol/#L74

[G-04] Use hardcode address instead address(this): Instead of address(this), it is more gas-efficient to pre-calculate and use the address with a hardcode. Foundry's script.sol and solmate````LibRlp.sol`` contracts can do this.

Reference: https://book.getfoundry.sh/reference/forge-std/compute-create-address https://twitter.com/transmissions11/status/1518507047943245824

https://github.com/code-423n4/2023-05-ajna/blob/main/ajna-core/src/RewardsManager.sol/#L814

#0 - c4-judge

2023-05-17T12:30:05Z

Picodes marked the issue as grade-b

AuditHub

A portfolio for auditors, a security profile for protocols, a hub for web3 security.

Built bymalatrax © 2024

Auditors

Browse

Contests

Browse

Get in touch

ContactTwitter