@pendle/core-v2 2.15.1 → 2.16.0
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/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/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.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/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
- 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/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
- 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/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
- package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
- 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/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
- 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/PYIndex.sol/PYIndexLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.json +1189 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.json +2 -2
- 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 +322 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAPoolHelper.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAPoolHelper.json +24 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAWethHelper.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAWethHelper.json +24 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol/LinearMath.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol/LinearMath.json +10 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol/LinearPreview.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol/LinearPreview.json +234 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.json +2 -2
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotRewardHelper.sol/CamelotRewardHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileCommon.sol/CamelotV1VolatileCommon.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileLpHelper.sol/CamelotV1VolatileLpHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatilePreview.sol/CamelotV1VolatilePreview.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.dbg.json +1 -1
- package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
- 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/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
- package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
- package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
- package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IERC4626LinearPool.sol/IERC4626LinearPool.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Balancer/IERC4626LinearPool.sol/IERC4626LinearPool.json +1172 -0
- package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Camelot/ICamelotFactory.sol/ICamelotFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTFactory.sol/ICamelotNFTFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTHandler.sol/ICamelotNFTHandler.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTPool.sol/ICamelotNFTPool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPool.sol/ICamelotNitroPool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPoolFactory.sol/ICamelotNitroPoolFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Camelot/ICamelotPair.sol/ICamelotPair.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Camelot/ICamelotRouter.sol/ICamelotRouter.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Camelot/ICamelotYieldBooster.sol/ICamelotYieldBooster.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Camelot/IXGrail.sol/IXGrail.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ConvexCurve/ICrvDepositor.sol/ICrvDepositor.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ConvexCurve/ICvxCrv.sol/ICvxCrv.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/Frax/IFrxEthMinter.sol/IFrxEthMinter.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.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/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPFeeDistributorV2.sol/IPFeeDistributorV2.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPtOracle.sol/IPPtOracle.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.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/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStargateLP.sol/IStargateLP.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IStargateStaking.sol/IStargateStaking.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.json +10 -0
- package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendleMulticallV1.sol/PendleMulticallV1.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/samples/PendlePtUsdChainlinkOracle.sol/PendlePtUsdChainlinkOracle.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
- 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/MarketApproxPtOutLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +60 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{arbitrum/IAggregationExecutor.sol → IAggregationExecutor.sol}/IAggregationExecutor.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IExecutorHelper.sol/IExecutorHelper.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{arbitrum/IExecutorHelper1.sol/IExecutorHelper1.json → IExecutorHelper.sol/IExecutorHelper.json} +147 -2
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IHashflow.sol/IHashflow.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{ethereum/IHashflow.sol → IHashflow.sol}/IHashflow.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{arbitrum/IMetaAggregationRouterV2.sol → IMetaAggregationRouterV2.sol}/IMetaAggregationRouterV2.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberInputScalingHelper.sol/KyberInputScalingHelper.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/{arbitrum/KyberHelperArbitrum.sol/KyberHelperArbitrum.json → KyberInputScalingHelper.sol/KyberInputScalingHelper.json} +2 -2
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScalingDataLib.sol/ScalingDataLib.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScalingDataLib.sol/ScalingDataLib.json +10 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol +153 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol +289 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol +629 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol +113 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol +381 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol +206 -0
- package/contracts/interfaces/Balancer/IERC4626LinearPool.sol +181 -0
- package/contracts/interfaces/Balancer/IVault.sol +13 -0
- package/contracts/offchain-helpers/MarketExchangeRateLib.sol +43 -0
- package/contracts/router/swap-aggregator/{PendleSwapEthereum.sol → PendleSwap.sol} +8 -12
- package/contracts/router/swap-aggregator/kyberswap/{arbitrum/IExecutorHelper1.sol → IExecutorHelper.sol} +65 -21
- package/contracts/router/swap-aggregator/kyberswap/{arbitrum/IMetaAggregationRouterV2.sol → IMetaAggregationRouterV2.sol} +4 -3
- package/contracts/router/swap-aggregator/kyberswap/KyberInputScalingHelper.sol +235 -0
- package/contracts/router/swap-aggregator/kyberswap/{arbitrum/ScaleDataHelperArbitrum.sol → ScalingDataLib.sol} +56 -25
- package/deployments/1-core.json +1 -1
- package/deployments/1-markets/BALANCER-LP-AURA-BBAWETHSWETH-SEP-26-2024.json +10 -0
- package/deployments/1-markets/STETH-DEC2027.json +10 -0
- package/deployments/42161-core.json +1 -1
- package/package.json +1 -1
- package/typechain-types/BbAPoolHelper.ts +89 -0
- package/typechain-types/BbAWethHelper.ts +89 -0
- package/typechain-types/ComposableStablePreview.ts +501 -0
- package/typechain-types/IERC4626LinearPool.ts +1649 -0
- package/typechain-types/IExecutorHelper.ts +863 -0
- package/typechain-types/{CamelotV1PreviewHelper.ts → LinearPreview.ts} +49 -118
- package/typechain-types/{PendleCamelotV1SY.ts → PendleAuraBbAWethSwethSY.ts} +199 -383
- package/typechain-types/PendleSwap.ts +126 -0
- package/typechain-types/factories/BbAPoolHelper__factory.ts +36 -0
- package/typechain-types/factories/BbAWethHelper__factory.ts +36 -0
- package/typechain-types/factories/ComposableStablePreview__factory.ts +379 -0
- package/typechain-types/factories/IERC4626LinearPool__factory.ts +1187 -0
- package/typechain-types/factories/IExecutorHelper__factory.ts +548 -0
- package/typechain-types/factories/LinearPreview__factory.ts +284 -0
- package/typechain-types/factories/MetaStablePreview__factory.ts +1 -1
- package/typechain-types/factories/PendleAuraBbAWethSwethSY__factory.ts +1266 -0
- package/typechain-types/factories/PendleAuraWethAnkrethSYV2__factory.ts +1 -1
- package/typechain-types/factories/PendleAuraWethRocketEthSYV2__factory.ts +1 -1
- package/typechain-types/factories/PendleAuraWethStafiEthSY__factory.ts +1 -1
- package/typechain-types/factories/PendleAuraWethWstethSYV2__factory.ts +1 -1
- package/typechain-types/factories/PendleSwap__factory.ts +110 -0
- package/typechain-types/hardhat.d.ts +99 -0
- package/typechain-types/index.ts +16 -0
- package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.json +0 -160
- package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.json +0 -76
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.json +0 -76
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper1.sol/IExecutorHelper1.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol/IExecutorHelper2.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol/IExecutorHelper2.json +0 -40
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IHashflow.sol/IHashflow.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IHashflow.sol/IHashflow.json +0 -101
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol/KyberHelperArbitrum.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol/ScaleDataHelperArbitrum.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/arbitrum/ScaleDataHelperArbitrum.sol/ScaleDataHelperArbitrum.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol/IAggregationExecutor.json +0 -65
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.json +0 -388
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IHashflow.sol/IHashflow.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +0 -215
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/KyberHelperEthereum.sol/KyberHelperEthereum.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/KyberHelperEthereum.sol/KyberHelperEthereum.json +0 -10
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol/ScaleDataHelperEthereum.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol/ScaleDataHelperEthereum.json +0 -10
- package/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol +0 -39
- package/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol +0 -68
- package/contracts/router/swap-aggregator/PendleSwapArbitrum.sol +0 -45
- package/contracts/router/swap-aggregator/kyberswap/arbitrum/IExecutorHelper2.sol +0 -10
- package/contracts/router/swap-aggregator/kyberswap/arbitrum/KyberHelperArbitrum.sol +0 -200
- package/contracts/router/swap-aggregator/kyberswap/ethereum/IAggregationExecutor.sol +0 -17
- package/contracts/router/swap-aggregator/kyberswap/ethereum/IExecutorHelperEthereum1.sol +0 -191
- package/contracts/router/swap-aggregator/kyberswap/ethereum/IHashflow.sol +0 -30
- package/contracts/router/swap-aggregator/kyberswap/ethereum/IMetaAggregationRouterV2.sol +0 -41
- package/contracts/router/swap-aggregator/kyberswap/ethereum/KyberHelperEthereum.sol +0 -201
- package/contracts/router/swap-aggregator/kyberswap/ethereum/ScaleDataHelperEthereum.sol +0 -147
- package/typechain-types/IPVotingEscrowSidechain.ts +0 -155
- package/typechain-types/PendleCamelotRewardHelper.ts +0 -347
- package/typechain-types/PendleCamelotV1RouterHelper.ts +0 -133
- package/typechain-types/factories/CamelotV1PreviewHelper__factory.ts +0 -400
- package/typechain-types/factories/IPVotingEscrowSidechain__factory.ts +0 -112
- package/typechain-types/factories/PendleCamelotRewardHelper__factory.ts +0 -317
- package/typechain-types/factories/PendleCamelotV1RouterHelper__factory.ts +0 -95
- package/typechain-types/factories/PendleCamelotV1SY__factory.ts +0 -1448
- /package/contracts/router/swap-aggregator/kyberswap/{arbitrum/IAggregationExecutor.sol → IAggregationExecutor.sol} +0 -0
- /package/contracts/router/swap-aggregator/kyberswap/{arbitrum/IHashflow.sol → IHashflow.sol} +0 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity 0.8.17;
|
|
3
|
+
|
|
4
|
+
interface IERC4626LinearPool {
|
|
5
|
+
event Approval(address indexed owner, address indexed spender, uint256 value);
|
|
6
|
+
event PausedStateChanged(bool paused);
|
|
7
|
+
event RecoveryModeStateChanged(bool enabled);
|
|
8
|
+
event SwapFeePercentageChanged(uint256 swapFeePercentage);
|
|
9
|
+
event TargetsSet(address indexed token, uint256 lowerTarget, uint256 upperTarget);
|
|
10
|
+
event Transfer(address indexed from, address indexed to, uint256 value);
|
|
11
|
+
|
|
12
|
+
struct SwapRequest {
|
|
13
|
+
uint8 kind;
|
|
14
|
+
address tokenIn;
|
|
15
|
+
address tokenOut;
|
|
16
|
+
uint256 amount;
|
|
17
|
+
bytes32 poolId;
|
|
18
|
+
uint256 lastChangeBlock;
|
|
19
|
+
address from;
|
|
20
|
+
address to;
|
|
21
|
+
bytes userData;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
function DOMAIN_SEPARATOR() external view returns (bytes32);
|
|
25
|
+
|
|
26
|
+
function allowance(address owner, address spender) external view returns (uint256);
|
|
27
|
+
|
|
28
|
+
function approve(address spender, uint256 amount) external returns (bool);
|
|
29
|
+
|
|
30
|
+
function balanceOf(address account) external view returns (uint256);
|
|
31
|
+
|
|
32
|
+
function decimals() external view returns (uint8);
|
|
33
|
+
|
|
34
|
+
function decreaseAllowance(address spender, uint256 amount) external returns (bool);
|
|
35
|
+
|
|
36
|
+
function disableRecoveryMode() external;
|
|
37
|
+
|
|
38
|
+
function enableRecoveryMode() external;
|
|
39
|
+
|
|
40
|
+
function getActionId(bytes4 selector) external view returns (bytes32);
|
|
41
|
+
|
|
42
|
+
function getAuthorizer() external view returns (address);
|
|
43
|
+
|
|
44
|
+
function getBptIndex() external pure returns (uint256);
|
|
45
|
+
|
|
46
|
+
function getDomainSeparator() external view returns (bytes32);
|
|
47
|
+
|
|
48
|
+
function getMainIndex() external view returns (uint256);
|
|
49
|
+
|
|
50
|
+
function getMainToken() external view returns (address);
|
|
51
|
+
|
|
52
|
+
function getNextNonce(address account) external view returns (uint256);
|
|
53
|
+
|
|
54
|
+
function getOwner() external view returns (address);
|
|
55
|
+
|
|
56
|
+
function getPausedState()
|
|
57
|
+
external
|
|
58
|
+
view
|
|
59
|
+
returns (
|
|
60
|
+
bool paused,
|
|
61
|
+
uint256 pauseWindowEndTime,
|
|
62
|
+
uint256 bufferPeriodEndTime
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
function getPoolId() external view returns (bytes32);
|
|
66
|
+
|
|
67
|
+
function getProtocolFeesCollector() external view returns (address);
|
|
68
|
+
|
|
69
|
+
function getRate() external view returns (uint256);
|
|
70
|
+
|
|
71
|
+
function getScalingFactors() external view returns (uint256[] memory);
|
|
72
|
+
|
|
73
|
+
function getSwapFeePercentage() external view returns (uint256);
|
|
74
|
+
|
|
75
|
+
function getTargets() external view returns (uint256 lowerTarget, uint256 upperTarget);
|
|
76
|
+
|
|
77
|
+
function getVault() external view returns (address);
|
|
78
|
+
|
|
79
|
+
function getVirtualSupply() external view returns (uint256);
|
|
80
|
+
|
|
81
|
+
function getWrappedIndex() external view returns (uint256);
|
|
82
|
+
|
|
83
|
+
function getWrappedToken() external view returns (address);
|
|
84
|
+
|
|
85
|
+
function getWrappedTokenRate() external view returns (uint256);
|
|
86
|
+
|
|
87
|
+
function inRecoveryMode() external view returns (bool);
|
|
88
|
+
|
|
89
|
+
function increaseAllowance(address spender, uint256 addedValue) external returns (bool);
|
|
90
|
+
|
|
91
|
+
function initialize() external;
|
|
92
|
+
|
|
93
|
+
function name() external view returns (string memory);
|
|
94
|
+
|
|
95
|
+
function nonces(address owner) external view returns (uint256);
|
|
96
|
+
|
|
97
|
+
function onExitPool(
|
|
98
|
+
bytes32 poolId,
|
|
99
|
+
address sender,
|
|
100
|
+
address,
|
|
101
|
+
uint256[] memory balances,
|
|
102
|
+
uint256,
|
|
103
|
+
uint256,
|
|
104
|
+
bytes memory userData
|
|
105
|
+
) external returns (uint256[] memory amountsOut, uint256[] memory dueProtocolFees);
|
|
106
|
+
|
|
107
|
+
function onJoinPool(
|
|
108
|
+
bytes32 poolId,
|
|
109
|
+
address sender,
|
|
110
|
+
address recipient,
|
|
111
|
+
uint256[] memory balances,
|
|
112
|
+
uint256,
|
|
113
|
+
uint256,
|
|
114
|
+
bytes memory userData
|
|
115
|
+
) external returns (uint256[] memory amountsIn, uint256[] memory dueProtocolFees);
|
|
116
|
+
|
|
117
|
+
function onSwap(
|
|
118
|
+
SwapRequest memory request,
|
|
119
|
+
uint256[] memory balances,
|
|
120
|
+
uint256 indexIn,
|
|
121
|
+
uint256 indexOut
|
|
122
|
+
) external returns (uint256);
|
|
123
|
+
|
|
124
|
+
function onSwap(
|
|
125
|
+
SwapRequest memory request,
|
|
126
|
+
uint256 balanceTokenIn,
|
|
127
|
+
uint256 balanceTokenOut
|
|
128
|
+
) external returns (uint256);
|
|
129
|
+
|
|
130
|
+
function pause() external;
|
|
131
|
+
|
|
132
|
+
function permit(
|
|
133
|
+
address owner,
|
|
134
|
+
address spender,
|
|
135
|
+
uint256 value,
|
|
136
|
+
uint256 deadline,
|
|
137
|
+
uint8 v,
|
|
138
|
+
bytes32 r,
|
|
139
|
+
bytes32 s
|
|
140
|
+
) external;
|
|
141
|
+
|
|
142
|
+
function queryExit(
|
|
143
|
+
bytes32,
|
|
144
|
+
address sender,
|
|
145
|
+
address,
|
|
146
|
+
uint256[] memory balances,
|
|
147
|
+
uint256,
|
|
148
|
+
uint256,
|
|
149
|
+
bytes memory userData
|
|
150
|
+
) external returns (uint256 bptIn, uint256[] memory amountsOut);
|
|
151
|
+
|
|
152
|
+
function queryJoin(
|
|
153
|
+
bytes32,
|
|
154
|
+
address sender,
|
|
155
|
+
address,
|
|
156
|
+
uint256[] memory balances,
|
|
157
|
+
uint256,
|
|
158
|
+
uint256,
|
|
159
|
+
bytes memory userData
|
|
160
|
+
) external returns (uint256 bptOut, uint256[] memory amountsIn);
|
|
161
|
+
|
|
162
|
+
function setSwapFeePercentage(uint256 swapFeePercentage) external;
|
|
163
|
+
|
|
164
|
+
function setTargets(uint256 newLowerTarget, uint256 newUpperTarget) external;
|
|
165
|
+
|
|
166
|
+
function symbol() external view returns (string memory);
|
|
167
|
+
|
|
168
|
+
function totalSupply() external view returns (uint256);
|
|
169
|
+
|
|
170
|
+
function transfer(address recipient, uint256 amount) external returns (bool);
|
|
171
|
+
|
|
172
|
+
function transferFrom(
|
|
173
|
+
address sender,
|
|
174
|
+
address recipient,
|
|
175
|
+
uint256 amount
|
|
176
|
+
) external returns (bool);
|
|
177
|
+
|
|
178
|
+
function unpause() external;
|
|
179
|
+
|
|
180
|
+
function version() external view returns (string memory);
|
|
181
|
+
}
|
|
@@ -27,6 +27,19 @@ interface IVault {
|
|
|
27
27
|
bool fromInternalBalance;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
struct SwapRequest {
|
|
31
|
+
IVault.SwapKind kind;
|
|
32
|
+
IERC20 tokenIn;
|
|
33
|
+
IERC20 tokenOut;
|
|
34
|
+
uint256 amount;
|
|
35
|
+
// Misc data
|
|
36
|
+
bytes32 poolId;
|
|
37
|
+
uint256 lastChangeBlock;
|
|
38
|
+
address from;
|
|
39
|
+
address to;
|
|
40
|
+
bytes userData;
|
|
41
|
+
}
|
|
42
|
+
|
|
30
43
|
function joinPool(
|
|
31
44
|
bytes32 poolId,
|
|
32
45
|
address sender,
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
+
pragma solidity 0.8.17;
|
|
3
|
+
|
|
4
|
+
import "../core/Market/MarketMathCore.sol";
|
|
5
|
+
import "../interfaces/IPMarket.sol";
|
|
6
|
+
|
|
7
|
+
library MarketExchangeRateLib {
|
|
8
|
+
using Math for int256;
|
|
9
|
+
using MarketMathCore for MarketState;
|
|
10
|
+
using MarketMathCore for MarketPreCompute;
|
|
11
|
+
|
|
12
|
+
function getMarketExchangeRate(address market) internal view returns (uint256) {
|
|
13
|
+
MarketState memory state = IPMarket(market).readState(address(0));
|
|
14
|
+
MarketPreCompute memory comp = state.getMarketPreCompute(
|
|
15
|
+
_getPYIndexCurrent(market),
|
|
16
|
+
block.timestamp
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
return
|
|
20
|
+
MarketMathCore
|
|
21
|
+
._getExchangeRate(
|
|
22
|
+
state.totalPt,
|
|
23
|
+
comp.totalAsset,
|
|
24
|
+
comp.rateScalar,
|
|
25
|
+
comp.rateAnchor,
|
|
26
|
+
0
|
|
27
|
+
)
|
|
28
|
+
.Uint();
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function _getPYIndexCurrent(address market) private view returns (PYIndex) {
|
|
32
|
+
(IStandardizedYield SY, , IPYieldToken YT) = IPMarket(market).readTokens();
|
|
33
|
+
uint256 ytIndex = YT.pyIndexStored();
|
|
34
|
+
uint256 pyIndexCurrent;
|
|
35
|
+
if (YT.doCacheIndexSameBlock() && YT.pyIndexLastUpdatedBlock() == block.number) {
|
|
36
|
+
pyIndexCurrent = ytIndex;
|
|
37
|
+
} else {
|
|
38
|
+
uint256 syIndex = SY.exchangeRate();
|
|
39
|
+
pyIndexCurrent = Math.max(syIndex, ytIndex);
|
|
40
|
+
}
|
|
41
|
+
return PYIndex.wrap(pyIndexCurrent);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
@@ -1,22 +1,18 @@
|
|
|
1
1
|
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
2
|
pragma solidity 0.8.17;
|
|
3
3
|
|
|
4
|
-
import "@openzeppelin/contracts/utils/Address.sol";
|
|
5
4
|
import "../../core/libraries/TokenHelper.sol";
|
|
6
|
-
import "../../core/libraries/Errors.sol";
|
|
7
5
|
import "./IPSwapAggregator.sol";
|
|
8
|
-
import "./
|
|
9
|
-
import "./kyberswap/ethereum/KyberHelperEthereum.sol";
|
|
6
|
+
import "./kyberswap/KyberInputScalingHelper.sol";
|
|
10
7
|
|
|
11
|
-
contract
|
|
12
|
-
IPSwapAggregator,
|
|
13
|
-
TokenHelper,
|
|
14
|
-
KyberHelperEthereum,
|
|
15
|
-
OneInchAggregationRouterHelper
|
|
16
|
-
{
|
|
8
|
+
contract PendleSwap is IPSwapAggregator, TokenHelper, KyberInputScalingHelper {
|
|
17
9
|
using Address for address;
|
|
18
10
|
|
|
19
|
-
function swap(
|
|
11
|
+
function swap(
|
|
12
|
+
address tokenIn,
|
|
13
|
+
uint256 amountIn,
|
|
14
|
+
SwapData calldata data
|
|
15
|
+
) external payable {
|
|
20
16
|
_safeApproveInf(tokenIn, data.extRouter);
|
|
21
17
|
data.extRouter.functionCallWithValue(
|
|
22
18
|
data.needScale
|
|
@@ -34,7 +30,7 @@ contract PendleSwapEthereum is
|
|
|
34
30
|
if (swapType == SwapType.KYBERSWAP) {
|
|
35
31
|
scaledCallData = _getKyberScaledInputData(rawCallData, amountIn);
|
|
36
32
|
} else if (swapType == SwapType.ONE_INCH) {
|
|
37
|
-
|
|
33
|
+
revert("not supported");
|
|
38
34
|
} else {
|
|
39
35
|
assert(false);
|
|
40
36
|
}
|
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
// SPDX-License-Identifier: MIT
|
|
2
2
|
pragma solidity 0.8.17;
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
interface IExecutorHelper {
|
|
5
|
+
struct Swap {
|
|
6
|
+
bytes data;
|
|
7
|
+
bytes4 functionSelector;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
struct SwapExecutorDescription {
|
|
11
|
+
Swap[][] swapSequences;
|
|
12
|
+
address tokenIn;
|
|
13
|
+
address tokenOut;
|
|
14
|
+
uint256 minTotalAmountOut;
|
|
15
|
+
address to;
|
|
16
|
+
uint256 deadline;
|
|
17
|
+
bytes destTokenFeeData;
|
|
18
|
+
}
|
|
5
19
|
|
|
6
|
-
interface IExecutorHelper1 {
|
|
7
20
|
struct UniSwap {
|
|
8
21
|
address pool;
|
|
9
22
|
address tokenIn;
|
|
@@ -51,15 +64,6 @@ interface IExecutorHelper1 {
|
|
|
51
64
|
uint160 sqrtPriceLimitX96;
|
|
52
65
|
bool isUniV3; // true = UniV3, false = ProMM
|
|
53
66
|
}
|
|
54
|
-
struct SwapCallbackData {
|
|
55
|
-
bytes path;
|
|
56
|
-
address payer;
|
|
57
|
-
}
|
|
58
|
-
struct SwapCallbackDataPath {
|
|
59
|
-
address pool;
|
|
60
|
-
address tokenIn;
|
|
61
|
-
address tokenOut;
|
|
62
|
-
}
|
|
63
67
|
|
|
64
68
|
struct BalancerV2 {
|
|
65
69
|
address vault;
|
|
@@ -70,14 +74,6 @@ interface IExecutorHelper1 {
|
|
|
70
74
|
uint256 limit;
|
|
71
75
|
}
|
|
72
76
|
|
|
73
|
-
struct KyberRFQ {
|
|
74
|
-
address rfq;
|
|
75
|
-
bytes order;
|
|
76
|
-
bytes signature;
|
|
77
|
-
uint256 amount;
|
|
78
|
-
address payable target;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
77
|
struct DODO {
|
|
82
78
|
address recipient;
|
|
83
79
|
address pool;
|
|
@@ -110,9 +106,27 @@ interface IExecutorHelper1 {
|
|
|
110
106
|
bool useAtomicExchange;
|
|
111
107
|
}
|
|
112
108
|
|
|
113
|
-
struct
|
|
109
|
+
struct Platypus {
|
|
110
|
+
address pool;
|
|
111
|
+
address tokenIn;
|
|
112
|
+
address tokenOut;
|
|
113
|
+
address recipient;
|
|
114
|
+
uint256 collectAmount; // amount that should be transferred to the pool
|
|
115
|
+
uint256 limitReturnAmount;
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
struct PSM {
|
|
114
119
|
address router;
|
|
115
|
-
|
|
120
|
+
address tokenIn;
|
|
121
|
+
address tokenOut;
|
|
122
|
+
uint256 amountIn;
|
|
123
|
+
address recipient;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
struct WSTETH {
|
|
127
|
+
address pool;
|
|
128
|
+
uint256 amount;
|
|
129
|
+
bool isWrapping;
|
|
116
130
|
}
|
|
117
131
|
|
|
118
132
|
function executeUniSwap(
|
|
@@ -175,6 +189,18 @@ interface IExecutorHelper1 {
|
|
|
175
189
|
uint256 previousAmountOut
|
|
176
190
|
) external payable returns (uint256);
|
|
177
191
|
|
|
192
|
+
function executePlatypusSwap(
|
|
193
|
+
uint256 index,
|
|
194
|
+
bytes memory data,
|
|
195
|
+
uint256 previousAmountOut
|
|
196
|
+
) external payable returns (uint256);
|
|
197
|
+
|
|
198
|
+
function executeWrappedstETHSwap(
|
|
199
|
+
uint256 index,
|
|
200
|
+
bytes memory data,
|
|
201
|
+
uint256 previousAmountOut
|
|
202
|
+
) external payable returns (uint256);
|
|
203
|
+
|
|
178
204
|
function executeSynthetixSwap(
|
|
179
205
|
uint256 index,
|
|
180
206
|
bytes memory data,
|
|
@@ -187,9 +213,27 @@ interface IExecutorHelper1 {
|
|
|
187
213
|
uint256 previousAmountOut
|
|
188
214
|
) external payable returns (uint256);
|
|
189
215
|
|
|
216
|
+
function executePSMSwap(
|
|
217
|
+
uint256 index,
|
|
218
|
+
bytes memory data,
|
|
219
|
+
uint256 previousAmountOut
|
|
220
|
+
) external payable returns (uint256);
|
|
221
|
+
|
|
222
|
+
function executeFraxSwap(
|
|
223
|
+
uint256 index,
|
|
224
|
+
bytes memory data,
|
|
225
|
+
uint256 previousAmountOut
|
|
226
|
+
) external payable returns (uint256);
|
|
227
|
+
|
|
190
228
|
function executeCamelotSwap(
|
|
191
229
|
uint256 index,
|
|
192
230
|
bytes memory data,
|
|
193
231
|
uint256 previousAmountOut
|
|
194
232
|
) external payable returns (uint256);
|
|
233
|
+
|
|
234
|
+
function executeKyberLimitOrder(
|
|
235
|
+
uint256 index,
|
|
236
|
+
bytes memory data,
|
|
237
|
+
uint256 previousAmountOut
|
|
238
|
+
) external payable returns (uint256);
|
|
195
239
|
}
|
|
@@ -28,9 +28,10 @@ interface IMetaAggregationRouterV2 {
|
|
|
28
28
|
bytes clientData;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
function swap(
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
function swap(SwapExecutionParams calldata execution)
|
|
32
|
+
external
|
|
33
|
+
payable
|
|
34
|
+
returns (uint256, uint256);
|
|
34
35
|
|
|
35
36
|
function swapSimpleMode(
|
|
36
37
|
IAggregationExecutor caller,
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
|
2
|
+
|
|
3
|
+
pragma solidity 0.8.17;
|
|
4
|
+
import "./IMetaAggregationRouterV2.sol";
|
|
5
|
+
import "./IHashflow.sol";
|
|
6
|
+
import "./IExecutorHelper.sol";
|
|
7
|
+
import "./ScalingDataLib.sol";
|
|
8
|
+
|
|
9
|
+
abstract contract KyberInputScalingHelper {
|
|
10
|
+
uint256 private constant _PARTIAL_FILL = 0x01;
|
|
11
|
+
uint256 private constant _REQUIRES_EXTRA_ETH = 0x02;
|
|
12
|
+
uint256 private constant _SHOULD_CLAIM = 0x04;
|
|
13
|
+
uint256 private constant _BURN_FROM_MSG_SENDER = 0x08;
|
|
14
|
+
uint256 private constant _BURN_FROM_TX_ORIGIN = 0x10;
|
|
15
|
+
uint256 private constant _SIMPLE_SWAP = 0x20;
|
|
16
|
+
|
|
17
|
+
// fee data in case taking in dest token
|
|
18
|
+
struct PositiveSlippageFeeData {
|
|
19
|
+
uint256 partnerPSInfor; // [partnerReceiver (160 bit) + partnerPercent(96bits)]
|
|
20
|
+
uint256 expectedReturnAmount;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
struct Swap {
|
|
24
|
+
bytes data;
|
|
25
|
+
bytes4 functionSelector;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
struct SimpleSwapData {
|
|
29
|
+
address[] firstPools;
|
|
30
|
+
uint256[] firstSwapAmounts;
|
|
31
|
+
bytes[] swapDatas;
|
|
32
|
+
uint256 deadline;
|
|
33
|
+
bytes positiveSlippageData;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
struct SwapExecutorDescription {
|
|
37
|
+
Swap[][] swapSequences;
|
|
38
|
+
address tokenIn;
|
|
39
|
+
address tokenOut;
|
|
40
|
+
uint256 minTotalAmountOut;
|
|
41
|
+
address to;
|
|
42
|
+
uint256 deadline;
|
|
43
|
+
bytes positiveSlippageData;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function _getKyberScaledInputData(bytes calldata inputData, uint256 newAmount)
|
|
47
|
+
internal
|
|
48
|
+
pure
|
|
49
|
+
returns (bytes memory)
|
|
50
|
+
{
|
|
51
|
+
bytes4 selector = bytes4(inputData[:4]);
|
|
52
|
+
bytes calldata dataToDecode = inputData[4:];
|
|
53
|
+
|
|
54
|
+
if (selector == IMetaAggregationRouterV2.swap.selector) {
|
|
55
|
+
IMetaAggregationRouterV2.SwapExecutionParams memory params = abi.decode(
|
|
56
|
+
dataToDecode,
|
|
57
|
+
(IMetaAggregationRouterV2.SwapExecutionParams)
|
|
58
|
+
);
|
|
59
|
+
|
|
60
|
+
(params.desc, params.targetData) = _getScaledInputDataV2(
|
|
61
|
+
params.desc,
|
|
62
|
+
params.targetData,
|
|
63
|
+
newAmount,
|
|
64
|
+
_flagsChecked(params.desc.flags, _SIMPLE_SWAP)
|
|
65
|
+
);
|
|
66
|
+
return abi.encodeWithSelector(selector, params);
|
|
67
|
+
} else if (selector == IMetaAggregationRouterV2.swapSimpleMode.selector) {
|
|
68
|
+
(
|
|
69
|
+
address callTarget,
|
|
70
|
+
IMetaAggregationRouterV2.SwapDescriptionV2 memory desc,
|
|
71
|
+
bytes memory targetData,
|
|
72
|
+
bytes memory clientData
|
|
73
|
+
) = abi.decode(
|
|
74
|
+
dataToDecode,
|
|
75
|
+
(address, IMetaAggregationRouterV2.SwapDescriptionV2, bytes, bytes)
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
(desc, targetData) = _getScaledInputDataV2(desc, targetData, newAmount, true);
|
|
79
|
+
return abi.encodeWithSelector(selector, callTarget, desc, targetData, clientData);
|
|
80
|
+
} else revert("InputScalingHelper: Invalid selector");
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
function _getScaledInputDataV2(
|
|
84
|
+
IMetaAggregationRouterV2.SwapDescriptionV2 memory desc,
|
|
85
|
+
bytes memory executorData,
|
|
86
|
+
uint256 newAmount,
|
|
87
|
+
bool isSimpleMode
|
|
88
|
+
) internal pure returns (IMetaAggregationRouterV2.SwapDescriptionV2 memory, bytes memory) {
|
|
89
|
+
uint256 oldAmount = desc.amount;
|
|
90
|
+
if (oldAmount == newAmount) {
|
|
91
|
+
return (desc, executorData);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// simple mode swap
|
|
95
|
+
if (isSimpleMode) {
|
|
96
|
+
return (
|
|
97
|
+
_scaledSwapDescriptionV2(desc, oldAmount, newAmount),
|
|
98
|
+
_scaledSimpleSwapData(executorData, oldAmount, newAmount)
|
|
99
|
+
);
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
//normal mode swap
|
|
103
|
+
return (
|
|
104
|
+
_scaledSwapDescriptionV2(desc, oldAmount, newAmount),
|
|
105
|
+
_scaledExecutorCallBytesData(executorData, oldAmount, newAmount)
|
|
106
|
+
);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/// @dev Scale the swap description
|
|
110
|
+
function _scaledSwapDescriptionV2(
|
|
111
|
+
IMetaAggregationRouterV2.SwapDescriptionV2 memory desc,
|
|
112
|
+
uint256 oldAmount,
|
|
113
|
+
uint256 newAmount
|
|
114
|
+
) internal pure returns (IMetaAggregationRouterV2.SwapDescriptionV2 memory) {
|
|
115
|
+
desc.minReturnAmount = (desc.minReturnAmount * newAmount) / oldAmount;
|
|
116
|
+
if (desc.minReturnAmount == 0) desc.minReturnAmount = 1;
|
|
117
|
+
desc.amount = newAmount;
|
|
118
|
+
|
|
119
|
+
uint256 nReceivers = desc.srcReceivers.length;
|
|
120
|
+
for (uint256 i = 0; i < nReceivers; ) {
|
|
121
|
+
desc.srcAmounts[i] = (desc.srcAmounts[i] * newAmount) / oldAmount;
|
|
122
|
+
unchecked {
|
|
123
|
+
++i;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return desc;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
/// @dev Scale the executorData in case swapSimpleMode
|
|
130
|
+
function _scaledSimpleSwapData(
|
|
131
|
+
bytes memory data,
|
|
132
|
+
uint256 oldAmount,
|
|
133
|
+
uint256 newAmount
|
|
134
|
+
) internal pure returns (bytes memory) {
|
|
135
|
+
SimpleSwapData memory swapData = abi.decode(data, (SimpleSwapData));
|
|
136
|
+
|
|
137
|
+
uint256 nPools = swapData.firstPools.length;
|
|
138
|
+
for (uint256 i = 0; i < nPools; ) {
|
|
139
|
+
swapData.firstSwapAmounts[i] = (swapData.firstSwapAmounts[i] * newAmount) / oldAmount;
|
|
140
|
+
unchecked {
|
|
141
|
+
++i;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
swapData.positiveSlippageData = _scaledPositiveSlippageFeeData(
|
|
145
|
+
swapData.positiveSlippageData,
|
|
146
|
+
oldAmount,
|
|
147
|
+
newAmount
|
|
148
|
+
);
|
|
149
|
+
return abi.encode(swapData);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/// @dev Scale the executorData in case normal swap
|
|
153
|
+
function _scaledExecutorCallBytesData(
|
|
154
|
+
bytes memory data,
|
|
155
|
+
uint256 oldAmount,
|
|
156
|
+
uint256 newAmount
|
|
157
|
+
) internal pure returns (bytes memory) {
|
|
158
|
+
SwapExecutorDescription memory executorDesc = abi.decode(data, (SwapExecutorDescription));
|
|
159
|
+
executorDesc.minTotalAmountOut = (executorDesc.minTotalAmountOut * newAmount) / oldAmount;
|
|
160
|
+
executorDesc.positiveSlippageData = _scaledPositiveSlippageFeeData(
|
|
161
|
+
executorDesc.positiveSlippageData,
|
|
162
|
+
oldAmount,
|
|
163
|
+
newAmount
|
|
164
|
+
);
|
|
165
|
+
|
|
166
|
+
uint256 nSequences = executorDesc.swapSequences.length;
|
|
167
|
+
for (uint256 i = 0; i < nSequences; ) {
|
|
168
|
+
Swap memory swap = executorDesc.swapSequences[i][0];
|
|
169
|
+
bytes4 functionSelector = swap.functionSelector;
|
|
170
|
+
|
|
171
|
+
if (functionSelector == IExecutorHelper.executeUniSwap.selector) {
|
|
172
|
+
swap.data = ScalingDataLib.newUniSwap(swap.data, oldAmount, newAmount);
|
|
173
|
+
} else if (functionSelector == IExecutorHelper.executeStableSwap.selector) {
|
|
174
|
+
swap.data = ScalingDataLib.newStableSwap(swap.data, oldAmount, newAmount);
|
|
175
|
+
} else if (functionSelector == IExecutorHelper.executeCurveSwap.selector) {
|
|
176
|
+
swap.data = ScalingDataLib.newCurveSwap(swap.data, oldAmount, newAmount);
|
|
177
|
+
} else if (functionSelector == IExecutorHelper.executeKyberDMMSwap.selector) {
|
|
178
|
+
swap.data = ScalingDataLib.newKyberDMM(swap.data, oldAmount, newAmount);
|
|
179
|
+
} else if (functionSelector == IExecutorHelper.executeUniV3ProMMSwap.selector) {
|
|
180
|
+
swap.data = ScalingDataLib.newUniV3ProMM(swap.data, oldAmount, newAmount);
|
|
181
|
+
} else if (functionSelector == IExecutorHelper.executeRfqSwap.selector) {
|
|
182
|
+
revert("InputScalingHelper: Can not scale RFQ swap");
|
|
183
|
+
} else if (functionSelector == IExecutorHelper.executeBalV2Swap.selector) {
|
|
184
|
+
swap.data = ScalingDataLib.newBalancerV2(swap.data, oldAmount, newAmount);
|
|
185
|
+
} else if (functionSelector == IExecutorHelper.executeWrappedstETHSwap.selector) {
|
|
186
|
+
swap.data = ScalingDataLib.newWrappedstETHSwap(swap.data, oldAmount, newAmount);
|
|
187
|
+
} else if (functionSelector == IExecutorHelper.executeDODOSwap.selector) {
|
|
188
|
+
swap.data = ScalingDataLib.newDODO(swap.data, oldAmount, newAmount);
|
|
189
|
+
} else if (functionSelector == IExecutorHelper.executeVelodromeSwap.selector) {
|
|
190
|
+
swap.data = ScalingDataLib.newVelodrome(swap.data, oldAmount, newAmount);
|
|
191
|
+
} else if (functionSelector == IExecutorHelper.executeGMXSwap.selector) {
|
|
192
|
+
swap.data = ScalingDataLib.newGMX(swap.data, oldAmount, newAmount);
|
|
193
|
+
} else if (functionSelector == IExecutorHelper.executeSynthetixSwap.selector) {
|
|
194
|
+
swap.data = ScalingDataLib.newSynthetix(swap.data, oldAmount, newAmount);
|
|
195
|
+
} else if (functionSelector == IExecutorHelper.executeHashflowSwap.selector) {
|
|
196
|
+
revert("InputScalingHelper: Can not scale RFQ swap");
|
|
197
|
+
} else if (functionSelector == IExecutorHelper.executeCamelotSwap.selector) {
|
|
198
|
+
swap.data = ScalingDataLib.newCamelot(swap.data, oldAmount, newAmount);
|
|
199
|
+
} else if (functionSelector == IExecutorHelper.executeKyberLimitOrder.selector) {
|
|
200
|
+
revert("InputScalingHelper: Can not scale RFQ swap");
|
|
201
|
+
} else if (functionSelector == IExecutorHelper.executePSMSwap.selector) {
|
|
202
|
+
swap.data = ScalingDataLib.newPSM(swap.data, oldAmount, newAmount);
|
|
203
|
+
} else if (functionSelector == IExecutorHelper.executeFraxSwap.selector) {
|
|
204
|
+
swap.data = ScalingDataLib.newFrax(swap.data, oldAmount, newAmount);
|
|
205
|
+
} else if (functionSelector == IExecutorHelper.executePlatypusSwap.selector) {
|
|
206
|
+
swap.data = ScalingDataLib.newPlatypus(swap.data, oldAmount, newAmount);
|
|
207
|
+
} else revert("AggregationExecutor: Dex type not supported");
|
|
208
|
+
unchecked {
|
|
209
|
+
++i;
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
return abi.encode(executorDesc);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
function _scaledPositiveSlippageFeeData(
|
|
216
|
+
bytes memory data,
|
|
217
|
+
uint256 oldAmount,
|
|
218
|
+
uint256 newAmount
|
|
219
|
+
) internal pure returns (bytes memory newData) {
|
|
220
|
+
if (data.length > 32) {
|
|
221
|
+
PositiveSlippageFeeData memory psData = abi.decode(data, (PositiveSlippageFeeData));
|
|
222
|
+
psData.expectedReturnAmount = (psData.expectedReturnAmount * newAmount) / oldAmount;
|
|
223
|
+
data = abi.encode(psData);
|
|
224
|
+
} else if (data.length == 32) {
|
|
225
|
+
uint256 expectedReturnAmount = abi.decode(data, (uint256));
|
|
226
|
+
expectedReturnAmount = (expectedReturnAmount * newAmount) / oldAmount;
|
|
227
|
+
data = abi.encode(expectedReturnAmount);
|
|
228
|
+
}
|
|
229
|
+
return data;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
function _flagsChecked(uint256 number, uint256 flag) internal pure returns (bool) {
|
|
233
|
+
return number & flag != 0;
|
|
234
|
+
}
|
|
235
|
+
}
|