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

Tj/fee contract improvements #1877

Closed
wants to merge 4 commits into from
Closed

Conversation

0xkato
Copy link
Contributor

@0xkato 0xkato commented Aug 19, 2024

This PR:

Minor gas optimizations

This PR does not:

Key places to review:

Copy link
Contributor

@philippecamacho philippecamacho left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM but please check with @alysiahuggins regarding the upgradeability of the contract.

Copy link
Contributor

@philippecamacho philippecamacho left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some tests fail on my machine:

> just sol-test

[FAIL. Reason: DepositTooLarge()] test_depositForManyDifferentUsers() (gas: 44817)
[FAIL. Reason: DepositTooLarge()] test_depositManyTimesForTheSameUser() (gas: 40448)
[PASS] test_depositMaxAmount() (gas: 27816)
[FAIL. Reason: panic: arithmetic underflow or overflow (0x11)] test_depositMinAmount() (gas: 16785)
[FAIL. Reason: Error != expected error: 0xc56d46d3 != 0x702b3d90] test_invalidUserAddress() (gas: 24845)

// === Constants ===
//
/// @notice max amount allowed to be deposited to prevent fat finger errors
// @TODO confirm this amount with product
uint256 public maxDepositAmount = 1 ether;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

as it's an upgradable contract - we can't assign values to state variables on the implementation contract since we actually use the storage on the proxy contract. Only set these values in the initialize function

@@ -49,8 +48,6 @@ contract FeeContract is Initializable, OwnableUpgradeable, UUPSUpgradeable {
function initialize(address multisig) public initializer {
__Ownable_init(multisig); //sets owner to msg.sender
__UUPSUpgradeable_init();
maxDepositAmount = 1 ether;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

see comment above but these values have to set here as opposed to assigning it upon declaration of the state variable.

@alysiahuggins
Copy link
Contributor

LGTM but please check with @alysiahuggins regarding the upgradeability of the contract.

thanks for tagging me @philippecamacho , i left comments

@0xkato 0xkato closed this Aug 20, 2024
@0xkato 0xkato deleted the tj/fee_contract_improvements branch August 20, 2024 18:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants