Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Gas Optimizations #5

Closed
code423n4 opened this issue Apr 29, 2022 · 3 comments
Closed

Gas Optimizations #5

code423n4 opened this issue Apr 29, 2022 · 3 comments
Assignees
Labels
bug Something isn't working duplicate This issue or pull request already exists G (Gas Optimization) sponsor acknowledged Technically the issue is correct, but we're not going to resolve it for XYZ reasons

Comments

@code423n4
Copy link
Contributor

https://github.com/pooltogether/aave-v3-yield-source/blob/e63d1b0e396a5bce89f093630c282ca1c6627e44/contracts/AaveV3YieldSource.sol#L127
https://github.com/pooltogether/aave-v3-yield-source/blob/e63d1b0e396a5bce89f093630c282ca1c6627e44/contracts/AaveV3YieldSource.sol#L130
https://github.com/pooltogether/aave-v3-yield-source/blob/e63d1b0e396a5bce89f093630c282ca1c6627e44/contracts/AaveV3YieldSource.sol#L133

The contract variables aToken, rewardsController, poolAddressesProviderRegistry must be immutable to save gas

IAToken public immutable aToken;
IRewardsController public immutable rewardsController;
IPoolAddressesProviderRegistry public immutable poolAddressesProviderRegistry;

extend this report:
If change the aToken should also change the constructor https://github.com/pooltogether/aave-v3-yield-source/blob/e63d1b0e396a5bce89f093630c282ca1c6627e44/contracts/AaveV3YieldSource.sol#L183

- IERC20(_tokenAddress()).safeApprove(address(_pool()), type(uint256).max);
+ IERC20(_aToken.UNDERLYING_ASSET_ADDRESS()).safeApprove(address(_pool()), type(uint256).max); 

extend 2:
https://github.com/pooltogether/aave-v3-yield-source/blob/e63d1b0e396a5bce89f093630c282ca1c6627e44/contracts/AaveV3YieldSource.sol#L183

-  IERC20(_tokenAddress()).safeApprove(address(_pool()), type(uint256).max);
+ IERC20(_aToken.UNDERLYING_ASSET_ADDRESS()).safeApprove(
      IPoolAddressesProvider(
        _poolAddressesProviderRegistry.getAddressesProvidersList()[ADDRESSES_PROVIDER_ID]
      ).getPool(),
      type(uint256).max
    );
@code423n4 code423n4 added bug Something isn't working G (Gas Optimization) labels Apr 29, 2022
code423n4 added a commit that referenced this issue Apr 29, 2022
@PierrickGT PierrickGT self-assigned this May 2, 2022
@PierrickGT PierrickGT added the sponsor acknowledged Technically the issue is correct, but we're not going to resolve it for XYZ reasons label May 2, 2022
@PierrickGT
Copy link
Member

PierrickGT commented May 2, 2022

I have implemented the first suggestion (extend this report) proposed by the warden in the following PR: pooltogether/aave-v3-yield-source#2
I won't implement the second suggestion since it would indeed save a bit of gas while deploying but the code will be less legible.
So for this reason, I have acknowledged the issue.

@gititGoro
Copy link
Collaborator

I have implemented the first suggestion (extend this report) proposed by the warden in the following PR: pooltogether/aave-v3-yield-source#2 I won't implement the second suggestion since it would indeed save a bit of gas while deploying but the code will be less legible. So for this reason, I have acknowledged the issue.

Future wardens should pay attention to this response from the sponsor and determine whether the sponsor they're working with holds similar values. Clean, legible code is important enough that saving deployment gas is more than likely a lower priority. High level languages exist for a reason.

@gititGoro
Copy link
Collaborator

Duplicate of #2

@gititGoro gititGoro marked this as a duplicate of #2 May 20, 2022
@gititGoro gititGoro added the duplicate This issue or pull request already exists label May 20, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working duplicate This issue or pull request already exists G (Gas Optimization) sponsor acknowledged Technically the issue is correct, but we're not going to resolve it for XYZ reasons
Projects
None yet
Development

No branches or pull requests

3 participants