diff --git a/data/0xhacksmithh-G.md b/data/0xhacksmithh-G.md index e6e9be0..37ce5b8 100644 --- a/data/0xhacksmithh-G.md +++ b/data/0xhacksmithh-G.md @@ -2,14 +2,17 @@ ### [Gas-01] Struct can be packed *instances(16 structs)* -```File: Ethos-Core/contracts/CollateralConfig.sol +``` +File: Ethos-Core/contracts/CollateralConfig.sol https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/CollateralConfig.sol#L27-L32 ```` -```File: Ethos-Core/contracts/BorrowerOperations.sol +``` +File: Ethos-Core/contracts/BorrowerOperations.sol https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/BorrowerOperations.sol#L47-L64 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/BorrowerOperations.sol#L66-L78 ``` -```File: Ethos-Core/contracts/TroveManager.sol +``` +File: Ethos-Core/contracts/TroveManager.sol https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/TroveManager.sol#L129-L138 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/TroveManager.sol#L140-L144 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/TroveManager.sol#L146-L158 @@ -17,31 +20,37 @@ https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/Trove https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/TroveManager.sol#L172-L182 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/TroveManager.sol#L1-L1 ``` -```File: Ethos-Core/contracts/ActivePool.sol +``` +File: Ethos-Core/contracts/ActivePool.sol https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/ActivePool.sol#L220-L237 ``` -```File: Ethos-Core/contracts/StabilityPool.sol +``` +File: Ethos-Core/contracts/StabilityPool.sol https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/StabilityPool.sol#L214 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/StabilityPool.sol#L223 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/StabilityPool.sol#L646-L655 ``` -```File: Ethos-Core/contracts/LUSDToken.sol +``` +File: Ethos-Core/contracts/LUSDToken.sol https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/LUSDToken.sol#L58 ``` -```File: Ethos-Vault/contracts/ReaperVaultV2.sol +``` +File: Ethos-Vault/contracts/ReaperVaultV2.sol https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Vault/contracts/ReaperVaultV2.sol#L25-L32 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Vault/contracts/ReaperVaultV2.sol#L473-L483 ``` ### [Gas-02] Code base using ```assert()``` instead of ```require()``` *instances(17)* -```File: Ethos-Core/contracts/BorrowerOperations.sol +``` +File: Ethos-Core/contracts/BorrowerOperations.sol https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/BorrowerOperations.sol#L128 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/BorrowerOperations.sol#L301 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/BorrowerOperations.sol#L331 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/BorrowerOperations.sol#L653 ``` -```File: Ethos-Core/contracts/TroveManager.sol +``` +File: Ethos-Core/contracts/TroveManager.sol https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/TroveManager.sol#L1224 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/TroveManager.sol#L1279 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/TroveManager.sol#L1342 @@ -49,10 +58,12 @@ https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/Trove https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/TroveManager.sol#L1414 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/TroveManager.sol#L1489 ``` -```File: Ethos-Core/contracts/StabilityPool.sol +``` +File: Ethos-Core/contracts/StabilityPool.sol https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/StabilityPool.sol#L551 ``` -```File: Ethos-Core/contracts/LUSDToken.sol +``` +File: Ethos-Core/contracts/LUSDToken.sol https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/LUSDToken.sol#L312 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/LUSDToken.sol#L313 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/LUSDToken.sol#L321 @@ -63,28 +74,33 @@ https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/LUSDT ### [Gas-03] Use of && Operator in ```assert()``` and ```require()``` *instances(7)* -```File: Ethos-Core/contracts/BorrowerOperations.sol +``` +File: Ethos-Core/contracts/BorrowerOperations.sol https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/BorrowerOperations.sol#L301 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/BorrowerOperations.sol#L ``` -```File: Ethos-Core/contracts/TroveManager.sol +``` +File: Ethos-Core/contracts/TroveManager.sol https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/TroveManager.sol#L1279 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/TroveManager.sol#L1342 ``` -```File: Ethos-Core/contracts/LUSDToken.sol +``` +File: Ethos-Core/contracts/LUSDToken.sol https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/LUSDToken.sol#L348 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/LUSDToken.sol#L353-L356 ``` ### [Gas-04] ```constant``` should be value rather than expression *instances(2)* -```File: Ethos-Core/contracts/TroveManager.sol +``` +File: Ethos-Core/contracts/TroveManager.sol https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/TroveManager.sol#L54-L55 ``` ### [Gas-05] Multiple addresses mapping can be combined into a single mapping of an addresses to a struct where appropriate *instances(2)* -```File: Ethos-Core/contracts/TroveManager.sol +``` +File: Ethos-Core/contracts/TroveManager.sol https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/TroveManager.sol#L86 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/TroveManager.sol#L109 ``` @@ -96,20 +112,23 @@ struct Deposit { } ``` *instances()* -```File: Ethos-Core/contracts/StabilityPool.sol +``` +File: Ethos-Core/contracts/StabilityPool.sol https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/StabilityPool.sol#L186 ``` ### [Gas-07] STACK VARIABLE USED AS A CHEAPER CACHE FOR A STATE VARIABLE IS ONLY USED ONCE *instances(2)* -```File: Ethos-Core/contracts/StabilityPool.sol +``` +File: Ethos-Core/contracts/StabilityPool.sol https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/StabilityPool.sol#L468 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/StabilityPool.sol#L488 ``` ### [Gas-08] Some ```internal``` functions could be inlined *instances(5)* -```File: Ethos-Core/contracts/LUSDToken.sol +``` +File: Ethos-Core/contracts/LUSDToken.sol https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/LUSDToken.sol#L360 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/LUSDToken.sol#L365 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/LUSDToken.sol#L375 @@ -119,7 +138,8 @@ https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Core/contracts/LUSDT ### [Gas-09] ```+=``` COSTS MORE GAS THAN = + FOR STATE VARIABLES *instances(15)* -```File: Ethos-Vault/contracts/ReaperVaultV2.sol +``` +File: Ethos-Vault/contracts/ReaperVaultV2.sol https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Vault/contracts/ReaperVaultV2.sol#L194 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Vault/contracts/ReaperVaultV2.sol#L196 https://github.com/code-423n4/2023-02-ethos/blob/main/Ethos-Vault/contracts/ReaperVaultV2.sol#L214