Gas Optimizations #123
Labels
bug
Something isn't working
G (Gas Optimization)
sponsor acknowledged
Technically the issue is correct, but we're not going to resolve it for XYZ reasons
gas
#1 Using custom error
https://github.com/code-423n4/2022-04-backed/blob/main/contracts/NFTLoanFacilitator.sol#L81-L86
https://github.com/code-423n4/2022-04-backed/blob/main/contracts/NFTLoanFacilitator.sol#L118
https://github.com/code-423n4/2022-04-backed/blob/main/contracts/NFTLoanFacilitator.sol#L121
https://github.com/code-423n4/2022-04-backed/blob/main/contracts/NFTLoanFacilitator.sol#L171-L172
Declared by
error
statement, and usingrevert
statement to throw the error message. This method is better for gas improvement than just using long string#2 Tight var packing in
Loan
structhttps://github.com/code-423n4/2022-04-backed/blob/main/contracts/interfaces/INFTLoanFacilitator.sol#L6-L16
By arranging the variables, it is possible to minimize the number of slots used within a contract's storage and therefore reduce deployment costs. Address var are 20 bytes size and bool are 1, there's a slot here that can get saved by moving them closer to an address.
Change to:
#3 Better using != than > or <
https://github.com/code-423n4/2022-04-backed/blob/main/contracts/NFTLoanFacilitator.sol#L321
!= is more efficient than < or > for gas optimization
#4 Using calldata to store string var parameter
https://github.com/code-423n4/2022-04-backed/blob/main/contracts/NFTLoanTicket.sol#L21-L22
Using calldata instead of memory can save gas
The text was updated successfully, but these errors were encountered: