@pendle/core-v2 1.2.0-mainnet → 1.3.0-mainnet
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +34 -2
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
- package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
- package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
- package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
- package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
- package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
- package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.json +141 -0
- package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.json +141 -0
- package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.json +50 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +143 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol/PendleAura3EthSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol/PendleAura3EthSY.json +1296 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol/PendleAuraCbethWstethSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol/PendleAuraCbethWstethSY.json +1283 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.json +1218 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.json +1231 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.json +10 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.json +133 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.json +10 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.json +40 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.json +322 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.json +1171 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.json +10 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.json +133 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +143 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +143 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +143 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.json +141 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +143 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +143 -2
- package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
- package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.json +2 -2
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +39 -2
- package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.json +10 -0
- package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.json +24 -0
- package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.json +133 -0
- package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.json +328 -0
- package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.json +467 -0
- package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.json +61 -0
- package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.json +30 -0
- package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.json +398 -0
- package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.json +24 -0
- package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.json +278 -0
- package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.json +18 -0
- package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.json +19 -0
- package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.json +322 -0
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +2 -2
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
- package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +2 -2
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
- package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +2 -2
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
- package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +2 -2
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
- package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
- package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +2 -2
- package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +1 -1
- package/contracts/core/StandardizedYield/SYBase.sol +23 -5
- package/contracts/core/StandardizedYield/StEthHelper.sol +71 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol +170 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol +162 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol +134 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol +154 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol +289 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol +618 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol +68 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol +322 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol +390 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol +329 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol +30 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol +189 -0
- package/contracts/core/libraries/ArrayLib.sol +6 -3
- package/contracts/core/libraries/Errors.sol +3 -0
- package/contracts/interfaces/Balancer/IAsset.sol +4 -0
- package/contracts/interfaces/Balancer/IBalancerFees.sol +6 -0
- package/contracts/interfaces/Balancer/IBalancerStablePreview.sol +22 -0
- package/contracts/interfaces/Balancer/IBasePool.sol +30 -0
- package/contracts/interfaces/Balancer/IComposableStable.sol +39 -0
- package/contracts/interfaces/Balancer/IGauge.sol +10 -0
- package/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol +6 -0
- package/contracts/interfaces/Balancer/IMetaStablePool.sol +31 -0
- package/contracts/interfaces/Balancer/IRateProvider.sol +6 -0
- package/contracts/interfaces/Balancer/IVault.sol +78 -0
- package/contracts/interfaces/ConvexCurve/IRewards.sol +5 -0
- package/contracts/router/kyberswap/AggregationRouterHelper.sol +10 -0
- package/deployments/1-core.json +1 -1
- package/deployments/1-markets/BALANCER-LP-AURA-RETH-WETH-28DEC.json +11 -0
- package/package.json +6 -6
- package/typechain-types/ComposableStablePreview.ts +217 -0
- package/typechain-types/IBalancerFees.ts +89 -0
- package/typechain-types/IBalancerStablePreview.ts +217 -0
- package/typechain-types/IBasePool.ts +482 -0
- package/typechain-types/IComposableStable.ts +730 -0
- package/typechain-types/IGauge.ts +160 -0
- package/typechain-types/ILiquidityGaugeFactory.ts +99 -0
- package/typechain-types/IMetaStablePool.ts +619 -0
- package/typechain-types/IPFeeDistributor.ts +18 -0
- package/typechain-types/IRateProvider.ts +81 -0
- package/typechain-types/IRewards.ts +35 -5
- package/typechain-types/IVault.ts +410 -0
- package/typechain-types/MetaStableMath.ts +113 -0
- package/typechain-types/MetaStablePreview.ts +501 -0
- package/typechain-types/Multicall2.ts +437 -0
- package/typechain-types/PendleAura3EthSY.ts +1639 -0
- package/typechain-types/PendleAuraBalancerStableLPSY.ts +1523 -0
- package/typechain-types/PendleAuraCbethWstethSY.ts +1626 -0
- package/typechain-types/PendleAuraWethRethSY.ts +1549 -0
- package/typechain-types/PendleAuraWethWstethSY.ts +1562 -0
- package/typechain-types/PendleConvexLPSY.ts +204 -0
- package/typechain-types/PendleCurveFraxUsdcSY.ts +204 -0
- package/typechain-types/PendleCurveUsdd3CrvSY.ts +204 -0
- package/typechain-types/PendleFeeDistributor.ts +37 -0
- package/typechain-types/PendleLooksStakingSY.ts +204 -0
- package/typechain-types/PendleQiTokenSY.ts +204 -0
- package/typechain-types/PendleWstEthSY.ts +204 -0
- package/typechain-types/SAPE.ts +204 -0
- package/typechain-types/SYBase.ts +204 -0
- package/typechain-types/SYBaseWithRewards.ts +204 -0
- package/typechain-types/StEthHelper.ts +107 -0
- package/typechain-types/StablePreviewBase.ts +217 -0
- package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
- package/typechain-types/factories/ActionCallback__factory.ts +1 -1
- package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
- package/typechain-types/factories/ActionMisc__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapPTYT__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
- package/typechain-types/factories/AggregationRouterHelper__factory.ts +1 -1
- package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
- package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
- package/typechain-types/factories/BulkSeller__factory.ts +1 -1
- package/typechain-types/factories/ComposableStablePreview__factory.ts +190 -0
- package/typechain-types/factories/Errors__factory.ts +38 -1
- package/typechain-types/factories/IBalancerFees__factory.ts +36 -0
- package/typechain-types/factories/IBalancerStablePreview__factory.ts +152 -0
- package/typechain-types/factories/IBasePool__factory.ts +340 -0
- package/typechain-types/factories/IComposableStable__factory.ts +482 -0
- package/typechain-types/factories/IGauge__factory.ts +70 -0
- package/typechain-types/factories/ILiquidityGaugeFactory__factory.ts +49 -0
- package/typechain-types/factories/IMetaStablePool__factory.ts +413 -0
- package/typechain-types/factories/IPFeeDistributor__factory.ts +19 -0
- package/typechain-types/factories/IRateProvider__factory.ts +36 -0
- package/typechain-types/factories/IRewards__factory.ts +18 -0
- package/typechain-types/factories/IVault__factory.ts +287 -0
- package/typechain-types/factories/MarketMathStatic__factory.ts +1 -1
- package/typechain-types/factories/MetaStableMath__factory.ts +93 -0
- package/typechain-types/factories/MetaStablePreview__factory.ts +375 -0
- package/typechain-types/factories/Multicall2__factory.ts +372 -0
- package/typechain-types/factories/OracleLib__factory.ts +1 -1
- package/typechain-types/factories/PendleAura3EthSY__factory.ts +1365 -0
- package/typechain-types/factories/PendleAuraBalancerStableLPSY__factory.ts +1190 -0
- package/typechain-types/factories/PendleAuraCbethWstethSY__factory.ts +1356 -0
- package/typechain-types/factories/PendleAuraWethRethSY__factory.ts +1291 -0
- package/typechain-types/factories/PendleAuraWethWstethSY__factory.ts +1304 -0
- package/typechain-types/factories/PendleConvexLPSY__factory.ts +141 -0
- package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +142 -1
- package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +142 -1
- package/typechain-types/factories/PendleFeeDistributor__factory.ts +33 -1
- package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleLooksStakingSY__factory.ts +142 -1
- package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleMarket__factory.ts +1 -1
- package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
- package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
- package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
- package/typechain-types/factories/PendleQiTokenSY__factory.ts +142 -1
- package/typechain-types/factories/PendleRouter__factory.ts +1 -1
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleWstEthSY__factory.ts +142 -1
- package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
- package/typechain-types/factories/RouterStatic__factory.ts +1 -1
- package/typechain-types/factories/SAPE__factory.ts +142 -1
- package/typechain-types/factories/SYBaseWithRewards__factory.ts +141 -0
- package/typechain-types/factories/SYBase__factory.ts +141 -0
- package/typechain-types/factories/StEthHelper__factory.ts +62 -0
- package/typechain-types/factories/StablePreviewBase__factory.ts +148 -0
- package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
- package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
- package/typechain-types/hardhat.d.ts +180 -9
- package/typechain-types/index.ts +40 -2
package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity 0.8.17;
|
|
3
|
+
|
|
4
|
+
import "./base/PendleAuraBalancerStableLPSY.sol";
|
|
5
|
+
import "../../StEthHelper.sol";
|
|
6
|
+
import "./base/ComposableStable/ComposableStablePreview.sol";
|
|
7
|
+
|
|
8
|
+
contract PendleAuraCbethWstethSY is PendleAuraBalancerStableLPSY, StEthHelper {
|
|
9
|
+
address public constant CBETH = 0xBe9895146f7AF43049ca1c1AE358B0541Ea49704;
|
|
10
|
+
|
|
11
|
+
uint256 internal constant AURA_PID = 37;
|
|
12
|
+
address internal constant LP = 0x4EdcB2B46377530Bc18BB4D2c7Fe46a992c73e10;
|
|
13
|
+
|
|
14
|
+
uint256 public constant BPT_INDEX = 0;
|
|
15
|
+
bool public constant NO_TOKENS_EXEMPT = true;
|
|
16
|
+
bool public constant ALL_TOKENS_EXEMPT = false;
|
|
17
|
+
|
|
18
|
+
constructor(
|
|
19
|
+
string memory _name,
|
|
20
|
+
string memory _symbol,
|
|
21
|
+
ComposableStablePreview _previewHelper
|
|
22
|
+
) PendleAuraBalancerStableLPSY(_name, _symbol, LP, AURA_PID, _previewHelper) {}
|
|
23
|
+
|
|
24
|
+
function _deposit(address tokenIn, uint256 amount)
|
|
25
|
+
internal
|
|
26
|
+
virtual
|
|
27
|
+
override
|
|
28
|
+
returns (uint256 amountSharesOut)
|
|
29
|
+
{
|
|
30
|
+
if (tokenIn == NATIVE || tokenIn == WETH || tokenIn == STETH) {
|
|
31
|
+
uint256 amountWstETH = _depositWstETH(tokenIn, amount);
|
|
32
|
+
amountSharesOut = super._deposit(WSTETH, amountWstETH);
|
|
33
|
+
} else {
|
|
34
|
+
amountSharesOut = super._deposit(tokenIn, amount);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
function _redeem(
|
|
39
|
+
address receiver,
|
|
40
|
+
address tokenOut,
|
|
41
|
+
uint256 amountSharesToRedeem
|
|
42
|
+
) internal virtual override returns (uint256 amountTokenOut) {
|
|
43
|
+
if (tokenOut == STETH) {
|
|
44
|
+
uint256 amountWstETH = super._redeem(address(this), WSTETH, amountSharesToRedeem);
|
|
45
|
+
amountTokenOut = _redeemWstETH(receiver, amountWstETH);
|
|
46
|
+
} else {
|
|
47
|
+
amountTokenOut = super._redeem(receiver, tokenOut, amountSharesToRedeem);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
function _previewDeposit(address tokenIn, uint256 amountTokenToDeposit)
|
|
52
|
+
internal
|
|
53
|
+
view
|
|
54
|
+
virtual
|
|
55
|
+
override
|
|
56
|
+
returns (uint256 amountSharesOut)
|
|
57
|
+
{
|
|
58
|
+
if (tokenIn == NATIVE || tokenIn == WETH || tokenIn == STETH) {
|
|
59
|
+
uint256 amountWstETH = _previewDepositWstETH(tokenIn, amountTokenToDeposit);
|
|
60
|
+
amountSharesOut = super._previewDeposit(WSTETH, amountWstETH);
|
|
61
|
+
} else {
|
|
62
|
+
amountSharesOut = super._previewDeposit(tokenIn, amountTokenToDeposit);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
function _previewRedeem(address tokenOut, uint256 amountSharesToRedeem)
|
|
67
|
+
internal
|
|
68
|
+
view
|
|
69
|
+
virtual
|
|
70
|
+
override
|
|
71
|
+
returns (uint256 amountTokenOut)
|
|
72
|
+
{
|
|
73
|
+
if (tokenOut == STETH) {
|
|
74
|
+
uint256 amountWstETH = super._previewRedeem(WSTETH, amountSharesToRedeem);
|
|
75
|
+
amountTokenOut = _previewRedeemWstETH(amountWstETH);
|
|
76
|
+
} else {
|
|
77
|
+
amountTokenOut = super._previewRedeem(tokenOut, amountSharesToRedeem);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
function _getImmutablePoolData() internal view virtual override returns (bytes memory ret) {
|
|
82
|
+
ComposableStablePreview.ImmutableData memory res;
|
|
83
|
+
res.poolTokens = _getPoolTokenAddresses();
|
|
84
|
+
res.rateProviders = _getRateProviders();
|
|
85
|
+
res.rawScalingFactors = _getRawScalingFactors();
|
|
86
|
+
res.isExemptFromYieldProtocolFee = _getExemption();
|
|
87
|
+
res.LP = LP;
|
|
88
|
+
res.noTokensExempt = NO_TOKENS_EXEMPT;
|
|
89
|
+
res.allTokensExempt = ALL_TOKENS_EXEMPT;
|
|
90
|
+
res.bptIndex = BPT_INDEX;
|
|
91
|
+
res.totalTokens = res.poolTokens.length;
|
|
92
|
+
|
|
93
|
+
return abi.encode(res);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
function _getPoolTokenAddresses()
|
|
97
|
+
internal
|
|
98
|
+
view
|
|
99
|
+
virtual
|
|
100
|
+
override
|
|
101
|
+
returns (address[] memory res)
|
|
102
|
+
{
|
|
103
|
+
res = new address[](3);
|
|
104
|
+
res[0] = LP;
|
|
105
|
+
res[1] = WSTETH;
|
|
106
|
+
res[2] = CBETH;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
function _getBPTIndex() internal view virtual override returns (uint256) {
|
|
110
|
+
return BPT_INDEX;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
function _getRateProviders() internal view virtual returns (address[] memory res) {
|
|
114
|
+
res = new address[](3);
|
|
115
|
+
res[0] = 0x0000000000000000000000000000000000000000;
|
|
116
|
+
res[1] = 0x72D07D7DcA67b8A406aD1Ec34ce969c90bFEE768;
|
|
117
|
+
res[2] = 0x7311E4BB8a72e7B300c5B8BDE4de6CdaA822a5b1;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
function _getRawScalingFactors() internal view virtual returns (uint256[] memory res) {
|
|
121
|
+
res = new uint256[](3);
|
|
122
|
+
res[0] = res[1] = res[2] = 1e18;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
function _getExemption() internal view virtual returns (bool[] memory res) {
|
|
126
|
+
res = new bool[](3);
|
|
127
|
+
res[0] = res[1] = res[2] = false;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
function getTokensIn() public view virtual override returns (address[] memory res) {
|
|
131
|
+
res = new address[](6);
|
|
132
|
+
res[0] = WSTETH;
|
|
133
|
+
res[1] = STETH;
|
|
134
|
+
res[2] = NATIVE;
|
|
135
|
+
res[3] = WETH;
|
|
136
|
+
// All 4 converted to WSTETH
|
|
137
|
+
res[4] = CBETH;
|
|
138
|
+
res[5] = LP;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
function getTokensOut() public view virtual override returns (address[] memory res) {
|
|
142
|
+
res = new address[](4);
|
|
143
|
+
res[0] = WSTETH;
|
|
144
|
+
res[1] = STETH;
|
|
145
|
+
//
|
|
146
|
+
res[2] = CBETH;
|
|
147
|
+
res[3] = LP;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function isValidTokenIn(address token) public view virtual override returns (bool) {
|
|
151
|
+
return (token == WSTETH ||
|
|
152
|
+
token == STETH ||
|
|
153
|
+
token == NATIVE ||
|
|
154
|
+
token == WETH ||
|
|
155
|
+
token == CBETH ||
|
|
156
|
+
token == LP);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
function isValidTokenOut(address token) public view virtual override returns (bool) {
|
|
160
|
+
return (token == WSTETH || token == STETH || token == CBETH || token == LP);
|
|
161
|
+
}
|
|
162
|
+
}
|
package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol
ADDED
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity 0.8.17;
|
|
3
|
+
|
|
4
|
+
import "./base/PendleAuraBalancerStableLPSY.sol";
|
|
5
|
+
import "../../../../interfaces/IWETH.sol";
|
|
6
|
+
import "./base/MetaStable/MetaStablePreview.sol";
|
|
7
|
+
|
|
8
|
+
contract PendleAuraWethRethSY is PendleAuraBalancerStableLPSY {
|
|
9
|
+
address public constant RETH = 0xae78736Cd615f374D3085123A210448E74Fc6393;
|
|
10
|
+
address public constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
|
|
11
|
+
|
|
12
|
+
uint256 internal constant AURA_PID = 15;
|
|
13
|
+
address internal constant LP = 0x1E19CF2D73a72Ef1332C882F20534B6519Be0276;
|
|
14
|
+
|
|
15
|
+
constructor(
|
|
16
|
+
string memory _name,
|
|
17
|
+
string memory _symbol,
|
|
18
|
+
MetaStablePreview _previewHelper
|
|
19
|
+
) PendleAuraBalancerStableLPSY(_name, _symbol, LP, AURA_PID, _previewHelper) {}
|
|
20
|
+
|
|
21
|
+
function _deposit(address tokenIn, uint256 amount)
|
|
22
|
+
internal
|
|
23
|
+
virtual
|
|
24
|
+
override
|
|
25
|
+
returns (uint256 amountSharesOut)
|
|
26
|
+
{
|
|
27
|
+
if (tokenIn == NATIVE) {
|
|
28
|
+
IWETH(WETH).deposit{ value: amount }();
|
|
29
|
+
amountSharesOut = super._deposit(WETH, amount);
|
|
30
|
+
} else {
|
|
31
|
+
amountSharesOut = super._deposit(tokenIn, amount);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
function _redeem(
|
|
36
|
+
address receiver,
|
|
37
|
+
address tokenOut,
|
|
38
|
+
uint256 amountSharesToRedeem
|
|
39
|
+
) internal virtual override returns (uint256 amountTokenOut) {
|
|
40
|
+
if (tokenOut == NATIVE) {
|
|
41
|
+
amountTokenOut = super._redeem(address(this), WETH, amountSharesToRedeem);
|
|
42
|
+
IWETH(WETH).withdraw(amountTokenOut);
|
|
43
|
+
_transferOut(NATIVE, receiver, amountTokenOut);
|
|
44
|
+
} else {
|
|
45
|
+
amountTokenOut = super._redeem(receiver, tokenOut, amountSharesToRedeem);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
function _previewDeposit(address tokenIn, uint256 amountTokenToDeposit)
|
|
50
|
+
internal
|
|
51
|
+
view
|
|
52
|
+
virtual
|
|
53
|
+
override
|
|
54
|
+
returns (uint256 amountSharesOut)
|
|
55
|
+
{
|
|
56
|
+
if (tokenIn == NATIVE) {
|
|
57
|
+
amountSharesOut = super._previewDeposit(WETH, amountTokenToDeposit);
|
|
58
|
+
} else {
|
|
59
|
+
amountSharesOut = super._previewDeposit(tokenIn, amountTokenToDeposit);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function _previewRedeem(address tokenOut, uint256 amountSharesToRedeem)
|
|
64
|
+
internal
|
|
65
|
+
view
|
|
66
|
+
virtual
|
|
67
|
+
override
|
|
68
|
+
returns (uint256 amountTokenOut)
|
|
69
|
+
{
|
|
70
|
+
if (tokenOut == NATIVE) {
|
|
71
|
+
amountTokenOut = super._previewRedeem(WETH, amountSharesToRedeem);
|
|
72
|
+
} else {
|
|
73
|
+
amountTokenOut = super._previewRedeem(tokenOut, amountSharesToRedeem);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
function _getPoolTokenAddresses()
|
|
78
|
+
internal
|
|
79
|
+
view
|
|
80
|
+
virtual
|
|
81
|
+
override
|
|
82
|
+
returns (address[] memory res)
|
|
83
|
+
{
|
|
84
|
+
res = new address[](2);
|
|
85
|
+
res[0] = RETH;
|
|
86
|
+
res[1] = WETH;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
function _getRateProviders() internal view virtual returns (address[] memory res) {
|
|
90
|
+
res = new address[](2);
|
|
91
|
+
res[0] = 0x1a8F81c256aee9C640e14bB0453ce247ea0DFE6F;
|
|
92
|
+
res[1] = 0x0000000000000000000000000000000000000000;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
function _getRawScalingFactors() internal view virtual returns (uint256[] memory res) {
|
|
96
|
+
res = new uint256[](2);
|
|
97
|
+
res[0] = 1e18;
|
|
98
|
+
res[1] = 1e18;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
function _getImmutablePoolData() internal view virtual override returns (bytes memory) {
|
|
102
|
+
MetaStablePreview.ImmutableData memory res;
|
|
103
|
+
res.LP = LP;
|
|
104
|
+
res.poolTokens = _getPoolTokenAddresses();
|
|
105
|
+
res.rateProviders = _getRateProviders();
|
|
106
|
+
res.rawScalingFactors = _getRawScalingFactors();
|
|
107
|
+
|
|
108
|
+
return abi.encode(res);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function getTokensIn() public view virtual override returns (address[] memory res) {
|
|
112
|
+
res = new address[](4);
|
|
113
|
+
res[0] = LP;
|
|
114
|
+
res[1] = RETH;
|
|
115
|
+
res[2] = WETH;
|
|
116
|
+
res[3] = NATIVE;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
function getTokensOut() public view virtual override returns (address[] memory res) {
|
|
120
|
+
res = new address[](4);
|
|
121
|
+
res[0] = LP;
|
|
122
|
+
res[1] = RETH;
|
|
123
|
+
res[2] = WETH;
|
|
124
|
+
res[3] = NATIVE;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
function isValidTokenIn(address token) public view virtual override returns (bool) {
|
|
128
|
+
return (token == LP || token == RETH || token == WETH || token == NATIVE);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function isValidTokenOut(address token) public view virtual override returns (bool) {
|
|
132
|
+
return (token == LP || token == RETH || token == WETH || token == NATIVE);
|
|
133
|
+
}
|
|
134
|
+
}
|
package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol
ADDED
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity 0.8.17;
|
|
3
|
+
|
|
4
|
+
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
5
|
+
import "./base/PendleAuraBalancerStableLPSY.sol";
|
|
6
|
+
import "../../StEthHelper.sol";
|
|
7
|
+
import "./base/MetaStable/MetaStablePreview.sol";
|
|
8
|
+
|
|
9
|
+
contract PendleAuraWethWstethSY is PendleAuraBalancerStableLPSY, StEthHelper {
|
|
10
|
+
uint256 internal constant AURA_PID = 29;
|
|
11
|
+
address internal constant LP = 0x32296969Ef14EB0c6d29669C550D4a0449130230;
|
|
12
|
+
|
|
13
|
+
constructor(
|
|
14
|
+
string memory _name,
|
|
15
|
+
string memory _symbol,
|
|
16
|
+
MetaStablePreview _previewHelper
|
|
17
|
+
) PendleAuraBalancerStableLPSY(_name, _symbol, LP, AURA_PID, _previewHelper) StEthHelper() {}
|
|
18
|
+
|
|
19
|
+
function _deposit(address tokenIn, uint256 amount)
|
|
20
|
+
internal
|
|
21
|
+
virtual
|
|
22
|
+
override
|
|
23
|
+
returns (uint256 amountSharesOut)
|
|
24
|
+
{
|
|
25
|
+
if (tokenIn == NATIVE) {
|
|
26
|
+
IWETH(WETH).deposit{ value: amount }();
|
|
27
|
+
amountSharesOut = super._deposit(WETH, amount);
|
|
28
|
+
} else if (tokenIn == STETH) {
|
|
29
|
+
uint256 amountWstETH = _depositWstETH(STETH, amount);
|
|
30
|
+
amountSharesOut = super._deposit(WSTETH, amountWstETH);
|
|
31
|
+
} else {
|
|
32
|
+
amountSharesOut = super._deposit(tokenIn, amount);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function _redeem(
|
|
37
|
+
address receiver,
|
|
38
|
+
address tokenOut,
|
|
39
|
+
uint256 amountSharesToRedeem
|
|
40
|
+
) internal virtual override returns (uint256 amountTokenOut) {
|
|
41
|
+
if (tokenOut == NATIVE) {
|
|
42
|
+
amountTokenOut = super._redeem(address(this), WETH, amountSharesToRedeem);
|
|
43
|
+
IWETH(WETH).withdraw(amountTokenOut);
|
|
44
|
+
_transferOut(NATIVE, receiver, amountTokenOut);
|
|
45
|
+
} else if (tokenOut == STETH) {
|
|
46
|
+
uint256 amountWstETH = super._redeem(address(this), WSTETH, amountSharesToRedeem);
|
|
47
|
+
amountTokenOut = _redeemWstETH(receiver, amountWstETH);
|
|
48
|
+
} else {
|
|
49
|
+
amountTokenOut = super._redeem(receiver, tokenOut, amountSharesToRedeem);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function _previewDeposit(address tokenIn, uint256 amountTokenToDeposit)
|
|
54
|
+
internal
|
|
55
|
+
view
|
|
56
|
+
virtual
|
|
57
|
+
override
|
|
58
|
+
returns (uint256 amountSharesOut)
|
|
59
|
+
{
|
|
60
|
+
if (tokenIn == NATIVE) {
|
|
61
|
+
amountSharesOut = super._previewDeposit(WETH, amountTokenToDeposit);
|
|
62
|
+
} else if (tokenIn == STETH) {
|
|
63
|
+
uint256 amountWstETH = _previewDepositWstETH(STETH, amountTokenToDeposit);
|
|
64
|
+
amountSharesOut = super._previewDeposit(WSTETH, amountWstETH);
|
|
65
|
+
} else {
|
|
66
|
+
amountSharesOut = super._previewDeposit(tokenIn, amountTokenToDeposit);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function _previewRedeem(address tokenOut, uint256 amountSharesToRedeem)
|
|
71
|
+
internal
|
|
72
|
+
view
|
|
73
|
+
virtual
|
|
74
|
+
override
|
|
75
|
+
returns (uint256 amountTokenOut)
|
|
76
|
+
{
|
|
77
|
+
if (tokenOut == NATIVE) {
|
|
78
|
+
amountTokenOut = super._previewRedeem(WETH, amountSharesToRedeem);
|
|
79
|
+
} else if (tokenOut == STETH) {
|
|
80
|
+
uint256 amountWstETH = super._previewRedeem(WSTETH, amountSharesToRedeem);
|
|
81
|
+
amountTokenOut = _previewRedeemWstETH(amountWstETH);
|
|
82
|
+
} else {
|
|
83
|
+
amountTokenOut = super._previewRedeem(tokenOut, amountSharesToRedeem);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
function _getPoolTokenAddresses()
|
|
88
|
+
internal
|
|
89
|
+
view
|
|
90
|
+
virtual
|
|
91
|
+
override
|
|
92
|
+
returns (address[] memory res)
|
|
93
|
+
{
|
|
94
|
+
res = new address[](2);
|
|
95
|
+
res[0] = WSTETH;
|
|
96
|
+
res[1] = WETH;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
function _getRateProviders() internal view virtual returns (address[] memory res) {
|
|
100
|
+
res = new address[](2);
|
|
101
|
+
res[0] = 0x72D07D7DcA67b8A406aD1Ec34ce969c90bFEE768;
|
|
102
|
+
res[1] = 0x0000000000000000000000000000000000000000;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
function _getRawScalingFactors() internal view virtual returns (uint256[] memory res) {
|
|
106
|
+
res = new uint256[](2);
|
|
107
|
+
res[0] = 1e18;
|
|
108
|
+
res[1] = 1e18;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function _getImmutablePoolData() internal view virtual override returns (bytes memory) {
|
|
112
|
+
MetaStablePreview.ImmutableData memory res;
|
|
113
|
+
res.LP = LP;
|
|
114
|
+
res.poolTokens = _getPoolTokenAddresses();
|
|
115
|
+
res.rateProviders = _getRateProviders();
|
|
116
|
+
res.rawScalingFactors = _getRawScalingFactors();
|
|
117
|
+
|
|
118
|
+
return abi.encode(res);
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
function getTokensIn() public view virtual override returns (address[] memory res) {
|
|
122
|
+
res = new address[](5);
|
|
123
|
+
res[0] = LP;
|
|
124
|
+
res[1] = WSTETH;
|
|
125
|
+
res[2] = WETH;
|
|
126
|
+
res[3] = STETH;
|
|
127
|
+
res[4] = NATIVE;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
function getTokensOut() public view virtual override returns (address[] memory res) {
|
|
131
|
+
res = new address[](5);
|
|
132
|
+
res[0] = LP;
|
|
133
|
+
res[1] = WSTETH;
|
|
134
|
+
res[2] = WETH;
|
|
135
|
+
res[3] = STETH;
|
|
136
|
+
res[4] = NATIVE;
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
function isValidTokenIn(address token) public view virtual override returns (bool) {
|
|
140
|
+
return (token == LP ||
|
|
141
|
+
token == WSTETH ||
|
|
142
|
+
token == WETH ||
|
|
143
|
+
token == STETH ||
|
|
144
|
+
token == NATIVE);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
function isValidTokenOut(address token) public view virtual override returns (bool) {
|
|
148
|
+
return (token == LP ||
|
|
149
|
+
token == WSTETH ||
|
|
150
|
+
token == WETH ||
|
|
151
|
+
token == STETH ||
|
|
152
|
+
token == NATIVE);
|
|
153
|
+
}
|
|
154
|
+
}
|