@pendle/core-v2 1.0.2-mainnet → 1.1.0-testnet
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/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +2 -2
- 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 +4 -0
- package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +592 -0
- 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 +10 -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 +1257 -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 +1244 -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 +1192 -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/GMX/GMXPreviewHelper.sol/GMXPreviewHelper.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GMX/GMXPreviewHelper.sol/GMXPreviewHelper.json +50 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GMX/PendleGlpSY.sol/PendleGlpSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GMX/PendleGlpSY.sol/PendleGlpSY.json +1163 -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/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
- 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/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +4 -0
- package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.json +66 -0
- package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +4 -0
- package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +476 -0
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +4 -0
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +590 -0
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +4 -0
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +1017 -0
- 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 +171 -5
- package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
- 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/{IPFeeDistributorFactory.sol/IPFeeDistributorFactory.json → Balancer/IGauge.sol/IGauge.json} +18 -33
- 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/{router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json → interfaces/Balancer/IRateProvider.sol/IRateProvider.json} +5 -5
- 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/GMX/IGMXVault.sol/IGMXVault.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.json +308 -0
- package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.json +43 -0
- package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +4 -0
- package/build/artifacts/contracts/{LiquidityMining/FeeDistributor/EpochResultManager.sol/EpochResultManager.json → interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.json} +80 -46
- package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.json +45 -0
- package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.json +93 -0
- package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.json +87 -0
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +338 -16
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +105 -224
- package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.json +56 -12
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +52 -8
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +231 -8
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +675 -241
- 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 +43 -32
- package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.json +40 -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/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.json +679 -0
- 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 -28
- 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/PendleMulticall.sol/PendleMulticall.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/PendleMulticall.sol/PendleMulticall.json +47 -0
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +144 -60
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +345 -62
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +107 -260
- package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +57 -18
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +54 -65
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +338 -45
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +76 -67
- package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +4 -0
- package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.json +141 -0
- package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +1 -15
- package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.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/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.json +160 -0
- package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.json +10 -0
- package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.json +56 -0
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.json +97 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.json +10 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.json +10 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.json +65 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.json +388 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol/IHashflow.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol/IHashflow.json +101 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +215 -0
- package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +7 -9
- package/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol +224 -0
- package/contracts/core/BulkSeller/BulkSeller.sol +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/StandardizedYield/implementations/GMX/GMXPreviewHelper.sol +142 -0
- package/contracts/core/StandardizedYield/implementations/GMX/PendleGlpSY.sol +244 -0
- package/contracts/core/StandardizedYield/implementations/GMX/README.md +61 -0
- package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +10 -0
- package/contracts/core/YieldContractsV2/InterestManagerYTV2.sol +114 -0
- package/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol +63 -0
- package/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol +200 -0
- package/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol +485 -0
- package/contracts/core/libraries/ArrayLib.sol +12 -0
- package/contracts/core/libraries/Errors.sol +18 -2
- package/contracts/core/libraries/TokenHelper.sol +10 -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/interfaces/GMX/IGMXVault.sol +47 -0
- package/contracts/interfaces/GMX/IGlpManager.sol +8 -0
- package/contracts/interfaces/GMX/IRewardRouterV2.sol +35 -0
- package/contracts/interfaces/GMX/IVaultPriceFeed.sol +11 -0
- package/contracts/interfaces/IDiamondCut.sol +36 -0
- package/contracts/interfaces/IDiamondLoupe.sol +38 -0
- package/contracts/interfaces/IPActionAddRemoveLiq.sol +36 -1
- package/contracts/interfaces/IPActionMintRedeem.sol +2 -55
- package/contracts/interfaces/IPActionMisc.sol +20 -3
- package/contracts/interfaces/IPActionSwapPT.sol +1 -1
- package/contracts/interfaces/IPActionSwapYT.sol +28 -4
- package/contracts/interfaces/IPAllAction.sol +5 -3
- package/contracts/interfaces/IPFeeDistributor.sol +12 -10
- package/contracts/interfaces/IPInterestManagerYTV2.sol +13 -0
- package/contracts/interfaces/IPYieldTokenV2.sol +66 -0
- package/contracts/offchain-helpers/MarketMathStatic.sol +16 -1
- package/contracts/offchain-helpers/Multicall2.sol +103 -0
- package/contracts/offchain-helpers/PendleMulticall.sol +26 -0
- package/contracts/offchain-helpers/RouterStatic.sol +22 -0
- package/contracts/router/ActionAddRemoveLiq.sol +116 -6
- package/contracts/router/ActionMintRedeem.sol +12 -202
- package/contracts/router/ActionMisc.sol +45 -19
- package/contracts/router/ActionSwapPT.sol +0 -5
- package/contracts/router/ActionSwapYT.sol +98 -13
- package/contracts/router/PendleRouter.sol +211 -72
- package/contracts/router/{ActionCallback.sol → base/ActionBaseCallback.sol} +47 -47
- package/contracts/router/base/ActionBaseMintRedeem.sol +105 -60
- package/contracts/router/base/CallbackHelper.sol +137 -44
- package/contracts/router/base/MarketApproxLib.sol +227 -350
- package/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol +45 -0
- package/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol +69 -0
- package/contracts/router/swap-aggregator/IPSwapAggregator.sol +30 -0
- package/contracts/router/swap-aggregator/PendleSwapAggregator.sol +63 -0
- package/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol +214 -0
- package/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol +147 -0
- package/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol +17 -0
- package/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol +191 -0
- package/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol +30 -0
- package/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol +42 -0
- package/deployments/43113-core.json +30 -0
- package/deployments/43113-markets/APE-30-MARCH.json +10 -0
- package/deployments/43113-markets/USDC-FEB-2ND-2024.json +10 -0
- package/deployments/43113-markets/USDC-FEB-2ND.json +10 -0
- package/deployments/43113-markets/USDC-FEB-4TH.json +10 -0
- package/deployments/43113-markets/WETH-FEB-2ND.json +11 -0
- package/deployments/43113-markets/WETH-FEB-4TH.json +11 -0
- package/deployments/43113-offchain-helper.json +4 -0
- package/deployments/43113-testenv.json +22 -0
- package/deployments/80001-core.json +29 -0
- package/deployments/80001-markets/GLP-DEC-8TH.json +10 -0
- package/deployments/80001-markets/USDC-DEC-8TH.json +10 -0
- package/deployments/80001-markets/USDC-FEB-4TH.json +10 -0
- package/deployments/80001-markets/WETH-FEB-4TH.json +11 -0
- package/deployments/80001-offchain-helper.json +4 -0
- package/deployments/80001-testenv.json +22 -0
- package/package.json +6 -6
- package/typechain-types/ActionAddRemoveLiq.ts +203 -23
- package/typechain-types/ActionBaseCallback.ts +115 -0
- package/typechain-types/ActionMintRedeem.ts +29 -230
- package/typechain-types/ActionMisc.ts +78 -27
- package/typechain-types/ActionSwapPT.ts +26 -31
- package/typechain-types/ActionSwapYT.ts +202 -21
- package/typechain-types/BribeDistributor.ts +363 -0
- package/typechain-types/ComposableStablePreview.ts +217 -0
- package/typechain-types/DistributorBase.ts +363 -0
- package/typechain-types/FeeDistributor.ts +416 -0
- package/typechain-types/GMXPreviewHelper.ts +121 -0
- package/typechain-types/I1inchAggregationRouterV5.ts +257 -0
- package/typechain-types/IAggregationExecutor.ts +182 -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/IDiamondCut.ts +152 -0
- package/typechain-types/IDiamondLoupe.ts +190 -0
- package/typechain-types/IExecutorHelperEthereum1.ts +643 -0
- package/typechain-types/IGMXVault.ts +494 -0
- package/typechain-types/IGauge.ts +160 -0
- package/typechain-types/IGlpManager.ts +115 -0
- package/typechain-types/IHashflow.ts +159 -0
- package/typechain-types/IKyberSwapAggregationRouterHelper.ts +109 -0
- package/typechain-types/ILiquidityGaugeFactory.ts +99 -0
- package/typechain-types/IMetaAggregationRouter.ts +213 -0
- package/typechain-types/IMetaAggregationRouterV2.ts +221 -0
- package/typechain-types/IMetaStablePool.ts +619 -0
- package/typechain-types/IMultihopRouterEthereum.ts +209 -0
- package/typechain-types/IPActionAddRemoveLiq.ts +213 -14
- package/typechain-types/IPActionMintRedeem.ts +29 -211
- package/typechain-types/IPActionMisc.ts +78 -27
- package/typechain-types/IPActionSwapPT.ts +26 -12
- package/typechain-types/IPActionSwapYT.ts +168 -12
- package/typechain-types/IPAllAction.ts +445 -227
- package/typechain-types/IPFeeDistributor.ts +61 -78
- package/typechain-types/IPFeeDistributorFactory.ts +53 -139
- package/typechain-types/IPInterestManagerYTV2.ts +117 -0
- package/typechain-types/IPSwapAggregator.ts +126 -0
- package/typechain-types/IPYieldTokenV2.ts +901 -0
- package/typechain-types/IRateProvider.ts +81 -0
- package/typechain-types/IRewardRouterV2.ts +303 -0
- package/typechain-types/IRewards.ts +35 -5
- package/typechain-types/ISwapAggregator.ts +124 -0
- package/typechain-types/IVault.ts +410 -0
- package/typechain-types/IVaultPriceFeed.ts +114 -0
- package/typechain-types/InterestManagerYTV2.ts +157 -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 +1600 -0
- package/typechain-types/PendleAuraBalancerStableLPSY.ts +1523 -0
- package/typechain-types/PendleAuraCbethWstethSY.ts +1587 -0
- package/typechain-types/PendleAuraWethRethSY.ts +1549 -0
- package/typechain-types/PendleAuraWethWstethSY.ts +1523 -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 +409 -117
- package/typechain-types/PendleGlpSY.ts +1463 -0
- package/typechain-types/PendleLooksStakingSY.ts +204 -0
- package/typechain-types/PendleMulticall.ts +110 -0
- package/typechain-types/PendlePrincipalTokenV2.ts +614 -0
- package/typechain-types/PendleQiTokenSY.ts +204 -0
- package/typechain-types/PendleRouter.ts +109 -131
- package/typechain-types/PendleSwapAggregator.ts +167 -0
- package/typechain-types/PendleWstEthSY.ts +204 -0
- package/typechain-types/PendleYieldContractFactoryV2.ts +801 -0
- package/typechain-types/PendleYieldTokenV2.ts +1298 -0
- package/typechain-types/RouterStatic.ts +92 -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/SwapAggregator.ts +406 -0
- package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +346 -68
- package/typechain-types/factories/ActionBaseCallback__factory.ts +156 -0
- package/typechain-types/factories/ActionCallback__factory.ts +1 -1
- package/typechain-types/factories/ActionMintRedeem__factory.ts +108 -266
- package/typechain-types/factories/ActionMisc__factory.ts +56 -17
- package/typechain-types/factories/ActionSwapPTYT__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapPT__factory.ts +55 -71
- package/typechain-types/factories/ActionSwapYT__factory.ts +341 -48
- package/typechain-types/factories/AggregationRouterHelper__factory.ts +1 -1
- package/typechain-types/factories/BribeDistributor__factory.ts +303 -0
- 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/DistributorBase__factory.ts +249 -0
- package/typechain-types/factories/Errors__factory.ts +170 -4
- package/typechain-types/factories/FeeDistributor__factory.ts +339 -0
- package/typechain-types/factories/GMXPreviewHelper__factory.ts +65 -0
- package/typechain-types/factories/I1inchAggregationRouterV5__factory.ts +179 -0
- package/typechain-types/factories/IAggregationExecutor__factory.ts +84 -0
- 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/IDiamondCut__factory.ts +105 -0
- package/typechain-types/factories/IDiamondLoupe__factory.ts +99 -0
- package/typechain-types/factories/IExecutorHelperEthereum1__factory.ts +407 -0
- package/typechain-types/factories/IGMXVault__factory.ts +320 -0
- package/typechain-types/factories/IGauge__factory.ts +70 -0
- package/typechain-types/factories/IGlpManager__factory.ts +55 -0
- package/typechain-types/factories/IHashflow__factory.ts +113 -0
- package/typechain-types/factories/IKyberSwapAggregationRouterHelper__factory.ts +56 -0
- package/typechain-types/factories/ILiquidityGaugeFactory__factory.ts +49 -0
- package/typechain-types/factories/IMetaAggregationRouterV2__factory.ts +234 -0
- package/typechain-types/factories/IMetaAggregationRouter__factory.ts +202 -0
- package/typechain-types/factories/IMetaStablePool__factory.ts +413 -0
- package/typechain-types/factories/IMultihopRouterEthereum__factory.ts +155 -0
- package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +338 -16
- package/typechain-types/factories/IPActionMintRedeem__factory.ts +105 -224
- package/typechain-types/factories/IPActionMisc__factory.ts +55 -11
- package/typechain-types/factories/IPActionSwapPT__factory.ts +52 -8
- package/typechain-types/factories/IPActionSwapYT__factory.ts +231 -8
- package/typechain-types/factories/IPAllAction__factory.ts +675 -241
- package/typechain-types/factories/IPFeeDistributorFactory__factory.ts +25 -34
- package/typechain-types/factories/IPFeeDistributor__factory.ts +42 -31
- package/typechain-types/factories/IPInterestManagerYTV2__factory.ts +59 -0
- package/typechain-types/factories/IPSwapAggregator__factory.ts +71 -0
- package/typechain-types/factories/IPYieldTokenV2__factory.ts +694 -0
- package/typechain-types/factories/IRateProvider__factory.ts +36 -0
- package/typechain-types/factories/IRewardRouterV2__factory.ts +180 -0
- package/typechain-types/factories/IRewards__factory.ts +18 -0
- package/typechain-types/factories/ISwapAggregator__factory.ts +66 -0
- package/typechain-types/factories/IVaultPriceFeed__factory.ts +60 -0
- package/typechain-types/factories/IVault__factory.ts +287 -0
- package/typechain-types/factories/InterestManagerYTV2__factory.ts +81 -0
- package/typechain-types/factories/MarketMathStatic__factory.ts +1 -27
- 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 +1326 -0
- package/typechain-types/factories/PendleAuraBalancerStableLPSY__factory.ts +1190 -0
- package/typechain-types/factories/PendleAuraCbethWstethSY__factory.ts +1317 -0
- package/typechain-types/factories/PendleAuraWethRethSY__factory.ts +1291 -0
- package/typechain-types/factories/PendleAuraWethWstethSY__factory.ts +1265 -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 +341 -66
- package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleGlpSY__factory.ts +1249 -0
- 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/PendleMulticall__factory.ts +100 -0
- package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +564 -0
- 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 +75 -74
- package/typechain-types/factories/PendleSwapAggregator__factory.ts +154 -0
- package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
- package/typechain-types/factories/PendleWstEthSY__factory.ts +142 -1
- package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +674 -0
- package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1109 -0
- package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
- package/typechain-types/factories/RouterStatic__factory.ts +69 -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/SwapAggregator__factory.ts +309 -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 +365 -86
- package/typechain-types/index.ts +86 -24
- package/build/artifacts/contracts/LiquidityMining/FeeDistributor/EpochResultManager.sol/EpochResultManager.dbg.json +0 -4
- package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +0 -4
- package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +0 -310
- package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.dbg.json +0 -4
- package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.json +0 -389
- package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.json +0 -190
- package/build/artifacts/contracts/interfaces/IPFeeDistributorFactory.sol/IPFeeDistributorFactory.dbg.json +0 -4
- package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +0 -4
- package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +0 -165
- package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +0 -4
- package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +0 -343
- package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +0 -4
- package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +0 -224
- package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +0 -4
- package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.json +0 -35
- package/build/artifacts/contracts/router/kyberswap/IMultihopRouter.sol/IMultihopRouter.dbg.json +0 -4
- package/build/artifacts/contracts/router/kyberswap/IMultihopRouter.sol/IMultihopRouter.json +0 -136
- package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +0 -4
- package/contracts/LiquidityMining/FeeDistributor/EpochResultManager.sol +0 -159
- package/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol +0 -99
- package/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol +0 -70
- package/contracts/interfaces/IPActionSwapPTYT.sol +0 -31
- package/contracts/interfaces/IPFeeDistributorFactory.sol +0 -14
- package/contracts/router/ActionSwapPTYT.sol +0 -108
- package/contracts/router/kyberswap/AggregationRouterHelper.sol +0 -317
- package/contracts/router/kyberswap/IAggregatorRouterHelper.sol +0 -10
- package/contracts/router/kyberswap/IMultihopRouter.sol +0 -139
- package/contracts/router/kyberswap/KyberSwapHelper.sol +0 -79
- package/deployments/1-core.json +0 -29
- package/deployments/1-markets/APE-JUNE-29.json +0 -7
- package/deployments/1-markets/FRAXUSDC-CURVELP-MARCH30.json +0 -11
- package/deployments/1-markets/LOOKS-STAKING-MARCH30.json +0 -10
- package/deployments/1-markets/STETH-JUNE29.json +0 -10
- package/deployments/1-markets/STETH-MARCH30.json +0 -10
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
-
pragma solidity 0.8.17;
|
|
3
|
-
|
|
4
|
-
import "../../core/libraries/math/Math.sol";
|
|
5
|
-
import "../../core/libraries/ArrayLib.sol";
|
|
6
|
-
import "../../core/libraries/MiniHelpers.sol";
|
|
7
|
-
import "../../core/libraries/Errors.sol";
|
|
8
|
-
import "../../core/libraries/BoringOwnableUpgradeable.sol";
|
|
9
|
-
|
|
10
|
-
import "../libraries/WeekMath.sol";
|
|
11
|
-
import "../libraries/VeHistoryLib.sol";
|
|
12
|
-
|
|
13
|
-
import "../../interfaces/IPFeeDistributor.sol";
|
|
14
|
-
import "../../interfaces/IPFeeDistributorFactory.sol";
|
|
15
|
-
|
|
16
|
-
import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
17
|
-
|
|
18
|
-
contract PendleFeeDistributor is IPFeeDistributor, BoringOwnableUpgradeable {
|
|
19
|
-
using Math for uint256;
|
|
20
|
-
using SafeERC20 for IERC20;
|
|
21
|
-
using ArrayLib for address[];
|
|
22
|
-
using VeBalanceLib for VeBalance;
|
|
23
|
-
|
|
24
|
-
address public immutable factory;
|
|
25
|
-
address public immutable pool;
|
|
26
|
-
address public immutable rewardToken;
|
|
27
|
-
uint256 public immutable startEpoch;
|
|
28
|
-
|
|
29
|
-
uint256 public lastFinishedEpoch;
|
|
30
|
-
|
|
31
|
-
// [user] => [epoch]
|
|
32
|
-
mapping(address => uint256) public userLastClaimedEpoch;
|
|
33
|
-
|
|
34
|
-
// [epoch] => [incentive]
|
|
35
|
-
mapping(uint256 => uint256) public incentivesForEpoch;
|
|
36
|
-
|
|
37
|
-
constructor(
|
|
38
|
-
address _pool,
|
|
39
|
-
address _rewardToken,
|
|
40
|
-
uint256 _startEpoch
|
|
41
|
-
) initializer {
|
|
42
|
-
pool = _pool;
|
|
43
|
-
factory = msg.sender;
|
|
44
|
-
rewardToken = _rewardToken;
|
|
45
|
-
startEpoch = _startEpoch;
|
|
46
|
-
lastFinishedEpoch = _startEpoch;
|
|
47
|
-
__BoringOwnable_init();
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
function fund(uint256[] calldata rewardsForEpoch) external onlyOwner {
|
|
51
|
-
uint256 epoch = lastFinishedEpoch;
|
|
52
|
-
uint256 totalRewardFunding = 0;
|
|
53
|
-
for (uint256 i = 0; i < rewardsForEpoch.length; ++i) {
|
|
54
|
-
epoch += WeekMath.WEEK;
|
|
55
|
-
uint256 incentive = rewardsForEpoch[i];
|
|
56
|
-
|
|
57
|
-
incentivesForEpoch[epoch] += incentive;
|
|
58
|
-
totalRewardFunding += incentive;
|
|
59
|
-
|
|
60
|
-
emit Fund(epoch, incentive);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
if (epoch > WeekMath.getCurrentWeekStart()) revert Errors.FDCantFundFutureEpoch();
|
|
64
|
-
|
|
65
|
-
IERC20(rewardToken).transferFrom(msg.sender, address(this), totalRewardFunding);
|
|
66
|
-
lastFinishedEpoch = epoch;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
function claimReward(address user) external returns (uint256 amountRewardOut) {
|
|
70
|
-
IPFeeDistributorFactory(factory).updateUserShare(user, pool);
|
|
71
|
-
|
|
72
|
-
uint256 finishedEpoch = lastFinishedEpoch;
|
|
73
|
-
uint256 userEpoch = userLastClaimedEpoch[user];
|
|
74
|
-
|
|
75
|
-
if (userEpoch == finishedEpoch) return 0;
|
|
76
|
-
if (userEpoch == 0) userEpoch = startEpoch;
|
|
77
|
-
|
|
78
|
-
while (userEpoch < finishedEpoch) {
|
|
79
|
-
userEpoch += WeekMath.WEEK;
|
|
80
|
-
|
|
81
|
-
uint256 incentive = incentivesForEpoch[userEpoch];
|
|
82
|
-
if (incentive == 0) continue;
|
|
83
|
-
|
|
84
|
-
(uint256 userShare, uint256 totalShare) = IPFeeDistributorFactory(factory)
|
|
85
|
-
.getUserAndTotalSharesAt(user, pool, userEpoch);
|
|
86
|
-
|
|
87
|
-
if (userShare == 0) continue;
|
|
88
|
-
|
|
89
|
-
amountRewardOut += (userShare * incentive) / totalShare;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
userLastClaimedEpoch[user] = finishedEpoch;
|
|
93
|
-
if (amountRewardOut > 0) {
|
|
94
|
-
IERC20(rewardToken).safeTransfer(user, amountRewardOut);
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
emit ClaimReward(user, rewardToken, finishedEpoch, amountRewardOut);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
-
pragma solidity 0.8.17;
|
|
3
|
-
|
|
4
|
-
import "./PendleFeeDistributor.sol";
|
|
5
|
-
import "./EpochResultManager.sol";
|
|
6
|
-
|
|
7
|
-
import "../../core/libraries/BaseSplitCodeFactory.sol";
|
|
8
|
-
|
|
9
|
-
import "../../interfaces/IBoringOwnableUpgradeable.sol";
|
|
10
|
-
import "../../interfaces/IPFeeDistributorFactory.sol";
|
|
11
|
-
|
|
12
|
-
contract PendleFeeDistributorFactory is BoringOwnableUpgradeable, EpochResultManager {
|
|
13
|
-
using Math for uint256;
|
|
14
|
-
|
|
15
|
-
struct PoolInfo {
|
|
16
|
-
address distributor;
|
|
17
|
-
uint64 startTime;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
address public immutable feeDistributorCreationCodeContractA;
|
|
21
|
-
uint256 public immutable feeDistributorCreationCodeSizeA;
|
|
22
|
-
address public immutable feeDistributorCreationCodeContractB;
|
|
23
|
-
uint256 public immutable feeDistributorCreationCodeSizeB;
|
|
24
|
-
|
|
25
|
-
address public immutable rewardToken;
|
|
26
|
-
uint256 public lastFinishedEpoch;
|
|
27
|
-
mapping(address => PoolInfo) public poolInfos;
|
|
28
|
-
|
|
29
|
-
constructor(
|
|
30
|
-
address _rewardToken,
|
|
31
|
-
address _votingController,
|
|
32
|
-
address _vePendle,
|
|
33
|
-
address _feeDistributorCreationCodeContractA,
|
|
34
|
-
uint256 _feeDistributorCreationCodeSizeA,
|
|
35
|
-
address _feeDistributorCreationCodeContractB,
|
|
36
|
-
uint256 _feeDistributorCreationCodeSizeB
|
|
37
|
-
) EpochResultManager(_votingController, _vePendle) initializer {
|
|
38
|
-
__BoringOwnable_init();
|
|
39
|
-
rewardToken = _rewardToken;
|
|
40
|
-
feeDistributorCreationCodeContractA = _feeDistributorCreationCodeContractA;
|
|
41
|
-
feeDistributorCreationCodeSizeA = _feeDistributorCreationCodeSizeA;
|
|
42
|
-
feeDistributorCreationCodeContractB = _feeDistributorCreationCodeContractB;
|
|
43
|
-
feeDistributorCreationCodeSizeB = _feeDistributorCreationCodeSizeB;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
function createFeeDistributor(address pool, uint64 startTime)
|
|
47
|
-
external
|
|
48
|
-
onlyOwner
|
|
49
|
-
returns (address distributor)
|
|
50
|
-
{
|
|
51
|
-
if (poolInfos[pool].distributor != address(0))
|
|
52
|
-
revert Errors.FDFactoryDistributorAlreadyExisted(pool, poolInfos[pool].distributor);
|
|
53
|
-
|
|
54
|
-
distributor = BaseSplitCodeFactory._create2(
|
|
55
|
-
0,
|
|
56
|
-
bytes32(""),
|
|
57
|
-
abi.encode(pool, rewardToken, uint256(startTime)),
|
|
58
|
-
feeDistributorCreationCodeContractA,
|
|
59
|
-
feeDistributorCreationCodeSizeA,
|
|
60
|
-
feeDistributorCreationCodeContractB,
|
|
61
|
-
feeDistributorCreationCodeSizeB
|
|
62
|
-
);
|
|
63
|
-
IBoringOwnableUpgradeable(distributor).transferOwnership(msg.sender, true, false);
|
|
64
|
-
poolInfos[pool] = PoolInfo({ distributor: distributor, startTime: startTime });
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
function _getPoolStartTime(address pool) internal view virtual override returns (uint64) {
|
|
68
|
-
return poolInfos[pool].startTime;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
-
pragma solidity 0.8.17;
|
|
3
|
-
|
|
4
|
-
import "../router/base/MarketApproxLib.sol";
|
|
5
|
-
import "../router/kyberswap/KyberSwapHelper.sol";
|
|
6
|
-
|
|
7
|
-
interface IPActionSwapPTYT {
|
|
8
|
-
event SwapPtAndYt(
|
|
9
|
-
address indexed caller,
|
|
10
|
-
address indexed market,
|
|
11
|
-
address indexed receiver,
|
|
12
|
-
int256 netPtToAccount,
|
|
13
|
-
int256 netYtToAccount
|
|
14
|
-
);
|
|
15
|
-
|
|
16
|
-
function swapExactPtForYt(
|
|
17
|
-
address receiver,
|
|
18
|
-
address market,
|
|
19
|
-
uint256 exactPtIn,
|
|
20
|
-
uint256 minYtOut,
|
|
21
|
-
ApproxParams calldata guessTotalPtToSwap
|
|
22
|
-
) external returns (uint256 netYtOut, uint256 netSyFee);
|
|
23
|
-
|
|
24
|
-
function swapExactYtForPt(
|
|
25
|
-
address receiver,
|
|
26
|
-
address market,
|
|
27
|
-
uint256 exactYtIn,
|
|
28
|
-
uint256 minPtOut,
|
|
29
|
-
ApproxParams calldata guessTotalPtSwapped
|
|
30
|
-
) external returns (uint256 netPtOut, uint256 netSyFee);
|
|
31
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
-
pragma solidity 0.8.17;
|
|
3
|
-
|
|
4
|
-
interface IPFeeDistributorFactory {
|
|
5
|
-
function lastFinishedEpoch() external returns (uint256);
|
|
6
|
-
|
|
7
|
-
function updateUserShare(address user, address pool) external;
|
|
8
|
-
|
|
9
|
-
function getUserAndTotalSharesAt(
|
|
10
|
-
address user,
|
|
11
|
-
address pool,
|
|
12
|
-
uint256 epoch
|
|
13
|
-
) external view returns (uint256 userShare, uint256 totalShare);
|
|
14
|
-
}
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
-
pragma solidity 0.8.17;
|
|
3
|
-
|
|
4
|
-
import "../interfaces/IPActionSwapPTYT.sol";
|
|
5
|
-
import "../interfaces/IPMarket.sol";
|
|
6
|
-
import "./base/CallbackHelper.sol";
|
|
7
|
-
|
|
8
|
-
/// @dev All swap actions will revert if market is expired
|
|
9
|
-
contract ActionSwapPTYT is IPActionSwapPTYT, CallbackHelper, TokenHelper {
|
|
10
|
-
using MarketMathCore for MarketState;
|
|
11
|
-
using MarketApproxPtInLib for MarketState;
|
|
12
|
-
using MarketApproxPtOutLib for MarketState;
|
|
13
|
-
using Math for uint256;
|
|
14
|
-
using Math for int256;
|
|
15
|
-
using PYIndexLib for IPYieldToken;
|
|
16
|
-
|
|
17
|
-
/// @dev since this contract will be proxied, it must not contains non-immutable variables
|
|
18
|
-
constructor() //solhint-disable-next-line no-empty-blocks
|
|
19
|
-
{
|
|
20
|
-
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* @notice swap exact PT to YT with the help of flashswaps & YT tokenization / redemption
|
|
25
|
-
* @dev inner working of this function:
|
|
26
|
-
- `exactPtIn` PT is transferred to market contract
|
|
27
|
-
- `market.swapExactPtForSy` is called, which will transfer SY directly to YT contract & callback is invoked.
|
|
28
|
-
Note that we will owe PT, the amount before is not sufficient
|
|
29
|
-
- in callback, all SY in YT contract is used to mint PT + YT, with PT used to pay the rest of the loan, and YT
|
|
30
|
-
transferred to the receiver
|
|
31
|
-
* @param exactPtIn will always consume this amount of PT for as much YT as possible
|
|
32
|
-
* @param guessTotalPtToSwap approximation data for PT used for the PT-to-SY flashswap
|
|
33
|
-
* @dev this function works in conjunction with ActionCallback
|
|
34
|
-
*/
|
|
35
|
-
function swapExactPtForYt(
|
|
36
|
-
address receiver,
|
|
37
|
-
address market,
|
|
38
|
-
uint256 exactPtIn,
|
|
39
|
-
uint256 minYtOut,
|
|
40
|
-
ApproxParams calldata guessTotalPtToSwap
|
|
41
|
-
) external returns (uint256 netYtOut, uint256 netSyFee) {
|
|
42
|
-
(, IPPrincipalToken PT, IPYieldToken YT) = IPMarket(market).readTokens();
|
|
43
|
-
MarketState memory state = IPMarket(market).readState(address(this));
|
|
44
|
-
|
|
45
|
-
_transferFrom(IERC20(PT), msg.sender, market, exactPtIn);
|
|
46
|
-
|
|
47
|
-
uint256 totalPtToSwap;
|
|
48
|
-
(netYtOut, totalPtToSwap, netSyFee) = state.approxSwapExactPtForYt(
|
|
49
|
-
YT.newIndex(),
|
|
50
|
-
exactPtIn,
|
|
51
|
-
block.timestamp,
|
|
52
|
-
guessTotalPtToSwap
|
|
53
|
-
);
|
|
54
|
-
|
|
55
|
-
if (netYtOut < minYtOut) revert Errors.RouterInsufficientYtOut(netYtOut, minYtOut);
|
|
56
|
-
|
|
57
|
-
IPMarket(market).swapExactPtForSy(
|
|
58
|
-
address(YT),
|
|
59
|
-
totalPtToSwap,
|
|
60
|
-
_encodeSwapExactPtForYt(receiver, exactPtIn, minYtOut)
|
|
61
|
-
);
|
|
62
|
-
|
|
63
|
-
emit SwapPtAndYt(msg.sender, market, receiver, exactPtIn.neg(), netYtOut.Int());
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* @notice swap exact YT to PT with the help of flashswaps & YT tokenization / redemption
|
|
68
|
-
* @dev inner working of this function:
|
|
69
|
-
- `exactYtIn` YT is transferred to yield contract
|
|
70
|
-
- `market.swapSyForExactPt` is called, which will transfer PT directly to this contract & callback is invoked.
|
|
71
|
-
Note that we now owe SY
|
|
72
|
-
- in callback, a portion of PT + YT is used to redeem SY, which is then used to payback the loan. The rest of
|
|
73
|
-
of the PT is transferred to `receiver`
|
|
74
|
-
* @param exactYtIn will always consume this amount of YT for as much PT as possible
|
|
75
|
-
* @param guessTotalPtFromSwap approximation data for PT output of the SY-to-PT flashswap
|
|
76
|
-
* @dev this function works in conjunction with ActionCallback
|
|
77
|
-
*/
|
|
78
|
-
function swapExactYtForPt(
|
|
79
|
-
address receiver,
|
|
80
|
-
address market,
|
|
81
|
-
uint256 exactYtIn,
|
|
82
|
-
uint256 minPtOut,
|
|
83
|
-
ApproxParams calldata guessTotalPtFromSwap
|
|
84
|
-
) external returns (uint256 netPtOut, uint256 netSyFee) {
|
|
85
|
-
(, , IPYieldToken YT) = IPMarket(market).readTokens();
|
|
86
|
-
MarketState memory state = IPMarket(market).readState(address(this));
|
|
87
|
-
|
|
88
|
-
_transferFrom(IERC20(YT), msg.sender, address(YT), exactYtIn);
|
|
89
|
-
|
|
90
|
-
uint256 totalPtFromSwap;
|
|
91
|
-
(netPtOut, totalPtFromSwap, netSyFee) = state.approxSwapExactYtForPt(
|
|
92
|
-
YT.newIndex(),
|
|
93
|
-
exactYtIn,
|
|
94
|
-
block.timestamp,
|
|
95
|
-
guessTotalPtFromSwap
|
|
96
|
-
);
|
|
97
|
-
|
|
98
|
-
if (netPtOut < minPtOut) revert Errors.RouterInsufficientPtOut(netPtOut, minPtOut);
|
|
99
|
-
|
|
100
|
-
IPMarket(market).swapSyForExactPt(
|
|
101
|
-
address(this),
|
|
102
|
-
totalPtFromSwap,
|
|
103
|
-
_encodeSwapExactYtForPt(receiver, exactYtIn, minPtOut)
|
|
104
|
-
);
|
|
105
|
-
|
|
106
|
-
emit SwapPtAndYt(msg.sender, market, receiver, netPtOut.Int(), exactYtIn.neg());
|
|
107
|
-
}
|
|
108
|
-
}
|
|
@@ -1,317 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
-
|
|
3
|
-
pragma solidity 0.8.17;
|
|
4
|
-
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
5
|
-
import "./IMultihopRouter.sol";
|
|
6
|
-
import "./IAggregatorRouterHelper.sol";
|
|
7
|
-
import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
|
|
8
|
-
import "../../core/libraries/BoringOwnableUpgradeable.sol";
|
|
9
|
-
|
|
10
|
-
contract AggregationRouterHelper is
|
|
11
|
-
IAggregationRouterHelper,
|
|
12
|
-
Initializable,
|
|
13
|
-
UUPSUpgradeable,
|
|
14
|
-
BoringOwnableUpgradeable
|
|
15
|
-
{
|
|
16
|
-
uint256 private constant _PARTIAL_FILL = 0x01;
|
|
17
|
-
uint256 private constant _REQUIRES_EXTRA_ETH = 0x02;
|
|
18
|
-
uint256 private constant _SHOULD_CLAIM = 0x04;
|
|
19
|
-
uint256 private constant _BURN_FROM_MSG_SENDER = 0x08;
|
|
20
|
-
uint256 private constant _BURN_FROM_TX_ORIGIN = 0x10;
|
|
21
|
-
uint256 private constant _SIMPLE_SWAP = 0x20;
|
|
22
|
-
|
|
23
|
-
uint256 private constant SLIPPAGE_RANGE = 10; // over 100
|
|
24
|
-
|
|
25
|
-
constructor() initializer {}
|
|
26
|
-
|
|
27
|
-
function initialize() external initializer {
|
|
28
|
-
__BoringOwnable_init();
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function _authorizeUpgrade(address newImplementation) internal override onlyOwner {}
|
|
32
|
-
|
|
33
|
-
enum DexType {
|
|
34
|
-
UNI,
|
|
35
|
-
STABLESWAP,
|
|
36
|
-
CURVE,
|
|
37
|
-
KYBERDMM,
|
|
38
|
-
SADDLE,
|
|
39
|
-
UNIV3PROMM,
|
|
40
|
-
BALANCERV2,
|
|
41
|
-
KYBERRFQ,
|
|
42
|
-
DODO,
|
|
43
|
-
VELODROME,
|
|
44
|
-
PLATYPUS
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
struct SwapDescription {
|
|
48
|
-
IERC20 srcToken;
|
|
49
|
-
IERC20 dstToken;
|
|
50
|
-
address[] srcReceivers;
|
|
51
|
-
uint256[] srcAmounts;
|
|
52
|
-
address dstReceiver;
|
|
53
|
-
uint256 amount;
|
|
54
|
-
uint256 minReturnAmount;
|
|
55
|
-
uint256 flags;
|
|
56
|
-
bytes permit;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
struct SimpleSwapData {
|
|
60
|
-
address[] firstPools;
|
|
61
|
-
uint256[] firstSwapAmounts;
|
|
62
|
-
bytes[] swapDatas;
|
|
63
|
-
uint256 deadline;
|
|
64
|
-
bytes destTokenFeeData;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
struct SwapExecutorDescription {
|
|
68
|
-
IMultihopRouter.Swap[][] swapSequences;
|
|
69
|
-
address tokenIn;
|
|
70
|
-
address tokenOut;
|
|
71
|
-
uint256 minTotalAmountOut;
|
|
72
|
-
address to;
|
|
73
|
-
uint256 deadline;
|
|
74
|
-
bytes destTokenFeeData;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
function getScaledInputData(bytes calldata kybercall, uint256 newAmount)
|
|
78
|
-
external
|
|
79
|
-
pure
|
|
80
|
-
returns (bytes memory)
|
|
81
|
-
{
|
|
82
|
-
bytes4 selector = bytes4(kybercall[:4]);
|
|
83
|
-
(
|
|
84
|
-
address caller,
|
|
85
|
-
SwapDescription memory desc,
|
|
86
|
-
bytes memory executorData,
|
|
87
|
-
bytes memory clientData
|
|
88
|
-
) = abi.decode(kybercall[4:], (address, SwapDescription, bytes, bytes));
|
|
89
|
-
|
|
90
|
-
(desc, executorData) = _getScaledInputData(desc, executorData, newAmount);
|
|
91
|
-
return abi.encodeWithSelector(selector, caller, desc, executorData, clientData);
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
function _getScaledInputData(
|
|
95
|
-
SwapDescription memory desc,
|
|
96
|
-
bytes memory executorData,
|
|
97
|
-
uint256 newAmount
|
|
98
|
-
) internal pure returns (SwapDescription memory, bytes memory) {
|
|
99
|
-
uint256 flags = desc.flags;
|
|
100
|
-
uint256 oldAmount = desc.amount;
|
|
101
|
-
if (oldAmount == newAmount) {
|
|
102
|
-
return (desc, executorData);
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
// simple mode swap
|
|
106
|
-
if (flags & _SIMPLE_SWAP != 0) {
|
|
107
|
-
require(desc.srcReceivers.length == 0, "kyber: can't scale if take fee");
|
|
108
|
-
return (
|
|
109
|
-
_getNewDescription(desc, oldAmount, newAmount),
|
|
110
|
-
_getNewSimpleSwapData(executorData, oldAmount, newAmount)
|
|
111
|
-
);
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
//normal mode swap
|
|
115
|
-
bytes memory newExecutorData = _getNewExecutorData(executorData, oldAmount, newAmount);
|
|
116
|
-
return (_getNewDescription(desc, oldAmount, newAmount), newExecutorData);
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
function _getNewDescription(
|
|
120
|
-
SwapDescription memory desc,
|
|
121
|
-
uint256 oldAmount,
|
|
122
|
-
uint256 newAmount
|
|
123
|
-
) internal pure returns (SwapDescription memory) {
|
|
124
|
-
uint256 oldMinReturnAmount = desc.minReturnAmount;
|
|
125
|
-
desc.minReturnAmount = (desc.minReturnAmount * newAmount) / oldAmount;
|
|
126
|
-
//newMinReturnAmount should no be 0 if oldMinReturnAmount > 0
|
|
127
|
-
if (oldMinReturnAmount > 0 && desc.minReturnAmount == 0) desc.minReturnAmount = 1;
|
|
128
|
-
desc.amount = newAmount;
|
|
129
|
-
if (desc.srcReceivers.length == 0) {
|
|
130
|
-
return desc;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
uint256 newTotal;
|
|
134
|
-
for (uint256 i = 0; i < desc.srcReceivers.length; i++) {
|
|
135
|
-
if (i == desc.srcReceivers.length - 1) {
|
|
136
|
-
desc.srcAmounts[i] = newAmount - newTotal;
|
|
137
|
-
} else {
|
|
138
|
-
desc.srcAmounts[i] = (desc.srcAmounts[i] * newAmount) / oldAmount;
|
|
139
|
-
}
|
|
140
|
-
newTotal += desc.srcAmounts[i];
|
|
141
|
-
}
|
|
142
|
-
return desc;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
function _getNewSimpleSwapData(
|
|
146
|
-
bytes memory data,
|
|
147
|
-
uint256 oldAmount,
|
|
148
|
-
uint256 newAmount
|
|
149
|
-
) internal pure returns (bytes memory) {
|
|
150
|
-
SimpleSwapData memory swapData = abi.decode(data, (SimpleSwapData));
|
|
151
|
-
uint256 numberSeq = swapData.firstPools.length;
|
|
152
|
-
uint256 newTotalSwapAmount;
|
|
153
|
-
for (uint256 i = 0; i < numberSeq; i++) {
|
|
154
|
-
if (i == numberSeq - 1) {
|
|
155
|
-
swapData.firstSwapAmounts[i] = newAmount - newTotalSwapAmount;
|
|
156
|
-
} else {
|
|
157
|
-
swapData.firstSwapAmounts[i] =
|
|
158
|
-
(swapData.firstSwapAmounts[i] * newAmount) /
|
|
159
|
-
oldAmount;
|
|
160
|
-
}
|
|
161
|
-
newTotalSwapAmount += swapData.firstSwapAmounts[i];
|
|
162
|
-
}
|
|
163
|
-
return abi.encode(swapData);
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
function _getNewExecutorData(
|
|
167
|
-
bytes memory data,
|
|
168
|
-
uint256 oldAmount,
|
|
169
|
-
uint256 newAmount
|
|
170
|
-
) internal pure returns (bytes memory) {
|
|
171
|
-
SwapExecutorDescription memory swapExecutorDescription = abi.decode(
|
|
172
|
-
data,
|
|
173
|
-
(SwapExecutorDescription)
|
|
174
|
-
);
|
|
175
|
-
swapExecutorDescription.minTotalAmountOut =
|
|
176
|
-
(swapExecutorDescription.minTotalAmountOut * newAmount) /
|
|
177
|
-
oldAmount;
|
|
178
|
-
|
|
179
|
-
uint256 newTotalSwapAmount;
|
|
180
|
-
for (uint256 i = 0; i < swapExecutorDescription.swapSequences.length; i++) {
|
|
181
|
-
IMultihopRouter.Swap memory swap = swapExecutorDescription.swapSequences[i][0];
|
|
182
|
-
uint8 dexType = uint8(swap.dexOption >> 8);
|
|
183
|
-
uint256 value;
|
|
184
|
-
if (i == swapExecutorDescription.swapSequences.length - 1)
|
|
185
|
-
value = newAmount - newTotalSwapAmount;
|
|
186
|
-
|
|
187
|
-
if (dexType == uint8(DexType.UNI)) {
|
|
188
|
-
(swap.data, value) = _newUniSwap(swap.data, value, oldAmount, newAmount);
|
|
189
|
-
} else if (dexType == uint8(DexType.STABLESWAP) || dexType == uint8(DexType.SADDLE)) {
|
|
190
|
-
(swap.data, value) = _newStableSwap(swap.data, value, oldAmount, newAmount);
|
|
191
|
-
} else if (dexType == uint8(DexType.CURVE)) {
|
|
192
|
-
(swap.data, value) = _newCurveSwap(swap.data, value, oldAmount, newAmount);
|
|
193
|
-
} else if (dexType == uint8(DexType.KYBERDMM)) {
|
|
194
|
-
(swap.data, value) = _newKyberDMMSwap(swap.data, value, oldAmount, newAmount);
|
|
195
|
-
} else if (dexType == uint8(DexType.UNIV3PROMM)) {
|
|
196
|
-
(swap.data, value) = _newUniV3ProMMSwap(swap.data, value, oldAmount, newAmount);
|
|
197
|
-
} else if (dexType == uint8(DexType.BALANCERV2)) {
|
|
198
|
-
(swap.data, value) = _newBalancerV2Swap(swap.data, value, oldAmount, newAmount);
|
|
199
|
-
} else if (dexType == uint8(DexType.KYBERRFQ)) {
|
|
200
|
-
revert("kyber: can't scale kyberrfq");
|
|
201
|
-
} else if (dexType == uint8(DexType.DODO)) {
|
|
202
|
-
(swap.data, value) = _newDODOSwap(swap.data, value, oldAmount, newAmount);
|
|
203
|
-
} else if (dexType == uint8(DexType.VELODROME)) {
|
|
204
|
-
(swap.data, value) = _newVelodromeSwap(swap.data, value, oldAmount, newAmount);
|
|
205
|
-
} else {
|
|
206
|
-
revert("AggregationExecutor: Dex type not supported");
|
|
207
|
-
}
|
|
208
|
-
newTotalSwapAmount += value;
|
|
209
|
-
}
|
|
210
|
-
return abi.encode(swapExecutorDescription);
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
function _newUniSwap(
|
|
214
|
-
bytes memory data,
|
|
215
|
-
uint256 value,
|
|
216
|
-
uint256 oldAmount,
|
|
217
|
-
uint256 newAmount
|
|
218
|
-
) internal pure returns (bytes memory, uint256) {
|
|
219
|
-
IMultihopRouter.UniSwap memory uniSwap = abi.decode(data, (IMultihopRouter.UniSwap));
|
|
220
|
-
if (value > 0) uniSwap.collectAmount = value;
|
|
221
|
-
else uniSwap.collectAmount = (uniSwap.collectAmount * newAmount) / oldAmount;
|
|
222
|
-
return (abi.encode(uniSwap), uniSwap.collectAmount);
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
function _newStableSwap(
|
|
226
|
-
bytes memory data,
|
|
227
|
-
uint256 value,
|
|
228
|
-
uint256 oldAmount,
|
|
229
|
-
uint256 newAmount
|
|
230
|
-
) internal pure returns (bytes memory, uint256) {
|
|
231
|
-
IMultihopRouter.StableSwap memory stableSwap = abi.decode(
|
|
232
|
-
data,
|
|
233
|
-
(IMultihopRouter.StableSwap)
|
|
234
|
-
);
|
|
235
|
-
if (value > 0) stableSwap.dx = value;
|
|
236
|
-
else stableSwap.dx = (stableSwap.dx * newAmount) / oldAmount;
|
|
237
|
-
return (abi.encode(stableSwap), stableSwap.dx);
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
function _newCurveSwap(
|
|
241
|
-
bytes memory data,
|
|
242
|
-
uint256 value,
|
|
243
|
-
uint256 oldAmount,
|
|
244
|
-
uint256 newAmount
|
|
245
|
-
) internal pure returns (bytes memory, uint256) {
|
|
246
|
-
IMultihopRouter.CurveSwap memory curveSwap = abi.decode(data, (IMultihopRouter.CurveSwap));
|
|
247
|
-
if (value > 0) curveSwap.dx = value;
|
|
248
|
-
else curveSwap.dx = (curveSwap.dx * newAmount) / oldAmount;
|
|
249
|
-
return (abi.encode(curveSwap), curveSwap.dx);
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
function _newKyberDMMSwap(
|
|
253
|
-
bytes memory data,
|
|
254
|
-
uint256 value,
|
|
255
|
-
uint256 oldAmount,
|
|
256
|
-
uint256 newAmount
|
|
257
|
-
) internal pure returns (bytes memory, uint256) {
|
|
258
|
-
IMultihopRouter.UniSwap memory kyberDMMSwap = abi.decode(data, (IMultihopRouter.UniSwap));
|
|
259
|
-
if (value > 0) kyberDMMSwap.collectAmount = value;
|
|
260
|
-
else kyberDMMSwap.collectAmount = (kyberDMMSwap.collectAmount * newAmount) / oldAmount;
|
|
261
|
-
return (abi.encode(kyberDMMSwap), kyberDMMSwap.collectAmount);
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
function _newUniV3ProMMSwap(
|
|
265
|
-
bytes memory data,
|
|
266
|
-
uint256 value,
|
|
267
|
-
uint256 oldAmount,
|
|
268
|
-
uint256 newAmount
|
|
269
|
-
) internal pure returns (bytes memory, uint256) {
|
|
270
|
-
IMultihopRouter.UniSwapV3ProMM memory uniSwapV3ProMM = abi.decode(
|
|
271
|
-
data,
|
|
272
|
-
(IMultihopRouter.UniSwapV3ProMM)
|
|
273
|
-
);
|
|
274
|
-
if (value > 0) uniSwapV3ProMM.swapAmount = value;
|
|
275
|
-
else uniSwapV3ProMM.swapAmount = (uniSwapV3ProMM.swapAmount * newAmount) / oldAmount;
|
|
276
|
-
return (abi.encode(uniSwapV3ProMM), uniSwapV3ProMM.swapAmount);
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
function _newBalancerV2Swap(
|
|
280
|
-
bytes memory data,
|
|
281
|
-
uint256 value,
|
|
282
|
-
uint256 oldAmount,
|
|
283
|
-
uint256 newAmount
|
|
284
|
-
) internal pure returns (bytes memory, uint256) {
|
|
285
|
-
IMultihopRouter.BalancerV2 memory balancerV2 = abi.decode(
|
|
286
|
-
data,
|
|
287
|
-
(IMultihopRouter.BalancerV2)
|
|
288
|
-
);
|
|
289
|
-
if (value > 0) balancerV2.amount = value;
|
|
290
|
-
else balancerV2.amount = (balancerV2.amount * newAmount) / oldAmount;
|
|
291
|
-
return (abi.encode(balancerV2, balancerV2.amount), balancerV2.amount);
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
function _newDODOSwap(
|
|
295
|
-
bytes memory data,
|
|
296
|
-
uint256 value,
|
|
297
|
-
uint256 oldAmount,
|
|
298
|
-
uint256 newAmount
|
|
299
|
-
) internal pure returns (bytes memory, uint256) {
|
|
300
|
-
IMultihopRouter.DODO memory dodo = abi.decode(data, (IMultihopRouter.DODO));
|
|
301
|
-
if (value > 0) dodo.amount = value;
|
|
302
|
-
else dodo.amount = (dodo.amount * newAmount) / oldAmount;
|
|
303
|
-
return (abi.encode(dodo), dodo.amount);
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
function _newVelodromeSwap(
|
|
307
|
-
bytes memory data,
|
|
308
|
-
uint256 value,
|
|
309
|
-
uint256 oldAmount,
|
|
310
|
-
uint256 newAmount
|
|
311
|
-
) internal pure returns (bytes memory, uint256) {
|
|
312
|
-
IMultihopRouter.UniSwap memory velodrome = abi.decode(data, (IMultihopRouter.UniSwap));
|
|
313
|
-
if (value > 0) velodrome.collectAmount = value;
|
|
314
|
-
else velodrome.collectAmount = (velodrome.collectAmount * newAmount) / oldAmount;
|
|
315
|
-
return (abi.encode(velodrome), velodrome.collectAmount);
|
|
316
|
-
}
|
|
317
|
-
}
|