generated from bgd-labs/bgd-forge-template
-
Notifications
You must be signed in to change notification settings - Fork 10
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #50 from bgd-labs/feat/sDAI
feat: add sDAI capo
- Loading branch information
Showing
10 changed files
with
248 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# Capo Report | ||
|
||
| Capped sDAI / DAI / USD | DAI / USD | Diff | Date | 7-day growth in yearly % | | ||
| ----------------------- | ---------- | ------ | ----------- | ------------------------ | | ||
| 1.11334971 | 0.99966482 | 10.76% | 17 Oct 2024 | 5.38% | | ||
| 1.1136328 | 0.99977 | 10.78% | 18 Oct 2024 | 5.35% | | ||
| 1.11383086 | 0.99979973 | 10.79% | 19 Oct 2024 | 5.35% | | ||
| 1.11414282 | 0.99992865 | 10.81% | 20 Oct 2024 | 5.37% | | ||
| 1.11434215 | 0.99995926 | 10.82% | 21 Oct 2024 | 5.35% | | ||
| 1.11428835 | 0.99976 | 10.83% | 22 Oct 2024 | 5.35% | | ||
| 1.11442294 | 0.99973188 | 10.85% | 23 Oct 2024 | 5.35% | | ||
| 1.11455532 | 0.99970131 | 10.86% | 24 Oct 2024 | 5.35% | | ||
| 1.11485537 | 0.99982108 | 10.88% | 25 Oct 2024 | 5.35% | | ||
| 1.11484808 | 0.99966494 | 10.89% | 26 Oct 2024 | 5.36% | | ||
| 1.11510009 | 0.99974234 | 10.91% | 27 Oct 2024 | 5.35% | | ||
| 1.11544634 | 0.99990409 | 10.92% | 28 Oct 2024 | 5.35% | | ||
| 1.11556526 | 0.99986 | 10.94% | 29 Oct 2024 | 5.35% | | ||
| 1.1158962 | 1.00000876 | 10.95% | 30 Oct 2024 | 5.34% | | ||
|
||
- 7-day growth is calculated as an annualized percentage relative to the value of the rate 7 days prior. | ||
|
||
| Max Yearly % | Max Day-to-day yearly % | Max 7-day yearly % | | ||
| ------------ | ----------------------- | ------------------ | | ||
| 9.69% | 5.53% | 5.38% | | ||
|
||
- Max day-to-day yearly % indicates the maximum growth between two emissions as an annualized percentage. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# Capo Report | ||
|
||
| Capped sDAI / DAI / USD | DAI / USD | Diff | Date | 7-day growth in yearly % | | ||
| ----------------------- | ---------- | ------ | ----------- | ------------------------ | | ||
| 1.11779532 | 0.99971365 | 11.15% | 17 Oct 2024 | 6.96% | | ||
| 1.1179241 | 0.99966346 | 11.17% | 18 Oct 2024 | 6.74% | | ||
| 1.11822501 | 0.99976211 | 11.19% | 19 Oct 2024 | 6.70% | | ||
| 1.11832166 | 0.999735 | 11.20% | 20 Oct 2024 | 6.31% | | ||
| 1.1187078 | 0.99978507 | 11.23% | 21 Oct 2024 | 7.31% | | ||
| 1.11896805 | 0.99984 | 11.24% | 22 Oct 2024 | 6.84% | | ||
| 1.11914493 | 0.99979999 | 11.26% | 23 Oct 2024 | 6.78% | | ||
| 1.119103 | 0.99966681 | 11.27% | 24 Oct 2024 | 6.23% | | ||
| 1.11942566 | 0.99966508 | 11.30% | 25 Oct 2024 | 6.88% | | ||
| 1.11978946 | 0.99980639 | 11.32% | 26 Oct 2024 | 6.94% | | ||
| 1.11996144 | 0.99981308 | 11.34% | 27 Oct 2024 | 7.11% | | ||
| 1.1201338 | 0.99974778 | 11.36% | 28 Oct 2024 | 6.71% | | ||
| 1.12047981 | 0.99987 | 11.38% | 29 Oct 2024 | 6.74% | | ||
| 1.12103936 | 1.00018123 | 11.40% | 30 Oct 2024 | 6.69% | | ||
|
||
- 7-day growth is calculated as an annualized percentage relative to the value of the rate 7 days prior. | ||
|
||
| Max Yearly % | Max Day-to-day yearly % | Max 7-day yearly % | | ||
| ------------ | ----------------------- | ------------------ | | ||
| 9.69% | 10.69% | 7.31% | | ||
|
||
- Max day-to-day yearly % indicates the maximum growth between two emissions as an annualized percentage. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
// SPDX-License-Identifier: BUSL-1.1 | ||
pragma solidity ^0.8.0; | ||
|
||
import {GovV3Helpers} from 'aave-helpers/GovV3Helpers.sol'; | ||
import {GnosisScript} from 'solidity-utils/contracts/utils/ScriptUtils.sol'; | ||
import {AaveV3Gnosis, AaveV3GnosisAssets} from 'aave-address-book/AaveV3Gnosis.sol'; | ||
|
||
import {sDAIGnosisPriceCapAdapter} from '../src/contracts/lst-adapters/sDAIGnosisPriceCapAdapter.sol'; | ||
import {IPriceCapAdapter} from '../src/interfaces/IPriceCapAdapter.sol'; | ||
|
||
library CapAdaptersCodeGnosis { | ||
address public constant DAI_PRICE_FEED = 0x678df3415fc31947dA4324eC63212874be5a82f8; | ||
|
||
function sDAIAdapterCode() internal pure returns (bytes memory) { | ||
return | ||
abi.encodePacked( | ||
type(sDAIGnosisPriceCapAdapter).creationCode, | ||
abi.encode( | ||
IPriceCapAdapter.CapAdapterParams({ | ||
aclManager: AaveV3Gnosis.ACL_MANAGER, | ||
baseAggregatorAddress: DAI_PRICE_FEED, | ||
ratioProviderAddress: AaveV3GnosisAssets.sDAI_UNDERLYING, | ||
pairDescription: 'Capped sDAI / DAI / USD', | ||
minimumSnapshotDelay: 7 days, | ||
priceCapParams: IPriceCapAdapter.PriceCapUpdateParams({ | ||
snapshotRatio: 1_118618102334074883, | ||
snapshotTimestamp: 1729423540, | ||
maxYearlyRatioGrowthPercent: 9_69 | ||
}) | ||
}) | ||
) | ||
); | ||
} | ||
} | ||
|
||
contract DeploySDaiGnosis is GnosisScript { | ||
function run() external broadcast { | ||
GovV3Helpers.deployDeterministic(CapAdaptersCodeGnosis.sDAIAdapterCode()); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
// SPDX-License-Identifier: BUSL-1.1 | ||
pragma solidity ^0.8.19; | ||
|
||
import {IERC4626} from 'forge-std/interfaces/IERC4626.sol'; | ||
import {PriceCapAdapterBase, IPriceCapAdapter} from '../PriceCapAdapterBase.sol'; | ||
|
||
/** | ||
* @title sDAIGnosisPriceCapAdapter | ||
* @author BGD Labs | ||
* @notice Price capped adapter to calculate price of (sDAI / USD) pair by using | ||
* @notice Chainlink data feed for (DAI / USD) and (sDAI / DAI) ratio on Gnosis network. | ||
*/ | ||
contract sDAIGnosisPriceCapAdapter is PriceCapAdapterBase { | ||
/** | ||
* @param capAdapterParams parameters to create cap adapter | ||
*/ | ||
constructor( | ||
CapAdapterParams memory capAdapterParams | ||
) | ||
PriceCapAdapterBase( | ||
CapAdapterBaseParams({ | ||
aclManager: capAdapterParams.aclManager, | ||
baseAggregatorAddress: capAdapterParams.baseAggregatorAddress, | ||
ratioProviderAddress: capAdapterParams.ratioProviderAddress, | ||
pairDescription: capAdapterParams.pairDescription, | ||
ratioDecimals: 18, | ||
minimumSnapshotDelay: capAdapterParams.minimumSnapshotDelay, | ||
priceCapParams: capAdapterParams.priceCapParams | ||
}) | ||
) | ||
{} | ||
|
||
/// @inheritdoc IPriceCapAdapter | ||
function getRatio() public view override returns (int256) { | ||
return int256(IERC4626(RATIO_PROVIDER).convertToAssets(10 ** RATIO_DECIMALS)); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
// SPDX-License-Identifier: BUSL-1.1 | ||
pragma solidity ^0.8.19; | ||
|
||
import {PriceCapAdapterBase, IPriceCapAdapter} from '../PriceCapAdapterBase.sol'; | ||
import {IPot} from 'cl-synchronicity-price-adapter/interfaces/IPot.sol'; | ||
|
||
/** | ||
* @title sDAIMainnetPriceCapAdapter | ||
* @author BGD Labs | ||
* @notice Price capped adapter to calculate price of (sDAI / USD) pair by using | ||
* @notice Chainlink data feed for (DAI / USD) and (sDAI / DAI) ratio on Ethereum network. | ||
*/ | ||
contract sDAIMainnetPriceCapAdapter is PriceCapAdapterBase { | ||
/** | ||
* @param capAdapterParams parameters to create cap adapter | ||
*/ | ||
constructor( | ||
CapAdapterParams memory capAdapterParams | ||
) | ||
PriceCapAdapterBase( | ||
CapAdapterBaseParams({ | ||
aclManager: capAdapterParams.aclManager, | ||
baseAggregatorAddress: capAdapterParams.baseAggregatorAddress, | ||
ratioProviderAddress: capAdapterParams.ratioProviderAddress, | ||
pairDescription: capAdapterParams.pairDescription, | ||
ratioDecimals: 27, | ||
minimumSnapshotDelay: capAdapterParams.minimumSnapshotDelay, | ||
priceCapParams: capAdapterParams.priceCapParams | ||
}) | ||
) | ||
{} | ||
|
||
/// @inheritdoc IPriceCapAdapter | ||
function getRatio() public view override returns (int256) { | ||
return int256(IPot(RATIO_PROVIDER).chi()); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
// SPDX-License-Identifier: BUSL-1.1 | ||
pragma solidity ^0.8.0; | ||
|
||
import '../BaseTest.sol'; | ||
import {sDAIMainnetPriceCapAdapter} from '../../src/contracts/lst-adapters/sDAIMainnetPriceCapAdapter.sol'; | ||
import {CapAdaptersCodeEthereum} from '../../scripts/DeployEthereum.s.sol'; | ||
|
||
contract sDAIMainnetPriceCapAdapterTest is BaseTest { | ||
constructor() | ||
BaseTest( | ||
CapAdaptersCodeEthereum.sDAIAdapterCode(), | ||
20, | ||
ForkParams({network: 'mainnet', blockNumber: 21079105}), | ||
'sDAI_Ethereum' | ||
) | ||
{} | ||
|
||
function _createAdapter( | ||
IPriceCapAdapter.CapAdapterParams memory capAdapterParams | ||
) internal override returns (IPriceCapAdapter) { | ||
return new sDAIMainnetPriceCapAdapter(capAdapterParams); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
// SPDX-License-Identifier: BUSL-1.1 | ||
pragma solidity ^0.8.0; | ||
|
||
import '../BaseTest.sol'; | ||
import {sDAIGnosisPriceCapAdapter} from '../../src/contracts/lst-adapters/sDAIGnosisPriceCapAdapter.sol'; | ||
import {CapAdaptersCodeGnosis} from '../../scripts/DeployGnosis.s.sol'; | ||
|
||
contract sDAIGnosisPriceCapAdapterTest is BaseTest { | ||
constructor() | ||
BaseTest( | ||
CapAdaptersCodeGnosis.sDAIAdapterCode(), | ||
20, | ||
ForkParams({network: 'gnosis', blockNumber: 36769758}), | ||
'sDAI_Gnosis' | ||
) | ||
{} | ||
|
||
function _createAdapter( | ||
IPriceCapAdapter.CapAdapterParams memory capAdapterParams | ||
) internal override returns (IPriceCapAdapter) { | ||
return new sDAIGnosisPriceCapAdapter(capAdapterParams); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters