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 limit as percentage #861

Merged
merged 5 commits into from
Sep 4, 2024
Merged

gas limit as percentage #861

merged 5 commits into from
Sep 4, 2024

Conversation

hensha256
Copy link
Contributor

No description provided.

// SPDX-License-Identifier: GPL-2.0-or-later
pragma solidity ^0.8.0;

/// @title For calculating a percentage of an amount, using bips
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This is copied across from periphery now that its been audited.

Copy link

github-actions bot commented Aug 30, 2024

Forge code coverage:

File % Lines % Statements % Branches % Funcs
src/ERC6909.sol 82.61% (19/23) 78.57% (22/28) 100.00% (2/2) 85.71% (6/7)
src/ERC6909Claims.sol 100.00% (6/6) 100.00% (8/8) 100.00% (2/2) 100.00% (1/1)
src/Extsload.sol 0.00% (0/28) 0.00% (0/30) 0.00% (0/2) 100.00% (3/3)
src/Exttload.sol 0.00% (0/15) 0.00% (0/16) 0.00% (0/1) 50.00% (1/2)
src/NoDelegateCall.sol 66.67% (2/3) 75.00% (3/4) 100.00% (1/1) 100.00% (3/3)
src/PoolManager.sol 98.98% (97/98) 97.78% (132/135) 89.47% (17/19) 100.00% (20/20)
src/ProtocolFees.sol 87.50% (21/24) 87.88% (29/33) 83.33% (5/6) 100.00% (6/6)
src/libraries/BipsLibrary.sol 100.00% (2/2) 100.00% (4/4) 100.00% (1/1) 100.00% (1/1)
src/libraries/BitMath.sol 18.18% (2/11) 18.18% (2/11) 0.00% (0/4) 100.00% (2/2)
src/libraries/CurrencyDelta.sol 33.33% (3/9) 45.45% (5/11) 100.00% (0/0) 100.00% (3/3)
src/libraries/CurrencyReserves.sol 14.29% (1/7) 14.29% (1/7) 0.00% (0/1) 100.00% (5/5)
src/libraries/CustomRevert.sol 0.00% (0/35) 0.00% (0/35) 100.00% (0/0) 100.00% (8/8)
src/libraries/FullMath.sol 68.97% (20/29) 72.73% (24/33) 33.33% (2/6) 100.00% (2/2)
src/libraries/Hooks.sol 94.12% (80/85) 95.00% (133/140) 92.00% (23/25) 100.00% (14/14)
src/libraries/LPFeeLibrary.sol 90.00% (9/10) 93.75% (15/16) 100.00% (1/1) 100.00% (7/7)
src/libraries/LiquidityMath.sol 0.00% (0/4) 0.00% (0/4) 0.00% (0/1) 100.00% (1/1)
src/libraries/Lock.sol 0.00% (0/3) 0.00% (0/3) 100.00% (0/0) 100.00% (3/3)
src/libraries/NonzeroDeltaCount.sol 0.00% (0/7) 0.00% (0/7) 100.00% (0/0) 100.00% (3/3)
src/libraries/ParseBytes.sol 0.00% (0/3) 0.00% (0/3) 100.00% (0/0) 100.00% (3/3)
src/libraries/Pool.sol 94.23% (147/156) 93.60% (161/172) 98.08% (51/52) 100.00% (13/13)
src/libraries/Position.sol 52.63% (10/19) 57.14% (12/21) 100.00% (3/3) 100.00% (3/3)
src/libraries/ProtocolFeeLibrary.sol 20.00% (2/10) 20.00% (2/10) 100.00% (0/0) 100.00% (4/4)
src/libraries/SafeCast.sol 100.00% (12/12) 100.00% (19/19) 100.00% (6/6) 100.00% (6/6)
src/libraries/SqrtPriceMath.sol 60.42% (29/48) 69.84% (44/63) 58.33% (7/12) 100.00% (9/9)
src/libraries/StateLibrary.sol 71.43% (45/63) 79.31% (69/87) 100.00% (4/4) 100.00% (14/14)
src/libraries/SwapMath.sol 80.77% (21/26) 81.48% (22/27) 100.00% (6/6) 100.00% (2/2)
src/libraries/TickBitmap.sol 40.00% (12/30) 50.00% (18/36) 66.67% (2/3) 100.00% (4/4)
src/libraries/TickMath.sol 37.11% (36/97) 56.94% (82/144) 95.83% (23/24) 100.00% (4/4)
src/libraries/TransientStateLibrary.sol 70.00% (7/10) 76.92% (10/13) 100.00% (0/0) 100.00% (5/5)
src/libraries/UnsafeMath.sol 0.00% (0/2) 0.00% (0/2) 100.00% (0/0) 100.00% (2/2)
src/types/BalanceDelta.sol 0.00% (0/2) 0.00% (0/2) 100.00% (0/0) 100.00% (2/2)
src/types/BeforeSwapDelta.sol 0.00% (0/2) 0.00% (0/2) 100.00% (0/0) 100.00% (2/2)
src/types/Currency.sol 59.09% (13/22) 70.00% (21/30) 75.00% (6/8) 100.00% (6/6)
src/types/PoolId.sol 0.00% (0/1) 0.00% (0/1) 100.00% (0/0) 100.00% (1/1)
src/types/Slot0.sol 0.00% (0/8) 0.00% (0/8) 100.00% (0/0) 100.00% (8/8)
Total 68.70% (1352/1968) 71.46% (1818/2544) 42.24% (272/644) 83.02% (396/477)

Comment on lines -29 to +33
constructor(uint256 _controllerGasLimit) Owned(msg.sender) {
controllerGasLimit = _controllerGasLimit;
}
constructor() Owned(msg.sender) {}
Copy link
Collaborator

Choose a reason for hiding this comment

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

*happy noises*


/// @inheritdoc IProtocolFees
mapping(Currency currency => uint256 amount) public protocolFeesAccrued;

/// @inheritdoc IProtocolFees
IProtocolFeeController public protocolFeeController;

uint256 private immutable controllerGasLimit;
// a percentage of the block.gaslimit denoted in basis points, used as the gas limit for fee controller calls
// 100 bps is 1%, at 30M gas, the limit is 300K
Copy link
Member

Choose a reason for hiding this comment

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

Are we fine with this number?

This is what we use for subscribers on periphery?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

yeah it seemed reasonable here too. 300k would be a lotttttttt. arguably id be happy to go with smaller lol

Copy link
Collaborator

@saucepoint saucepoint left a comment

Choose a reason for hiding this comment

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

looks good to me; 300K also probably chill (running it by erin too)

is there a test that confirms the 1% is the indeed the gas limit. just to validate that the 1% math is working, and its actually being picked up correctly by ProtocolFees.sol

@snreynolds
Copy link
Member

looks good to me; 300K also probably chill (running it by erin too)

is there a test that confirms the 1% is the indeed the gas limit. just to validate that the 1% math is working, and its actually being picked up correctly by ProtocolFees.sol

I wrote tests for this in periphery - maybe let's transfer them over @hensha256 ?

@hensha256 hensha256 merged commit 5a7990b into main Sep 4, 2024
6 checks passed
@hensha256 hensha256 deleted the gas-limit-percentage branch September 4, 2024 22:34
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