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

Balancer fork tests #1727

Conversation

naddison36
Copy link
Collaborator

@naddison36 naddison36 commented Aug 1, 2023

  • BaseAuraStrategy handle withdraws close to the BPT limit in Aura by checking the max BPT is <= the balance of Aura Pool shares.
  • Using maxRedeem instead of balanceOf as that's more technically correct for 4626 vaults. The balance can be greater than what's allowed to be redeemed.
  • Fixed bug Balancer in fork tests

@rafaelugolini rafaelugolini temporarily deployed to preview-oeth-nicka-bala-vhh5gc August 1, 2023 09:44 Inactive
@rafaelugolini rafaelugolini temporarily deployed to preview-ousd-nicka-bala-xrt9cy August 1, 2023 09:44 Inactive
@rafaelugolini rafaelugolini temporarily deployed to preview-oeth-nicka-bala-vhh5gc August 1, 2023 12:01 Inactive
@rafaelugolini rafaelugolini temporarily deployed to preview-ousd-nicka-bala-xrt9cy August 1, 2023 12:01 Inactive
@naddison36 naddison36 marked this pull request as ready for review August 1, 2023 12:03
@rafaelugolini rafaelugolini temporarily deployed to preview-ousd-nicka-bala-xrt9cy August 2, 2023 00:58 Inactive
@rafaelugolini rafaelugolini temporarily deployed to preview-oeth-nicka-bala-vhh5gc August 2, 2023 00:58 Inactive
@@ -123,7 +131,7 @@ abstract contract BaseAuraStrategy is BaseBalancerStrategy {
{
balancerPoolTokens =
IERC20(platformAddress).balanceOf(address(this)) +
IERC4626(auraRewardPoolAddress).balanceOf(address(this));
IERC4626(auraRewardPoolAddress).maxRedeem(address(this));
Copy link
Member

Choose a reason for hiding this comment

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

IRewardStaking(auraRewardPoolAddress).withdrawAndUnwrap(
numBPTTokens,
Math.min(numBPTTokens, maxBPTTokens),
Copy link
Member

Choose a reason for hiding this comment

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

I do understand rationale for this, to make it more resilient, but I don't think it is an ok change. I think the caller of this function would expect for AURA to withdraw numBPTTokens or fail if it unable to withdraw all.

@sparrowDom sparrowDom temporarily deployed to preview-ousd-nicka-bala-xrt9cy August 2, 2023 21:39 Inactive
@sparrowDom sparrowDom temporarily deployed to preview-oeth-nicka-bala-vhh5gc August 2, 2023 21:39 Inactive
@sparrowDom
Copy link
Member

For now I undid the "lenient" implementation that would reduce the amount of BPT withdrawn in case not enough were available. I think that is the more correct way, but we need to merge this in for the audit.

Feel free to disagree and happy to revisit this issue. There is still one test failing with a very weird stack:
Screenshot 2023-08-02 at 23 37 59

The withdraw function doesn't have the ability to call lpWithdrawAll. Will merge this in and figure it out in the merged branch.

@sparrowDom sparrowDom merged commit b120330 into sparrowDom/balancer-sfrxETH-stETH-rETH Aug 2, 2023
@sparrowDom sparrowDom deleted the nicka/balancer-withdraw-tests branch August 2, 2023 21:42
sparrowDom added a commit that referenced this pull request Sep 21, 2023
* initail commit

* intermediary commit

* commit research files

* balancer booster abi

* intermittent commit

* add base balancer contract that implements checkBalance functionality

* add some additional initial integration

* intermittent commit

* add deployment file

* add fork test fixture

* intermittent commit

* prettier

* add basic withdrawal / deposit functionality

* correct the BPT calculation

* prettier + lint

* simplify the BPT price calculation

* add read-only re-entrancy protection

* add some missing tests and adjust existing. Deparate deposit and withdrawal slippage

* fix check balance implementation

* Balancer review changes (#1726)

* Generated contract docs

* Refactor Balancer storage variables

* Small Balancer changes

* Natspec updates
Added missing licensing
getPoolAssets gas optimized

* Updated generated Balancer strategy contract diagrams

* fix contract linter

* Removed restrictions on tests

* Small gas improvements
Fixed Slither

* Change BalancerError version

* Updated constant names
Addresses to use checksum format

* JS lint tasks

* Updated Balancer and Aura pool id constants

* Removed getRateProviderRate as it wasn't being used
Refactored to remove poolAssetsMapped storage variable

* Updated OETH Contracts diagrams
Generated new Balancer contract diagrams

* Fix failing test

* Fix merge conflict

* Restored getRateProviderRate

* Natspec updates
Added toPoolAsset override

* Removed unused getRateProviderRate

* Natspec updates
Gas optimization of InitializableAbstractStrategy

* Abstract strategy gas improvements (#1719)

* Refactor base strategy to use immutables

* Fixed strategy deployments in 001_core and fixtures

* Generated new strategy diagrams

* Deploy rETH instead of the stETH Balancer MetaStable Pool

* removed unused Aura config

* Balancer fork tests

* Added check that BPT amount equals Aura LP amount
Added rETH conversion to ETH value

* Updated balancer strat fork tests

* Updated Balancer fork tests

* Added optional deposit with multiple assets to the strategy

* Single asset deposit to use multi asset deposit

* Added optional checkBalance to Balancer strategy

* Added checkBalance() to BaseBalancerStrategy

* Fix slither
Fix curve HH task

* Added multi-asset withdraw to balancer strategy

* Fix multi-asset withdraw

* Updated Balancer and Vault diagrams

* Fix js linter

* Fixed checkBalance of rETH asset in Balancer strategy

* Only wrap assets if amount > 0
Added depositAll fork test for Balancer strat

* Removed Vault changes for multi-asset strategy support

* Updated generated docs

* Add tests for wstETH/WETH Balancer pool (#1725)

* Split deployment and fix fixtures

* Deposit tests for wstETH/WETH pool

* Add withdraw test

* prettier

* remove .only in fork tests

---------

Co-authored-by: Shahul Hameed <[email protected]>

* [ DFD-1 ] Balancer's checkBalance (#1730)

* add alternative implementation of Balancer's checkBalance

* correct the checkBalance implementation

* Balancer fork tests (#1727)

* Added large withdraw tests for Balancer strategy

* fix test log

* Balancer withdraw to handle close to BPT limit

* Small change to Balancer withdraw fork test

* add some comments

* change implementation

---------

Co-authored-by: Domen Grabec <[email protected]>

* Add read-only reentrancy test (#1731)

* Added large withdraw tests for Balancer strategy

* fix test log

* Balancer withdraw to handle close to BPT limit

* Small change to Balancer withdraw fork test

* add some comments

* Add test for read-only reentrancy

* add reentrancy protection to checkBalance functions

* add documentation

* remove the only

---------

Co-authored-by: Nicholas Addison <[email protected]>
Co-authored-by: Domen Grabec <[email protected]>

* Balancer fixes (#1734)

* prettier

* adjust how checkBalance is calculated

* Balancer withdrawal fix (#1739)

* fix balancer withdrawals

* lint

* prettier

* use only 1 safeApprove when applicable

* some renames and more correct application of approves

* renames, additional requires, move initializer to a better location, slither

* bug fix

* Generated latest Balancer strategy diagrams

* re-deploy BPT tokens sitting in the strategy

* fix re-entrancy test

* fixture fix

* bug fix

* prettier

* L02 improve naming  (#1783)

* improve naming

* one more rename

* buf fix

* do a check that supported assets are being withdrawn (#1784)

* set uint256 max instead of magic number (#1782)

* remove unused files (#1785)

* fix renaming bug

* correct safe approve all tokens and adjust the documentation (#1776)

* prettier

* M04 - minBptFunction robustness (#1795)

* change bptExpected to ignore Oracle prices and assume assets are always pegged. (Vault value checker shall be used to mitigate issues with said assumption)

* fix all the tests

* add test for pool manipulation

* prettier & lint

* minor change

* add withdrawal test

* update documentation

* pick string error length that is smaller than 32 characters

* prettier

* correct comment

* better comments

* prettier

* M02 withdrawal fuzzing tests (#1801)

* add more withdrawal tests

* add more withdrawal cases

* N02 gas inefficiencies  (#1786)

* gas optimisation

* fix bad merge and prettier

* remove todo comments (#1796)

* use a more appropriate array initialisation length (#1800)

* more consistant function naming (#1797)

* fix typo (#1798)

* simplify the way we withdrawAll. no need to pass along min amonts (#1777)

* M03 - missing or misleading documentation (#1781)

* improve documentation

* add comma

* M01 More comprehensive test suite (#1780)

* add tests for approving tokens and harvesting rewards

* prettier and lint

* fix bad merge + prettier & lint

* fix fork tests remove .only

* remove only

* lint

* fix unit tests

* add more tests to see how checkBalance behaves

* remove console log

* improve checkBalance test by testing that checkBalance amount doesn't decrease after the attack comaring to the middle of the attack.

* confirm that yield gained by 3rd party tilting the pool can be extracted by withdrawing the funds

* rename internal functions by prepending them with underscore

* Generated latest Balancer strategy diagrams (#1805)

* bug fix

* bug fix

* Minor Balancer changes from final review (#1819)

* Removed unused imports

* Generated updated contract diagram

---------

Co-authored-by: Nick Addison <[email protected]>
Co-authored-by: Shahul Hameed <[email protected]>
sparrowDom added a commit that referenced this pull request Sep 27, 2023
* initail commit

* intermediary commit

* commit research files

* balancer booster abi

* intermittent commit

* add base balancer contract that implements checkBalance functionality

* add some additional initial integration

* intermittent commit

* add deployment file

* add fork test fixture

* intermittent commit

* prettier

* add basic withdrawal / deposit functionality

* correct the BPT calculation

* prettier + lint

* simplify the BPT price calculation

* add read-only re-entrancy protection

* add some missing tests and adjust existing. Deparate deposit and withdrawal slippage

* fix check balance implementation

* Balancer review changes (#1726)

* Generated contract docs

* Refactor Balancer storage variables

* Small Balancer changes

* Natspec updates
Added missing licensing
getPoolAssets gas optimized

* Updated generated Balancer strategy contract diagrams

* fix contract linter

* Removed restrictions on tests

* Small gas improvements
Fixed Slither

* Change BalancerError version

* Updated constant names
Addresses to use checksum format

* JS lint tasks

* Updated Balancer and Aura pool id constants

* Removed getRateProviderRate as it wasn't being used
Refactored to remove poolAssetsMapped storage variable

* Updated OETH Contracts diagrams
Generated new Balancer contract diagrams

* Fix failing test

* Fix merge conflict

* Restored getRateProviderRate

* Natspec updates
Added toPoolAsset override

* Removed unused getRateProviderRate

* Natspec updates
Gas optimization of InitializableAbstractStrategy

* Abstract strategy gas improvements (#1719)

* Refactor base strategy to use immutables

* Fixed strategy deployments in 001_core and fixtures

* Generated new strategy diagrams

* Deploy rETH instead of the stETH Balancer MetaStable Pool

* removed unused Aura config

* Balancer fork tests

* Added check that BPT amount equals Aura LP amount
Added rETH conversion to ETH value

* Updated balancer strat fork tests

* Updated Balancer fork tests

* Added optional deposit with multiple assets to the strategy

* Single asset deposit to use multi asset deposit

* Added optional checkBalance to Balancer strategy

* Added checkBalance() to BaseBalancerStrategy

* Fix slither
Fix curve HH task

* Added multi-asset withdraw to balancer strategy

* Fix multi-asset withdraw

* Updated Balancer and Vault diagrams

* Fix js linter

* Fixed checkBalance of rETH asset in Balancer strategy

* Only wrap assets if amount > 0
Added depositAll fork test for Balancer strat

* Removed Vault changes for multi-asset strategy support

* Updated generated docs

* Add tests for wstETH/WETH Balancer pool (#1725)

* Split deployment and fix fixtures

* Deposit tests for wstETH/WETH pool

* Add withdraw test

* prettier

* remove .only in fork tests

---------

Co-authored-by: Shahul Hameed <[email protected]>

* [ DFD-1 ] Balancer's checkBalance (#1730)

* add alternative implementation of Balancer's checkBalance

* correct the checkBalance implementation

* Balancer fork tests (#1727)

* Added large withdraw tests for Balancer strategy

* fix test log

* Balancer withdraw to handle close to BPT limit

* Small change to Balancer withdraw fork test

* add some comments

* change implementation

---------

Co-authored-by: Domen Grabec <[email protected]>

* Add read-only reentrancy test (#1731)

* Added large withdraw tests for Balancer strategy

* fix test log

* Balancer withdraw to handle close to BPT limit

* Small change to Balancer withdraw fork test

* add some comments

* Add test for read-only reentrancy

* add reentrancy protection to checkBalance functions

* add documentation

* remove the only

---------

Co-authored-by: Nicholas Addison <[email protected]>
Co-authored-by: Domen Grabec <[email protected]>

* Balancer fixes (#1734)

* prettier

* adjust how checkBalance is calculated

* Balancer withdrawal fix (#1739)

* fix balancer withdrawals

* lint

* prettier

* use only 1 safeApprove when applicable

* some renames and more correct application of approves

* renames, additional requires, move initializer to a better location, slither

* bug fix

* Generated latest Balancer strategy diagrams

* re-deploy BPT tokens sitting in the strategy

* fix re-entrancy test

* fixture fix

* bug fix

* prettier

* L02 improve naming  (#1783)

* improve naming

* one more rename

* buf fix

* do a check that supported assets are being withdrawn (#1784)

* set uint256 max instead of magic number (#1782)

* remove unused files (#1785)

* fix renaming bug

* correct safe approve all tokens and adjust the documentation (#1776)

* prettier

* M04 - minBptFunction robustness (#1795)

* change bptExpected to ignore Oracle prices and assume assets are always pegged. (Vault value checker shall be used to mitigate issues with said assumption)

* fix all the tests

* add test for pool manipulation

* prettier & lint

* minor change

* add withdrawal test

* update documentation

* pick string error length that is smaller than 32 characters

* prettier

* correct comment

* better comments

* prettier

* M02 withdrawal fuzzing tests (#1801)

* add more withdrawal tests

* add more withdrawal cases

* N02 gas inefficiencies  (#1786)

* gas optimisation

* fix bad merge and prettier

* remove todo comments (#1796)

* use a more appropriate array initialisation length (#1800)

* more consistant function naming (#1797)

* fix typo (#1798)

* simplify the way we withdrawAll. no need to pass along min amonts (#1777)

* M03 - missing or misleading documentation (#1781)

* improve documentation

* add comma

* M01 More comprehensive test suite (#1780)

* add tests for approving tokens and harvesting rewards

* prettier and lint

* fix bad merge + prettier & lint

* fix fork tests remove .only

* remove only

* lint

* fix unit tests

* add more tests to see how checkBalance behaves

* remove console log

* improve checkBalance test by testing that checkBalance amount doesn't decrease after the attack comaring to the middle of the attack.

* confirm that yield gained by 3rd party tilting the pool can be extracted by withdrawing the funds

* rename internal functions by prepending them with underscore

* Generated latest Balancer strategy diagrams (#1805)

* bug fix

* bug fix

* Minor Balancer changes from final review (#1819)

* Removed unused imports

* Generated updated contract diagram

* Deploy Balancer Meta stable pool RETH strategy

* update deploy description

* fix typo

* add proposal Id to deploy script

* prettier

---------

Co-authored-by: Nick Addison <[email protected]>
Co-authored-by: Shahul Hameed <[email protected]>
sparrowDom added a commit that referenced this pull request Sep 27, 2023
* initail commit

* intermediary commit

* commit research files

* balancer booster abi

* intermittent commit

* add base balancer contract that implements checkBalance functionality

* add some additional initial integration

* intermittent commit

* add deployment file

* add fork test fixture

* intermittent commit

* prettier

* add basic withdrawal / deposit functionality

* correct the BPT calculation

* prettier + lint

* simplify the BPT price calculation

* add read-only re-entrancy protection

* add some missing tests and adjust existing. Deparate deposit and withdrawal slippage

* fix check balance implementation

* Balancer review changes (#1726)

* Generated contract docs

* Refactor Balancer storage variables

* Small Balancer changes

* Natspec updates
Added missing licensing
getPoolAssets gas optimized

* Updated generated Balancer strategy contract diagrams

* fix contract linter

* Removed restrictions on tests

* Small gas improvements
Fixed Slither

* Change BalancerError version

* Updated constant names
Addresses to use checksum format

* JS lint tasks

* Updated Balancer and Aura pool id constants

* Removed getRateProviderRate as it wasn't being used
Refactored to remove poolAssetsMapped storage variable

* Updated OETH Contracts diagrams
Generated new Balancer contract diagrams

* Fix failing test

* Fix merge conflict

* Restored getRateProviderRate

* Natspec updates
Added toPoolAsset override

* Removed unused getRateProviderRate

* Natspec updates
Gas optimization of InitializableAbstractStrategy

* Abstract strategy gas improvements (#1719)

* Refactor base strategy to use immutables

* Fixed strategy deployments in 001_core and fixtures

* Generated new strategy diagrams

* Deploy rETH instead of the stETH Balancer MetaStable Pool

* removed unused Aura config

* Balancer fork tests

* Added check that BPT amount equals Aura LP amount
Added rETH conversion to ETH value

* Updated balancer strat fork tests

* Updated Balancer fork tests

* Added optional deposit with multiple assets to the strategy

* Single asset deposit to use multi asset deposit

* Added optional checkBalance to Balancer strategy

* Added checkBalance() to BaseBalancerStrategy

* Fix slither
Fix curve HH task

* Added multi-asset withdraw to balancer strategy

* Fix multi-asset withdraw

* Updated Balancer and Vault diagrams

* Fix js linter

* Fixed checkBalance of rETH asset in Balancer strategy

* Only wrap assets if amount > 0
Added depositAll fork test for Balancer strat

* Removed Vault changes for multi-asset strategy support

* Updated generated docs

* Add tests for wstETH/WETH Balancer pool (#1725)

* Split deployment and fix fixtures

* Deposit tests for wstETH/WETH pool

* Add withdraw test

* prettier

* remove .only in fork tests

---------

Co-authored-by: Shahul Hameed <[email protected]>

* [ DFD-1 ] Balancer's checkBalance (#1730)

* add alternative implementation of Balancer's checkBalance

* correct the checkBalance implementation

* Balancer fork tests (#1727)

* Added large withdraw tests for Balancer strategy

* fix test log

* Balancer withdraw to handle close to BPT limit

* Small change to Balancer withdraw fork test

* add some comments

* change implementation

---------

Co-authored-by: Domen Grabec <[email protected]>

* Add read-only reentrancy test (#1731)

* Added large withdraw tests for Balancer strategy

* fix test log

* Balancer withdraw to handle close to BPT limit

* Small change to Balancer withdraw fork test

* add some comments

* Add test for read-only reentrancy

* add reentrancy protection to checkBalance functions

* add documentation

* remove the only

---------

Co-authored-by: Nicholas Addison <[email protected]>
Co-authored-by: Domen Grabec <[email protected]>

* Balancer fixes (#1734)

* prettier

* adjust how checkBalance is calculated

* Balancer withdrawal fix (#1739)

* fix balancer withdrawals

* lint

* prettier

* use only 1 safeApprove when applicable

* some renames and more correct application of approves

* renames, additional requires, move initializer to a better location, slither

* bug fix

* Generated latest Balancer strategy diagrams

* re-deploy BPT tokens sitting in the strategy

* fix re-entrancy test

* fixture fix

* bug fix

* prettier

* L02 improve naming  (#1783)

* improve naming

* one more rename

* buf fix

* do a check that supported assets are being withdrawn (#1784)

* set uint256 max instead of magic number (#1782)

* remove unused files (#1785)

* fix renaming bug

* correct safe approve all tokens and adjust the documentation (#1776)

* prettier

* M04 - minBptFunction robustness (#1795)

* change bptExpected to ignore Oracle prices and assume assets are always pegged. (Vault value checker shall be used to mitigate issues with said assumption)

* fix all the tests

* add test for pool manipulation

* prettier & lint

* minor change

* add withdrawal test

* update documentation

* pick string error length that is smaller than 32 characters

* prettier

* correct comment

* better comments

* prettier

* M02 withdrawal fuzzing tests (#1801)

* add more withdrawal tests

* add more withdrawal cases

* N02 gas inefficiencies  (#1786)

* gas optimisation

* fix bad merge and prettier

* remove todo comments (#1796)

* use a more appropriate array initialisation length (#1800)

* more consistant function naming (#1797)

* fix typo (#1798)

* simplify the way we withdrawAll. no need to pass along min amonts (#1777)

* M03 - missing or misleading documentation (#1781)

* improve documentation

* add comma

* M01 More comprehensive test suite (#1780)

* add tests for approving tokens and harvesting rewards

* prettier and lint

* fix bad merge + prettier & lint

* fix fork tests remove .only

* remove only

* lint

* fix unit tests

* add more tests to see how checkBalance behaves

* remove console log

* improve checkBalance test by testing that checkBalance amount doesn't decrease after the attack comaring to the middle of the attack.

* confirm that yield gained by 3rd party tilting the pool can be extracted by withdrawing the funds

* rename internal functions by prepending them with underscore

* Generated latest Balancer strategy diagrams (#1805)

* bug fix

* bug fix

* Minor Balancer changes from final review (#1819)

* Removed unused imports

* Generated updated contract diagram

* Deploy Balancer Meta stable pool RETH strategy

* update deploy description

* fix typo

* add proposal Id to deploy script

* prettier

* create a deploy file

* file rename

* improve wording

* fix name redundancy

---------

Co-authored-by: Nick Addison <[email protected]>
Co-authored-by: Shahul Hameed <[email protected]>
sparrowDom added a commit that referenced this pull request Oct 3, 2023
* initail commit

* intermediary commit

* commit research files

* balancer booster abi

* intermittent commit

* add base balancer contract that implements checkBalance functionality

* add some additional initial integration

* intermittent commit

* add deployment file

* add fork test fixture

* intermittent commit

* prettier

* add basic withdrawal / deposit functionality

* correct the BPT calculation

* prettier + lint

* simplify the BPT price calculation

* add read-only re-entrancy protection

* add some missing tests and adjust existing. Deparate deposit and withdrawal slippage

* fix check balance implementation

* Balancer review changes (#1726)

* Generated contract docs

* Refactor Balancer storage variables

* Small Balancer changes

* Natspec updates
Added missing licensing
getPoolAssets gas optimized

* Updated generated Balancer strategy contract diagrams

* fix contract linter

* Removed restrictions on tests

* Small gas improvements
Fixed Slither

* Change BalancerError version

* Updated constant names
Addresses to use checksum format

* JS lint tasks

* Updated Balancer and Aura pool id constants

* Removed getRateProviderRate as it wasn't being used
Refactored to remove poolAssetsMapped storage variable

* Updated OETH Contracts diagrams
Generated new Balancer contract diagrams

* Fix failing test

* Fix merge conflict

* Restored getRateProviderRate

* Natspec updates
Added toPoolAsset override

* Removed unused getRateProviderRate

* Natspec updates
Gas optimization of InitializableAbstractStrategy

* Abstract strategy gas improvements (#1719)

* Refactor base strategy to use immutables

* Fixed strategy deployments in 001_core and fixtures

* Generated new strategy diagrams

* Deploy rETH instead of the stETH Balancer MetaStable Pool

* removed unused Aura config

* Balancer fork tests

* Added check that BPT amount equals Aura LP amount
Added rETH conversion to ETH value

* Updated balancer strat fork tests

* Updated Balancer fork tests

* Added optional deposit with multiple assets to the strategy

* Single asset deposit to use multi asset deposit

* Added optional checkBalance to Balancer strategy

* Added checkBalance() to BaseBalancerStrategy

* Fix slither
Fix curve HH task

* Added multi-asset withdraw to balancer strategy

* Fix multi-asset withdraw

* Updated Balancer and Vault diagrams

* Fix js linter

* Fixed checkBalance of rETH asset in Balancer strategy

* Only wrap assets if amount > 0
Added depositAll fork test for Balancer strat

* Removed Vault changes for multi-asset strategy support

* Updated generated docs

* Add tests for wstETH/WETH Balancer pool (#1725)

* Split deployment and fix fixtures

* Deposit tests for wstETH/WETH pool

* Add withdraw test

* prettier

* remove .only in fork tests

---------

Co-authored-by: Shahul Hameed <[email protected]>

* [ DFD-1 ] Balancer's checkBalance (#1730)

* add alternative implementation of Balancer's checkBalance

* correct the checkBalance implementation

* Balancer fork tests (#1727)

* Added large withdraw tests for Balancer strategy

* fix test log

* Balancer withdraw to handle close to BPT limit

* Small change to Balancer withdraw fork test

* add some comments

* change implementation

---------

Co-authored-by: Domen Grabec <[email protected]>

* Add read-only reentrancy test (#1731)

* Added large withdraw tests for Balancer strategy

* fix test log

* Balancer withdraw to handle close to BPT limit

* Small change to Balancer withdraw fork test

* add some comments

* Add test for read-only reentrancy

* add reentrancy protection to checkBalance functions

* add documentation

* remove the only

---------

Co-authored-by: Nicholas Addison <[email protected]>
Co-authored-by: Domen Grabec <[email protected]>

* Balancer fixes (#1734)

* prettier

* adjust how checkBalance is calculated

* Balancer withdrawal fix (#1739)

* fix balancer withdrawals

* lint

* prettier

* use only 1 safeApprove when applicable

* some renames and more correct application of approves

* renames, additional requires, move initializer to a better location, slither

* bug fix

* Generated latest Balancer strategy diagrams

* re-deploy BPT tokens sitting in the strategy

* fix re-entrancy test

* fixture fix

* bug fix

* prettier

* L02 improve naming  (#1783)

* improve naming

* one more rename

* buf fix

* do a check that supported assets are being withdrawn (#1784)

* set uint256 max instead of magic number (#1782)

* remove unused files (#1785)

* fix renaming bug

* correct safe approve all tokens and adjust the documentation (#1776)

* prettier

* M04 - minBptFunction robustness (#1795)

* change bptExpected to ignore Oracle prices and assume assets are always pegged. (Vault value checker shall be used to mitigate issues with said assumption)

* fix all the tests

* add test for pool manipulation

* prettier & lint

* minor change

* add withdrawal test

* update documentation

* pick string error length that is smaller than 32 characters

* prettier

* correct comment

* better comments

* prettier

* M02 withdrawal fuzzing tests (#1801)

* add more withdrawal tests

* add more withdrawal cases

* N02 gas inefficiencies  (#1786)

* gas optimisation

* fix bad merge and prettier

* remove todo comments (#1796)

* use a more appropriate array initialisation length (#1800)

* more consistant function naming (#1797)

* fix typo (#1798)

* simplify the way we withdrawAll. no need to pass along min amonts (#1777)

* M03 - missing or misleading documentation (#1781)

* improve documentation

* add comma

* M01 More comprehensive test suite (#1780)

* add tests for approving tokens and harvesting rewards

* prettier and lint

* fix bad merge + prettier & lint

* fix fork tests remove .only

* remove only

* lint

* fix unit tests

* add more tests to see how checkBalance behaves

* remove console log

* improve checkBalance test by testing that checkBalance amount doesn't decrease after the attack comaring to the middle of the attack.

* confirm that yield gained by 3rd party tilting the pool can be extracted by withdrawing the funds

* rename internal functions by prepending them with underscore

* Generated latest Balancer strategy diagrams (#1805)

* bug fix

* bug fix

* Minor Balancer changes from final review (#1819)

* Removed unused imports

* Generated updated contract diagram

* Deploy Balancer Meta stable pool RETH strategy

* update deploy description

* fix typo

* add proposal Id to deploy script

* prettier

* create a deploy file

* file rename

* improve wording

* fix name redundancy

* re-deploy Balancer rETH/WETH strategy

* add proposal id

* improve deploy proposal wording

* update proposal id

* Prettify

---------

Co-authored-by: Nick Addison <[email protected]>
Co-authored-by: Shahul Hameed <[email protected]>
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