From 9e0d5fc10f5993dda065daa29239c1079c0cadc8 Mon Sep 17 00:00:00 2001 From: green Date: Thu, 22 Aug 2024 00:47:38 +0200 Subject: [PATCH 01/28] test(UbiquityPoolFacet): add invariant tests for collateral token addition and price feed setup --- .../facets/UbiquityPoolFacet.invariant.t.sol | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol diff --git a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol new file mode 100644 index 000000000..395af9004 --- /dev/null +++ b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol @@ -0,0 +1,91 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.19; + +import "forge-std/Test.sol"; +import {UbiquityPoolFacet} from "../../../../src/dollar/facets/UbiquityPoolFacet.sol"; +import {LibUbiquityPool} from "../../../../src/dollar/libraries/LibUbiquityPool.sol"; +import {MockERC20} from "../../../../src/dollar/mocks/MockERC20.sol"; +import {DiamondTestSetup} from "../../../../test/diamond/DiamondTestSetup.sol"; +import {MockChainLinkFeed} from "../../../../src/dollar/mocks/MockChainLinkFeed.sol"; + +contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { + MockERC20 public collateralToken; + MockChainLinkFeed public collateralTokenPriceFeed; + + function setUp() public override { + super.setUp(); + + vm.startPrank(admin); + + collateralToken = new MockERC20("COLLATERAL", "CLT", 18); + collateralTokenPriceFeed = new MockChainLinkFeed(); + + // add collateral token to the pool + uint256 poolCeiling = 50_000e18; // max 50_000 of collateral tokens is allowed + ubiquityPoolFacet.addCollateralToken( + address(collateralToken), + address(collateralTokenPriceFeed), + poolCeiling + ); + + // set collateral price initial feed mock params + collateralTokenPriceFeed.updateMockParams( + 1, // round id + 100_000_000, // answer, 100_000_000 = $1.00 (chainlink 8 decimals answer is converted to 6 decimals pool price) + block.timestamp, // started at + block.timestamp, // updated at + 1 // answered in round + ); + + // set price feed for collateral token + ubiquityPoolFacet.setCollateralChainLinkPriceFeed( + address(collateralToken), // collateral token address + address(collateralTokenPriceFeed), // price feed address + 1 days // price feed staleness threshold in seconds + ); + + ubiquityPoolFacet.toggleCollateral(0); + + vm.stopPrank(); + } + + function invariant_CollateralTokenIsEnabledAndCorrectlyAdded() public { + // Check if the collateral token is correctly added and enabled + LibUbiquityPool.CollateralInformation + memory collateralInfo = ubiquityPoolFacet.collateralInformation( + address(collateralToken) + ); + assertTrue( + collateralInfo.isEnabled, + "Collateral token should be enabled" + ); + assertEq( + collateralInfo.collateralAddress, + address(collateralToken), + "Collateral token address mismatch" + ); + assertEq( + collateralInfo.poolCeiling, + 50_000e18, + "Collateral pool ceiling mismatch" + ); + } + + function invariant_CollateralPriceFeedIsSetCorrectly() public { + // Check if the price feed for the collateral token is set correctly + LibUbiquityPool.CollateralInformation + memory collateralInfo = ubiquityPoolFacet.collateralInformation( + address(collateralToken) + ); + assertEq( + collateralInfo.collateralPriceFeedAddress, + address(collateralTokenPriceFeed), + "Collateral price feed address mismatch" + ); + assertEq( + collateralInfo.collateralPriceFeedStalenessThreshold, + 1 days, + "Collateral price feed staleness threshold mismatch" + ); + } +} From 42d739add070a2ebe56806250b3daaf8b48bb158 Mon Sep 17 00:00:00 2001 From: green Date: Sun, 25 Aug 2024 22:24:09 +0200 Subject: [PATCH 02/28] test(ubiquityPoolFacet): add invariant test for Ubiquity Dollar minting limits with fuzzing --- .../diamond/facets/PoolFacetHandler.sol | 54 ++++++ .../facets/UbiquityPoolFacet.invariant.t.sol | 181 ++++++++++++++---- 2 files changed, 203 insertions(+), 32 deletions(-) create mode 100644 packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol diff --git a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol new file mode 100644 index 000000000..b746d31e0 --- /dev/null +++ b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol @@ -0,0 +1,54 @@ +// SPDX-License-Identifier: MIT +pragma solidity 0.8.19; + +import "forge-std/Test.sol"; +import {UbiquityPoolFacet} from "../../../../src/dollar/facets/UbiquityPoolFacet.sol"; +import {MockChainLinkFeed} from "../../../../src/dollar/mocks/MockChainLinkFeed.sol"; + +contract PoolFacetHandler is Test { + MockChainLinkFeed collateralTokenPriceFeed; + UbiquityPoolFacet ubiquityPoolFacet; + + constructor( + MockChainLinkFeed _collateralTokenPriceFeed, + UbiquityPoolFacet _ubiquityPoolFacet + ) { + collateralTokenPriceFeed = _collateralTokenPriceFeed; + ubiquityPoolFacet = _ubiquityPoolFacet; + } + + function setCollateralRatio(uint256 newRatio) public { + ubiquityPoolFacet.setCollateralRatio(newRatio); + } + + function updateCollateralPrice(uint256 newPrice) public { + uint256 timestamp = block.timestamp; + + collateralTokenPriceFeed.updateMockParams( + 1, + int256(newPrice), + timestamp, + timestamp, + 1 + ); + + ubiquityPoolFacet.updateChainLinkCollateralPrice(0); + } + + function mintUbiquityDollars( + uint256 dollarAmount, + uint256 dollarOutMin, + uint256 maxCollateralIn, + uint256 maxGovernanceIn, + bool isOneToOne + ) public { + ubiquityPoolFacet.mintDollar( + 0, + dollarAmount, + dollarOutMin, + maxCollateralIn, + maxGovernanceIn, + isOneToOne + ); + } +} diff --git a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol index 395af9004..f9471919f 100644 --- a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol +++ b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol @@ -7,10 +7,29 @@ import {LibUbiquityPool} from "../../../../src/dollar/libraries/LibUbiquityPool. import {MockERC20} from "../../../../src/dollar/mocks/MockERC20.sol"; import {DiamondTestSetup} from "../../../../test/diamond/DiamondTestSetup.sol"; import {MockChainLinkFeed} from "../../../../src/dollar/mocks/MockChainLinkFeed.sol"; +import {PoolFacetHandler} from "./PoolFacetHandler.sol"; +import {IERC20Ubiquity} from "../../../../src/dollar/interfaces/IERC20Ubiquity.sol"; +import {MockCurveStableSwapNG} from "../../../../src/dollar/mocks/MockCurveStableSwapNG.sol"; +import {MockCurveTwocryptoOptimized} from "../../../../src/dollar/mocks/MockCurveTwocryptoOptimized.sol"; contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { - MockERC20 public collateralToken; - MockChainLinkFeed public collateralTokenPriceFeed; + PoolFacetHandler handler; + + // mock three tokens: collateral token, stable token, wrapped ETH token + MockERC20 collateralToken; + MockERC20 stableToken; + MockERC20 wethToken; + + // mock three ChainLink price feeds, one for each token + MockChainLinkFeed collateralTokenPriceFeed; + MockChainLinkFeed ethUsdPriceFeed; + MockChainLinkFeed stableUsdPriceFeed; + + // mock two curve pools Stablecoin/Dollar and Governance/WETH + MockCurveStableSwapNG curveDollarPlainPool; + MockCurveTwocryptoOptimized curveGovernanceEthPool; + + address user = address(1); function setUp() public override { super.setUp(); @@ -18,7 +37,22 @@ contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { vm.startPrank(admin); collateralToken = new MockERC20("COLLATERAL", "CLT", 18); + wethToken = new MockERC20("WETH", "WETH", 18); + stableToken = new MockERC20("STABLE", "STABLE", 18); + collateralTokenPriceFeed = new MockChainLinkFeed(); + ethUsdPriceFeed = new MockChainLinkFeed(); + stableUsdPriceFeed = new MockChainLinkFeed(); + + curveDollarPlainPool = new MockCurveStableSwapNG( + address(stableToken), + address(dollarToken) + ); + + curveGovernanceEthPool = new MockCurveTwocryptoOptimized( + address(governanceToken), + address(wethToken) + ); // add collateral token to the pool uint256 poolCeiling = 50_000e18; // max 50_000 of collateral tokens is allowed @@ -37,6 +71,27 @@ contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { 1 // answered in round ); + // set ETH/USD price initial feed mock params + ethUsdPriceFeed.updateMockParams( + 1, // round id + 2000_00000000, // answer, 2000_00000000 = $2000 (8 decimals) + block.timestamp, // started at + block.timestamp, // updated at + 1 // answered in round + ); + + // set stable/USD price feed initial mock params + stableUsdPriceFeed.updateMockParams( + 1, // round id + 100_000_000, // answer, 100_000_000 = $1.00 (8 decimals) + block.timestamp, // started at + block.timestamp, // updated at + 1 // answered in round + ); + + // set ETH/Governance initial price to 20k in Curve pool mock (20k GOV == 1 ETH) + curveGovernanceEthPool.updateMockParams(20_000e18); + // set price feed for collateral token ubiquityPoolFacet.setCollateralChainLinkPriceFeed( address(collateralToken), // collateral token address @@ -44,48 +99,110 @@ contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { 1 days // price feed staleness threshold in seconds ); + // set price feed for ETH/USD pair + ubiquityPoolFacet.setEthUsdChainLinkPriceFeed( + address(ethUsdPriceFeed), // price feed address + 1 days // price feed staleness threshold in seconds + ); + + // set price feed for stable/USD pair + ubiquityPoolFacet.setStableUsdChainLinkPriceFeed( + address(stableUsdPriceFeed), // price feed address + 1 days // price feed staleness threshold in seconds + ); + + // enable collateral at index 0 ubiquityPoolFacet.toggleCollateral(0); + // set mint and redeem initial fees + ubiquityPoolFacet.setFees( + 0, // collateral index + 10000, // 1% mint fee + 20000 // 2% redeem fee + ); + // set redemption delay to 2 blocks + ubiquityPoolFacet.setRedemptionDelayBlocks(2); + // set mint price threshold to $1.01 and redeem price to $0.99 + ubiquityPoolFacet.setPriceThresholds(1010000, 990000); + // set collateral ratio to 100% + ubiquityPoolFacet.setCollateralRatio(1_000_000); + // set Governance-ETH pool + ubiquityPoolFacet.setGovernanceEthPoolAddress( + address(curveGovernanceEthPool) + ); + + // set Curve plain pool in manager facet + managerFacet.setStableSwapPlainPoolAddress( + address(curveDollarPlainPool) + ); + // stop being admin vm.stopPrank(); + + // mint 2000 Governance tokens to the user + deal(address(governanceToken), user, 2000e18); + // mint 2000 collateral tokens to the user + collateralToken.mint(address(user), 2000e18); + // user approves the pool to transfer collateral + vm.prank(user); + collateralToken.approve(address(ubiquityPoolFacet), 100e18); + + handler = new PoolFacetHandler( + collateralTokenPriceFeed, + ubiquityPoolFacet + ); + targetContract(address(handler)); } - function invariant_CollateralTokenIsEnabledAndCorrectlyAdded() public { - // Check if the collateral token is correctly added and enabled - LibUbiquityPool.CollateralInformation - memory collateralInfo = ubiquityPoolFacet.collateralInformation( - address(collateralToken) + function invariant_PoolCollateralBalanceIsConsistent() public { + uint256 expectedBalance = 0; + + for ( + uint256 i = 0; + i < ubiquityPoolFacet.allCollaterals().length; + i++ + ) { + address collateralAddress = ubiquityPoolFacet.allCollaterals()[i]; + uint256 collateralBalance = MockERC20(collateralAddress).balanceOf( + address(ubiquityPoolFacet) ); - assertTrue( - collateralInfo.isEnabled, - "Collateral token should be enabled" - ); - assertEq( - collateralInfo.collateralAddress, - address(collateralToken), - "Collateral token address mismatch" - ); - assertEq( - collateralInfo.poolCeiling, - 50_000e18, - "Collateral pool ceiling mismatch" - ); + + expectedBalance += collateralBalance; + } + + uint256 actualBalance = ubiquityPoolFacet.collateralUsdBalance(); + + assertEq(expectedBalance, actualBalance, "Collateral balance mismatch"); } - function invariant_CollateralPriceFeedIsSetCorrectly() public { - // Check if the price feed for the collateral token is set correctly + function invariant_CannotMintMoreDollarsThanCollateral() public { + uint256 fuzzedDollarPriceUsd = uint256( + bound( + uint256(keccak256(abi.encodePacked(block.timestamp))), + 90_000_000, + 110_000_000 + ) + ); + LibUbiquityPool.CollateralInformation memory collateralInfo = ubiquityPoolFacet.collateralInformation( address(collateralToken) ); - assertEq( - collateralInfo.collateralPriceFeedAddress, - address(collateralTokenPriceFeed), - "Collateral price feed address mismatch" - ); - assertEq( - collateralInfo.collateralPriceFeedStalenessThreshold, - 1 days, - "Collateral price feed staleness threshold mismatch" + + uint256 collateralBalance = ubiquityPoolFacet.freeCollateralBalance(0); + uint256 collateralPrice = collateralInfo.price; + + uint256 totalCollateralValue = collateralBalance * collateralPrice; + + uint256 totalDollarSupply = IERC20Ubiquity( + managerFacet.dollarTokenAddress() + ).totalSupply(); + + // uint256 dollarPrice = ubiquityPoolFacet.getDollarPriceUsd(); + uint256 totalDollarValue = totalDollarSupply * fuzzedDollarPriceUsd; + + assertTrue( + totalDollarValue <= totalCollateralValue, + "Minted dollars exceed collateral value" ); } } From 66899068ea4604354f9f0becbd7e10855d974cbc Mon Sep 17 00:00:00 2001 From: green Date: Tue, 27 Aug 2024 23:25:07 +0200 Subject: [PATCH 03/28] test(ubiquity-pool-facet): add collateral, ceiling, redeem, and dollar price manipulation tests --- .../diamond/facets/PoolFacetHandler.sol | 113 ++++++++++++++---- .../facets/UbiquityPoolFacet.invariant.t.sol | 5 +- 2 files changed, 92 insertions(+), 26 deletions(-) diff --git a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol index b746d31e0..a9776214e 100644 --- a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol +++ b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol @@ -2,53 +2,116 @@ pragma solidity 0.8.19; import "forge-std/Test.sol"; +import "forge-std/console.sol"; import {UbiquityPoolFacet} from "../../../../src/dollar/facets/UbiquityPoolFacet.sol"; import {MockChainLinkFeed} from "../../../../src/dollar/mocks/MockChainLinkFeed.sol"; +import {MockCurveStableSwapNG} from "../../../../src/dollar/mocks/MockCurveStableSwapNG.sol"; contract PoolFacetHandler is Test { MockChainLinkFeed collateralTokenPriceFeed; UbiquityPoolFacet ubiquityPoolFacet; + address admin; + address user; + MockCurveStableSwapNG curveDollarPlainPool; + + event MintSuccess(uint256 dollarAmount); + event MintFailed(bytes reason); constructor( MockChainLinkFeed _collateralTokenPriceFeed, - UbiquityPoolFacet _ubiquityPoolFacet + UbiquityPoolFacet _ubiquityPoolFacet, + address _admin, + address _user, + MockCurveStableSwapNG _curveDollarPlainPool ) { collateralTokenPriceFeed = _collateralTokenPriceFeed; ubiquityPoolFacet = _ubiquityPoolFacet; + admin = _admin; + user = _user; + curveDollarPlainPool = _curveDollarPlainPool; } - function setCollateralRatio(uint256 newRatio) public { - ubiquityPoolFacet.setCollateralRatio(newRatio); + // Dollar price manipulations + //======================== + function setDollarPriceAboveThreshold() public { + vm.prank(admin); + curveDollarPlainPool.updateMockParams(1.02e18); } - function updateCollateralPrice(uint256 newPrice) public { - uint256 timestamp = block.timestamp; + function setDollarPriceBelowThreshold() public { + vm.prank(admin); + curveDollarPlainPool.updateMockParams(0.98e18); + } - collateralTokenPriceFeed.updateMockParams( - 1, - int256(newPrice), - timestamp, - timestamp, - 1 - ); + // Redeem manipulations + //======================== + function setMintAndRedeemFees(uint256 mintFee, uint256 redeemFee) public { + vm.prank(admin); + ubiquityPoolFacet.setFees(0, mintFee, redeemFee); + } - ubiquityPoolFacet.updateChainLinkCollateralPrice(0); + function setRedemptionDelay(uint256 delay) public { + vm.prank(admin); + ubiquityPoolFacet.setRedemptionDelayBlocks(delay); } - function mintUbiquityDollars( - uint256 dollarAmount, - uint256 dollarOutMin, - uint256 maxCollateralIn, - uint256 maxGovernanceIn, - bool isOneToOne + function collectRedemption() public { + ubiquityPoolFacet.collectRedemption(0); + } + + function redeemDollar( + uint256 _dollarAmount, + uint256 _governanceOutMin, + uint256 _collateralOutMin ) public { - ubiquityPoolFacet.mintDollar( + vm.prank(user); + ubiquityPoolFacet.redeemDollar( 0, - dollarAmount, - dollarOutMin, - maxCollateralIn, - maxGovernanceIn, - isOneToOne + _dollarAmount, + _governanceOutMin, + _collateralOutMin ); } + + // Ceiling manipulations + //======================== + function setPoolCeiling(uint256 newCeiling) public { + vm.prank(admin); + ubiquityPoolFacet.setPoolCeiling(0, newCeiling); + } + + // Collateral manipulations + //======================== + function updateCollateralRatio(uint256 newRatio) public { + vm.prank(admin); + ubiquityPoolFacet.setCollateralRatio(newRatio); + } + + function mintUbiquityDollars( + uint256 _dollarAmount, + uint256 _dollarOutMin, + uint256 _maxCollateralIn, + uint256 _maxGovernanceIn, + bool _isOneToOne + ) public { + vm.prank(user); + + uint256 dollarPrice = ubiquityPoolFacet.getDollarPriceUsd(); + console.log("::::::: DOLLAR PRICE:", dollarPrice); + + try + ubiquityPoolFacet.mintDollar( + 0, + _dollarAmount, + _dollarOutMin, + _maxCollateralIn, + _maxGovernanceIn, + _isOneToOne + ) + { + emit MintSuccess(_dollarAmount); + } catch (bytes memory reason) { + emit MintFailed(reason); + } + } } diff --git a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol index f9471919f..6ebc324f9 100644 --- a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol +++ b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol @@ -148,7 +148,10 @@ contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { handler = new PoolFacetHandler( collateralTokenPriceFeed, - ubiquityPoolFacet + ubiquityPoolFacet, + admin, + user, + curveDollarPlainPool ); targetContract(address(handler)); } From 142f779e91e6fe5c5cebf579a9d5b44a10dbb4ad Mon Sep 17 00:00:00 2001 From: green Date: Thu, 29 Aug 2024 21:38:06 +0200 Subject: [PATCH 04/28] test(UbiquityPoolFacetInvariantTest): add collateral price manipulation and update invariant --- .../diamond/facets/PoolFacetHandler.sol | 55 ++++++++++---- .../facets/UbiquityPoolFacet.invariant.t.sol | 71 ++++++++----------- 2 files changed, 70 insertions(+), 56 deletions(-) diff --git a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol index a9776214e..bf25d2a2a 100644 --- a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol +++ b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol @@ -17,6 +17,9 @@ contract PoolFacetHandler is Test { event MintSuccess(uint256 dollarAmount); event MintFailed(bytes reason); + event redeemSuccess(uint256 dollarAmount); + event redeemFailed(bytes reason); + constructor( MockChainLinkFeed _collateralTokenPriceFeed, UbiquityPoolFacet _ubiquityPoolFacet, @@ -64,13 +67,23 @@ contract PoolFacetHandler is Test { uint256 _governanceOutMin, uint256 _collateralOutMin ) public { + vm.assume(_dollarAmount > 0 && _dollarAmount < type(uint256).max / 2); + vm.assume(_governanceOutMin >= 0 && _governanceOutMin <= _dollarAmount); + vm.assume(_collateralOutMin >= 0 && _collateralOutMin <= _dollarAmount); + vm.prank(user); - ubiquityPoolFacet.redeemDollar( - 0, - _dollarAmount, - _governanceOutMin, - _collateralOutMin - ); + try + ubiquityPoolFacet.redeemDollar( + 0, + _dollarAmount, + _governanceOutMin, + _collateralOutMin + ) + { + emit redeemSuccess(_dollarAmount); + } catch (bytes memory reason) { + emit redeemFailed(reason); + } } // Ceiling manipulations @@ -80,11 +93,20 @@ contract PoolFacetHandler is Test { ubiquityPoolFacet.setPoolCeiling(0, newCeiling); } - // Collateral manipulations + // Collateral price manipulations //======================== - function updateCollateralRatio(uint256 newRatio) public { - vm.prank(admin); - ubiquityPoolFacet.setCollateralRatio(newRatio); + function updateCollateralPrice(int256 _newPrice) public { + vm.assume(_newPrice >= 50_000_000 && _newPrice <= 200_000_000); + + collateralTokenPriceFeed.updateMockParams( + 1, // round id + _newPrice, // new price (8 decimals) + block.timestamp, // started at + block.timestamp, // updated at + 1 // answered in round + ); + + ubiquityPoolFacet.updateChainLinkCollateralPrice(0); } function mintUbiquityDollars( @@ -94,11 +116,16 @@ contract PoolFacetHandler is Test { uint256 _maxGovernanceIn, bool _isOneToOne ) public { - vm.prank(user); - - uint256 dollarPrice = ubiquityPoolFacet.getDollarPriceUsd(); - console.log("::::::: DOLLAR PRICE:", dollarPrice); + vm.assume(_dollarAmount > 0 && _dollarAmount < type(uint256).max / 2); + vm.assume(_dollarOutMin <= _dollarAmount); + vm.assume( + _maxCollateralIn > 0 && _maxCollateralIn < type(uint256).max / 2 + ); + vm.assume( + _maxGovernanceIn >= 0 && _maxGovernanceIn < type(uint256).max / 2 + ); + vm.prank(user); try ubiquityPoolFacet.mintDollar( 0, diff --git a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol index 6ebc324f9..c2c6e72fa 100644 --- a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol +++ b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol @@ -156,56 +156,43 @@ contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { targetContract(address(handler)); } - function invariant_PoolCollateralBalanceIsConsistent() public { - uint256 expectedBalance = 0; - - for ( - uint256 i = 0; - i < ubiquityPoolFacet.allCollaterals().length; - i++ - ) { - address collateralAddress = ubiquityPoolFacet.allCollaterals()[i]; - uint256 collateralBalance = MockERC20(collateralAddress).balanceOf( - address(ubiquityPoolFacet) - ); - - expectedBalance += collateralBalance; - } - - uint256 actualBalance = ubiquityPoolFacet.collateralUsdBalance(); - - assertEq(expectedBalance, actualBalance, "Collateral balance mismatch"); - } - function invariant_CannotMintMoreDollarsThanCollateral() public { - uint256 fuzzedDollarPriceUsd = uint256( - bound( - uint256(keccak256(abi.encodePacked(block.timestamp))), - 90_000_000, - 110_000_000 - ) - ); - - LibUbiquityPool.CollateralInformation - memory collateralInfo = ubiquityPoolFacet.collateralInformation( - address(collateralToken) - ); - - uint256 collateralBalance = ubiquityPoolFacet.freeCollateralBalance(0); - uint256 collateralPrice = collateralInfo.price; - - uint256 totalCollateralValue = collateralBalance * collateralPrice; - uint256 totalDollarSupply = IERC20Ubiquity( managerFacet.dollarTokenAddress() ).totalSupply(); - // uint256 dollarPrice = ubiquityPoolFacet.getDollarPriceUsd(); - uint256 totalDollarValue = totalDollarSupply * fuzzedDollarPriceUsd; + uint256 collateralUsdBalance = ubiquityPoolFacet.collateralUsdBalance(); + console.log( + ":::::::| UbiquityPoolFacetInvariantTest | collateralUsdBalance:", + collateralUsdBalance + ); + + vm.assume(collateralUsdBalance > 0 && totalDollarSupply > 0); + + uint256 dollarPrice = ubiquityPoolFacet.getDollarPriceUsd(); + uint256 totalDollarSupplyInUsd = (totalDollarSupply * dollarPrice) / + 1e6; + + console.log( + ":::::::| UbiquityPoolFacetInvariantTest | dollarPrice:", + dollarPrice + ); + console.log( + ":::::::| UbiquityPoolFacetInvariantTest | totalDollarSupply:", + totalDollarSupply + ); + console.log( + ":::::::| UbiquityPoolFacetInvariantTest | totalDollarSupplyInUsd:", + totalDollarSupplyInUsd + ); assertTrue( - totalDollarValue <= totalCollateralValue, + totalDollarSupplyInUsd <= collateralUsdBalance, "Minted dollars exceed collateral value" ); + + console.log( + ":::::::| UbiquityPoolFacetInvariantTest11 | Final Statement:" + ); } } From 5407774f410565e1d6a0aec9aee74ffe55911b87 Mon Sep 17 00:00:00 2001 From: green Date: Thu, 29 Aug 2024 21:41:12 +0200 Subject: [PATCH 05/28] test(UbiquityPoolFacetInvariantTest): delete irrelevant logs --- .../diamond/facets/UbiquityPoolFacet.invariant.t.sol | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol index c2c6e72fa..f1231e9f4 100644 --- a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol +++ b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol @@ -190,9 +190,5 @@ contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { totalDollarSupplyInUsd <= collateralUsdBalance, "Minted dollars exceed collateral value" ); - - console.log( - ":::::::| UbiquityPoolFacetInvariantTest11 | Final Statement:" - ); } } From dd94c7e7748e5b26f338d7a6fddc83961f72a92f Mon Sep 17 00:00:00 2001 From: green Date: Sat, 31 Aug 2024 17:08:29 +0200 Subject: [PATCH 06/28] test(lib-ubiquity-pool): add conservative estimates for price and fees --- .../diamond/facets/PoolFacetHandler.sol | 16 +++++++++----- .../facets/UbiquityPoolFacet.invariant.t.sol | 22 +++++-------------- 2 files changed, 15 insertions(+), 23 deletions(-) diff --git a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol index bf25d2a2a..a72019d09 100644 --- a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol +++ b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol @@ -38,7 +38,8 @@ contract PoolFacetHandler is Test { //======================== function setDollarPriceAboveThreshold() public { vm.prank(admin); - curveDollarPlainPool.updateMockParams(1.02e18); + curveDollarPlainPool.updateMockParams(1.01e18); + // curveDollarPlainPool.updateMockParams(1.02e18); } function setDollarPriceBelowThreshold() public { @@ -48,14 +49,17 @@ contract PoolFacetHandler is Test { // Redeem manipulations //======================== - function setMintAndRedeemFees(uint256 mintFee, uint256 redeemFee) public { + function setRedemptionDelay(uint256 delay) public { vm.prank(admin); - ubiquityPoolFacet.setFees(0, mintFee, redeemFee); + ubiquityPoolFacet.setRedemptionDelayBlocks(delay); } - function setRedemptionDelay(uint256 delay) public { + function setMintAndRedeemFees(uint256 mintFee, uint256 redeemFee) public { + vm.assume(mintFee >= 100000 && mintFee <= 200000); + vm.assume(redeemFee >= 100000 && redeemFee <= 200000); + vm.prank(admin); - ubiquityPoolFacet.setRedemptionDelayBlocks(delay); + ubiquityPoolFacet.setFees(0, mintFee, redeemFee); } function collectRedemption() public { @@ -96,7 +100,7 @@ contract PoolFacetHandler is Test { // Collateral price manipulations //======================== function updateCollateralPrice(int256 _newPrice) public { - vm.assume(_newPrice >= 50_000_000 && _newPrice <= 200_000_000); + vm.assume(_newPrice >= 100_000_000 && _newPrice <= 200_000_000); collateralTokenPriceFeed.updateMockParams( 1, // round id diff --git a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol index f1231e9f4..150ed7d34 100644 --- a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol +++ b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol @@ -92,6 +92,8 @@ contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { // set ETH/Governance initial price to 20k in Curve pool mock (20k GOV == 1 ETH) curveGovernanceEthPool.updateMockParams(20_000e18); + curveDollarPlainPool.updateMockParams(1.01e18); + // set price feed for collateral token ubiquityPoolFacet.setCollateralChainLinkPriceFeed( address(collateralToken), // collateral token address @@ -153,6 +155,9 @@ contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { user, curveDollarPlainPool ); + + handler.mintUbiquityDollars(1e18, 0.9e18, 1e18, 0, true); + targetContract(address(handler)); } @@ -162,10 +167,6 @@ contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { ).totalSupply(); uint256 collateralUsdBalance = ubiquityPoolFacet.collateralUsdBalance(); - console.log( - ":::::::| UbiquityPoolFacetInvariantTest | collateralUsdBalance:", - collateralUsdBalance - ); vm.assume(collateralUsdBalance > 0 && totalDollarSupply > 0); @@ -173,19 +174,6 @@ contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { uint256 totalDollarSupplyInUsd = (totalDollarSupply * dollarPrice) / 1e6; - console.log( - ":::::::| UbiquityPoolFacetInvariantTest | dollarPrice:", - dollarPrice - ); - console.log( - ":::::::| UbiquityPoolFacetInvariantTest | totalDollarSupply:", - totalDollarSupply - ); - console.log( - ":::::::| UbiquityPoolFacetInvariantTest | totalDollarSupplyInUsd:", - totalDollarSupplyInUsd - ); - assertTrue( totalDollarSupplyInUsd <= collateralUsdBalance, "Minted dollars exceed collateral value" From 989d9c66e2a849a143de8ec3d22ce5b8ab6c697b Mon Sep 17 00:00:00 2001 From: green Date: Sat, 31 Aug 2024 19:10:32 +0200 Subject: [PATCH 07/28] test(pool-facet-handler): add fuzzed parameters to dollar price manipulation tests --- .../diamond/facets/PoolFacetHandler.sol | 31 +++++++++++++++---- .../facets/UbiquityPoolFacet.invariant.t.sol | 24 ++++++++++++++ 2 files changed, 49 insertions(+), 6 deletions(-) diff --git a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol index a72019d09..6f1f187ca 100644 --- a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol +++ b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol @@ -6,8 +6,11 @@ import "forge-std/console.sol"; import {UbiquityPoolFacet} from "../../../../src/dollar/facets/UbiquityPoolFacet.sol"; import {MockChainLinkFeed} from "../../../../src/dollar/mocks/MockChainLinkFeed.sol"; import {MockCurveStableSwapNG} from "../../../../src/dollar/mocks/MockCurveStableSwapNG.sol"; +import {SafeMath} from "@openzeppelin/contracts/utils/math/SafeMath.sol"; contract PoolFacetHandler is Test { + using SafeMath for uint256; + MockChainLinkFeed collateralTokenPriceFeed; UbiquityPoolFacet ubiquityPoolFacet; address admin; @@ -36,15 +39,28 @@ contract PoolFacetHandler is Test { // Dollar price manipulations //======================== - function setDollarPriceAboveThreshold() public { + function setDollarPriceAboveThreshold(uint256 newDollarPrice) public { + vm.assume(newDollarPrice > 1e18 && newDollarPrice < 2e18); + vm.prank(admin); - curveDollarPlainPool.updateMockParams(1.01e18); - // curveDollarPlainPool.updateMockParams(1.02e18); + curveDollarPlainPool.updateMockParams(newDollarPrice); + + uint256 reductionFactor = newDollarPrice.sub(1e18).div(1e16); + uint256 newCollateralRatio = uint256(1e6).sub(reductionFactor); + + ubiquityPoolFacet.setCollateralRatio(newCollateralRatio); } - function setDollarPriceBelowThreshold() public { + function setDollarPriceBelowThreshold(uint256 newDollarPrice) public { + vm.assume(newDollarPrice >= 0.5e18 && newDollarPrice < 1e18); + vm.prank(admin); - curveDollarPlainPool.updateMockParams(0.98e18); + curveDollarPlainPool.updateMockParams(newDollarPrice); + + uint256 increaseFactor = uint256(1e18).sub(newDollarPrice).div(1e16); + uint256 newCollateralRatio = uint256(1e6).add(increaseFactor); + + ubiquityPoolFacet.setCollateralRatio(newCollateralRatio); } // Redeem manipulations @@ -100,7 +116,7 @@ contract PoolFacetHandler is Test { // Collateral price manipulations //======================== function updateCollateralPrice(int256 _newPrice) public { - vm.assume(_newPrice >= 100_000_000 && _newPrice <= 200_000_000); + vm.assume(_newPrice >= 50_000_000 && _newPrice <= 200_000_000); collateralTokenPriceFeed.updateMockParams( 1, // round id @@ -111,6 +127,9 @@ contract PoolFacetHandler is Test { ); ubiquityPoolFacet.updateChainLinkCollateralPrice(0); + + uint256 newCollateralRatio = uint256(1e6 * 1e8).div(uint256(_newPrice)); + ubiquityPoolFacet.setCollateralRatio(newCollateralRatio); } function mintUbiquityDollars( diff --git a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol index 150ed7d34..d6a1148db 100644 --- a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol +++ b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol @@ -167,6 +167,10 @@ contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { ).totalSupply(); uint256 collateralUsdBalance = ubiquityPoolFacet.collateralUsdBalance(); + console.log( + ":::::::| UbiquityPoolFacetInvariantTest | collateralUsdBalance:", + collateralUsdBalance + ); vm.assume(collateralUsdBalance > 0 && totalDollarSupply > 0); @@ -174,6 +178,26 @@ contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { uint256 totalDollarSupplyInUsd = (totalDollarSupply * dollarPrice) / 1e6; + uint256 ratio = ubiquityPoolFacet.collateralRatio(); + + console.log( + ":::::::| UbiquityPoolFacetInvariantTest | collateralRatio:", + ratio + ); + + console.log( + ":::::::| UbiquityPoolFacetInvariantTest | dollarPrice:", + dollarPrice + ); + console.log( + ":::::::| UbiquityPoolFacetInvariantTest | totalDollarSupply:", + totalDollarSupply + ); + console.log( + ":::::::| UbiquityPoolFacetInvariantTest11 | totalDollarSupplyInUsd:", + totalDollarSupplyInUsd + ); + assertTrue( totalDollarSupplyInUsd <= collateralUsdBalance, "Minted dollars exceed collateral value" From 1b7f1dadefb05bb5074d525efe77504e63248170 Mon Sep 17 00:00:00 2001 From: green Date: Sat, 31 Aug 2024 20:12:08 +0200 Subject: [PATCH 08/28] test(pool-facet-handler): add usd price manipulations --- .../diamond/facets/PoolFacetHandler.sol | 24 +++++++++++++++++-- .../facets/UbiquityPoolFacet.invariant.t.sol | 16 +------------ 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol index 6f1f187ca..41f4e3bad 100644 --- a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol +++ b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol @@ -12,6 +12,7 @@ contract PoolFacetHandler is Test { using SafeMath for uint256; MockChainLinkFeed collateralTokenPriceFeed; + MockChainLinkFeed stableUsdPriceFeed; UbiquityPoolFacet ubiquityPoolFacet; address admin; address user; @@ -25,12 +26,14 @@ contract PoolFacetHandler is Test { constructor( MockChainLinkFeed _collateralTokenPriceFeed, + MockChainLinkFeed _stableUsdPriceFeed, UbiquityPoolFacet _ubiquityPoolFacet, address _admin, address _user, MockCurveStableSwapNG _curveDollarPlainPool ) { collateralTokenPriceFeed = _collateralTokenPriceFeed; + stableUsdPriceFeed = _stableUsdPriceFeed; ubiquityPoolFacet = _ubiquityPoolFacet; admin = _admin; user = _user; @@ -115,12 +118,12 @@ contract PoolFacetHandler is Test { // Collateral price manipulations //======================== - function updateCollateralPrice(int256 _newPrice) public { + function setCollateralPrice(int256 _newPrice) public { vm.assume(_newPrice >= 50_000_000 && _newPrice <= 200_000_000); collateralTokenPriceFeed.updateMockParams( 1, // round id - _newPrice, // new price (8 decimals) + _newPrice, block.timestamp, // started at block.timestamp, // updated at 1 // answered in round @@ -132,6 +135,23 @@ contract PoolFacetHandler is Test { ubiquityPoolFacet.setCollateralRatio(newCollateralRatio); } + // USD stablecoin price manipulations + //======================== + function setStableUsdPrice(uint256 _newPrice) public { + vm.assume(_newPrice >= 0.5e8 && _newPrice <= 1.5e8); // Assume a range for testing + + stableUsdPriceFeed.updateMockParams( + 1, // round id + int256(_newPrice), + block.timestamp, // started at + block.timestamp, // updated at + 1 // answered in round + ); + + uint256 newCollateralRatio = uint256(1e6 * 1e8).div(_newPrice); + ubiquityPoolFacet.setCollateralRatio(newCollateralRatio); + } + function mintUbiquityDollars( uint256 _dollarAmount, uint256 _dollarOutMin, diff --git a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol index d6a1148db..113ec7949 100644 --- a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol +++ b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol @@ -150,6 +150,7 @@ contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { handler = new PoolFacetHandler( collateralTokenPriceFeed, + stableUsdPriceFeed, ubiquityPoolFacet, admin, user, @@ -178,21 +179,6 @@ contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { uint256 totalDollarSupplyInUsd = (totalDollarSupply * dollarPrice) / 1e6; - uint256 ratio = ubiquityPoolFacet.collateralRatio(); - - console.log( - ":::::::| UbiquityPoolFacetInvariantTest | collateralRatio:", - ratio - ); - - console.log( - ":::::::| UbiquityPoolFacetInvariantTest | dollarPrice:", - dollarPrice - ); - console.log( - ":::::::| UbiquityPoolFacetInvariantTest | totalDollarSupply:", - totalDollarSupply - ); console.log( ":::::::| UbiquityPoolFacetInvariantTest11 | totalDollarSupplyInUsd:", totalDollarSupplyInUsd From fd8acb602bb8819403688036788f2278b889a84b Mon Sep 17 00:00:00 2001 From: green Date: Mon, 2 Sep 2024 16:05:20 +0200 Subject: [PATCH 09/28] test(pool-facet-handler): eth/usd price manipulations --- .../diamond/facets/PoolFacetHandler.sol | 17 +++++++++++++++++ .../facets/UbiquityPoolFacet.invariant.t.sol | 1 + 2 files changed, 18 insertions(+) diff --git a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol index 41f4e3bad..2770f18e2 100644 --- a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol +++ b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol @@ -13,6 +13,7 @@ contract PoolFacetHandler is Test { MockChainLinkFeed collateralTokenPriceFeed; MockChainLinkFeed stableUsdPriceFeed; + MockChainLinkFeed ethUsdPriceFeed; UbiquityPoolFacet ubiquityPoolFacet; address admin; address user; @@ -27,6 +28,7 @@ contract PoolFacetHandler is Test { constructor( MockChainLinkFeed _collateralTokenPriceFeed, MockChainLinkFeed _stableUsdPriceFeed, + MockChainLinkFeed _ethUsdPriceFeed, UbiquityPoolFacet _ubiquityPoolFacet, address _admin, address _user, @@ -34,6 +36,7 @@ contract PoolFacetHandler is Test { ) { collateralTokenPriceFeed = _collateralTokenPriceFeed; stableUsdPriceFeed = _stableUsdPriceFeed; + ethUsdPriceFeed = _ethUsdPriceFeed; ubiquityPoolFacet = _ubiquityPoolFacet; admin = _admin; user = _user; @@ -152,6 +155,20 @@ contract PoolFacetHandler is Test { ubiquityPoolFacet.setCollateralRatio(newCollateralRatio); } + // ETH/USD price manipulations + //======================== + function setEthUsdPrice(uint256 _newPrice) public { + vm.assume(_newPrice >= 1000e8 && _newPrice <= 5000e8); + + ethUsdPriceFeed.updateMockParams( + 1, // round id + int256(_newPrice), // new price + block.timestamp, // started at + block.timestamp, // updated at + 1 // answered in round + ); + } + function mintUbiquityDollars( uint256 _dollarAmount, uint256 _dollarOutMin, diff --git a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol index 113ec7949..51055ea4b 100644 --- a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol +++ b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol @@ -151,6 +151,7 @@ contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { handler = new PoolFacetHandler( collateralTokenPriceFeed, stableUsdPriceFeed, + ethUsdPriceFeed, ubiquityPoolFacet, admin, user, From 26abd1442a026366a0c3b3b7ed74c51e2ff280ee Mon Sep 17 00:00:00 2001 From: green Date: Mon, 2 Sep 2024 21:23:40 +0200 Subject: [PATCH 10/28] test(pool-facet-handler): add docs --- .../diamond/facets/PoolFacetHandler.sol | 175 ++++++++++++------ .../facets/UbiquityPoolFacet.invariant.t.sol | 15 +- 2 files changed, 122 insertions(+), 68 deletions(-) diff --git a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol index 2770f18e2..9c7e94219 100644 --- a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol +++ b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol @@ -11,20 +11,31 @@ import {SafeMath} from "@openzeppelin/contracts/utils/math/SafeMath.sol"; contract PoolFacetHandler is Test { using SafeMath for uint256; + // mock three ChainLink price feeds, one for each token MockChainLinkFeed collateralTokenPriceFeed; MockChainLinkFeed stableUsdPriceFeed; MockChainLinkFeed ethUsdPriceFeed; + UbiquityPoolFacet ubiquityPoolFacet; + + // mock two users address admin; address user; - MockCurveStableSwapNG curveDollarPlainPool; - event MintSuccess(uint256 dollarAmount); - event MintFailed(bytes reason); - - event redeemSuccess(uint256 dollarAmount); - event redeemFailed(bytes reason); + // mock curve pool Stablecoin/Dollar + MockCurveStableSwapNG curveDollarPlainPool; + /** + * @notice Constructs the PoolFacetHandler contract by initializing the necessary mocked contracts and addresses. + * @dev This constructor sets up the initial state with provided mock price feeds, pool facet, and user addresses. + * @param _collateralTokenPriceFeed The mock price feed for collateral tokens. + * @param _stableUsdPriceFeed The mock price feed for USD stablecoin. + * @param _ethUsdPriceFeed The mock price feed for ETH/USD. + * @param _ubiquityPoolFacet The pool facet contract responsible for managing Ubiquity Dollars. + * @param _admin The address with admin privileges, used for administrative actions in the pool. + * @param _user The user address that interacts with the pool for testing purposes. + * @param _curveDollarPlainPool The mocked Curve pool contract used for dollar-based operations. + */ constructor( MockChainLinkFeed _collateralTokenPriceFeed, MockChainLinkFeed _stableUsdPriceFeed, @@ -43,8 +54,12 @@ contract PoolFacetHandler is Test { curveDollarPlainPool = _curveDollarPlainPool; } - // Dollar price manipulations - //======================== + /** + * @notice Manipulates the Ubiquity Dollar price to a value above a set threshold. + * @dev This function assumes the new dollar price is within the specified range (greater than 1e18 and less than 2e18). + * It then updates the mocked Curve pool parameters and adjusts the collateral ratio in the UbiquityPoolFacet. + * @param newDollarPrice The new price for Ubiquity Dollar, expected to be within the range of 1e18 to 2e18. + */ function setDollarPriceAboveThreshold(uint256 newDollarPrice) public { vm.assume(newDollarPrice > 1e18 && newDollarPrice < 2e18); @@ -57,6 +72,12 @@ contract PoolFacetHandler is Test { ubiquityPoolFacet.setCollateralRatio(newCollateralRatio); } + /** + * @notice Manipulates the Ubiquity Dollar price to a value below a set threshold. + * @dev This function assumes the new dollar price is within the specified range (greater than or equal to 0.5e18 and less than 1e18). + * It then updates the mocked Curve pool parameters and adjusts the collateral ratio in the UbiquityPoolFacet accordingly. + * @param newDollarPrice The new price for Ubiquity Dollar, expected to be within the range of 0.5e18 to 1e18. + */ function setDollarPriceBelowThreshold(uint256 newDollarPrice) public { vm.assume(newDollarPrice >= 0.5e18 && newDollarPrice < 1e18); @@ -69,13 +90,25 @@ contract PoolFacetHandler is Test { ubiquityPoolFacet.setCollateralRatio(newCollateralRatio); } - // Redeem manipulations - //======================== + /** + * @notice Manipulates the redemption delay in blocks for UbiquityPoolFacet. + * @dev This function allows the admin to set a delay in blocks before a redemption can be completed. + * It assumes the caller is the admin and pranks the transaction as the admin to set the redemption delay. + * @param delay The number of blocks to set as the redemption delay. + */ function setRedemptionDelay(uint256 delay) public { vm.prank(admin); ubiquityPoolFacet.setRedemptionDelayBlocks(delay); } + /** + * @notice Manipulates the minting and redemption fees for UbiquityPoolFacet. + * @dev This function allows the admin to set the fees for minting and redeeming tokens in the pool. + * It assumes the caller is the admin and pranks the transaction as the admin to set the fees. + * The function also ensures that the provided mint and redeem fees fall within the acceptable range. + * @param mintFee The fee to be set for minting, expressed in basis points (1/100 of a percent). + * @param redeemFee The fee to be set for redeeming, expressed in basis points (1/100 of a percent). + */ function setMintAndRedeemFees(uint256 mintFee, uint256 redeemFee) public { vm.assume(mintFee >= 100000 && mintFee <= 200000); vm.assume(redeemFee >= 100000 && redeemFee <= 200000); @@ -88,39 +121,25 @@ contract PoolFacetHandler is Test { ubiquityPoolFacet.collectRedemption(0); } - function redeemDollar( - uint256 _dollarAmount, - uint256 _governanceOutMin, - uint256 _collateralOutMin - ) public { - vm.assume(_dollarAmount > 0 && _dollarAmount < type(uint256).max / 2); - vm.assume(_governanceOutMin >= 0 && _governanceOutMin <= _dollarAmount); - vm.assume(_collateralOutMin >= 0 && _collateralOutMin <= _dollarAmount); - - vm.prank(user); - try - ubiquityPoolFacet.redeemDollar( - 0, - _dollarAmount, - _governanceOutMin, - _collateralOutMin - ) - { - emit redeemSuccess(_dollarAmount); - } catch (bytes memory reason) { - emit redeemFailed(reason); - } - } - - // Ceiling manipulations - //======================== + /** + * @notice Manipulates the pool ceiling for UbiquityPoolFacet. + * @dev This function allows the admin to set a new ceiling for the pool, which determines the maximum + * amount of collateral that can be utilized in the pool. The function assumes the caller is the admin + * and pranks the transaction as the admin to set the new ceiling. + * @param newCeiling The new ceiling value to be set for the pool, representing the maximum amount + * of collateral in the pool. + */ function setPoolCeiling(uint256 newCeiling) public { vm.prank(admin); ubiquityPoolFacet.setPoolCeiling(0, newCeiling); } - // Collateral price manipulations - //======================== + /** + * @notice Manipulates the collateral price and updates the corresponding collateral ratio. + * @dev This function adjusts the price of the collateral token using a mock ChainLink price feed. + * It assumes the new price is within the allowed range and updates the collateral ratio in the UbiquityPoolFacet. + * @param _newPrice The new price of the collateral, scaled by 1e8 (e.g., a price of $1 is represented as 1e8). + */ function setCollateralPrice(int256 _newPrice) public { vm.assume(_newPrice >= 50_000_000 && _newPrice <= 200_000_000); @@ -138,8 +157,12 @@ contract PoolFacetHandler is Test { ubiquityPoolFacet.setCollateralRatio(newCollateralRatio); } - // USD stablecoin price manipulations - //======================== + /** + * @notice Manipulates the stable USD price and updates the corresponding collateral ratio. + * @dev This function adjusts the price of the stable USD token using a mock ChainLink price feed. + * It assumes the new price is within the specified range and updates the collateral ratio in the UbiquityPoolFacet. + * @param _newPrice The new price of the stable USD token, scaled by 1e8 (e.g., a price of $1 is represented as 1e8). + */ function setStableUsdPrice(uint256 _newPrice) public { vm.assume(_newPrice >= 0.5e8 && _newPrice <= 1.5e8); // Assume a range for testing @@ -155,8 +178,12 @@ contract PoolFacetHandler is Test { ubiquityPoolFacet.setCollateralRatio(newCollateralRatio); } - // ETH/USD price manipulations - //======================== + /** + * @notice Manipulates the ETH/USD price using a mock ChainLink price feed. + * @dev This function assumes the new price is within the specified range and updates the ETH/USD price + * in the corresponding mock price feed. + * @param _newPrice The new ETH/USD price, scaled by 1e8 (e.g., a price of $1,000 is represented as 1000e8). + */ function setEthUsdPrice(uint256 _newPrice) public { vm.assume(_newPrice >= 1000e8 && _newPrice <= 5000e8); @@ -169,6 +196,16 @@ contract PoolFacetHandler is Test { ); } + /** + * @notice Mints Ubiquity Dollar tokens using specified collateral and governance token inputs. + * @dev Assumes that the dollar amount is within a safe range, the minimum dollar output is less than or equal to the input amount, + * and the collateral and governance inputs are valid. The function then pranks the specified user to simulate a mint transaction. + * @param _dollarAmount The amount of Ubiquity Dollars to mint. + * @param _dollarOutMin The minimum amount of Ubiquity Dollars expected to be received from the minting process. + * @param _maxCollateralIn The maximum amount of collateral tokens to use for minting. + * @param _maxGovernanceIn The maximum amount of governance tokens to use for minting. + * @param _isOneToOne A boolean flag indicating whether the minting process should be executed on a one-to-one basis with the collateral. + */ function mintUbiquityDollars( uint256 _dollarAmount, uint256 _dollarOutMin, @@ -176,29 +213,49 @@ contract PoolFacetHandler is Test { uint256 _maxGovernanceIn, bool _isOneToOne ) public { - vm.assume(_dollarAmount > 0 && _dollarAmount < type(uint256).max / 2); + vm.assume( + _dollarAmount > 0 && _dollarAmount < type(uint256).max.div(2) + ); vm.assume(_dollarOutMin <= _dollarAmount); vm.assume( - _maxCollateralIn > 0 && _maxCollateralIn < type(uint256).max / 2 + _maxCollateralIn > 0 && _maxCollateralIn < type(uint256).max.div(2) + ); + vm.assume( + _maxGovernanceIn >= 0 && _maxGovernanceIn < type(uint256).max.div(2) + ); + + vm.prank(user); + + ubiquityPoolFacet.mintDollar( + 0, + _dollarAmount, + _dollarOutMin, + _maxCollateralIn, + _maxGovernanceIn, + _isOneToOne ); + } + + /** + * @notice Redeems Ubiquity Dollar tokens for collateral and governance tokens. + * @dev Assumes the dollar amount is within a safe range, and that the minimum expected governance and collateral outputs are valid. + * The function then pranks the specified user to simulate a redemption transaction. + * @param _dollarAmount The amount of Ubiquity Dollars to redeem. + * @param _governanceOutMin The minimum amount of governance tokens expected to be received from the redemption process. + * @param _collateralOutMin The minimum amount of collateral tokens expected to be received from the redemption process. + */ + function redeemDollar( + uint256 _dollarAmount, + uint256 _governanceOutMin, + uint256 _collateralOutMin + ) public { vm.assume( - _maxGovernanceIn >= 0 && _maxGovernanceIn < type(uint256).max / 2 + _dollarAmount > 0 && _dollarAmount < type(uint256).max.div(2) ); + vm.assume(_governanceOutMin >= 0 && _governanceOutMin <= _dollarAmount); + vm.assume(_collateralOutMin >= 0 && _collateralOutMin <= _dollarAmount); vm.prank(user); - try - ubiquityPoolFacet.mintDollar( - 0, - _dollarAmount, - _dollarOutMin, - _maxCollateralIn, - _maxGovernanceIn, - _isOneToOne - ) - { - emit MintSuccess(_dollarAmount); - } catch (bytes memory reason) { - emit MintFailed(reason); - } + ubiquityPoolFacet.redeemDollar(0, 0.1e18, 0, 0); } } diff --git a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol index 51055ea4b..7d7e15ccc 100644 --- a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol +++ b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol @@ -163,16 +163,18 @@ contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { targetContract(address(handler)); } + /** + * @notice Ensures that the total supply of Ubiquity Dollars does not exceed the collateral value backing them. + * @dev This invariant checker calculates the total supply of Ubiquity Dollars in USD terms and compares it to the USD value of the collateral. + * The invariant asserts that the value of minted dollars does not exceed the value of the collateral. + * If the invariant is violated, it indicates that more Ubiquity Dollars have been minted than the available collateral can support. + */ function invariant_CannotMintMoreDollarsThanCollateral() public { uint256 totalDollarSupply = IERC20Ubiquity( managerFacet.dollarTokenAddress() ).totalSupply(); uint256 collateralUsdBalance = ubiquityPoolFacet.collateralUsdBalance(); - console.log( - ":::::::| UbiquityPoolFacetInvariantTest | collateralUsdBalance:", - collateralUsdBalance - ); vm.assume(collateralUsdBalance > 0 && totalDollarSupply > 0); @@ -180,11 +182,6 @@ contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { uint256 totalDollarSupplyInUsd = (totalDollarSupply * dollarPrice) / 1e6; - console.log( - ":::::::| UbiquityPoolFacetInvariantTest11 | totalDollarSupplyInUsd:", - totalDollarSupplyInUsd - ); - assertTrue( totalDollarSupplyInUsd <= collateralUsdBalance, "Minted dollars exceed collateral value" From dfff4f314386ef0ec4d0fb6091367623823480e0 Mon Sep 17 00:00:00 2001 From: green Date: Mon, 2 Sep 2024 21:25:41 +0200 Subject: [PATCH 11/28] test(pool-facet-handler): deted hard params for redeemDollar --- .../test/invariant/diamond/facets/PoolFacetHandler.sol | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol index 9c7e94219..5745777c6 100644 --- a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol +++ b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol @@ -256,6 +256,11 @@ contract PoolFacetHandler is Test { vm.assume(_collateralOutMin >= 0 && _collateralOutMin <= _dollarAmount); vm.prank(user); - ubiquityPoolFacet.redeemDollar(0, 0.1e18, 0, 0); + ubiquityPoolFacet.redeemDollar( + 0, + _dollarAmount, + _governanceOutMin, + _collateralOutMin + ); } } From b49a8752c2fa1c27ad5d01b7070f0dc5d26d9330 Mon Sep 17 00:00:00 2001 From: green Date: Tue, 3 Sep 2024 19:34:53 +0200 Subject: [PATCH 12/28] test(pool-facet-handler): update assume statements in redeemDollar and mintUbiquityDollars --- .../diamond/facets/PoolFacetHandler.sol | 44 ++++++++++++++----- .../facets/UbiquityPoolFacet.invariant.t.sol | 4 +- 2 files changed, 35 insertions(+), 13 deletions(-) diff --git a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol index 5745777c6..43a92681f 100644 --- a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol +++ b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol @@ -6,6 +6,9 @@ import "forge-std/console.sol"; import {UbiquityPoolFacet} from "../../../../src/dollar/facets/UbiquityPoolFacet.sol"; import {MockChainLinkFeed} from "../../../../src/dollar/mocks/MockChainLinkFeed.sol"; import {MockCurveStableSwapNG} from "../../../../src/dollar/mocks/MockCurveStableSwapNG.sol"; +import {MockERC20} from "../../../../src/dollar/mocks/MockERC20.sol"; +import {IERC20Ubiquity} from "../../../../src/dollar/interfaces/IERC20Ubiquity.sol"; +import {ManagerFacet} from "../../../../src/dollar/facets/ManagerFacet.sol"; import {SafeMath} from "@openzeppelin/contracts/utils/math/SafeMath.sol"; contract PoolFacetHandler is Test { @@ -15,8 +18,13 @@ contract PoolFacetHandler is Test { MockChainLinkFeed collateralTokenPriceFeed; MockChainLinkFeed stableUsdPriceFeed; MockChainLinkFeed ethUsdPriceFeed; + MockERC20 collateralToken; + + ManagerFacet managerFacet; UbiquityPoolFacet ubiquityPoolFacet; + IERC20Ubiquity dollar; + IERC20Ubiquity governanceToken; // mock two users address admin; @@ -35,7 +43,10 @@ contract PoolFacetHandler is Test { * @param _admin The address with admin privileges, used for administrative actions in the pool. * @param _user The user address that interacts with the pool for testing purposes. * @param _curveDollarPlainPool The mocked Curve pool contract used for dollar-based operations. + * @param _managerFacet The manager facet contract, which provides access to various addresses and core components of the Ubiquity system. + * @param _collateralToken The mock ERC20 collateral token used in the pool for testing deposit and redemption functionalities. */ + constructor( MockChainLinkFeed _collateralTokenPriceFeed, MockChainLinkFeed _stableUsdPriceFeed, @@ -43,7 +54,9 @@ contract PoolFacetHandler is Test { UbiquityPoolFacet _ubiquityPoolFacet, address _admin, address _user, - MockCurveStableSwapNG _curveDollarPlainPool + MockCurveStableSwapNG _curveDollarPlainPool, + ManagerFacet _managerFacet, + MockERC20 _collateralToken ) { collateralTokenPriceFeed = _collateralTokenPriceFeed; stableUsdPriceFeed = _stableUsdPriceFeed; @@ -52,6 +65,11 @@ contract PoolFacetHandler is Test { admin = _admin; user = _user; curveDollarPlainPool = _curveDollarPlainPool; + managerFacet = _managerFacet; + collateralToken = _collateralToken; + + dollar = IERC20Ubiquity(managerFacet.dollarTokenAddress()); + governanceToken = IERC20Ubiquity(managerFacet.governanceTokenAddress()); } /** @@ -213,19 +231,17 @@ contract PoolFacetHandler is Test { uint256 _maxGovernanceIn, bool _isOneToOne ) public { - vm.assume( - _dollarAmount > 0 && _dollarAmount < type(uint256).max.div(2) - ); + uint256 maxUintHalf = type(uint256).max.div(2); + uint256 collateralTotalSupply = collateralToken.totalSupply(); + + vm.assume(_dollarAmount > 0 && _dollarAmount < maxUintHalf); vm.assume(_dollarOutMin <= _dollarAmount); vm.assume( - _maxCollateralIn > 0 && _maxCollateralIn < type(uint256).max.div(2) - ); - vm.assume( - _maxGovernanceIn >= 0 && _maxGovernanceIn < type(uint256).max.div(2) + _maxCollateralIn > 0 && _maxCollateralIn < collateralTotalSupply ); + vm.assume(_maxGovernanceIn >= 0 && _maxGovernanceIn <= maxUintHalf); vm.prank(user); - ubiquityPoolFacet.mintDollar( 0, _dollarAmount, @@ -249,11 +265,15 @@ contract PoolFacetHandler is Test { uint256 _governanceOutMin, uint256 _collateralOutMin ) public { + uint256 maxUintHalf = type(uint256).max.div(2); + uint256 dollarTotalSupply = dollar.totalSupply(); + uint256 collateralTotalSupply = collateralToken.totalSupply(); + + vm.assume(_dollarAmount > 0 && _dollarAmount < dollarTotalSupply); vm.assume( - _dollarAmount > 0 && _dollarAmount < type(uint256).max.div(2) + _collateralOutMin >= 0 && _collateralOutMin <= collateralTotalSupply ); - vm.assume(_governanceOutMin >= 0 && _governanceOutMin <= _dollarAmount); - vm.assume(_collateralOutMin >= 0 && _collateralOutMin <= _dollarAmount); + vm.assume(_governanceOutMin >= 0 && _governanceOutMin <= maxUintHalf); vm.prank(user); ubiquityPoolFacet.redeemDollar( diff --git a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol index 7d7e15ccc..1be9313af 100644 --- a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol +++ b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol @@ -155,7 +155,9 @@ contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { ubiquityPoolFacet, admin, user, - curveDollarPlainPool + curveDollarPlainPool, + managerFacet, + collateralToken ); handler.mintUbiquityDollars(1e18, 0.9e18, 1e18, 0, true); From 44e9bf50252f0e2b2ff1aec639f647e45c1dd4f3 Mon Sep 17 00:00:00 2001 From: green Date: Tue, 10 Sep 2024 23:36:25 +0200 Subject: [PATCH 13/28] test(pool-facet-handler): refactor the income fuzz parameters --- .../diamond/facets/PoolFacetHandler.sol | 95 ++++++------------- 1 file changed, 30 insertions(+), 65 deletions(-) diff --git a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol index 43a92681f..2ba47b4bf 100644 --- a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol +++ b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol @@ -74,49 +74,16 @@ contract PoolFacetHandler is Test { /** * @notice Manipulates the Ubiquity Dollar price to a value above a set threshold. - * @dev This function assumes the new dollar price is within the specified range (greater than 1e18 and less than 2e18). - * It then updates the mocked Curve pool parameters and adjusts the collateral ratio in the UbiquityPoolFacet. - * @param newDollarPrice The new price for Ubiquity Dollar, expected to be within the range of 1e18 to 2e18. */ - function setDollarPriceAboveThreshold(uint256 newDollarPrice) public { - vm.assume(newDollarPrice > 1e18 && newDollarPrice < 2e18); - - vm.prank(admin); - curveDollarPlainPool.updateMockParams(newDollarPrice); - - uint256 reductionFactor = newDollarPrice.sub(1e18).div(1e16); - uint256 newCollateralRatio = uint256(1e6).sub(reductionFactor); - - ubiquityPoolFacet.setCollateralRatio(newCollateralRatio); + function setDollarPriceAboveThreshold() public { + curveDollarPlainPool.updateMockParams(1.01e18); } /** * @notice Manipulates the Ubiquity Dollar price to a value below a set threshold. - * @dev This function assumes the new dollar price is within the specified range (greater than or equal to 0.5e18 and less than 1e18). - * It then updates the mocked Curve pool parameters and adjusts the collateral ratio in the UbiquityPoolFacet accordingly. - * @param newDollarPrice The new price for Ubiquity Dollar, expected to be within the range of 0.5e18 to 1e18. - */ - function setDollarPriceBelowThreshold(uint256 newDollarPrice) public { - vm.assume(newDollarPrice >= 0.5e18 && newDollarPrice < 1e18); - - vm.prank(admin); - curveDollarPlainPool.updateMockParams(newDollarPrice); - - uint256 increaseFactor = uint256(1e18).sub(newDollarPrice).div(1e16); - uint256 newCollateralRatio = uint256(1e6).add(increaseFactor); - - ubiquityPoolFacet.setCollateralRatio(newCollateralRatio); - } - - /** - * @notice Manipulates the redemption delay in blocks for UbiquityPoolFacet. - * @dev This function allows the admin to set a delay in blocks before a redemption can be completed. - * It assumes the caller is the admin and pranks the transaction as the admin to set the redemption delay. - * @param delay The number of blocks to set as the redemption delay. */ - function setRedemptionDelay(uint256 delay) public { - vm.prank(admin); - ubiquityPoolFacet.setRedemptionDelayBlocks(delay); + function setDollarPriceBelowThreshold() public { + curveDollarPlainPool.updateMockParams(0.99e18); } /** @@ -148,52 +115,50 @@ contract PoolFacetHandler is Test { * of collateral in the pool. */ function setPoolCeiling(uint256 newCeiling) public { + uint256 maxUint = type(uint128).max; + vm.assume(newCeiling <= maxUint); + vm.prank(admin); ubiquityPoolFacet.setPoolCeiling(0, newCeiling); } /** - * @notice Manipulates the collateral price and updates the corresponding collateral ratio. - * @dev This function adjusts the price of the collateral token using a mock ChainLink price feed. - * It assumes the new price is within the allowed range and updates the collateral ratio in the UbiquityPoolFacet. - * @param _newPrice The new price of the collateral, scaled by 1e8 (e.g., a price of $1 is represented as 1e8). + * @notice Manipulates the stable USD price and updates the corresponding collateral ratio. + * @dev This function adjusts the price of the stable USD token using a mock ChainLink price feed. + * It assumes the new price is within the specified range and updates the collateral ratio in the UbiquityPoolFacet. + * @param _newPrice The new price of the stable USD token, scaled by 1e8 (e.g., a price of $1 is represented as 1e8). */ - function setCollateralPrice(int256 _newPrice) public { - vm.assume(_newPrice >= 50_000_000 && _newPrice <= 200_000_000); + function setStableUsdPrice(uint256 _newPrice) public { + // Assume the price is between $0.70 and $1.00 (0.7e8 <= _newPrice <= 1e8) + vm.assume(_newPrice >= 0.7e8 && _newPrice <= 1e8); - collateralTokenPriceFeed.updateMockParams( + stableUsdPriceFeed.updateMockParams( 1, // round id - _newPrice, + int256(_newPrice), // Set the new price dynamically based on _newPrice block.timestamp, // started at block.timestamp, // updated at 1 // answered in round ); - - ubiquityPoolFacet.updateChainLinkCollateralPrice(0); - - uint256 newCollateralRatio = uint256(1e6 * 1e8).div(uint256(_newPrice)); - ubiquityPoolFacet.setCollateralRatio(newCollateralRatio); } /** - * @notice Manipulates the stable USD price and updates the corresponding collateral ratio. - * @dev This function adjusts the price of the stable USD token using a mock ChainLink price feed. - * It assumes the new price is within the specified range and updates the collateral ratio in the UbiquityPoolFacet. - * @param _newPrice The new price of the stable USD token, scaled by 1e8 (e.g., a price of $1 is represented as 1e8). + * @notice Manipulates the collateral price and updates the corresponding collateral ratio. + * @dev This function adjusts the price of the collateral token using a mock ChainLink price feed. + * It assumes the new price is within the allowed range and updates the collateral ratio in the UbiquityPoolFacet. + * @param _newPrice The new price of the collateral, scaled by 1e8 (e.g., a price of $1 is represented as 1e8). */ - function setStableUsdPrice(uint256 _newPrice) public { - vm.assume(_newPrice >= 0.5e8 && _newPrice <= 1.5e8); // Assume a range for testing + function setCollateralPrice(int256 _newPrice) public { + vm.assume(_newPrice >= 100_000_000 && _newPrice <= 150_000_000); - stableUsdPriceFeed.updateMockParams( + collateralTokenPriceFeed.updateMockParams( 1, // round id - int256(_newPrice), + _newPrice, block.timestamp, // started at block.timestamp, // updated at 1 // answered in round ); - uint256 newCollateralRatio = uint256(1e6 * 1e8).div(_newPrice); - ubiquityPoolFacet.setCollateralRatio(newCollateralRatio); + ubiquityPoolFacet.updateChainLinkCollateralPrice(0); } /** @@ -231,15 +196,15 @@ contract PoolFacetHandler is Test { uint256 _maxGovernanceIn, bool _isOneToOne ) public { - uint256 maxUintHalf = type(uint256).max.div(2); + uint256 maxUint = type(uint128).max; uint256 collateralTotalSupply = collateralToken.totalSupply(); - vm.assume(_dollarAmount > 0 && _dollarAmount < maxUintHalf); + vm.assume(_dollarAmount > 0 && _dollarAmount < maxUint); vm.assume(_dollarOutMin <= _dollarAmount); vm.assume( _maxCollateralIn > 0 && _maxCollateralIn < collateralTotalSupply ); - vm.assume(_maxGovernanceIn >= 0 && _maxGovernanceIn <= maxUintHalf); + vm.assume(_maxGovernanceIn >= 0 && _maxGovernanceIn <= maxUint); vm.prank(user); ubiquityPoolFacet.mintDollar( @@ -265,7 +230,7 @@ contract PoolFacetHandler is Test { uint256 _governanceOutMin, uint256 _collateralOutMin ) public { - uint256 maxUintHalf = type(uint256).max.div(2); + uint256 maxUint = type(uint128).max; uint256 dollarTotalSupply = dollar.totalSupply(); uint256 collateralTotalSupply = collateralToken.totalSupply(); @@ -273,7 +238,7 @@ contract PoolFacetHandler is Test { vm.assume( _collateralOutMin >= 0 && _collateralOutMin <= collateralTotalSupply ); - vm.assume(_governanceOutMin >= 0 && _governanceOutMin <= maxUintHalf); + vm.assume(_governanceOutMin >= 0 && _governanceOutMin <= maxUint); vm.prank(user); ubiquityPoolFacet.redeemDollar( From 316d5576142d839621701c9d2e44685884901412 Mon Sep 17 00:00:00 2001 From: green Date: Wed, 11 Sep 2024 18:39:45 +0200 Subject: [PATCH 14/28] test(pool-facet-invariant): add new invariant checks for minting and redemption --- .../diamond/facets/PoolFacetHandler.sol | 18 +++++- .../facets/UbiquityPoolFacet.invariant.t.sol | 56 ++++++++++++++++--- 2 files changed, 64 insertions(+), 10 deletions(-) diff --git a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol index 2ba47b4bf..651b46e5c 100644 --- a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol +++ b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol @@ -102,7 +102,23 @@ contract PoolFacetHandler is Test { ubiquityPoolFacet.setFees(0, mintFee, redeemFee); } - function collectRedemption() public { + /** + * @notice Simulates the process of a user collecting redeemed collateral and governance tokens after advancing a number of blocks. + * @dev This function first advances the block number by the specified amount and then simulates the user calling the `collectRedemption` function. + * @param _blocksToAdvance The number of blocks to advance before allowing redemption, constrained by an upper limit. + */ + function collectRedemption(uint256 _blocksToAdvance) public { + uint256 currentBlock = block.number; + uint256 maxBlockAdvance = 100; + + // Ensure the number of blocks to advance is within a reasonable range + vm.assume(_blocksToAdvance > 0 && _blocksToAdvance <= maxBlockAdvance); + + // Advance the block number by the specified amount + vm.roll(currentBlock + _blocksToAdvance); + + // Simulate the `user` performing the redemption + vm.prank(user); ubiquityPoolFacet.collectRedemption(0); } diff --git a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol index 1be9313af..87b9ab74d 100644 --- a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol +++ b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol @@ -11,8 +11,11 @@ import {PoolFacetHandler} from "./PoolFacetHandler.sol"; import {IERC20Ubiquity} from "../../../../src/dollar/interfaces/IERC20Ubiquity.sol"; import {MockCurveStableSwapNG} from "../../../../src/dollar/mocks/MockCurveStableSwapNG.sol"; import {MockCurveTwocryptoOptimized} from "../../../../src/dollar/mocks/MockCurveTwocryptoOptimized.sol"; +import {SafeMath} from "@openzeppelin/contracts/utils/math/SafeMath.sol"; contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { + using SafeMath for uint256; + PoolFacetHandler handler; // mock three tokens: collateral token, stable token, wrapped ETH token @@ -172,21 +175,56 @@ contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { * If the invariant is violated, it indicates that more Ubiquity Dollars have been minted than the available collateral can support. */ function invariant_CannotMintMoreDollarsThanCollateral() public { + ( + uint256 totalDollarSupplyInUsd, + uint256 collateralUsdBalance + ) = getDollarSupplyAndCollateralBalance(); + + assertTrue( + totalDollarSupplyInUsd <= collateralUsdBalance, + "Minted dollars exceed collateral value" + ); + } + + /** + * @notice Ensures that users cannot redeem more collateral than the value of the Dollar tokens provided. + * @dev This invariant checker calculates the total supply of Ubiquity Dollars in USD terms and compares it to the USD value of the collateral. + * The invariant asserts that the value of collateral redeemed does not exceed the value of the Dollar tokens burned. + * If the invariant is violated, it indicates that more collateral has been redeemed than the Ubiquity Dollars can support. + */ + function invariant_CannotRedeemMoreCollateralThanDollarValue() public { + ( + uint256 totalDollarSupplyInUsd, + uint256 collateralUsdBalance + ) = getDollarSupplyAndCollateralBalance(); + + assertTrue( + collateralUsdBalance >= totalDollarSupplyInUsd, + "Redeemed collateral exceeds provided Dollar tokens" + ); + } + + /** + * @notice Helper function to get the USD value of total Dollar supply and the collateral USD balance. + * @dev This function returns the current total supply of Ubiquity Dollars in USD and the USD value of the collateral. + * @return totalDollarSupplyInUsd The total supply of Ubiquity Dollars in USD (6 decimals). + * @return collateralUsdBalance The total USD value of collateral backing the Ubiquity Dollars (18 decimals). + */ + function getDollarSupplyAndCollateralBalance() + public + view + returns (uint256 totalDollarSupplyInUsd, uint256 collateralUsdBalance) + { uint256 totalDollarSupply = IERC20Ubiquity( managerFacet.dollarTokenAddress() ).totalSupply(); - uint256 collateralUsdBalance = ubiquityPoolFacet.collateralUsdBalance(); + collateralUsdBalance = ubiquityPoolFacet.collateralUsdBalance(); - vm.assume(collateralUsdBalance > 0 && totalDollarSupply > 0); + require(collateralUsdBalance > 0, "Collateral balance is zero"); + require(totalDollarSupply > 0, "Dollar supply is zero"); uint256 dollarPrice = ubiquityPoolFacet.getDollarPriceUsd(); - uint256 totalDollarSupplyInUsd = (totalDollarSupply * dollarPrice) / - 1e6; - - assertTrue( - totalDollarSupplyInUsd <= collateralUsdBalance, - "Minted dollars exceed collateral value" - ); + totalDollarSupplyInUsd = totalDollarSupply.mul(dollarPrice).div(1e6); } } From 16de33c8617a51d7c450402060f0207d81fb7403 Mon Sep 17 00:00:00 2001 From: green Date: Wed, 11 Sep 2024 22:19:53 +0200 Subject: [PATCH 15/28] test(setting-up-ci): add deep-invariant ci sttings --- .github/workflows/deep-fuzz-and-invariant.yml | 31 +++++++++++++++++++ .github/workflows/deep-invariant.yml | 31 +++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 .github/workflows/deep-fuzz-and-invariant.yml create mode 100644 .github/workflows/deep-invariant.yml diff --git a/.github/workflows/deep-fuzz-and-invariant.yml b/.github/workflows/deep-fuzz-and-invariant.yml new file mode 100644 index 000000000..b68e0f9ec --- /dev/null +++ b/.github/workflows/deep-fuzz-and-invariant.yml @@ -0,0 +1,31 @@ +name: Deep Fuzz and Invariant Tests +on: + push: + branches: + - development + paths: + - '**.sol' + +jobs: + deep-fuzz-and-invariant: + name: Run Deep Fuzz and Invariant Tests + runs-on: ubuntu-22.04 + env: + FOUNDRY_PROFILE: intense + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Setup Foundry + uses: foundry-rs/foundry-toolchain@v1 + with: + version: nightly-5be158ba6dc7c798a6f032026fe60fc01686b33b + + - name: Forge install + working-directory: packages/contracts + run: forge install + + - name: Run Deep Fuzz and Invariant Tests + working-directory: packages/contracts + run: forge test diff --git a/.github/workflows/deep-invariant.yml b/.github/workflows/deep-invariant.yml new file mode 100644 index 000000000..db5579007 --- /dev/null +++ b/.github/workflows/deep-invariant.yml @@ -0,0 +1,31 @@ +name: Invariant Tests +on: + push: + branches: + - development + paths: + - '**.sol' + +jobs: + invariant-tests: + name: Run Invariant Tests + runs-on: ubuntu-22.04 + env: + FOUNDRY_PROFILE: intense + + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Setup Foundry + uses: foundry-rs/toolchain@v1 + with: + version: nightly-5be158ba6dc7c79a8f6302026fe60fc01606b33b + + - name: Forge install + working-directory: packages/contracts + run: forge install + + - name: Run Invariant Tests + working-directory: packages/contracts + run: forge test From ae26dfbe0f8de710ecb4c3a32f1f192cd9f66cd6 Mon Sep 17 00:00:00 2001 From: green Date: Fri, 13 Sep 2024 22:08:43 +0200 Subject: [PATCH 16/28] test(ci-settings): update fuzz and invariant ci settings --- .github/workflows/deep-fuzz-and-invariant.yml | 31 ------------------- .github/workflows/deep-fuzz.yml | 2 +- .github/workflows/deep-invariant.yml | 6 ++-- 3 files changed, 4 insertions(+), 35 deletions(-) delete mode 100644 .github/workflows/deep-fuzz-and-invariant.yml diff --git a/.github/workflows/deep-fuzz-and-invariant.yml b/.github/workflows/deep-fuzz-and-invariant.yml deleted file mode 100644 index b68e0f9ec..000000000 --- a/.github/workflows/deep-fuzz-and-invariant.yml +++ /dev/null @@ -1,31 +0,0 @@ -name: Deep Fuzz and Invariant Tests -on: - push: - branches: - - development - paths: - - '**.sol' - -jobs: - deep-fuzz-and-invariant: - name: Run Deep Fuzz and Invariant Tests - runs-on: ubuntu-22.04 - env: - FOUNDRY_PROFILE: intense - - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Setup Foundry - uses: foundry-rs/foundry-toolchain@v1 - with: - version: nightly-5be158ba6dc7c798a6f032026fe60fc01686b33b - - - name: Forge install - working-directory: packages/contracts - run: forge install - - - name: Run Deep Fuzz and Invariant Tests - working-directory: packages/contracts - run: forge test diff --git a/.github/workflows/deep-fuzz.yml b/.github/workflows/deep-fuzz.yml index d0329cb12..17eacb88b 100644 --- a/.github/workflows/deep-fuzz.yml +++ b/.github/workflows/deep-fuzz.yml @@ -28,4 +28,4 @@ jobs: - name: Deep Fuzz Solidity Contracts working-directory: packages/contracts - run: forge test + run: forge test --match-path "test/fuzz/**/*" diff --git a/.github/workflows/deep-invariant.yml b/.github/workflows/deep-invariant.yml index db5579007..b6a96911e 100644 --- a/.github/workflows/deep-invariant.yml +++ b/.github/workflows/deep-invariant.yml @@ -18,7 +18,7 @@ jobs: uses: actions/checkout@v3 - name: Setup Foundry - uses: foundry-rs/toolchain@v1 + uses: foundry-rs/foundry-toolchain@v1 with: version: nightly-5be158ba6dc7c79a8f6302026fe60fc01606b33b @@ -26,6 +26,6 @@ jobs: working-directory: packages/contracts run: forge install - - name: Run Invariant Tests + - name: Run Deep Invariant Tests working-directory: packages/contracts - run: forge test + run: forge test --match-path "test/invariant/**/*" From e5c687e4a6ebdcb3cc5e2e3b3bb5df6c53c29346 Mon Sep 17 00:00:00 2001 From: green Date: Wed, 18 Sep 2024 15:59:30 +0200 Subject: [PATCH 17/28] test: add an invariant profile to the foundry configuration --- packages/contracts/foundry.toml | 3 +++ .../diamond/facets/PoolFacetHandler.sol | 16 ++++++++++------ .../facets/UbiquityPoolFacet.invariant.t.sol | 2 +- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/packages/contracts/foundry.toml b/packages/contracts/foundry.toml index 8b516b440..c1c0e91ca 100644 --- a/packages/contracts/foundry.toml +++ b/packages/contracts/foundry.toml @@ -43,3 +43,6 @@ src = 'src/dollar' [profile.intense.fuzz] runs = 100000 max_test_rejects = 900000 + +[profile.intense.invariant] +runs = 50000 # ~1 hour \ No newline at end of file diff --git a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol index 651b46e5c..1617d5c0b 100644 --- a/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol +++ b/packages/contracts/test/invariant/diamond/facets/PoolFacetHandler.sol @@ -73,14 +73,18 @@ contract PoolFacetHandler is Test { } /** - * @notice Manipulates the Ubiquity Dollar price to a value above a set threshold. + * @notice Simulates setting the Ubiquity Dollar price to a value of the minting threshold. + * @dev This function updates the mocked Curve pool parameters to simulate a Ubiquity Dollar price of $1.01. + * The threshold of $1.01 is significant because it represents the upper bound at which new Ubiquity Dollars can be minted. */ function setDollarPriceAboveThreshold() public { curveDollarPlainPool.updateMockParams(1.01e18); } /** - * @notice Manipulates the Ubiquity Dollar price to a value below a set threshold. + * @notice Simulates setting the Ubiquity Dollar price to a value of the redemption threshold. + * @dev This function updates the mocked Curve pool parameters to simulate a Ubiquity Dollar price of $0.99. + * The threshold of $0.99 is significant because it represents the lower bound at which Ubiquity Dollars can be redeemed. */ function setDollarPriceBelowThreshold() public { curveDollarPlainPool.updateMockParams(0.99e18); @@ -139,9 +143,9 @@ contract PoolFacetHandler is Test { } /** - * @notice Manipulates the stable USD price and updates the corresponding collateral ratio. + * @notice Manipulates the stable USD price. * @dev This function adjusts the price of the stable USD token using a mock ChainLink price feed. - * It assumes the new price is within the specified range and updates the collateral ratio in the UbiquityPoolFacet. + * It assumes the new price is within the specified range. * @param _newPrice The new price of the stable USD token, scaled by 1e8 (e.g., a price of $1 is represented as 1e8). */ function setStableUsdPrice(uint256 _newPrice) public { @@ -158,9 +162,9 @@ contract PoolFacetHandler is Test { } /** - * @notice Manipulates the collateral price and updates the corresponding collateral ratio. + * @notice Manipulates the collateral price. * @dev This function adjusts the price of the collateral token using a mock ChainLink price feed. - * It assumes the new price is within the allowed range and updates the collateral ratio in the UbiquityPoolFacet. + * It assumes the new price is within the allowed range. * @param _newPrice The new price of the collateral, scaled by 1e8 (e.g., a price of $1 is represented as 1e8). */ function setCollateralPrice(int256 _newPrice) public { diff --git a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol index 87b9ab74d..114d646a1 100644 --- a/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol +++ b/packages/contracts/test/invariant/diamond/facets/UbiquityPoolFacet.invariant.t.sol @@ -207,7 +207,7 @@ contract UbiquityPoolFacetInvariantTest is DiamondTestSetup { /** * @notice Helper function to get the USD value of total Dollar supply and the collateral USD balance. * @dev This function returns the current total supply of Ubiquity Dollars in USD and the USD value of the collateral. - * @return totalDollarSupplyInUsd The total supply of Ubiquity Dollars in USD (6 decimals). + * @return totalDollarSupplyInUsd The total supply of Ubiquity Dollars in USD (18 decimals). * @return collateralUsdBalance The total USD value of collateral backing the Ubiquity Dollars (18 decimals). */ function getDollarSupplyAndCollateralBalance() From 56f03ed18a6f787d0afbb7f25916bcdae26e5795 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 23 Sep 2024 20:07:24 +0000 Subject: [PATCH 18/28] docs: auto generate NATSPEC docs --- .../docs/src/src/dollar/Diamond.sol/contract.Diamond.md | 2 +- .../docs/src/src/dollar/Diamond.sol/struct.DiamondArgs.md | 2 +- .../AccessControlInternal.sol/abstract.AccessControlInternal.md | 2 +- .../src/src/dollar/core/CreditNft.sol/contract.CreditNft.md | 2 +- .../dollar/core/ERC1155Ubiquity.sol/abstract.ERC1155Ubiquity.md | 2 +- .../src/dollar/core/ERC20Ubiquity.sol/abstract.ERC20Ubiquity.md | 2 +- .../src/dollar/core/StakingShare.sol/contract.StakingShare.md | 2 +- .../UbiquityCreditToken.sol/contract.UbiquityCreditToken.md | 2 +- .../UbiquityDollarToken.sol/contract.UbiquityDollarToken.md | 2 +- .../contract.UbiquityGovernanceToken.md | 2 +- .../AccessControlFacet.sol/contract.AccessControlFacet.md | 2 +- .../facets/BondingCurveFacet.sol/contract.BondingCurveFacet.md | 2 +- .../src/src/dollar/facets/ChefFacet.sol/contract.ChefFacet.md | 2 +- .../CollectableDustFacet.sol/contract.CollectableDustFacet.md | 2 +- .../facets/CreditClockFacet.sol/contract.CreditClockFacet.md | 2 +- .../CreditNftManagerFacet.sol/contract.CreditNftManagerFacet.md | 2 +- .../contract.CreditNftRedemptionCalculatorFacet.md | 2 +- .../contract.CreditRedemptionCalculatorFacet.md | 2 +- .../contract.CurveDollarIncentiveFacet.md | 2 +- .../facets/DiamondCutFacet.sol/contract.DiamondCutFacet.md | 2 +- .../facets/DiamondLoupeFacet.sol/contract.DiamondLoupeFacet.md | 2 +- .../contract.DirectGovernanceFarmerFacet.md | 2 +- .../contract.DollarMintCalculatorFacet.md | 2 +- .../DollarMintExcessFacet.sol/contract.DollarMintExcessFacet.md | 2 +- .../src/dollar/facets/ManagerFacet.sol/contract.ManagerFacet.md | 2 +- .../dollar/facets/OwnershipFacet.sol/contract.OwnershipFacet.md | 2 +- .../src/dollar/facets/StakingFacet.sol/contract.StakingFacet.md | 2 +- .../StakingFormulasFacet.sol/contract.StakingFormulasFacet.md | 2 +- .../facets/UbiquityPoolFacet.sol/contract.UbiquityPoolFacet.md | 2 +- .../interfaces/IAccessControl.sol/interface.IAccessControl.md | 2 +- .../interfaces/IBondingCurve.sol/interface.IBondingCurve.md | 2 +- .../dollar/interfaces/ICreditNft.sol/interface.ICreditNft.md | 2 +- .../ICreditNftManager.sol/interface.ICreditNftManager.md | 2 +- .../interface.ICreditNftRedemptionCalculator.md | 2 +- .../interface.ICreditRedemptionCalculator.md | 2 +- .../interfaces/ICurveFactory.sol/interface.ICurveFactory.md | 2 +- .../interface.ICurveStableSwapFactoryNG.md | 2 +- .../interface.ICurveStableSwapMetaNG.md | 2 +- .../ICurveStableSwapNG.sol/interface.ICurveStableSwapNG.md | 2 +- .../interface.ICurveTwocryptoOptimized.md | 2 +- .../dollar/interfaces/IDepositZap.sol/interface.IDepositZap.md | 2 +- .../dollar/interfaces/IDiamondCut.sol/interface.IDiamondCut.md | 2 +- .../interfaces/IDiamondLoupe.sol/interface.IDiamondLoupe.md | 2 +- .../IDollarAmoMinter.sol/interface.IDollarAmoMinter.md | 2 +- .../interface.IDollarMintCalculator.md | 2 +- .../IDollarMintExcess.sol/interface.IDollarMintExcess.md | 2 +- .../IERC1155Ubiquity.sol/interface.IERC1155Ubiquity.md | 2 +- .../src/src/dollar/interfaces/IERC173.sol/interface.IERC173.md | 2 +- .../interfaces/IERC20Ubiquity.sol/interface.IERC20Ubiquity.md | 2 +- .../IStableSwap3Pool.sol/interface.IStableSwap3Pool.md | 2 +- .../src/dollar/interfaces/IStaking.sol/interface.IStaking.md | 2 +- .../interfaces/IStakingShare.sol/interface.IStakingShare.md | 2 +- .../interfaces/IUbiquityChef.sol/interface.IUbiquityChef.md | 2 +- .../interface.IUbiquityDollarManager.md | 2 +- .../IUbiquityDollarToken.sol/interface.IUbiquityDollarToken.md | 2 +- .../IUbiquityFormulas.sol/interface.IUbiquityFormulas.md | 2 +- .../interface.IUbiquityGovernanceToken.md | 2 +- .../interfaces/IUbiquityPool.sol/interface.IUbiquityPool.md | 2 +- .../utils/ICollectableDust.sol/interface.ICollectableDust.md | 2 +- .../dollar/libraries/AddressUtils.sol/library.AddressUtils.md | 2 +- .../src/dollar/libraries/Constants.sol/constants.Constants.md | 2 +- .../libraries/LibAccessControl.sol/library.LibAccessControl.md | 2 +- .../dollar/libraries/LibAppStorage.sol/contract.Modifiers.md | 2 +- .../dollar/libraries/LibAppStorage.sol/library.LibAppStorage.md | 2 +- .../src/dollar/libraries/LibAppStorage.sol/struct.AppStorage.md | 2 +- .../libraries/LibBondingCurve.sol/library.LibBondingCurve.md | 2 +- .../src/src/dollar/libraries/LibChef.sol/library.LibChef.md | 2 +- .../LibCollectableDust.sol/library.LibCollectableDust.md | 2 +- .../libraries/LibCreditClock.sol/library.LibCreditClock.md | 2 +- .../LibCreditNftManager.sol/library.LibCreditNftManager.md | 2 +- .../library.LibCreditNftRedemptionCalculator.md | 2 +- .../library.LibCreditRedemptionCalculator.md | 2 +- .../library.LibCurveDollarIncentive.md | 2 +- .../LibDiamond.sol/error.InitializationFunctionReverted.md | 2 +- .../src/dollar/libraries/LibDiamond.sol/library.LibDiamond.md | 2 +- .../library.LibDirectGovernanceFarmer.md | 2 +- .../library.LibDollarMintCalculator.md | 2 +- .../LibDollarMintExcess.sol/library.LibDollarMintExcess.md | 2 +- .../src/dollar/libraries/LibStaking.sol/library.LibStaking.md | 2 +- .../LibStakingFormulas.sol/library.LibStakingFormulas.md | 2 +- .../libraries/LibUbiquityPool.sol/library.LibUbiquityPool.md | 2 +- .../src/src/dollar/libraries/UintUtils.sol/library.UintUtils.md | 2 +- .../mocks/MockChainLinkFeed.sol/contract.MockChainLinkFeed.md | 2 +- .../mocks/MockCurveFactory.sol/contract.MockCurveFactory.md | 2 +- .../contract.MockCurveStableSwapMetaNG.md | 2 +- .../MockCurveStableSwapNG.sol/contract.MockCurveStableSwapNG.md | 2 +- .../contract.MockCurveTwocryptoOptimized.md | 2 +- .../src/src/dollar/mocks/MockERC20.sol/contract.MockERC20.md | 2 +- .../src/src/dollar/mocks/MockFacet.sol/constants.MockFacet.md | 2 +- .../dollar/mocks/MockFacet.sol/contract.MockFacetInitializer.md | 2 +- .../contract.MockFacetWithExtendedStorageWriteFunctions.md | 2 +- .../mocks/MockFacet.sol/contract.MockFacetWithPureFunctions.md | 2 +- .../contract.MockFacetWithStorageWriteFunctions.md | 2 +- .../src/src/dollar/mocks/MockFacet.sol/interface.IMockFacet.md | 2 +- .../src/dollar/mocks/MockFacet.sol/struct.NewSimpleStorage.md | 2 +- .../src/dollar/mocks/MockFacet.sol/struct.NewStorageExtended.md | 2 +- .../src/dollar/mocks/MockShareV1.sol/contract.BondingShare.md | 2 +- .../upgradeInitializers/DiamondInit.sol/contract.DiamondInit.md | 2 +- .../src/dollar/utils/SafeAddArray.sol/library.SafeAddArray.md | 2 +- 99 files changed, 99 insertions(+), 99 deletions(-) diff --git a/packages/contracts/docs/src/src/dollar/Diamond.sol/contract.Diamond.md b/packages/contracts/docs/src/src/dollar/Diamond.sol/contract.Diamond.md index 9e41ecc27..d1aa6d28f 100644 --- a/packages/contracts/docs/src/src/dollar/Diamond.sol/contract.Diamond.md +++ b/packages/contracts/docs/src/src/dollar/Diamond.sol/contract.Diamond.md @@ -1,5 +1,5 @@ # Diamond -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/Diamond.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/Diamond.sol) Contract that implements diamond proxy pattern diff --git a/packages/contracts/docs/src/src/dollar/Diamond.sol/struct.DiamondArgs.md b/packages/contracts/docs/src/src/dollar/Diamond.sol/struct.DiamondArgs.md index 240c735f8..aae0794f0 100644 --- a/packages/contracts/docs/src/src/dollar/Diamond.sol/struct.DiamondArgs.md +++ b/packages/contracts/docs/src/src/dollar/Diamond.sol/struct.DiamondArgs.md @@ -1,5 +1,5 @@ # DiamondArgs -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/Diamond.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/Diamond.sol) Struct used for `Diamond` constructor args diff --git a/packages/contracts/docs/src/src/dollar/access/AccessControlInternal.sol/abstract.AccessControlInternal.md b/packages/contracts/docs/src/src/dollar/access/AccessControlInternal.sol/abstract.AccessControlInternal.md index 7e8fa9753..166cae581 100644 --- a/packages/contracts/docs/src/src/dollar/access/AccessControlInternal.sol/abstract.AccessControlInternal.md +++ b/packages/contracts/docs/src/src/dollar/access/AccessControlInternal.sol/abstract.AccessControlInternal.md @@ -1,5 +1,5 @@ # AccessControlInternal -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/access/AccessControlInternal.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/access/AccessControlInternal.sol) Role-based access control system diff --git a/packages/contracts/docs/src/src/dollar/core/CreditNft.sol/contract.CreditNft.md b/packages/contracts/docs/src/src/dollar/core/CreditNft.sol/contract.CreditNft.md index eb011519a..9328ca5fc 100644 --- a/packages/contracts/docs/src/src/dollar/core/CreditNft.sol/contract.CreditNft.md +++ b/packages/contracts/docs/src/src/dollar/core/CreditNft.sol/contract.CreditNft.md @@ -1,5 +1,5 @@ # CreditNft -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/core/CreditNft.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/core/CreditNft.sol) **Inherits:** [ERC1155Ubiquity](/src/dollar/core/ERC1155Ubiquity.sol/abstract.ERC1155Ubiquity.md), [ICreditNft](/src/dollar/interfaces/ICreditNft.sol/interface.ICreditNft.md) diff --git a/packages/contracts/docs/src/src/dollar/core/ERC1155Ubiquity.sol/abstract.ERC1155Ubiquity.md b/packages/contracts/docs/src/src/dollar/core/ERC1155Ubiquity.sol/abstract.ERC1155Ubiquity.md index 4052bfe43..be4661809 100644 --- a/packages/contracts/docs/src/src/dollar/core/ERC1155Ubiquity.sol/abstract.ERC1155Ubiquity.md +++ b/packages/contracts/docs/src/src/dollar/core/ERC1155Ubiquity.sol/abstract.ERC1155Ubiquity.md @@ -1,5 +1,5 @@ # ERC1155Ubiquity -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/core/ERC1155Ubiquity.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/core/ERC1155Ubiquity.sol) **Inherits:** Initializable, ERC1155BurnableUpgradeable, ERC1155PausableUpgradeable, UUPSUpgradeable diff --git a/packages/contracts/docs/src/src/dollar/core/ERC20Ubiquity.sol/abstract.ERC20Ubiquity.md b/packages/contracts/docs/src/src/dollar/core/ERC20Ubiquity.sol/abstract.ERC20Ubiquity.md index e3c3f430f..cfda79370 100644 --- a/packages/contracts/docs/src/src/dollar/core/ERC20Ubiquity.sol/abstract.ERC20Ubiquity.md +++ b/packages/contracts/docs/src/src/dollar/core/ERC20Ubiquity.sol/abstract.ERC20Ubiquity.md @@ -1,5 +1,5 @@ # ERC20Ubiquity -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/core/ERC20Ubiquity.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/core/ERC20Ubiquity.sol) **Inherits:** Initializable, UUPSUpgradeable, ERC20Upgradeable, ERC20PermitUpgradeable, ERC20PausableUpgradeable diff --git a/packages/contracts/docs/src/src/dollar/core/StakingShare.sol/contract.StakingShare.md b/packages/contracts/docs/src/src/dollar/core/StakingShare.sol/contract.StakingShare.md index 6e52ca051..726bcda1d 100644 --- a/packages/contracts/docs/src/src/dollar/core/StakingShare.sol/contract.StakingShare.md +++ b/packages/contracts/docs/src/src/dollar/core/StakingShare.sol/contract.StakingShare.md @@ -1,5 +1,5 @@ # StakingShare -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/core/StakingShare.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/core/StakingShare.sol) **Inherits:** [ERC1155Ubiquity](/src/dollar/core/ERC1155Ubiquity.sol/abstract.ERC1155Ubiquity.md), ERC1155URIStorageUpgradeable diff --git a/packages/contracts/docs/src/src/dollar/core/UbiquityCreditToken.sol/contract.UbiquityCreditToken.md b/packages/contracts/docs/src/src/dollar/core/UbiquityCreditToken.sol/contract.UbiquityCreditToken.md index 023327e9c..5f6402d2e 100644 --- a/packages/contracts/docs/src/src/dollar/core/UbiquityCreditToken.sol/contract.UbiquityCreditToken.md +++ b/packages/contracts/docs/src/src/dollar/core/UbiquityCreditToken.sol/contract.UbiquityCreditToken.md @@ -1,5 +1,5 @@ # UbiquityCreditToken -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/core/UbiquityCreditToken.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/core/UbiquityCreditToken.sol) **Inherits:** [ERC20Ubiquity](/src/dollar/core/ERC20Ubiquity.sol/abstract.ERC20Ubiquity.md) diff --git a/packages/contracts/docs/src/src/dollar/core/UbiquityDollarToken.sol/contract.UbiquityDollarToken.md b/packages/contracts/docs/src/src/dollar/core/UbiquityDollarToken.sol/contract.UbiquityDollarToken.md index 893b71730..02c941dc8 100644 --- a/packages/contracts/docs/src/src/dollar/core/UbiquityDollarToken.sol/contract.UbiquityDollarToken.md +++ b/packages/contracts/docs/src/src/dollar/core/UbiquityDollarToken.sol/contract.UbiquityDollarToken.md @@ -1,5 +1,5 @@ # UbiquityDollarToken -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/core/UbiquityDollarToken.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/core/UbiquityDollarToken.sol) **Inherits:** [ERC20Ubiquity](/src/dollar/core/ERC20Ubiquity.sol/abstract.ERC20Ubiquity.md) diff --git a/packages/contracts/docs/src/src/dollar/core/UbiquityGovernanceToken.sol/contract.UbiquityGovernanceToken.md b/packages/contracts/docs/src/src/dollar/core/UbiquityGovernanceToken.sol/contract.UbiquityGovernanceToken.md index f1a5f9100..507e16c55 100644 --- a/packages/contracts/docs/src/src/dollar/core/UbiquityGovernanceToken.sol/contract.UbiquityGovernanceToken.md +++ b/packages/contracts/docs/src/src/dollar/core/UbiquityGovernanceToken.sol/contract.UbiquityGovernanceToken.md @@ -1,5 +1,5 @@ # UbiquityGovernanceToken -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/core/UbiquityGovernanceToken.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/core/UbiquityGovernanceToken.sol) **Inherits:** [ERC20Ubiquity](/src/dollar/core/ERC20Ubiquity.sol/abstract.ERC20Ubiquity.md) diff --git a/packages/contracts/docs/src/src/dollar/facets/AccessControlFacet.sol/contract.AccessControlFacet.md b/packages/contracts/docs/src/src/dollar/facets/AccessControlFacet.sol/contract.AccessControlFacet.md index 09ada7380..a6cff7e93 100644 --- a/packages/contracts/docs/src/src/dollar/facets/AccessControlFacet.sol/contract.AccessControlFacet.md +++ b/packages/contracts/docs/src/src/dollar/facets/AccessControlFacet.sol/contract.AccessControlFacet.md @@ -1,5 +1,5 @@ # AccessControlFacet -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/facets/AccessControlFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/facets/AccessControlFacet.sol) **Inherits:** [Modifiers](/src/dollar/libraries/LibAppStorage.sol/contract.Modifiers.md), [IAccessControl](/src/dollar/interfaces/IAccessControl.sol/interface.IAccessControl.md), [AccessControlInternal](/src/dollar/access/AccessControlInternal.sol/abstract.AccessControlInternal.md) diff --git a/packages/contracts/docs/src/src/dollar/facets/BondingCurveFacet.sol/contract.BondingCurveFacet.md b/packages/contracts/docs/src/src/dollar/facets/BondingCurveFacet.sol/contract.BondingCurveFacet.md index 8c7b60d48..6c1087b12 100644 --- a/packages/contracts/docs/src/src/dollar/facets/BondingCurveFacet.sol/contract.BondingCurveFacet.md +++ b/packages/contracts/docs/src/src/dollar/facets/BondingCurveFacet.sol/contract.BondingCurveFacet.md @@ -1,5 +1,5 @@ # BondingCurveFacet -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/facets/BondingCurveFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/facets/BondingCurveFacet.sol) **Inherits:** [Modifiers](/src/dollar/libraries/LibAppStorage.sol/contract.Modifiers.md), [IBondingCurve](/src/dollar/interfaces/IBondingCurve.sol/interface.IBondingCurve.md) diff --git a/packages/contracts/docs/src/src/dollar/facets/ChefFacet.sol/contract.ChefFacet.md b/packages/contracts/docs/src/src/dollar/facets/ChefFacet.sol/contract.ChefFacet.md index 13be56882..3667509e0 100644 --- a/packages/contracts/docs/src/src/dollar/facets/ChefFacet.sol/contract.ChefFacet.md +++ b/packages/contracts/docs/src/src/dollar/facets/ChefFacet.sol/contract.ChefFacet.md @@ -1,5 +1,5 @@ # ChefFacet -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/facets/ChefFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/facets/ChefFacet.sol) **Inherits:** [Modifiers](/src/dollar/libraries/LibAppStorage.sol/contract.Modifiers.md) diff --git a/packages/contracts/docs/src/src/dollar/facets/CollectableDustFacet.sol/contract.CollectableDustFacet.md b/packages/contracts/docs/src/src/dollar/facets/CollectableDustFacet.sol/contract.CollectableDustFacet.md index caa311a4c..22cbd6673 100644 --- a/packages/contracts/docs/src/src/dollar/facets/CollectableDustFacet.sol/contract.CollectableDustFacet.md +++ b/packages/contracts/docs/src/src/dollar/facets/CollectableDustFacet.sol/contract.CollectableDustFacet.md @@ -1,5 +1,5 @@ # CollectableDustFacet -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/facets/CollectableDustFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/facets/CollectableDustFacet.sol) **Inherits:** [ICollectableDust](/src/dollar/interfaces/utils/ICollectableDust.sol/interface.ICollectableDust.md), [Modifiers](/src/dollar/libraries/LibAppStorage.sol/contract.Modifiers.md) diff --git a/packages/contracts/docs/src/src/dollar/facets/CreditClockFacet.sol/contract.CreditClockFacet.md b/packages/contracts/docs/src/src/dollar/facets/CreditClockFacet.sol/contract.CreditClockFacet.md index 9de4917ee..825fef503 100644 --- a/packages/contracts/docs/src/src/dollar/facets/CreditClockFacet.sol/contract.CreditClockFacet.md +++ b/packages/contracts/docs/src/src/dollar/facets/CreditClockFacet.sol/contract.CreditClockFacet.md @@ -1,5 +1,5 @@ # CreditClockFacet -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/facets/CreditClockFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/facets/CreditClockFacet.sol) **Inherits:** [Modifiers](/src/dollar/libraries/LibAppStorage.sol/contract.Modifiers.md) diff --git a/packages/contracts/docs/src/src/dollar/facets/CreditNftManagerFacet.sol/contract.CreditNftManagerFacet.md b/packages/contracts/docs/src/src/dollar/facets/CreditNftManagerFacet.sol/contract.CreditNftManagerFacet.md index 10bbd6197..3f68dac7e 100644 --- a/packages/contracts/docs/src/src/dollar/facets/CreditNftManagerFacet.sol/contract.CreditNftManagerFacet.md +++ b/packages/contracts/docs/src/src/dollar/facets/CreditNftManagerFacet.sol/contract.CreditNftManagerFacet.md @@ -1,5 +1,5 @@ # CreditNftManagerFacet -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/facets/CreditNftManagerFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/facets/CreditNftManagerFacet.sol) **Inherits:** [Modifiers](/src/dollar/libraries/LibAppStorage.sol/contract.Modifiers.md) diff --git a/packages/contracts/docs/src/src/dollar/facets/CreditNftRedemptionCalculatorFacet.sol/contract.CreditNftRedemptionCalculatorFacet.md b/packages/contracts/docs/src/src/dollar/facets/CreditNftRedemptionCalculatorFacet.sol/contract.CreditNftRedemptionCalculatorFacet.md index 8384cffcf..f52049f31 100644 --- a/packages/contracts/docs/src/src/dollar/facets/CreditNftRedemptionCalculatorFacet.sol/contract.CreditNftRedemptionCalculatorFacet.md +++ b/packages/contracts/docs/src/src/dollar/facets/CreditNftRedemptionCalculatorFacet.sol/contract.CreditNftRedemptionCalculatorFacet.md @@ -1,5 +1,5 @@ # CreditNftRedemptionCalculatorFacet -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/facets/CreditNftRedemptionCalculatorFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/facets/CreditNftRedemptionCalculatorFacet.sol) **Inherits:** [ICreditNftRedemptionCalculator](/src/dollar/interfaces/ICreditNftRedemptionCalculator.sol/interface.ICreditNftRedemptionCalculator.md) diff --git a/packages/contracts/docs/src/src/dollar/facets/CreditRedemptionCalculatorFacet.sol/contract.CreditRedemptionCalculatorFacet.md b/packages/contracts/docs/src/src/dollar/facets/CreditRedemptionCalculatorFacet.sol/contract.CreditRedemptionCalculatorFacet.md index 2d631e64c..7472ea2c7 100644 --- a/packages/contracts/docs/src/src/dollar/facets/CreditRedemptionCalculatorFacet.sol/contract.CreditRedemptionCalculatorFacet.md +++ b/packages/contracts/docs/src/src/dollar/facets/CreditRedemptionCalculatorFacet.sol/contract.CreditRedemptionCalculatorFacet.md @@ -1,5 +1,5 @@ # CreditRedemptionCalculatorFacet -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/facets/CreditRedemptionCalculatorFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/facets/CreditRedemptionCalculatorFacet.sol) **Inherits:** [Modifiers](/src/dollar/libraries/LibAppStorage.sol/contract.Modifiers.md), [ICreditRedemptionCalculator](/src/dollar/interfaces/ICreditRedemptionCalculator.sol/interface.ICreditRedemptionCalculator.md) diff --git a/packages/contracts/docs/src/src/dollar/facets/CurveDollarIncentiveFacet.sol/contract.CurveDollarIncentiveFacet.md b/packages/contracts/docs/src/src/dollar/facets/CurveDollarIncentiveFacet.sol/contract.CurveDollarIncentiveFacet.md index 4f1ef9007..99565c9cb 100644 --- a/packages/contracts/docs/src/src/dollar/facets/CurveDollarIncentiveFacet.sol/contract.CurveDollarIncentiveFacet.md +++ b/packages/contracts/docs/src/src/dollar/facets/CurveDollarIncentiveFacet.sol/contract.CurveDollarIncentiveFacet.md @@ -1,5 +1,5 @@ # CurveDollarIncentiveFacet -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/facets/CurveDollarIncentiveFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/facets/CurveDollarIncentiveFacet.sol) **Inherits:** [Modifiers](/src/dollar/libraries/LibAppStorage.sol/contract.Modifiers.md) diff --git a/packages/contracts/docs/src/src/dollar/facets/DiamondCutFacet.sol/contract.DiamondCutFacet.md b/packages/contracts/docs/src/src/dollar/facets/DiamondCutFacet.sol/contract.DiamondCutFacet.md index a623cd916..fd0f36a74 100644 --- a/packages/contracts/docs/src/src/dollar/facets/DiamondCutFacet.sol/contract.DiamondCutFacet.md +++ b/packages/contracts/docs/src/src/dollar/facets/DiamondCutFacet.sol/contract.DiamondCutFacet.md @@ -1,5 +1,5 @@ # DiamondCutFacet -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/facets/DiamondCutFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/facets/DiamondCutFacet.sol) **Inherits:** [IDiamondCut](/src/dollar/interfaces/IDiamondCut.sol/interface.IDiamondCut.md) diff --git a/packages/contracts/docs/src/src/dollar/facets/DiamondLoupeFacet.sol/contract.DiamondLoupeFacet.md b/packages/contracts/docs/src/src/dollar/facets/DiamondLoupeFacet.sol/contract.DiamondLoupeFacet.md index bce240e21..7e6c85687 100644 --- a/packages/contracts/docs/src/src/dollar/facets/DiamondLoupeFacet.sol/contract.DiamondLoupeFacet.md +++ b/packages/contracts/docs/src/src/dollar/facets/DiamondLoupeFacet.sol/contract.DiamondLoupeFacet.md @@ -1,5 +1,5 @@ # DiamondLoupeFacet -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/facets/DiamondLoupeFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/facets/DiamondLoupeFacet.sol) **Inherits:** [IDiamondLoupe](/src/dollar/interfaces/IDiamondLoupe.sol/interface.IDiamondLoupe.md), IERC165 diff --git a/packages/contracts/docs/src/src/dollar/facets/DirectGovernanceFarmerFacet.sol/contract.DirectGovernanceFarmerFacet.md b/packages/contracts/docs/src/src/dollar/facets/DirectGovernanceFarmerFacet.sol/contract.DirectGovernanceFarmerFacet.md index 404b138b6..8248d5627 100644 --- a/packages/contracts/docs/src/src/dollar/facets/DirectGovernanceFarmerFacet.sol/contract.DirectGovernanceFarmerFacet.md +++ b/packages/contracts/docs/src/src/dollar/facets/DirectGovernanceFarmerFacet.sol/contract.DirectGovernanceFarmerFacet.md @@ -1,5 +1,5 @@ # DirectGovernanceFarmerFacet -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/facets/DirectGovernanceFarmerFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/facets/DirectGovernanceFarmerFacet.sol) **Inherits:** [Modifiers](/src/dollar/libraries/LibAppStorage.sol/contract.Modifiers.md) diff --git a/packages/contracts/docs/src/src/dollar/facets/DollarMintCalculatorFacet.sol/contract.DollarMintCalculatorFacet.md b/packages/contracts/docs/src/src/dollar/facets/DollarMintCalculatorFacet.sol/contract.DollarMintCalculatorFacet.md index 362743f3f..2c076796b 100644 --- a/packages/contracts/docs/src/src/dollar/facets/DollarMintCalculatorFacet.sol/contract.DollarMintCalculatorFacet.md +++ b/packages/contracts/docs/src/src/dollar/facets/DollarMintCalculatorFacet.sol/contract.DollarMintCalculatorFacet.md @@ -1,5 +1,5 @@ # DollarMintCalculatorFacet -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/facets/DollarMintCalculatorFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/facets/DollarMintCalculatorFacet.sol) **Inherits:** [IDollarMintCalculator](/src/dollar/interfaces/IDollarMintCalculator.sol/interface.IDollarMintCalculator.md) diff --git a/packages/contracts/docs/src/src/dollar/facets/DollarMintExcessFacet.sol/contract.DollarMintExcessFacet.md b/packages/contracts/docs/src/src/dollar/facets/DollarMintExcessFacet.sol/contract.DollarMintExcessFacet.md index 0eed70410..65304cd71 100644 --- a/packages/contracts/docs/src/src/dollar/facets/DollarMintExcessFacet.sol/contract.DollarMintExcessFacet.md +++ b/packages/contracts/docs/src/src/dollar/facets/DollarMintExcessFacet.sol/contract.DollarMintExcessFacet.md @@ -1,5 +1,5 @@ # DollarMintExcessFacet -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/facets/DollarMintExcessFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/facets/DollarMintExcessFacet.sol) **Inherits:** [IDollarMintExcess](/src/dollar/interfaces/IDollarMintExcess.sol/interface.IDollarMintExcess.md) diff --git a/packages/contracts/docs/src/src/dollar/facets/ManagerFacet.sol/contract.ManagerFacet.md b/packages/contracts/docs/src/src/dollar/facets/ManagerFacet.sol/contract.ManagerFacet.md index d25b3e8e0..277ee2f2e 100644 --- a/packages/contracts/docs/src/src/dollar/facets/ManagerFacet.sol/contract.ManagerFacet.md +++ b/packages/contracts/docs/src/src/dollar/facets/ManagerFacet.sol/contract.ManagerFacet.md @@ -1,5 +1,5 @@ # ManagerFacet -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/facets/ManagerFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/facets/ManagerFacet.sol) **Inherits:** [Modifiers](/src/dollar/libraries/LibAppStorage.sol/contract.Modifiers.md) diff --git a/packages/contracts/docs/src/src/dollar/facets/OwnershipFacet.sol/contract.OwnershipFacet.md b/packages/contracts/docs/src/src/dollar/facets/OwnershipFacet.sol/contract.OwnershipFacet.md index 643c05636..e5f9bceef 100644 --- a/packages/contracts/docs/src/src/dollar/facets/OwnershipFacet.sol/contract.OwnershipFacet.md +++ b/packages/contracts/docs/src/src/dollar/facets/OwnershipFacet.sol/contract.OwnershipFacet.md @@ -1,5 +1,5 @@ # OwnershipFacet -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/facets/OwnershipFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/facets/OwnershipFacet.sol) **Inherits:** [IERC173](/src/dollar/interfaces/IERC173.sol/interface.IERC173.md) diff --git a/packages/contracts/docs/src/src/dollar/facets/StakingFacet.sol/contract.StakingFacet.md b/packages/contracts/docs/src/src/dollar/facets/StakingFacet.sol/contract.StakingFacet.md index b03b3c52e..3a8ab3dc5 100644 --- a/packages/contracts/docs/src/src/dollar/facets/StakingFacet.sol/contract.StakingFacet.md +++ b/packages/contracts/docs/src/src/dollar/facets/StakingFacet.sol/contract.StakingFacet.md @@ -1,5 +1,5 @@ # StakingFacet -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/facets/StakingFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/facets/StakingFacet.sol) **Inherits:** [Modifiers](/src/dollar/libraries/LibAppStorage.sol/contract.Modifiers.md), [IStaking](/src/dollar/interfaces/IStaking.sol/interface.IStaking.md) diff --git a/packages/contracts/docs/src/src/dollar/facets/StakingFormulasFacet.sol/contract.StakingFormulasFacet.md b/packages/contracts/docs/src/src/dollar/facets/StakingFormulasFacet.sol/contract.StakingFormulasFacet.md index ea2663f64..2ff10f594 100644 --- a/packages/contracts/docs/src/src/dollar/facets/StakingFormulasFacet.sol/contract.StakingFormulasFacet.md +++ b/packages/contracts/docs/src/src/dollar/facets/StakingFormulasFacet.sol/contract.StakingFormulasFacet.md @@ -1,5 +1,5 @@ # StakingFormulasFacet -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/facets/StakingFormulasFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/facets/StakingFormulasFacet.sol) **Inherits:** [IUbiquityFormulas](/src/dollar/interfaces/IUbiquityFormulas.sol/interface.IUbiquityFormulas.md) diff --git a/packages/contracts/docs/src/src/dollar/facets/UbiquityPoolFacet.sol/contract.UbiquityPoolFacet.md b/packages/contracts/docs/src/src/dollar/facets/UbiquityPoolFacet.sol/contract.UbiquityPoolFacet.md index fbbc11942..5353514e1 100644 --- a/packages/contracts/docs/src/src/dollar/facets/UbiquityPoolFacet.sol/contract.UbiquityPoolFacet.md +++ b/packages/contracts/docs/src/src/dollar/facets/UbiquityPoolFacet.sol/contract.UbiquityPoolFacet.md @@ -1,5 +1,5 @@ # UbiquityPoolFacet -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/facets/UbiquityPoolFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/facets/UbiquityPoolFacet.sol) **Inherits:** [IUbiquityPool](/src/dollar/interfaces/IUbiquityPool.sol/interface.IUbiquityPool.md), [Modifiers](/src/dollar/libraries/LibAppStorage.sol/contract.Modifiers.md) diff --git a/packages/contracts/docs/src/src/dollar/interfaces/IAccessControl.sol/interface.IAccessControl.md b/packages/contracts/docs/src/src/dollar/interfaces/IAccessControl.sol/interface.IAccessControl.md index 2d30d1f2f..4f08d24b7 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/IAccessControl.sol/interface.IAccessControl.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/IAccessControl.sol/interface.IAccessControl.md @@ -1,5 +1,5 @@ # IAccessControl -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/IAccessControl.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/IAccessControl.sol) Access contol interface diff --git a/packages/contracts/docs/src/src/dollar/interfaces/IBondingCurve.sol/interface.IBondingCurve.md b/packages/contracts/docs/src/src/dollar/interfaces/IBondingCurve.sol/interface.IBondingCurve.md index 921918dc4..5860075a3 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/IBondingCurve.sol/interface.IBondingCurve.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/IBondingCurve.sol/interface.IBondingCurve.md @@ -1,5 +1,5 @@ # IBondingCurve -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/IBondingCurve.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/IBondingCurve.sol) Interface based on Bancor formula diff --git a/packages/contracts/docs/src/src/dollar/interfaces/ICreditNft.sol/interface.ICreditNft.md b/packages/contracts/docs/src/src/dollar/interfaces/ICreditNft.sol/interface.ICreditNft.md index 8710bd596..0d4f37d73 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/ICreditNft.sol/interface.ICreditNft.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/ICreditNft.sol/interface.ICreditNft.md @@ -1,5 +1,5 @@ # ICreditNft -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/ICreditNft.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/ICreditNft.sol) **Inherits:** IERC1155Upgradeable diff --git a/packages/contracts/docs/src/src/dollar/interfaces/ICreditNftManager.sol/interface.ICreditNftManager.md b/packages/contracts/docs/src/src/dollar/interfaces/ICreditNftManager.sol/interface.ICreditNftManager.md index c55110080..2220b8aa1 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/ICreditNftManager.sol/interface.ICreditNftManager.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/ICreditNftManager.sol/interface.ICreditNftManager.md @@ -1,5 +1,5 @@ # ICreditNftManager -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/ICreditNftManager.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/ICreditNftManager.sol) **Inherits:** IERC1155Receiver diff --git a/packages/contracts/docs/src/src/dollar/interfaces/ICreditNftRedemptionCalculator.sol/interface.ICreditNftRedemptionCalculator.md b/packages/contracts/docs/src/src/dollar/interfaces/ICreditNftRedemptionCalculator.sol/interface.ICreditNftRedemptionCalculator.md index 759a8f61a..d77cb5c63 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/ICreditNftRedemptionCalculator.sol/interface.ICreditNftRedemptionCalculator.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/ICreditNftRedemptionCalculator.sol/interface.ICreditNftRedemptionCalculator.md @@ -1,5 +1,5 @@ # ICreditNftRedemptionCalculator -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/ICreditNftRedemptionCalculator.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/ICreditNftRedemptionCalculator.sol) Contract interface for calculating amount of Credit NFTs to mint on Dollars burn diff --git a/packages/contracts/docs/src/src/dollar/interfaces/ICreditRedemptionCalculator.sol/interface.ICreditRedemptionCalculator.md b/packages/contracts/docs/src/src/dollar/interfaces/ICreditRedemptionCalculator.sol/interface.ICreditRedemptionCalculator.md index c6b9cc9a5..4d74ea815 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/ICreditRedemptionCalculator.sol/interface.ICreditRedemptionCalculator.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/ICreditRedemptionCalculator.sol/interface.ICreditRedemptionCalculator.md @@ -1,5 +1,5 @@ # ICreditRedemptionCalculator -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/ICreditRedemptionCalculator.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/ICreditRedemptionCalculator.sol) Contract interface for calculating amount of Credits to mint on Dollars burn diff --git a/packages/contracts/docs/src/src/dollar/interfaces/ICurveFactory.sol/interface.ICurveFactory.md b/packages/contracts/docs/src/src/dollar/interfaces/ICurveFactory.sol/interface.ICurveFactory.md index 708a61ddc..6f856f202 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/ICurveFactory.sol/interface.ICurveFactory.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/ICurveFactory.sol/interface.ICurveFactory.md @@ -1,5 +1,5 @@ # ICurveFactory -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/ICurveFactory.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/ICurveFactory.sol) Curve Factory interface diff --git a/packages/contracts/docs/src/src/dollar/interfaces/ICurveStableSwapFactoryNG.sol/interface.ICurveStableSwapFactoryNG.md b/packages/contracts/docs/src/src/dollar/interfaces/ICurveStableSwapFactoryNG.sol/interface.ICurveStableSwapFactoryNG.md index 3d92406f0..fa572ecb3 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/ICurveStableSwapFactoryNG.sol/interface.ICurveStableSwapFactoryNG.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/ICurveStableSwapFactoryNG.sol/interface.ICurveStableSwapFactoryNG.md @@ -1,5 +1,5 @@ # ICurveStableSwapFactoryNG -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/ICurveStableSwapFactoryNG.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/ICurveStableSwapFactoryNG.sol) Factory allows the permissionless deployment of up to eight-coin plain pools (ex: DAI-USDT-USDC) and metapools (ex: USDT-3CRV). diff --git a/packages/contracts/docs/src/src/dollar/interfaces/ICurveStableSwapMetaNG.sol/interface.ICurveStableSwapMetaNG.md b/packages/contracts/docs/src/src/dollar/interfaces/ICurveStableSwapMetaNG.sol/interface.ICurveStableSwapMetaNG.md index a8aa0ac84..e9cf8a223 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/ICurveStableSwapMetaNG.sol/interface.ICurveStableSwapMetaNG.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/ICurveStableSwapMetaNG.sol/interface.ICurveStableSwapMetaNG.md @@ -1,5 +1,5 @@ # ICurveStableSwapMetaNG -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/ICurveStableSwapMetaNG.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/ICurveStableSwapMetaNG.sol) **Inherits:** IERC20 diff --git a/packages/contracts/docs/src/src/dollar/interfaces/ICurveStableSwapNG.sol/interface.ICurveStableSwapNG.md b/packages/contracts/docs/src/src/dollar/interfaces/ICurveStableSwapNG.sol/interface.ICurveStableSwapNG.md index ca7d8272a..c75907127 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/ICurveStableSwapNG.sol/interface.ICurveStableSwapNG.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/ICurveStableSwapNG.sol/interface.ICurveStableSwapNG.md @@ -1,5 +1,5 @@ # ICurveStableSwapNG -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/ICurveStableSwapNG.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/ICurveStableSwapNG.sol) **Inherits:** [ICurveStableSwapMetaNG](/src/dollar/interfaces/ICurveStableSwapMetaNG.sol/interface.ICurveStableSwapMetaNG.md) diff --git a/packages/contracts/docs/src/src/dollar/interfaces/ICurveTwocryptoOptimized.sol/interface.ICurveTwocryptoOptimized.md b/packages/contracts/docs/src/src/dollar/interfaces/ICurveTwocryptoOptimized.sol/interface.ICurveTwocryptoOptimized.md index a17bf6820..e5b52a380 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/ICurveTwocryptoOptimized.sol/interface.ICurveTwocryptoOptimized.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/ICurveTwocryptoOptimized.sol/interface.ICurveTwocryptoOptimized.md @@ -1,5 +1,5 @@ # ICurveTwocryptoOptimized -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/ICurveTwocryptoOptimized.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/ICurveTwocryptoOptimized.sol) **Inherits:** [ICurveStableSwapMetaNG](/src/dollar/interfaces/ICurveStableSwapMetaNG.sol/interface.ICurveStableSwapMetaNG.md) diff --git a/packages/contracts/docs/src/src/dollar/interfaces/IDepositZap.sol/interface.IDepositZap.md b/packages/contracts/docs/src/src/dollar/interfaces/IDepositZap.sol/interface.IDepositZap.md index 6710d8382..e11c81fa9 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/IDepositZap.sol/interface.IDepositZap.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/IDepositZap.sol/interface.IDepositZap.md @@ -1,5 +1,5 @@ # IDepositZap -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/IDepositZap.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/IDepositZap.sol) Interface for Curve's Deposit Zap diff --git a/packages/contracts/docs/src/src/dollar/interfaces/IDiamondCut.sol/interface.IDiamondCut.md b/packages/contracts/docs/src/src/dollar/interfaces/IDiamondCut.sol/interface.IDiamondCut.md index ba0dd3dff..42f193aaf 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/IDiamondCut.sol/interface.IDiamondCut.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/IDiamondCut.sol/interface.IDiamondCut.md @@ -1,5 +1,5 @@ # IDiamondCut -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/IDiamondCut.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/IDiamondCut.sol) Interface that allows modifications to diamond function selector mapping diff --git a/packages/contracts/docs/src/src/dollar/interfaces/IDiamondLoupe.sol/interface.IDiamondLoupe.md b/packages/contracts/docs/src/src/dollar/interfaces/IDiamondLoupe.sol/interface.IDiamondLoupe.md index 24a170244..bc3d464cc 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/IDiamondLoupe.sol/interface.IDiamondLoupe.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/IDiamondLoupe.sol/interface.IDiamondLoupe.md @@ -1,5 +1,5 @@ # IDiamondLoupe -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/IDiamondLoupe.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/IDiamondLoupe.sol) A loupe is a small magnifying glass used to look at diamonds. These functions look at diamonds. diff --git a/packages/contracts/docs/src/src/dollar/interfaces/IDollarAmoMinter.sol/interface.IDollarAmoMinter.md b/packages/contracts/docs/src/src/dollar/interfaces/IDollarAmoMinter.sol/interface.IDollarAmoMinter.md index 178a8e898..b30f1e92f 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/IDollarAmoMinter.sol/interface.IDollarAmoMinter.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/IDollarAmoMinter.sol/interface.IDollarAmoMinter.md @@ -1,5 +1,5 @@ # IDollarAmoMinter -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/IDollarAmoMinter.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/IDollarAmoMinter.sol) AMO minter interface diff --git a/packages/contracts/docs/src/src/dollar/interfaces/IDollarMintCalculator.sol/interface.IDollarMintCalculator.md b/packages/contracts/docs/src/src/dollar/interfaces/IDollarMintCalculator.sol/interface.IDollarMintCalculator.md index 05ddf0f43..e309623bf 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/IDollarMintCalculator.sol/interface.IDollarMintCalculator.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/IDollarMintCalculator.sol/interface.IDollarMintCalculator.md @@ -1,5 +1,5 @@ # IDollarMintCalculator -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/IDollarMintCalculator.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/IDollarMintCalculator.sol) Interface for calculating amount of Dollars to be minted diff --git a/packages/contracts/docs/src/src/dollar/interfaces/IDollarMintExcess.sol/interface.IDollarMintExcess.md b/packages/contracts/docs/src/src/dollar/interfaces/IDollarMintExcess.sol/interface.IDollarMintExcess.md index e8bf37757..d995b1d39 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/IDollarMintExcess.sol/interface.IDollarMintExcess.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/IDollarMintExcess.sol/interface.IDollarMintExcess.md @@ -1,5 +1,5 @@ # IDollarMintExcess -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/IDollarMintExcess.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/IDollarMintExcess.sol) Interface for distributing excess Dollars when `mintClaimableDollars()` is called diff --git a/packages/contracts/docs/src/src/dollar/interfaces/IERC1155Ubiquity.sol/interface.IERC1155Ubiquity.md b/packages/contracts/docs/src/src/dollar/interfaces/IERC1155Ubiquity.sol/interface.IERC1155Ubiquity.md index 76964a08d..5cd3cc222 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/IERC1155Ubiquity.sol/interface.IERC1155Ubiquity.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/IERC1155Ubiquity.sol/interface.IERC1155Ubiquity.md @@ -1,5 +1,5 @@ # IERC1155Ubiquity -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/IERC1155Ubiquity.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/IERC1155Ubiquity.sol) **Inherits:** IERC1155 diff --git a/packages/contracts/docs/src/src/dollar/interfaces/IERC173.sol/interface.IERC173.md b/packages/contracts/docs/src/src/dollar/interfaces/IERC173.sol/interface.IERC173.md index aeaab262b..1f9c03c31 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/IERC173.sol/interface.IERC173.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/IERC173.sol/interface.IERC173.md @@ -1,5 +1,5 @@ # IERC173 -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/IERC173.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/IERC173.sol) ERC-173 Contract Ownership Standard diff --git a/packages/contracts/docs/src/src/dollar/interfaces/IERC20Ubiquity.sol/interface.IERC20Ubiquity.md b/packages/contracts/docs/src/src/dollar/interfaces/IERC20Ubiquity.sol/interface.IERC20Ubiquity.md index 7a6619d7e..0165c9a08 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/IERC20Ubiquity.sol/interface.IERC20Ubiquity.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/IERC20Ubiquity.sol/interface.IERC20Ubiquity.md @@ -1,5 +1,5 @@ # IERC20Ubiquity -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/IERC20Ubiquity.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/IERC20Ubiquity.sol) **Inherits:** IERC20, IERC20Permit diff --git a/packages/contracts/docs/src/src/dollar/interfaces/IStableSwap3Pool.sol/interface.IStableSwap3Pool.md b/packages/contracts/docs/src/src/dollar/interfaces/IStableSwap3Pool.sol/interface.IStableSwap3Pool.md index aabac8f38..591df37f8 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/IStableSwap3Pool.sol/interface.IStableSwap3Pool.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/IStableSwap3Pool.sol/interface.IStableSwap3Pool.md @@ -1,5 +1,5 @@ # IStableSwap3Pool -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/IStableSwap3Pool.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/IStableSwap3Pool.sol) Curve TriPool interface diff --git a/packages/contracts/docs/src/src/dollar/interfaces/IStaking.sol/interface.IStaking.md b/packages/contracts/docs/src/src/dollar/interfaces/IStaking.sol/interface.IStaking.md index db32f8d39..f9047f1e7 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/IStaking.sol/interface.IStaking.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/IStaking.sol/interface.IStaking.md @@ -1,5 +1,5 @@ # IStaking -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/IStaking.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/IStaking.sol) Staking interface diff --git a/packages/contracts/docs/src/src/dollar/interfaces/IStakingShare.sol/interface.IStakingShare.md b/packages/contracts/docs/src/src/dollar/interfaces/IStakingShare.sol/interface.IStakingShare.md index 1d14a5565..fdefaaf87 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/IStakingShare.sol/interface.IStakingShare.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/IStakingShare.sol/interface.IStakingShare.md @@ -1,5 +1,5 @@ # IStakingShare -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/IStakingShare.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/IStakingShare.sol) **Inherits:** [IERC1155Ubiquity](/src/dollar/interfaces/IERC1155Ubiquity.sol/interface.IERC1155Ubiquity.md) diff --git a/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityChef.sol/interface.IUbiquityChef.md b/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityChef.sol/interface.IUbiquityChef.md index 03309163e..af52d38fd 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityChef.sol/interface.IUbiquityChef.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityChef.sol/interface.IUbiquityChef.md @@ -1,5 +1,5 @@ # IUbiquityChef -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/IUbiquityChef.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/IUbiquityChef.sol) Interface for staking Dollar-3CRV LP tokens for Governance tokens reward diff --git a/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityDollarManager.sol/interface.IUbiquityDollarManager.md b/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityDollarManager.sol/interface.IUbiquityDollarManager.md index dbf8aee6d..d53598054 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityDollarManager.sol/interface.IUbiquityDollarManager.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityDollarManager.sol/interface.IUbiquityDollarManager.md @@ -1,5 +1,5 @@ # IUbiquityDollarManager -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/IUbiquityDollarManager.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/IUbiquityDollarManager.sol) **Inherits:** [IAccessControl](/src/dollar/interfaces/IAccessControl.sol/interface.IAccessControl.md) diff --git a/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityDollarToken.sol/interface.IUbiquityDollarToken.md b/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityDollarToken.sol/interface.IUbiquityDollarToken.md index 6ee21d2cc..530ecaca3 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityDollarToken.sol/interface.IUbiquityDollarToken.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityDollarToken.sol/interface.IUbiquityDollarToken.md @@ -1,5 +1,5 @@ # IUbiquityDollarToken -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/IUbiquityDollarToken.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/IUbiquityDollarToken.sol) **Inherits:** [IERC20Ubiquity](/src/dollar/interfaces/IERC20Ubiquity.sol/interface.IERC20Ubiquity.md) diff --git a/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityFormulas.sol/interface.IUbiquityFormulas.md b/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityFormulas.sol/interface.IUbiquityFormulas.md index dd4658818..b12aeefc2 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityFormulas.sol/interface.IUbiquityFormulas.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityFormulas.sol/interface.IUbiquityFormulas.md @@ -1,5 +1,5 @@ # IUbiquityFormulas -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/IUbiquityFormulas.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/IUbiquityFormulas.sol) Interface for staking formulas diff --git a/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityGovernance.sol/interface.IUbiquityGovernanceToken.md b/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityGovernance.sol/interface.IUbiquityGovernanceToken.md index 4303891fc..1b643baae 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityGovernance.sol/interface.IUbiquityGovernanceToken.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityGovernance.sol/interface.IUbiquityGovernanceToken.md @@ -1,5 +1,5 @@ # IUbiquityGovernanceToken -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/IUbiquityGovernance.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/IUbiquityGovernance.sol) **Inherits:** [IERC20Ubiquity](/src/dollar/interfaces/IERC20Ubiquity.sol/interface.IERC20Ubiquity.md) diff --git a/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityPool.sol/interface.IUbiquityPool.md b/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityPool.sol/interface.IUbiquityPool.md index 23abcf18e..2fe1b98a7 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityPool.sol/interface.IUbiquityPool.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/IUbiquityPool.sol/interface.IUbiquityPool.md @@ -1,5 +1,5 @@ # IUbiquityPool -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/IUbiquityPool.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/IUbiquityPool.sol) Ubiquity pool interface diff --git a/packages/contracts/docs/src/src/dollar/interfaces/utils/ICollectableDust.sol/interface.ICollectableDust.md b/packages/contracts/docs/src/src/dollar/interfaces/utils/ICollectableDust.sol/interface.ICollectableDust.md index 9b5c86913..49913cc35 100644 --- a/packages/contracts/docs/src/src/dollar/interfaces/utils/ICollectableDust.sol/interface.ICollectableDust.md +++ b/packages/contracts/docs/src/src/dollar/interfaces/utils/ICollectableDust.sol/interface.ICollectableDust.md @@ -1,5 +1,5 @@ # ICollectableDust -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/interfaces/utils/ICollectableDust.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/interfaces/utils/ICollectableDust.sol) Interface for collecting dust (i.e. not part of a protocol) tokens sent to a contract diff --git a/packages/contracts/docs/src/src/dollar/libraries/AddressUtils.sol/library.AddressUtils.md b/packages/contracts/docs/src/src/dollar/libraries/AddressUtils.sol/library.AddressUtils.md index b1431406a..ab85c3d30 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/AddressUtils.sol/library.AddressUtils.md +++ b/packages/contracts/docs/src/src/dollar/libraries/AddressUtils.sol/library.AddressUtils.md @@ -1,5 +1,5 @@ # AddressUtils -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/AddressUtils.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/AddressUtils.sol) Address utils diff --git a/packages/contracts/docs/src/src/dollar/libraries/Constants.sol/constants.Constants.md b/packages/contracts/docs/src/src/dollar/libraries/Constants.sol/constants.Constants.md index 7c80c0afc..401128339 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/Constants.sol/constants.Constants.md +++ b/packages/contracts/docs/src/src/dollar/libraries/Constants.sol/constants.Constants.md @@ -1,5 +1,5 @@ # Constants -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/Constants.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/Constants.sol) ### DEFAULT_ADMIN_ROLE *Default admin role name* diff --git a/packages/contracts/docs/src/src/dollar/libraries/LibAccessControl.sol/library.LibAccessControl.md b/packages/contracts/docs/src/src/dollar/libraries/LibAccessControl.sol/library.LibAccessControl.md index f27e34618..31093fbd5 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/LibAccessControl.sol/library.LibAccessControl.md +++ b/packages/contracts/docs/src/src/dollar/libraries/LibAccessControl.sol/library.LibAccessControl.md @@ -1,5 +1,5 @@ # LibAccessControl -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/LibAccessControl.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/LibAccessControl.sol) Access control library diff --git a/packages/contracts/docs/src/src/dollar/libraries/LibAppStorage.sol/contract.Modifiers.md b/packages/contracts/docs/src/src/dollar/libraries/LibAppStorage.sol/contract.Modifiers.md index da326e63d..9fe55aab8 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/LibAppStorage.sol/contract.Modifiers.md +++ b/packages/contracts/docs/src/src/dollar/libraries/LibAppStorage.sol/contract.Modifiers.md @@ -1,5 +1,5 @@ # Modifiers -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/LibAppStorage.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/LibAppStorage.sol) Contract includes modifiers shared across all protocol's contracts diff --git a/packages/contracts/docs/src/src/dollar/libraries/LibAppStorage.sol/library.LibAppStorage.md b/packages/contracts/docs/src/src/dollar/libraries/LibAppStorage.sol/library.LibAppStorage.md index cd46cbfbc..ebd93e78f 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/LibAppStorage.sol/library.LibAppStorage.md +++ b/packages/contracts/docs/src/src/dollar/libraries/LibAppStorage.sol/library.LibAppStorage.md @@ -1,5 +1,5 @@ # LibAppStorage -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/LibAppStorage.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/LibAppStorage.sol) Library used as a shared storage among all protocol libraries diff --git a/packages/contracts/docs/src/src/dollar/libraries/LibAppStorage.sol/struct.AppStorage.md b/packages/contracts/docs/src/src/dollar/libraries/LibAppStorage.sol/struct.AppStorage.md index c90c70447..e2d2fd5d2 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/LibAppStorage.sol/struct.AppStorage.md +++ b/packages/contracts/docs/src/src/dollar/libraries/LibAppStorage.sol/struct.AppStorage.md @@ -1,5 +1,5 @@ # AppStorage -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/LibAppStorage.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/LibAppStorage.sol) Shared struct used as a storage in the `LibAppStorage` library diff --git a/packages/contracts/docs/src/src/dollar/libraries/LibBondingCurve.sol/library.LibBondingCurve.md b/packages/contracts/docs/src/src/dollar/libraries/LibBondingCurve.sol/library.LibBondingCurve.md index e924d5120..9e8a3e864 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/LibBondingCurve.sol/library.LibBondingCurve.md +++ b/packages/contracts/docs/src/src/dollar/libraries/LibBondingCurve.sol/library.LibBondingCurve.md @@ -1,5 +1,5 @@ # LibBondingCurve -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/LibBondingCurve.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/LibBondingCurve.sol) Bonding curve library based on Bancor formula diff --git a/packages/contracts/docs/src/src/dollar/libraries/LibChef.sol/library.LibChef.md b/packages/contracts/docs/src/src/dollar/libraries/LibChef.sol/library.LibChef.md index 7d06d0b5f..7f31e57a6 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/LibChef.sol/library.LibChef.md +++ b/packages/contracts/docs/src/src/dollar/libraries/LibChef.sol/library.LibChef.md @@ -1,5 +1,5 @@ # LibChef -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/LibChef.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/LibChef.sol) Library for staking Dollar-3CRV LP tokens for Governance tokens reward diff --git a/packages/contracts/docs/src/src/dollar/libraries/LibCollectableDust.sol/library.LibCollectableDust.md b/packages/contracts/docs/src/src/dollar/libraries/LibCollectableDust.sol/library.LibCollectableDust.md index 2ce94c489..becb77fba 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/LibCollectableDust.sol/library.LibCollectableDust.md +++ b/packages/contracts/docs/src/src/dollar/libraries/LibCollectableDust.sol/library.LibCollectableDust.md @@ -1,5 +1,5 @@ # LibCollectableDust -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/LibCollectableDust.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/LibCollectableDust.sol) Library for collecting dust (i.e. not part of a protocol) tokens sent to a contract diff --git a/packages/contracts/docs/src/src/dollar/libraries/LibCreditClock.sol/library.LibCreditClock.md b/packages/contracts/docs/src/src/dollar/libraries/LibCreditClock.sol/library.LibCreditClock.md index 8f98ec4ba..9f6d9bd81 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/LibCreditClock.sol/library.LibCreditClock.md +++ b/packages/contracts/docs/src/src/dollar/libraries/LibCreditClock.sol/library.LibCreditClock.md @@ -1,5 +1,5 @@ # LibCreditClock -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/LibCreditClock.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/LibCreditClock.sol) Library for Credit Clock Facet diff --git a/packages/contracts/docs/src/src/dollar/libraries/LibCreditNftManager.sol/library.LibCreditNftManager.md b/packages/contracts/docs/src/src/dollar/libraries/LibCreditNftManager.sol/library.LibCreditNftManager.md index 3952fc12e..cc675afd6 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/LibCreditNftManager.sol/library.LibCreditNftManager.md +++ b/packages/contracts/docs/src/src/dollar/libraries/LibCreditNftManager.sol/library.LibCreditNftManager.md @@ -1,5 +1,5 @@ # LibCreditNftManager -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/LibCreditNftManager.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/LibCreditNftManager.sol) Library for basic credit issuing and redemption mechanism for Credit NFT and Credit holders diff --git a/packages/contracts/docs/src/src/dollar/libraries/LibCreditNftRedemptionCalculator.sol/library.LibCreditNftRedemptionCalculator.md b/packages/contracts/docs/src/src/dollar/libraries/LibCreditNftRedemptionCalculator.sol/library.LibCreditNftRedemptionCalculator.md index 3d2cc52f4..67a06737b 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/LibCreditNftRedemptionCalculator.sol/library.LibCreditNftRedemptionCalculator.md +++ b/packages/contracts/docs/src/src/dollar/libraries/LibCreditNftRedemptionCalculator.sol/library.LibCreditNftRedemptionCalculator.md @@ -1,5 +1,5 @@ # LibCreditNftRedemptionCalculator -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/LibCreditNftRedemptionCalculator.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/LibCreditNftRedemptionCalculator.sol) Library for calculating amount of Credit NFTs to mint on Dollars burn diff --git a/packages/contracts/docs/src/src/dollar/libraries/LibCreditRedemptionCalculator.sol/library.LibCreditRedemptionCalculator.md b/packages/contracts/docs/src/src/dollar/libraries/LibCreditRedemptionCalculator.sol/library.LibCreditRedemptionCalculator.md index ddafd7d3e..658ea18c8 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/LibCreditRedemptionCalculator.sol/library.LibCreditRedemptionCalculator.md +++ b/packages/contracts/docs/src/src/dollar/libraries/LibCreditRedemptionCalculator.sol/library.LibCreditRedemptionCalculator.md @@ -1,5 +1,5 @@ # LibCreditRedemptionCalculator -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/LibCreditRedemptionCalculator.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/LibCreditRedemptionCalculator.sol) Library for calculating amount of Credits to mint on Dollars burn diff --git a/packages/contracts/docs/src/src/dollar/libraries/LibCurveDollarIncentive.sol/library.LibCurveDollarIncentive.md b/packages/contracts/docs/src/src/dollar/libraries/LibCurveDollarIncentive.sol/library.LibCurveDollarIncentive.md index 45d9c2d33..bbc9c2dc2 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/LibCurveDollarIncentive.sol/library.LibCurveDollarIncentive.md +++ b/packages/contracts/docs/src/src/dollar/libraries/LibCurveDollarIncentive.sol/library.LibCurveDollarIncentive.md @@ -1,5 +1,5 @@ # LibCurveDollarIncentive -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/LibCurveDollarIncentive.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/LibCurveDollarIncentive.sol) Library adds buy incentive and sell penalty for Curve's Dollar-3CRV MetaPool diff --git a/packages/contracts/docs/src/src/dollar/libraries/LibDiamond.sol/error.InitializationFunctionReverted.md b/packages/contracts/docs/src/src/dollar/libraries/LibDiamond.sol/error.InitializationFunctionReverted.md index bfd5deba2..86b2fec8b 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/LibDiamond.sol/error.InitializationFunctionReverted.md +++ b/packages/contracts/docs/src/src/dollar/libraries/LibDiamond.sol/error.InitializationFunctionReverted.md @@ -1,5 +1,5 @@ # InitializationFunctionReverted -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/LibDiamond.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/LibDiamond.sol) Error thrown when `initializeDiamondCut()` fails diff --git a/packages/contracts/docs/src/src/dollar/libraries/LibDiamond.sol/library.LibDiamond.md b/packages/contracts/docs/src/src/dollar/libraries/LibDiamond.sol/library.LibDiamond.md index 91a3d6112..923612972 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/LibDiamond.sol/library.LibDiamond.md +++ b/packages/contracts/docs/src/src/dollar/libraries/LibDiamond.sol/library.LibDiamond.md @@ -1,5 +1,5 @@ # LibDiamond -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/LibDiamond.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/LibDiamond.sol) Library used for diamond facets and selector modifications diff --git a/packages/contracts/docs/src/src/dollar/libraries/LibDirectGovernanceFarmer.sol/library.LibDirectGovernanceFarmer.md b/packages/contracts/docs/src/src/dollar/libraries/LibDirectGovernanceFarmer.sol/library.LibDirectGovernanceFarmer.md index 8f9bda370..3d4923698 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/LibDirectGovernanceFarmer.sol/library.LibDirectGovernanceFarmer.md +++ b/packages/contracts/docs/src/src/dollar/libraries/LibDirectGovernanceFarmer.sol/library.LibDirectGovernanceFarmer.md @@ -1,5 +1,5 @@ # LibDirectGovernanceFarmer -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/LibDirectGovernanceFarmer.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/LibDirectGovernanceFarmer.sol) ## State Variables diff --git a/packages/contracts/docs/src/src/dollar/libraries/LibDollarMintCalculator.sol/library.LibDollarMintCalculator.md b/packages/contracts/docs/src/src/dollar/libraries/LibDollarMintCalculator.sol/library.LibDollarMintCalculator.md index f2a5208a7..ba201d2a2 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/LibDollarMintCalculator.sol/library.LibDollarMintCalculator.md +++ b/packages/contracts/docs/src/src/dollar/libraries/LibDollarMintCalculator.sol/library.LibDollarMintCalculator.md @@ -1,5 +1,5 @@ # LibDollarMintCalculator -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/LibDollarMintCalculator.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/LibDollarMintCalculator.sol) Calculates amount of Dollars ready to be minted when TWAP price (i.e. Dollar price) > 1$ diff --git a/packages/contracts/docs/src/src/dollar/libraries/LibDollarMintExcess.sol/library.LibDollarMintExcess.md b/packages/contracts/docs/src/src/dollar/libraries/LibDollarMintExcess.sol/library.LibDollarMintExcess.md index 468f39719..ef82f6fa0 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/LibDollarMintExcess.sol/library.LibDollarMintExcess.md +++ b/packages/contracts/docs/src/src/dollar/libraries/LibDollarMintExcess.sol/library.LibDollarMintExcess.md @@ -1,5 +1,5 @@ # LibDollarMintExcess -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/LibDollarMintExcess.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/LibDollarMintExcess.sol) Library for distributing excess Dollars when `mintClaimableDollars()` is called diff --git a/packages/contracts/docs/src/src/dollar/libraries/LibStaking.sol/library.LibStaking.md b/packages/contracts/docs/src/src/dollar/libraries/LibStaking.sol/library.LibStaking.md index 37027b282..44ac0e2ad 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/LibStaking.sol/library.LibStaking.md +++ b/packages/contracts/docs/src/src/dollar/libraries/LibStaking.sol/library.LibStaking.md @@ -1,5 +1,5 @@ # LibStaking -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/LibStaking.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/LibStaking.sol) Staking library diff --git a/packages/contracts/docs/src/src/dollar/libraries/LibStakingFormulas.sol/library.LibStakingFormulas.md b/packages/contracts/docs/src/src/dollar/libraries/LibStakingFormulas.sol/library.LibStakingFormulas.md index cdcaf78d3..a2adbe3c3 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/LibStakingFormulas.sol/library.LibStakingFormulas.md +++ b/packages/contracts/docs/src/src/dollar/libraries/LibStakingFormulas.sol/library.LibStakingFormulas.md @@ -1,5 +1,5 @@ # LibStakingFormulas -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/LibStakingFormulas.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/LibStakingFormulas.sol) Library for staking formulas diff --git a/packages/contracts/docs/src/src/dollar/libraries/LibUbiquityPool.sol/library.LibUbiquityPool.md b/packages/contracts/docs/src/src/dollar/libraries/LibUbiquityPool.sol/library.LibUbiquityPool.md index 6f43f2c6b..c048fb538 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/LibUbiquityPool.sol/library.LibUbiquityPool.md +++ b/packages/contracts/docs/src/src/dollar/libraries/LibUbiquityPool.sol/library.LibUbiquityPool.md @@ -1,5 +1,5 @@ # LibUbiquityPool -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/LibUbiquityPool.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/LibUbiquityPool.sol) Ubiquity pool library diff --git a/packages/contracts/docs/src/src/dollar/libraries/UintUtils.sol/library.UintUtils.md b/packages/contracts/docs/src/src/dollar/libraries/UintUtils.sol/library.UintUtils.md index a9be559e1..28565a0de 100644 --- a/packages/contracts/docs/src/src/dollar/libraries/UintUtils.sol/library.UintUtils.md +++ b/packages/contracts/docs/src/src/dollar/libraries/UintUtils.sol/library.UintUtils.md @@ -1,5 +1,5 @@ # UintUtils -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/libraries/UintUtils.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/libraries/UintUtils.sol) *Derived from https://github.com/OpenZeppelin/openzeppelin-contracts/ (MIT license)* diff --git a/packages/contracts/docs/src/src/dollar/mocks/MockChainLinkFeed.sol/contract.MockChainLinkFeed.md b/packages/contracts/docs/src/src/dollar/mocks/MockChainLinkFeed.sol/contract.MockChainLinkFeed.md index 407b91a09..594377c87 100644 --- a/packages/contracts/docs/src/src/dollar/mocks/MockChainLinkFeed.sol/contract.MockChainLinkFeed.md +++ b/packages/contracts/docs/src/src/dollar/mocks/MockChainLinkFeed.sol/contract.MockChainLinkFeed.md @@ -1,5 +1,5 @@ # MockChainLinkFeed -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/mocks/MockChainLinkFeed.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/mocks/MockChainLinkFeed.sol) **Inherits:** AggregatorV3Interface diff --git a/packages/contracts/docs/src/src/dollar/mocks/MockCurveFactory.sol/contract.MockCurveFactory.md b/packages/contracts/docs/src/src/dollar/mocks/MockCurveFactory.sol/contract.MockCurveFactory.md index fd11f1c02..ee91245ad 100644 --- a/packages/contracts/docs/src/src/dollar/mocks/MockCurveFactory.sol/contract.MockCurveFactory.md +++ b/packages/contracts/docs/src/src/dollar/mocks/MockCurveFactory.sol/contract.MockCurveFactory.md @@ -1,5 +1,5 @@ # MockCurveFactory -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/mocks/MockCurveFactory.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/mocks/MockCurveFactory.sol) **Inherits:** [ICurveFactory](/src/dollar/interfaces/ICurveFactory.sol/interface.ICurveFactory.md) diff --git a/packages/contracts/docs/src/src/dollar/mocks/MockCurveStableSwapMetaNG.sol/contract.MockCurveStableSwapMetaNG.md b/packages/contracts/docs/src/src/dollar/mocks/MockCurveStableSwapMetaNG.sol/contract.MockCurveStableSwapMetaNG.md index f08c564ad..dc0c10953 100644 --- a/packages/contracts/docs/src/src/dollar/mocks/MockCurveStableSwapMetaNG.sol/contract.MockCurveStableSwapMetaNG.md +++ b/packages/contracts/docs/src/src/dollar/mocks/MockCurveStableSwapMetaNG.sol/contract.MockCurveStableSwapMetaNG.md @@ -1,5 +1,5 @@ # MockCurveStableSwapMetaNG -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/mocks/MockCurveStableSwapMetaNG.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/mocks/MockCurveStableSwapMetaNG.sol) **Inherits:** [ICurveStableSwapMetaNG](/src/dollar/interfaces/ICurveStableSwapMetaNG.sol/interface.ICurveStableSwapMetaNG.md), [MockERC20](/src/dollar/mocks/MockERC20.sol/contract.MockERC20.md) diff --git a/packages/contracts/docs/src/src/dollar/mocks/MockCurveStableSwapNG.sol/contract.MockCurveStableSwapNG.md b/packages/contracts/docs/src/src/dollar/mocks/MockCurveStableSwapNG.sol/contract.MockCurveStableSwapNG.md index 5254aeecc..02b88871a 100644 --- a/packages/contracts/docs/src/src/dollar/mocks/MockCurveStableSwapNG.sol/contract.MockCurveStableSwapNG.md +++ b/packages/contracts/docs/src/src/dollar/mocks/MockCurveStableSwapNG.sol/contract.MockCurveStableSwapNG.md @@ -1,5 +1,5 @@ # MockCurveStableSwapNG -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/mocks/MockCurveStableSwapNG.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/mocks/MockCurveStableSwapNG.sol) **Inherits:** [ICurveStableSwapNG](/src/dollar/interfaces/ICurveStableSwapNG.sol/interface.ICurveStableSwapNG.md), [MockCurveStableSwapMetaNG](/src/dollar/mocks/MockCurveStableSwapMetaNG.sol/contract.MockCurveStableSwapMetaNG.md) diff --git a/packages/contracts/docs/src/src/dollar/mocks/MockCurveTwocryptoOptimized.sol/contract.MockCurveTwocryptoOptimized.md b/packages/contracts/docs/src/src/dollar/mocks/MockCurveTwocryptoOptimized.sol/contract.MockCurveTwocryptoOptimized.md index 025cc60dc..7bc60dea2 100644 --- a/packages/contracts/docs/src/src/dollar/mocks/MockCurveTwocryptoOptimized.sol/contract.MockCurveTwocryptoOptimized.md +++ b/packages/contracts/docs/src/src/dollar/mocks/MockCurveTwocryptoOptimized.sol/contract.MockCurveTwocryptoOptimized.md @@ -1,5 +1,5 @@ # MockCurveTwocryptoOptimized -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/mocks/MockCurveTwocryptoOptimized.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/mocks/MockCurveTwocryptoOptimized.sol) **Inherits:** [ICurveTwocryptoOptimized](/src/dollar/interfaces/ICurveTwocryptoOptimized.sol/interface.ICurveTwocryptoOptimized.md), [MockCurveStableSwapMetaNG](/src/dollar/mocks/MockCurveStableSwapMetaNG.sol/contract.MockCurveStableSwapMetaNG.md) diff --git a/packages/contracts/docs/src/src/dollar/mocks/MockERC20.sol/contract.MockERC20.md b/packages/contracts/docs/src/src/dollar/mocks/MockERC20.sol/contract.MockERC20.md index 46f2f2173..27aec6457 100644 --- a/packages/contracts/docs/src/src/dollar/mocks/MockERC20.sol/contract.MockERC20.md +++ b/packages/contracts/docs/src/src/dollar/mocks/MockERC20.sol/contract.MockERC20.md @@ -1,5 +1,5 @@ # MockERC20 -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/mocks/MockERC20.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/mocks/MockERC20.sol) **Inherits:** ERC20 diff --git a/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/constants.MockFacet.md b/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/constants.MockFacet.md index c23227ef8..26a6e8c71 100644 --- a/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/constants.MockFacet.md +++ b/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/constants.MockFacet.md @@ -1,5 +1,5 @@ # Constants -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/mocks/MockFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/mocks/MockFacet.sol) ### NEW_STORAGE_POSITION diff --git a/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/contract.MockFacetInitializer.md b/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/contract.MockFacetInitializer.md index d6f309a76..35a46f2e1 100644 --- a/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/contract.MockFacetInitializer.md +++ b/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/contract.MockFacetInitializer.md @@ -1,5 +1,5 @@ # MockFacetInitializer -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/mocks/MockFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/mocks/MockFacet.sol) ## Functions diff --git a/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/contract.MockFacetWithExtendedStorageWriteFunctions.md b/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/contract.MockFacetWithExtendedStorageWriteFunctions.md index cf7c72f0c..c7ff63f56 100644 --- a/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/contract.MockFacetWithExtendedStorageWriteFunctions.md +++ b/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/contract.MockFacetWithExtendedStorageWriteFunctions.md @@ -1,5 +1,5 @@ # MockFacetWithExtendedStorageWriteFunctions -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/mocks/MockFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/mocks/MockFacet.sol) **Inherits:** [IMockFacet](/src/dollar/mocks/MockFacet.sol/interface.IMockFacet.md) diff --git a/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/contract.MockFacetWithPureFunctions.md b/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/contract.MockFacetWithPureFunctions.md index e9eb076b6..a41b791c2 100644 --- a/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/contract.MockFacetWithPureFunctions.md +++ b/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/contract.MockFacetWithPureFunctions.md @@ -1,5 +1,5 @@ # MockFacetWithPureFunctions -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/mocks/MockFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/mocks/MockFacet.sol) **Inherits:** [IMockFacet](/src/dollar/mocks/MockFacet.sol/interface.IMockFacet.md) diff --git a/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/contract.MockFacetWithStorageWriteFunctions.md b/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/contract.MockFacetWithStorageWriteFunctions.md index ef9310fdd..950e72cb1 100644 --- a/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/contract.MockFacetWithStorageWriteFunctions.md +++ b/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/contract.MockFacetWithStorageWriteFunctions.md @@ -1,5 +1,5 @@ # MockFacetWithStorageWriteFunctions -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/mocks/MockFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/mocks/MockFacet.sol) **Inherits:** [IMockFacet](/src/dollar/mocks/MockFacet.sol/interface.IMockFacet.md) diff --git a/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/interface.IMockFacet.md b/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/interface.IMockFacet.md index c6c000b5a..1268d37fc 100644 --- a/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/interface.IMockFacet.md +++ b/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/interface.IMockFacet.md @@ -1,5 +1,5 @@ # IMockFacet -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/mocks/MockFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/mocks/MockFacet.sol) ## Functions diff --git a/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/struct.NewSimpleStorage.md b/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/struct.NewSimpleStorage.md index 6b4595cd1..0563d397f 100644 --- a/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/struct.NewSimpleStorage.md +++ b/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/struct.NewSimpleStorage.md @@ -1,5 +1,5 @@ # NewSimpleStorage -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/mocks/MockFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/mocks/MockFacet.sol) ```solidity diff --git a/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/struct.NewStorageExtended.md b/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/struct.NewStorageExtended.md index c84d15c89..08324035d 100644 --- a/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/struct.NewStorageExtended.md +++ b/packages/contracts/docs/src/src/dollar/mocks/MockFacet.sol/struct.NewStorageExtended.md @@ -1,5 +1,5 @@ # NewStorageExtended -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/mocks/MockFacet.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/mocks/MockFacet.sol) ```solidity diff --git a/packages/contracts/docs/src/src/dollar/mocks/MockShareV1.sol/contract.BondingShare.md b/packages/contracts/docs/src/src/dollar/mocks/MockShareV1.sol/contract.BondingShare.md index 807243ee0..bf3d7d3e0 100644 --- a/packages/contracts/docs/src/src/dollar/mocks/MockShareV1.sol/contract.BondingShare.md +++ b/packages/contracts/docs/src/src/dollar/mocks/MockShareV1.sol/contract.BondingShare.md @@ -1,5 +1,5 @@ # BondingShare -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/mocks/MockShareV1.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/mocks/MockShareV1.sol) **Inherits:** [StakingShare](/src/dollar/core/StakingShare.sol/contract.StakingShare.md) diff --git a/packages/contracts/docs/src/src/dollar/upgradeInitializers/DiamondInit.sol/contract.DiamondInit.md b/packages/contracts/docs/src/src/dollar/upgradeInitializers/DiamondInit.sol/contract.DiamondInit.md index c7fe0184e..20f1a4d5a 100644 --- a/packages/contracts/docs/src/src/dollar/upgradeInitializers/DiamondInit.sol/contract.DiamondInit.md +++ b/packages/contracts/docs/src/src/dollar/upgradeInitializers/DiamondInit.sol/contract.DiamondInit.md @@ -1,5 +1,5 @@ # DiamondInit -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/upgradeInitializers/DiamondInit.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/upgradeInitializers/DiamondInit.sol) **Inherits:** [Modifiers](/src/dollar/libraries/LibAppStorage.sol/contract.Modifiers.md) diff --git a/packages/contracts/docs/src/src/dollar/utils/SafeAddArray.sol/library.SafeAddArray.md b/packages/contracts/docs/src/src/dollar/utils/SafeAddArray.sol/library.SafeAddArray.md index f816f9bad..247ca9291 100644 --- a/packages/contracts/docs/src/src/dollar/utils/SafeAddArray.sol/library.SafeAddArray.md +++ b/packages/contracts/docs/src/src/dollar/utils/SafeAddArray.sol/library.SafeAddArray.md @@ -1,5 +1,5 @@ # SafeAddArray -[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/0cae71618450aff584ed3369a18e2ba12900dc6b/src/dollar/utils/SafeAddArray.sol) +[Git Source](https://github.com/ubiquity/ubiquity-dollar/blob/c8e4c35e03024dbea12740d3dfedc8e8a0bad6a8/src/dollar/utils/SafeAddArray.sol) Wrappers over Solidity's array push operations with added check From 96dae222847262cd6119766b3d14e42ef9b7ee4b Mon Sep 17 00:00:00 2001 From: rndquu <119500907+rndquu@users.noreply.github.com> Date: Mon, 23 Sep 2024 23:09:33 +0300 Subject: [PATCH 19/28] ci: update deep-invariant.yml --- .github/workflows/deep-invariant.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deep-invariant.yml b/.github/workflows/deep-invariant.yml index b6a96911e..16cd6cfce 100644 --- a/.github/workflows/deep-invariant.yml +++ b/.github/workflows/deep-invariant.yml @@ -20,7 +20,7 @@ jobs: - name: Setup Foundry uses: foundry-rs/foundry-toolchain@v1 with: - version: nightly-5be158ba6dc7c79a8f6302026fe60fc01606b33b + version: nightly-5be158ba6dc7c798a6f032026fe60fc01686b33b - name: Forge install working-directory: packages/contracts From aa758b745b67bc08ebc983d3b0c9f9547a2b6227 Mon Sep 17 00:00:00 2001 From: rndquu Date: Mon, 30 Sep 2024 11:13:37 +0300 Subject: [PATCH 20/28] ci: test --- .github/workflows/run-semgrep.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-semgrep.yaml b/.github/workflows/run-semgrep.yaml index cde080ca1..ad7e7ae59 100644 --- a/.github/workflows/run-semgrep.yaml +++ b/.github/workflows/run-semgrep.yaml @@ -24,7 +24,7 @@ jobs: repository: decurity/semgrep-smart-contracts path: rules - - run: semgrep ci --sarif --output=semgrep.sarif --include packages/contracts/src/dollar || true + - run: semgrep ci --sarif --output=semgrep.sarif --include packages/contracts/src/dollar --verbose || true env: SEMGREP_RULES: rules/solidity/security rules/solidity/performance From 3741d4ceb3cddda43dda9a91cd9a92798f63af14 Mon Sep 17 00:00:00 2001 From: rndquu Date: Mon, 30 Sep 2024 11:16:30 +0300 Subject: [PATCH 21/28] ci: test --- .github/workflows/run-semgrep.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-semgrep.yaml b/.github/workflows/run-semgrep.yaml index ad7e7ae59..6c610f33c 100644 --- a/.github/workflows/run-semgrep.yaml +++ b/.github/workflows/run-semgrep.yaml @@ -26,7 +26,7 @@ jobs: - run: semgrep ci --sarif --output=semgrep.sarif --include packages/contracts/src/dollar --verbose || true env: - SEMGREP_RULES: rules/solidity/security rules/solidity/performance + SEMGREP_RULES: rules/solidity/security - name: Upload findings to GitHub Advanced Security Dashboard uses: github/codeql-action/upload-sarif@v2 From a88e853684f81ec5a229d0f278da6d5ce0f4d3e7 Mon Sep 17 00:00:00 2001 From: rndquu Date: Mon, 30 Sep 2024 11:34:12 +0300 Subject: [PATCH 22/28] ci: test --- .github/workflows/run-semgrep.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-semgrep.yaml b/.github/workflows/run-semgrep.yaml index 6c610f33c..2dfc015e6 100644 --- a/.github/workflows/run-semgrep.yaml +++ b/.github/workflows/run-semgrep.yaml @@ -24,7 +24,7 @@ jobs: repository: decurity/semgrep-smart-contracts path: rules - - run: semgrep ci --sarif --output=semgrep.sarif --include packages/contracts/src/dollar --verbose || true + - run: semgrep ci --sarif --output=semgrep.sarif --include packages/contracts/src/dollar --suppress-errors false || true env: SEMGREP_RULES: rules/solidity/security From 70071d74ad91b13dc8c019af2f6eae12418a4d4e Mon Sep 17 00:00:00 2001 From: rndquu Date: Mon, 30 Sep 2024 11:37:34 +0300 Subject: [PATCH 23/28] ci: test --- .github/workflows/run-semgrep.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/run-semgrep.yaml b/.github/workflows/run-semgrep.yaml index 2dfc015e6..7977a4f8c 100644 --- a/.github/workflows/run-semgrep.yaml +++ b/.github/workflows/run-semgrep.yaml @@ -24,9 +24,10 @@ jobs: repository: decurity/semgrep-smart-contracts path: rules - - run: semgrep ci --sarif --output=semgrep.sarif --include packages/contracts/src/dollar --suppress-errors false || true + - run: semgrep ci --sarif --output=semgrep.sarif --include packages/contracts/src/dollar || true env: SEMGREP_RULES: rules/solidity/security + SEMGREP_SUPPRESS_ERRORS: false - name: Upload findings to GitHub Advanced Security Dashboard uses: github/codeql-action/upload-sarif@v2 From 27c3e39cabaa103e2c702c81d2aac53d1e3e9b20 Mon Sep 17 00:00:00 2001 From: rndquu Date: Mon, 30 Sep 2024 11:40:05 +0300 Subject: [PATCH 24/28] ci: test --- .github/workflows/run-semgrep.yaml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/run-semgrep.yaml b/.github/workflows/run-semgrep.yaml index 7977a4f8c..5f36fe2b4 100644 --- a/.github/workflows/run-semgrep.yaml +++ b/.github/workflows/run-semgrep.yaml @@ -24,10 +24,9 @@ jobs: repository: decurity/semgrep-smart-contracts path: rules - - run: semgrep ci --sarif --output=semgrep.sarif --include packages/contracts/src/dollar || true + - run: semgrep ci --sarif --output=semgrep.sarif --include packages/contracts/src/dollar --no-suppress-errors env: SEMGREP_RULES: rules/solidity/security - SEMGREP_SUPPRESS_ERRORS: false - name: Upload findings to GitHub Advanced Security Dashboard uses: github/codeql-action/upload-sarif@v2 From e68c548b51f987e39eb38dcd8fbe847fbc7887f2 Mon Sep 17 00:00:00 2001 From: rndquu Date: Mon, 30 Sep 2024 11:49:32 +0300 Subject: [PATCH 25/28] ci: test --- .semgrepignore | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 .semgrepignore diff --git a/.semgrepignore b/.semgrepignore new file mode 100644 index 000000000..3b3bcff3a --- /dev/null +++ b/.semgrepignore @@ -0,0 +1,4 @@ +# deprecated contracts +packages/contracts/src/dollar/core/CrediftNft.sol +packages/contracts/src/dollar/core/StakingShare.sol +packages/contracts/src/dollar/libraries/LibCreditNftManager.sol From 496513b72a43ebc6086493c3176dd9cc0b9c333f Mon Sep 17 00:00:00 2001 From: rndquu Date: Mon, 30 Sep 2024 11:51:40 +0300 Subject: [PATCH 26/28] ci: test --- .semgrepignore | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.semgrepignore b/.semgrepignore index 3b3bcff3a..781f01103 100644 --- a/.semgrepignore +++ b/.semgrepignore @@ -1,4 +1,8 @@ +# mocks +packages/contracts/src/dollar/mocks + # deprecated contracts -packages/contracts/src/dollar/core/CrediftNft.sol +packages/contracts/src/dollar/core/CreditNft.sol packages/contracts/src/dollar/core/StakingShare.sol packages/contracts/src/dollar/libraries/LibCreditNftManager.sol +packages/contracts/src/dollar/libraries/LibDollarMintExcess.sol From e21970e60a4431f27e6e9181c31d696c8642cb86 Mon Sep 17 00:00:00 2001 From: rndquu Date: Mon, 30 Sep 2024 11:53:47 +0300 Subject: [PATCH 27/28] ci: test --- .semgrepignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.semgrepignore b/.semgrepignore index 781f01103..7a613e799 100644 --- a/.semgrepignore +++ b/.semgrepignore @@ -1,5 +1,5 @@ # mocks -packages/contracts/src/dollar/mocks +packages/contracts/src/dollar/mocks/ # deprecated contracts packages/contracts/src/dollar/core/CreditNft.sol From 258ff613afe233e1830a3b5c429e7ef20e9f30fb Mon Sep 17 00:00:00 2001 From: rndquu Date: Mon, 30 Sep 2024 11:57:19 +0300 Subject: [PATCH 28/28] ci: test --- .github/workflows/run-semgrep.yaml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/run-semgrep.yaml b/.github/workflows/run-semgrep.yaml index 5f36fe2b4..bcc45a4f0 100644 --- a/.github/workflows/run-semgrep.yaml +++ b/.github/workflows/run-semgrep.yaml @@ -1,9 +1,13 @@ name: Run Semgrep on: + workflow_dispatch: push: + paths: + - '**.sol' pull_request: - workflow_dispatch: + paths: + - '**.sol' jobs: semgrep: