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

feat: UbiquityPoolFacet fuzz tests #940

Merged
merged 19 commits into from
Jun 24, 2024
Merged
Changes from 1 commit
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
a5ddded
test: add skeleton for UbiquityPoolFacet fuzz tests
gitcoindev May 24, 2024
fe834cb
test: assume max collateral ratio between 0 and 1_000_000 (100%)
gitcoindev May 24, 2024
b6e432d
test: set up correct fuzz parameters in testMintDollar_FuzzDollarPric…
gitcoindev May 27, 2024
dc0125c
test: set up correct fuzz parameters in testMintDollar_FuzzDollarAmou…
gitcoindev May 27, 2024
df22fef
chore: increase max_test_rejects to 90000
gitcoindev May 27, 2024
485efe1
test: set correct parameters for collateral and governance slippage fuzz
gitcoindev May 29, 2024
809f149
test: minting fuzz tests parameters tweaks
gitcoindev May 29, 2024
eaa29b3
test: use ABDKMathQuad to fuzz fractional mint
gitcoindev May 30, 2024
222355d
test: add Dollar redeem fuzz tests skeleton
gitcoindev May 30, 2024
e9e0e6c
test: add testRedeemDollar_FuzzDollarPriceUsdTooHigh
gitcoindev Jun 4, 2024
60651d5
test: add redeem fuzz tests InsufficientCollateralAvailable Collatera…
gitcoindev Jun 5, 2024
3a58107
test: add testRedeemDollar_FuzzGovernanceAmountSlippage
gitcoindev Jun 6, 2024
478e4df
test: add testRedeemDollar_FuzzRedemptionDelayBlocks
gitcoindev Jun 6, 2024
ab85a33
test: add testMintDollar_FuzzCorrectDollarAmountMinted
gitcoindev Jun 14, 2024
fce4ecb
test: add testMintDollar_FuzzCorrectDollarAmountRedeemed
gitcoindev Jun 15, 2024
62d4c8a
test: set dollarOutMin>99 at testMintDollar_FuzzDollarAmountSlippage
gitcoindev Jun 16, 2024
320f710
test: increase max_test_rejects for long running fuzz tests
gitcoindev Jun 16, 2024
28e7dd5
chore: move new fuzz tests to separate folders structure
gitcoindev Jun 21, 2024
7dce7be
chore: update import paths after moving fuzz tests
gitcoindev Jun 21, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
29 changes: 12 additions & 17 deletions packages/contracts/test/diamond/facets/UbiquityPoolFacet.fuzz.t.sol
Original file line number Diff line number Diff line change
Expand Up @@ -240,47 +240,42 @@ contract UbiquityPoolFacetFuzzTest is DiamondTestSetup {
}

function testMintDollar_FuzzCollateralAmountSlippage(
uint256 collateralAmount
uint256 maxCollateralIn
) public {
vm.assume(maxCollateralIn <= 100e18);
vm.prank(admin);
ubiquityPoolFacet.setPriceThresholds(
1000000, // mint threshold
990000 // redeem threshold
);

curveDollarPlainPool.updateMockParams(1.01e18);
vm.prank(user);
vm.expectRevert("Collateral slippage");
ubiquityPoolFacet.mintDollar(
0, // collateral index
100e18, // Dollar amount
90e18, // min amount of Dollars to mint
10e18, // max collateral to send
maxCollateralIn, // max collateral to send
0, // max Governance tokens to send
false // force 1-to-1 mint (i.e. provide only collateral without Governance tokens)
);
}

function testMintDollar_FuzzGovernanceAmountSlippage(
uint256 governanceAmount
uint256 maxGovernanceIn
) public {
vm.assume(maxGovernanceIn <= 110e18);
vm.prank(admin);
ubiquityPoolFacet.setPriceThresholds(
1000000, // mint threshold
990000 // redeem threshold
);

curveDollarPlainPool.updateMockParams(1.01e18);
// set ETH/Governance initial price to 2k in Curve pool mock (2k GOV == 1 ETH, 1 GOV == 1 USD)
curveGovernanceEthPool.updateMockParams(2_000e18);
// admin sets collateral ratio to 0%
vm.prank(admin);
ubiquityPoolFacet.setCollateralRatio(0);

vm.prank(user);
vm.expectRevert("Governance slippage");
ubiquityPoolFacet.mintDollar(
0, // collateral index
100e18, // Dollar amount
90e18, // min amount of Dollars to mint
10e18, // max collateral to send
0, // max Governance tokens to send
98e18, // min amount of Dollars to mint (2% fee included)
gitcoindev marked this conversation as resolved.
Show resolved Hide resolved
0, // max collateral to send
maxGovernanceIn, // max Governance tokens to send
false // force 1-to-1 mint (i.e. provide only collateral without Governance tokens)
);
}
Expand Down
Loading