@pendle/core-v2 3.0.0-beta-11 → 3.0.0-beta-12
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/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol +5 -23
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol +2 -5
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol +6 -20
- package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol +6 -27
- package/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol +1 -2
- package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +1 -1
- package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +16 -17
- package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol +6 -7
- package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol +7 -8
- package/contracts/LiquidityMining/PendleMerkleDistributor.sol +2 -11
- package/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol +14 -37
- package/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol +19 -34
- package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +4 -14
- package/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +4 -16
- package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +11 -39
- package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +3 -10
- package/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol +1 -1
- package/contracts/LiquidityMining/libraries/VeBalanceLib.sol +5 -20
- package/contracts/LiquidityMining/libraries/VeHistoryLib.sol +1 -3
- package/contracts/core/Market/MarketMathCore.sol +12 -37
- package/contracts/core/Market/OracleLib.sol +6 -24
- package/contracts/core/Market/PendleExternalRewardDistributor.sol +4 -10
- package/contracts/core/Market/PendleGauge.sol +3 -9
- package/contracts/core/Market/PendleMarket.sol +14 -39
- package/contracts/core/Market/PendleMarketFactory.sol +14 -21
- package/contracts/core/Market/v2/PendleGaugeV2.sol +8 -24
- package/contracts/core/Market/v2/PendleMarketFactoryV2.sol +7 -27
- package/contracts/core/Market/v2/PendleMarketV2.sol +13 -36
- package/contracts/core/Market/v3/PendleMarketFactoryV3.sol +137 -0
- package/contracts/core/Market/v3/PendleMarketV3.sol +360 -0
- package/contracts/core/RewardManager/PendleLinearDistributor.sol +143 -0
- package/contracts/core/RewardManager/RewardManager.sol +14 -7
- package/contracts/core/RewardManager/RewardManagerAbstract.sol +5 -17
- package/contracts/core/StandardizedYield/SYBase.sol +10 -40
- package/contracts/core/StandardizedYield/SYBaseUpg.sol +197 -0
- package/contracts/core/StandardizedYield/SYBaseWithRewards.sol +9 -41
- package/contracts/core/StandardizedYield/SYBaseWithRewardsUpg.sol +88 -0
- package/contracts/core/StandardizedYield/SYUtils.sol +1 -4
- package/contracts/core/StandardizedYield/StEthHelper.sol +3 -9
- package/contracts/core/StandardizedYield/implementations/AaveV3/PendleAaveV3SY.sol +94 -0
- package/contracts/core/StandardizedYield/implementations/AaveV3/libraries/AaveAdapterLib.sol +19 -0
- package/contracts/core/StandardizedYield/implementations/AaveV3/libraries/WadRayMath.sol +126 -0
- package/contracts/core/StandardizedYield/implementations/Ankr/PendleAnkrBNBSY.sol +4 -12
- package/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol +5 -19
- package/contracts/core/StandardizedYield/implementations/BalancerStable/AuraEthxBbAWethSY.sol +4 -14
- package/contracts/core/StandardizedYield/implementations/BalancerStable/AuraSwEthBbAWethSYV2.sol +4 -14
- package/contracts/core/StandardizedYield/implementations/BalancerStable/{PendleAuraWethVethSY.sol → AuraWethVethSYUpg.sol} +13 -20
- package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol +3 -7
- package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol +12 -29
- package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol +12 -29
- package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol +12 -29
- package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol +14 -39
- package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWstethAnkreth.sol +7 -28
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol +13 -30
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreviewProxy.sol +1 -1
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreviewV4.sol +50 -153
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreviewV5.sol +50 -157
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol +4 -16
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol +6 -25
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol +36 -34
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol +4 -13
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol +20 -58
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV2.sol +28 -79
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV3Upg.sol +310 -0
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol +1 -3
- package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol +2 -6
- package/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol +5 -13
- package/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol +9 -29
- package/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotRewardHelper.sol +2 -8
- package/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileCommon.sol +1 -5
- package/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileLpHelper.sol +8 -19
- package/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatilePreview.sol +7 -25
- package/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol +8 -27
- package/contracts/core/StandardizedYield/implementations/ChainlinkRelayer/PendleChainlinkReceiver.sol +2 -2
- package/contracts/core/StandardizedYield/implementations/ChainlinkRelayer/PendleChainlinkRelayer.sol +4 -9
- package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol +3 -15
- package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol +5 -23
- package/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol +10 -40
- package/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol +2 -8
- package/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol +2 -7
- package/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol +5 -20
- package/contracts/core/StandardizedYield/implementations/Flux/FluxTokenLib.sol +6 -4
- package/contracts/core/StandardizedYield/implementations/Flux/PendleFluxLendingSY.sol +3 -11
- package/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol +3 -9
- package/contracts/core/StandardizedYield/implementations/GLP/GMTokenPricingHelper.sol +115 -0
- package/contracts/core/StandardizedYield/implementations/GLP/PendleGMV2TokenSY.sol +134 -0
- package/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol +5 -19
- package/contracts/core/StandardizedYield/implementations/HMX/HLPPricingHelper.sol +3 -4
- package/contracts/core/StandardizedYield/implementations/HMX/PendleHlpSY.sol +18 -25
- package/contracts/core/StandardizedYield/implementations/Kyber/KyberMathHelper.sol +425 -0
- package/contracts/core/StandardizedYield/implementations/Kyber/KyberNftManagerBaseUpg.sol +438 -0
- package/contracts/core/StandardizedYield/implementations/Kyber/PendleKyberElasticSYUpg.sol +155 -0
- package/contracts/core/StandardizedYield/implementations/Kyber/libraries/FullMath.sol +123 -0
- package/contracts/core/StandardizedYield/implementations/Kyber/libraries/LiqDeltaMath.sol +17 -0
- package/contracts/core/StandardizedYield/implementations/Kyber/libraries/LiquidityMath.sol +74 -0
- package/contracts/core/StandardizedYield/implementations/Kyber/libraries/MathConstants.sol +19 -0
- package/contracts/core/StandardizedYield/implementations/Kyber/libraries/QtyDeltaMath.sol +103 -0
- package/contracts/core/StandardizedYield/implementations/Kyber/libraries/QuadMath.sol +31 -0
- package/contracts/core/StandardizedYield/implementations/Kyber/libraries/ReinvestmentMath.sol +26 -0
- package/contracts/core/StandardizedYield/implementations/Kyber/libraries/SafeCast.sol +73 -0
- package/contracts/core/StandardizedYield/implementations/Kyber/libraries/SwapMath.sol +272 -0
- package/contracts/core/StandardizedYield/implementations/Kyber/libraries/TickMath.sol +223 -0
- package/contracts/core/StandardizedYield/implementations/MUX/MlpPricingHelper.sol +26 -0
- package/contracts/core/StandardizedYield/implementations/MUX/PendleMlpSY.sol +195 -0
- package/contracts/core/StandardizedYield/implementations/MantleStakedEth/PendleMantleStakedEthSY.sol +12 -41
- package/contracts/core/StandardizedYield/implementations/MantleStakedEth/PendleOracleForSyProxy.sol +1 -1
- package/contracts/core/StandardizedYield/implementations/PendleArbitrumStakedEthSY.sol +13 -42
- package/contracts/core/StandardizedYield/implementations/PendleBridgedLSDSY.sol +4 -11
- package/contracts/core/StandardizedYield/implementations/PendleERC4626SY.sol +4 -16
- package/contracts/core/StandardizedYield/implementations/PendleEUSDSY.sol +3 -11
- package/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol +3 -11
- package/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol +5 -18
- package/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol +3 -7
- package/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol +5 -18
- package/contracts/core/StandardizedYield/implementations/PendleWbEthSY.sol +3 -10
- package/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol +4 -12
- package/contracts/core/StandardizedYield/implementations/Silo/PendleSiloWithIncentiveSY.sol +157 -0
- package/contracts/core/StandardizedYield/implementations/Stader/PendleETHXSY.sol +4 -12
- package/contracts/core/StandardizedYield/implementations/Swell/PendleSwETH.sol +4 -12
- package/contracts/core/StandardizedYield/implementations/Thena/PendleThenaSY.sol +9 -29
- package/contracts/core/StandardizedYield/implementations/Thena/ThenaLpHelper.sol +3 -10
- package/contracts/core/StandardizedYield/implementations/Thena/ThenaMath.sol +9 -30
- package/contracts/core/StandardizedYield/implementations/Thena/ThenaPreview.sol +10 -40
- package/contracts/core/YieldContracts/InterestManagerYT.sol +6 -8
- package/contracts/core/YieldContracts/PendlePrincipalToken.sol +1 -1
- package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +2 -3
- package/contracts/core/YieldContracts/PendleYieldToken.sol +17 -44
- package/contracts/core/YieldContractsV2/InterestManagerYTV2.sol +5 -14
- package/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol +1 -1
- package/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol +2 -3
- package/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol +13 -48
- package/contracts/core/erc20/PendleERC20.sol +2 -8
- package/contracts/core/erc20/PendleERC20Permit.sol +2 -6
- package/contracts/core/erc20/PendleERC20PermitUpg.sol +82 -0
- package/contracts/core/erc20/PendleERC20Upg.sol +334 -0
- package/contracts/core/libraries/ArrayLib.sol +7 -8
- package/contracts/core/libraries/BaseSplitCodeFactory.sol +1 -6
- package/contracts/core/libraries/Errors.sol +19 -1
- package/contracts/core/libraries/ExpiryUtilsLib.sol +3 -26
- package/contracts/core/libraries/StringLib.sol +5 -21
- package/contracts/core/libraries/TokenHelper.sol +3 -3
- package/contracts/core/libraries/math/LogExpMath.sol +1 -4
- package/contracts/core/libraries/math/PMath.sol +13 -15
- package/contracts/interfaces/AaveV3/IAaveV3AToken.sol +15 -0
- package/contracts/interfaces/AaveV3/IAaveV3Pool.sol +11 -0
- package/contracts/interfaces/Balancer/IComposableStable.sol +3 -4
- package/contracts/interfaces/Balancer/IERC4626LinearPool.sol +2 -10
- package/contracts/interfaces/Balancer/IMetaStablePool.sol +3 -11
- package/contracts/interfaces/Balancer/IVault.sol +3 -8
- package/contracts/interfaces/BinanceEth/IWBETH.sol +1 -1
- package/contracts/interfaces/Camelot/ICamelotNFTFactory.sol +1 -3
- package/contracts/interfaces/Camelot/ICamelotNFTHandler.sol +2 -10
- package/contracts/interfaces/Camelot/ICamelotNitroPool.sol +0 -1
- package/contracts/interfaces/Camelot/ICamelotNitroPoolFactory.sol +3 -12
- package/contracts/interfaces/Camelot/ICamelotPair.sol +5 -25
- package/contracts/interfaces/Camelot/ICamelotRouter.sol +1 -5
- package/contracts/interfaces/Camelot/IXGrail.sol +3 -11
- package/contracts/interfaces/ConvexCurve/IBooster.sol +1 -3
- package/contracts/interfaces/Curve/ICrvPool.sol +3 -12
- package/contracts/interfaces/Curve/ITriCrvPool.sol +2 -9
- package/contracts/interfaces/Flux/IFluxErc20.sol +1 -1
- package/contracts/interfaces/Flux/IFluxInterestRateModel.sol +1 -5
- package/contracts/interfaces/GMX/IGMXPriceHelper.sol +6 -0
- package/contracts/interfaces/GMX/IGMXVault.sol +2 -9
- package/contracts/interfaces/GMX/IRewardRouterV2.sol +1 -4
- package/contracts/interfaces/HMX/IHLPStaking.sol +1 -1
- package/contracts/interfaces/HMX/IHMXCalculator.sol +1 -1
- package/contracts/interfaces/HMX/IHMXCompounder.sol +1 -1
- package/contracts/interfaces/HMX/IHMXStaking.sol +1 -1
- package/contracts/interfaces/HMX/IHMXVester.sol +1 -1
- package/contracts/interfaces/IApeStaking.sol +3 -9
- package/contracts/interfaces/IBenQiInterestRateModel.sol +1 -5
- package/contracts/interfaces/IDiamondCut.sol +1 -5
- package/contracts/interfaces/IDiamondLoupe.sol +1 -3
- package/contracts/interfaces/ILayerZeroReceiver.sol +1 -6
- package/contracts/interfaces/IPActionAddRemoveLiqV3.sol +10 -2
- package/contracts/interfaces/IPActionInfoStatic.sol +4 -7
- package/contracts/interfaces/IPActionMarketAuxStatic.sol +5 -9
- package/contracts/interfaces/IPActionMarketCoreStatic.sol +118 -58
- package/contracts/interfaces/IPActionMintRedeemStatic.sol +38 -21
- package/contracts/interfaces/IPActionMiscV3.sol +51 -26
- package/contracts/interfaces/IPActionStorageStatic.sol +5 -1
- package/contracts/interfaces/IPAllActionTypeV3.sol +1 -0
- package/contracts/interfaces/IPBulkSeller.sol +49 -0
- package/contracts/interfaces/IPBulkSellerFactory.sol +12 -0
- package/contracts/interfaces/IPBulkSellerSYCallback.sol +6 -0
- package/contracts/interfaces/IPFeeDistributor.sol +1 -3
- package/contracts/interfaces/IPFeeDistributorV2.sol +8 -7
- package/contracts/interfaces/IPGaugeController.sol +2 -8
- package/contracts/interfaces/IPGaugeControllerMainchain.sol +1 -5
- package/contracts/interfaces/IPInterestManagerYT.sol +3 -3
- package/contracts/interfaces/IPInterestManagerYTV2.sol +1 -4
- package/contracts/interfaces/IPLimitRouter.sol +24 -19
- package/contracts/interfaces/IPLinearDistributor.sol +21 -0
- package/contracts/interfaces/IPMarket.sol +4 -17
- package/contracts/interfaces/IPMarketFactory.sol +2 -13
- package/contracts/interfaces/IPMarketFactoryV3.sol +24 -0
- package/contracts/interfaces/IPMarketV3.sol +8 -0
- package/contracts/interfaces/IPOffchainStorage.sol +11 -0
- package/contracts/interfaces/IPPriceFeed.sol +6 -0
- package/contracts/interfaces/IPPtOracle.sol +2 -9
- package/contracts/interfaces/IPRouterHelper.sol +11 -7
- package/contracts/interfaces/IPRouterStatic.sol +1 -3
- package/contracts/interfaces/IPVotingController.sol +7 -19
- package/contracts/interfaces/IPVotingEscrowMainchain.sol +2 -8
- package/contracts/interfaces/IPYieldToken.sol +2 -8
- package/contracts/interfaces/IPYieldTokenV2.sol +1 -6
- package/contracts/interfaces/IPendlePreviewHelper.sol +2 -8
- package/contracts/interfaces/IRewardManager.sol +1 -4
- package/contracts/interfaces/IStETH.sol +1 -4
- package/contracts/interfaces/IStandardizedYield.sol +9 -16
- package/contracts/interfaces/IStargateLP.sol +0 -3
- package/contracts/interfaces/IStargateRouter.sol +1 -5
- package/contracts/interfaces/Kyber/IKyberElasticFactory.sol +157 -0
- package/contracts/interfaces/Kyber/IKyberElasticPool.sol +101 -0
- package/contracts/interfaces/Kyber/IKyberElasticRouter.sol +98 -0
- package/contracts/interfaces/Kyber/IKyberLiquidityMining.sol +209 -0
- package/contracts/interfaces/Kyber/IKyberMathHelper.sol +28 -0
- package/contracts/interfaces/Kyber/IKyberPositionManager.sol +179 -0
- package/contracts/interfaces/Lybra/IEUSD.sol +1 -1
- package/contracts/interfaces/MUX/IMUXRewardRouter.sol +139 -0
- package/contracts/interfaces/Silo/ISilo.sol +298 -0
- package/contracts/interfaces/Silo/ISiloIncentiveController.sol +16 -0
- package/contracts/interfaces/Silo/ISiloLens.sol +6 -0
- package/contracts/interfaces/Stader/IStaderStakeManager.sol +2 -2
- package/contracts/interfaces/Thena/IThenaFactory.sol +1 -5
- package/contracts/interfaces/Thena/IThenaGaugeV2.sol +1 -2
- package/contracts/interfaces/Thena/IThenaPair.sol +3 -5
- package/contracts/limit/LimitMathCore.sol +69 -60
- package/contracts/limit/{PendleOrderMixin.sol → LimitRouterBase.sol} +96 -79
- package/contracts/limit/PendleLimitRouter.sol +9 -13
- package/contracts/offchain-helpers/AutomateReady.sol +17 -32
- package/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol +6 -3
- package/contracts/offchain-helpers/BoringLpSeller.sol +4 -17
- package/contracts/offchain-helpers/BoringPtSeller.sol +2 -7
- package/contracts/offchain-helpers/Broadcaster.sol +1 -1
- package/contracts/offchain-helpers/BytesLib.sol +26 -14
- package/contracts/offchain-helpers/EmptyUUPS.sol +0 -1
- package/contracts/offchain-helpers/LegacyNFTHelper.sol +4 -23
- package/contracts/offchain-helpers/LimitBackendHelper.sol +25 -16
- package/contracts/offchain-helpers/MarketExchangeRateLib.sol +2 -13
- package/contracts/offchain-helpers/Multicall2.sol +2 -7
- package/contracts/offchain-helpers/PendleMulticallV1.sol +7 -7
- package/contracts/offchain-helpers/PendleMulticallV2.sol +12 -13
- package/contracts/offchain-helpers/PendleOffchainStorage.sol +59 -0
- package/contracts/offchain-helpers/SimulateHelper.sol +6 -7
- package/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol +15 -1
- package/contracts/oracles/PendleLpOracleLib.sol +9 -10
- package/contracts/oracles/PendlePtOracle.sol +8 -19
- package/contracts/oracles/PendlePtOracleLib.sol +8 -13
- package/contracts/oracles/samples/PendleLpGlpOracle.sol +6 -10
- package/contracts/oracles/samples/PendlePtGlpOracle.sol +6 -10
- package/contracts/oracles/samples/PendlePtUsdChainlinkOracle.sol +8 -15
- package/contracts/router/ActionAddRemoveLiqV3.sol +147 -52
- package/contracts/router/ActionCallbackV3.sol +11 -4
- package/contracts/router/ActionMiscV3.sol +43 -33
- package/contracts/router/ActionSwapPTV3.sol +18 -6
- package/contracts/router/ActionSwapYTV3.sol +42 -14
- package/contracts/router/PendleRouterHelper.sol +72 -40
- package/contracts/router/PendleRouterV3.sol +50 -50
- package/contracts/router/base/ActionBase.sol +86 -43
- package/contracts/router/base/CallbackHelper.sol +18 -20
- package/contracts/router/base/MarketApproxLib.sol +36 -32
- package/contracts/router/swap-aggregator/PendleSwap.sol +31 -7
- package/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutorOptimistic.sol +63 -0
- package/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelper.sol +314 -0
- package/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperL2.sol +560 -0
- package/contracts/router/swap-aggregator/kyberswap/{IMetaAggregationRouterV2.sol → interfaces/IMetaAggregationRouterV2.sol} +11 -6
- package/contracts/router/swap-aggregator/kyberswap/{KyberInputScalingHelper.sol → l1-contracts/InputScalingHelper.sol} +70 -19
- package/contracts/router/swap-aggregator/kyberswap/{ScalingDataLib.sol → l1-contracts/ScalingDataLib.sol} +111 -53
- package/contracts/router/swap-aggregator/kyberswap/l2-contracts/BytesHelper.sol +29 -0
- package/contracts/router/swap-aggregator/kyberswap/l2-contracts/CalldataReader.sol +149 -0
- package/contracts/router/swap-aggregator/kyberswap/l2-contracts/CalldataWriter.sol +118 -0
- package/contracts/router/swap-aggregator/kyberswap/l2-contracts/Common.sol +42 -0
- package/contracts/router/swap-aggregator/kyberswap/l2-contracts/DexScaler.sol +382 -0
- package/contracts/router/swap-aggregator/kyberswap/l2-contracts/ExecutorReader.sol +61 -0
- package/contracts/router/swap-aggregator/kyberswap/l2-contracts/InputScalingHelperL2.sol +329 -0
- package/contracts/router/swap-aggregator/kyberswap/l2-contracts/ScalingDataL2Lib.sol +173 -0
- package/contracts/router/swap-aggregator/oneinch/I1inchAggregationRouterV5.sol +4 -10
- package/contracts/router/swap-aggregator/oneinch/OneInchAggregationRouterHelper.sol +20 -14
- package/deployments/1-core.json +5 -2
- package/deployments/1-markets/EPENDLE-SEP2024.json +12 -0
- package/deployments/1-markets/SFRAX-MARCH2024.json +10 -0
- package/deployments/1-markets/SILO-CRVUSD-MARCH2024.json +10 -0
- package/deployments/10-core.json +6 -3
- package/deployments/42161-core.json +5 -2
- package/deployments/42161-markets/AAVE-USDC-JUNE2024.json +11 -0
- package/deployments/42161-markets/ARBSILO-USDC-FEB2024.json +10 -0
- package/deployments/42161-markets/GM-ARB-USDC-MARCH2024.json +10 -0
- package/deployments/42161-markets/KYBER-AXLWSTETH-WSTETH-MARCH2024.json +10 -0
- package/deployments/42161-markets/MLP-MARCH2024.json +10 -0
- package/deployments/42161-markets/WSTETH-ARBITRUM-MARCH2024.json +11 -0
- package/deployments/42161-markets/WSTETHSILO-ETH-MARCH2024.json +11 -0
- package/deployments/56-core.json +5 -2
- package/deployments/merkle-distribution/2023-10-26.json +7300 -0
- package/deployments/merkle-distribution/2023-11-30.json +7730 -0
- package/package.json +8 -8
- package/contracts/limit/helpers/ArgumentsDecoder.sol +0 -47
- package/contracts/limit/helpers/Permitable.sol +0 -48
- package/contracts/limit/helpers/RevertReasonParser.sol +0 -75
- package/contracts/offchain-helpers/ChainlinkRelayerGelato.sol +0 -37
- package/contracts/offchain-helpers/PtAndLpToAsset.sol +0 -62
- package/contracts/offchain-helpers/router-static/PendleRouterStatic.sol +0 -19
- package/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol +0 -112
- package/contracts/offchain-helpers/router-static/base/ActionLimitOrdersStatic.sol +0 -145
- package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +0 -171
- package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +0 -582
- package/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol +0 -116
- package/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol +0 -64
- package/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol +0 -53
- package/contracts/offchain-helpers/router-static/base/StorageLayout.sol +0 -18
- package/contracts/router/swap-aggregator/kyberswap/IExecutorHelper.sol +0 -231
- package/deployments/1-markets/BALANCER-LP-AURA-VETH-WETH-SEP2024.json +0 -8
- /package/contracts/router/swap-aggregator/kyberswap/{IAggregationExecutor.sol → interfaces/IAggregationExecutor.sol} +0 -0
- /package/deployments/1-markets/{BALANCER-LP-AURA-BBAWETHSWETH-SEP-26-2024.json → deprecated/BALANCER-LP-AURA-BBAWETHSWETH-SEP-26-2024.json} +0 -0
- /package/deployments/1-markets/{BALANCER-LP-AURA-ETHX-BBAWETH-SEP-26-2024.json → deprecated/BALANCER-LP-AURA-ETHX-BBAWETH-SEP-26-2024.json} +0 -0
|
@@ -5,28 +5,32 @@ import "./base/ActionBase.sol";
|
|
|
5
5
|
import "../interfaces/IPActionMiscV3.sol";
|
|
6
6
|
|
|
7
7
|
contract ActionMiscV3 is IPActionMiscV3, ActionBase {
|
|
8
|
-
function mintSyFromToken(
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
8
|
+
function mintSyFromToken(
|
|
9
|
+
address receiver,
|
|
10
|
+
address SY,
|
|
11
|
+
uint256 minSyOut,
|
|
12
|
+
TokenInput calldata input
|
|
13
|
+
) external payable returns (uint256 netSyOut) {
|
|
13
14
|
netSyOut = _mintSyFromToken(receiver, SY, minSyOut, input);
|
|
14
15
|
emit MintSyFromToken(msg.sender, input.tokenIn, SY, receiver, input.netTokenIn, netSyOut);
|
|
15
16
|
}
|
|
16
17
|
|
|
17
|
-
function redeemSyToToken(
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
18
|
+
function redeemSyToToken(
|
|
19
|
+
address receiver,
|
|
20
|
+
address SY,
|
|
21
|
+
uint256 netSyIn,
|
|
22
|
+
TokenOutput calldata output
|
|
23
|
+
) external returns (uint256 netTokenOut) {
|
|
21
24
|
netTokenOut = _redeemSyToToken(receiver, SY, netSyIn, output, true);
|
|
22
25
|
emit RedeemSyToToken(msg.sender, output.tokenOut, SY, receiver, netSyIn, netTokenOut);
|
|
23
26
|
}
|
|
24
27
|
|
|
25
|
-
function mintPyFromToken(
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
function mintPyFromToken(
|
|
29
|
+
address receiver,
|
|
30
|
+
address YT,
|
|
31
|
+
uint256 minPyOut,
|
|
32
|
+
TokenInput calldata input
|
|
33
|
+
) external payable returns (uint256 netPyOut, uint256 netSyInterm) {
|
|
30
34
|
address SY = IPYieldToken(YT).SY();
|
|
31
35
|
|
|
32
36
|
netSyInterm = _mintSyFromToken(YT, SY, 0, input);
|
|
@@ -35,10 +39,12 @@ contract ActionMiscV3 is IPActionMiscV3, ActionBase {
|
|
|
35
39
|
emit MintPyFromToken(msg.sender, input.tokenIn, YT, receiver, input.netTokenIn, netPyOut, netSyInterm);
|
|
36
40
|
}
|
|
37
41
|
|
|
38
|
-
function redeemPyToToken(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
+
function redeemPyToToken(
|
|
43
|
+
address receiver,
|
|
44
|
+
address YT,
|
|
45
|
+
uint256 netPyIn,
|
|
46
|
+
TokenOutput calldata output
|
|
47
|
+
) external returns (uint256 netTokenOut, uint256 netSyInterm) {
|
|
42
48
|
address SY = IPYieldToken(YT).SY();
|
|
43
49
|
|
|
44
50
|
netSyInterm = _redeemPyToSy(SY, YT, netPyIn, 1);
|
|
@@ -47,18 +53,22 @@ contract ActionMiscV3 is IPActionMiscV3, ActionBase {
|
|
|
47
53
|
emit RedeemPyToToken(msg.sender, output.tokenOut, YT, receiver, netPyIn, netTokenOut, netSyInterm);
|
|
48
54
|
}
|
|
49
55
|
|
|
50
|
-
function mintPyFromSy(
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
56
|
+
function mintPyFromSy(
|
|
57
|
+
address receiver,
|
|
58
|
+
address YT,
|
|
59
|
+
uint256 netSyIn,
|
|
60
|
+
uint256 minPyOut
|
|
61
|
+
) external returns (uint256 netPyOut) {
|
|
54
62
|
netPyOut = _mintPyFromSy(receiver, IPYieldToken(YT).SY(), YT, netSyIn, minPyOut, true);
|
|
55
63
|
emit MintPyFromSy(msg.sender, receiver, YT, netSyIn, netPyOut);
|
|
56
64
|
}
|
|
57
65
|
|
|
58
|
-
function redeemPyToSy(
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
66
|
+
function redeemPyToSy(
|
|
67
|
+
address receiver,
|
|
68
|
+
address YT,
|
|
69
|
+
uint256 netPyIn,
|
|
70
|
+
uint256 minSyOut
|
|
71
|
+
) external returns (uint256 netSyOut) {
|
|
62
72
|
netSyOut = _redeemPyToSy(receiver, YT, netPyIn, minSyOut);
|
|
63
73
|
emit RedeemPyToSy(msg.sender, receiver, YT, netPyIn, netSyOut);
|
|
64
74
|
}
|
|
@@ -84,11 +94,11 @@ contract ActionMiscV3 is IPActionMiscV3, ActionBase {
|
|
|
84
94
|
}
|
|
85
95
|
}
|
|
86
96
|
|
|
87
|
-
function swapTokenToToken(
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
{
|
|
97
|
+
function swapTokenToToken(
|
|
98
|
+
address receiver,
|
|
99
|
+
uint256 minTokenOut,
|
|
100
|
+
TokenInput calldata inp
|
|
101
|
+
) external payable returns (uint256 netTokenOut) {
|
|
92
102
|
_swapTokenInput(inp);
|
|
93
103
|
|
|
94
104
|
netTokenOut = _selfBalance(inp.tokenMintSy);
|
|
@@ -113,7 +123,7 @@ contract ActionMiscV3 is IPActionMiscV3, ActionBase {
|
|
|
113
123
|
// ----------------- MISC FUNCTIONS -----------------
|
|
114
124
|
|
|
115
125
|
function boostMarkets(address[] memory markets) external {
|
|
116
|
-
for (uint256 i = 0; i < markets.length;) {
|
|
126
|
+
for (uint256 i = 0; i < markets.length; ) {
|
|
117
127
|
IPMarket(markets[i]).transferFrom(msg.sender, markets[i], 0);
|
|
118
128
|
unchecked {
|
|
119
129
|
i++;
|
|
@@ -125,7 +135,7 @@ contract ActionMiscV3 is IPActionMiscV3, ActionBase {
|
|
|
125
135
|
uint256 length = calls.length;
|
|
126
136
|
res = new Result[](length);
|
|
127
137
|
Call3 calldata call;
|
|
128
|
-
for (uint256 i = 0; i < length;) {
|
|
138
|
+
for (uint256 i = 0; i < length; ) {
|
|
129
139
|
call = calls[i];
|
|
130
140
|
|
|
131
141
|
// delegatecall to itself, it turns allowing invoking functions from other actions
|
|
@@ -16,12 +16,18 @@ contract ActionSwapPTV3 is IPActionSwapPTV3, ActionBase {
|
|
|
16
16
|
TokenInput calldata input,
|
|
17
17
|
LimitOrderData calldata limit
|
|
18
18
|
) external payable returns (uint256 netPtOut, uint256 netSyFee, uint256 netSyInterm) {
|
|
19
|
-
(IStandardizedYield SY
|
|
19
|
+
(IStandardizedYield SY, , ) = IPMarket(market).readTokens();
|
|
20
20
|
netSyInterm = _mintSyFromToken(_entry_swapExactSyForPt(market, limit), address(SY), 1, input);
|
|
21
21
|
|
|
22
22
|
(netPtOut, netSyFee) = _swapExactSyForPt(receiver, market, netSyInterm, minPtOut, guessPtOut, limit);
|
|
23
23
|
emit SwapPtAndToken(
|
|
24
|
-
msg.sender,
|
|
24
|
+
msg.sender,
|
|
25
|
+
market,
|
|
26
|
+
input.tokenIn,
|
|
27
|
+
receiver,
|
|
28
|
+
netPtOut.Int(),
|
|
29
|
+
input.netTokenIn.neg(),
|
|
30
|
+
netSyInterm
|
|
25
31
|
);
|
|
26
32
|
}
|
|
27
33
|
|
|
@@ -33,7 +39,7 @@ contract ActionSwapPTV3 is IPActionSwapPTV3, ActionBase {
|
|
|
33
39
|
ApproxParams calldata guessPtOut,
|
|
34
40
|
LimitOrderData calldata limit
|
|
35
41
|
) external returns (uint256 netPtOut, uint256 netSyFee) {
|
|
36
|
-
(IStandardizedYield SY
|
|
42
|
+
(IStandardizedYield SY, , ) = IPMarket(market).readTokens();
|
|
37
43
|
_transferFrom(SY, msg.sender, _entry_swapExactSyForPt(market, limit), exactSyIn);
|
|
38
44
|
|
|
39
45
|
(netPtOut, netSyFee) = _swapExactSyForPt(receiver, market, exactSyIn, minPtOut, guessPtOut, limit);
|
|
@@ -47,7 +53,7 @@ contract ActionSwapPTV3 is IPActionSwapPTV3, ActionBase {
|
|
|
47
53
|
TokenOutput calldata output,
|
|
48
54
|
LimitOrderData calldata limit
|
|
49
55
|
) external returns (uint256 netTokenOut, uint256 netSyFee, uint256 netSyInterm) {
|
|
50
|
-
(IStandardizedYield SY, IPPrincipalToken PT,) = IPMarket(market).readTokens();
|
|
56
|
+
(IStandardizedYield SY, IPPrincipalToken PT, ) = IPMarket(market).readTokens();
|
|
51
57
|
_transferFrom(PT, msg.sender, _entry_swapExactPtForSy(market, limit), exactPtIn);
|
|
52
58
|
|
|
53
59
|
(netSyInterm, netSyFee) = _swapExactPtForSy(address(SY), market, exactPtIn, 0, limit);
|
|
@@ -55,7 +61,13 @@ contract ActionSwapPTV3 is IPActionSwapPTV3, ActionBase {
|
|
|
55
61
|
netTokenOut = _redeemSyToToken(receiver, address(SY), netSyInterm, output, false);
|
|
56
62
|
|
|
57
63
|
emit SwapPtAndToken(
|
|
58
|
-
msg.sender,
|
|
64
|
+
msg.sender,
|
|
65
|
+
market,
|
|
66
|
+
output.tokenOut,
|
|
67
|
+
receiver,
|
|
68
|
+
exactPtIn.neg(),
|
|
69
|
+
netTokenOut.Int(),
|
|
70
|
+
netSyInterm
|
|
59
71
|
);
|
|
60
72
|
}
|
|
61
73
|
|
|
@@ -66,7 +78,7 @@ contract ActionSwapPTV3 is IPActionSwapPTV3, ActionBase {
|
|
|
66
78
|
uint256 minSyOut,
|
|
67
79
|
LimitOrderData calldata limit
|
|
68
80
|
) external returns (uint256 netSyOut, uint256 netSyFee) {
|
|
69
|
-
(, IPPrincipalToken PT,) = IPMarket(market).readTokens();
|
|
81
|
+
(, IPPrincipalToken PT, ) = IPMarket(market).readTokens();
|
|
70
82
|
_transferFrom(PT, msg.sender, _entry_swapExactPtForSy(market, limit), exactPtIn);
|
|
71
83
|
|
|
72
84
|
(netSyOut, netSyFee) = _swapExactPtForSy(receiver, market, exactPtIn, minSyOut, limit);
|
|
@@ -21,13 +21,19 @@ contract ActionSwapYTV3 is CallbackHelper, IPActionSwapYTV3, ActionBase {
|
|
|
21
21
|
TokenInput calldata input,
|
|
22
22
|
LimitOrderData calldata limit
|
|
23
23
|
) external payable returns (uint256 netYtOut, uint256 netSyFee, uint256 netSyInterm) {
|
|
24
|
-
(IStandardizedYield SY
|
|
24
|
+
(IStandardizedYield SY, , IPYieldToken YT) = IPMarket(market).readTokens();
|
|
25
25
|
|
|
26
26
|
netSyInterm = _mintSyFromToken(_entry_swapExactSyForYt(YT, limit), address(SY), 1, input);
|
|
27
27
|
(netYtOut, netSyFee) = _swapExactSyForYt(receiver, market, SY, YT, netSyInterm, minYtOut, guessYtOut, limit);
|
|
28
28
|
|
|
29
29
|
emit SwapYtAndToken(
|
|
30
|
-
msg.sender,
|
|
30
|
+
msg.sender,
|
|
31
|
+
market,
|
|
32
|
+
input.tokenIn,
|
|
33
|
+
receiver,
|
|
34
|
+
netYtOut.Int(),
|
|
35
|
+
input.netTokenIn.neg(),
|
|
36
|
+
netSyInterm
|
|
31
37
|
);
|
|
32
38
|
}
|
|
33
39
|
|
|
@@ -39,7 +45,7 @@ contract ActionSwapYTV3 is CallbackHelper, IPActionSwapYTV3, ActionBase {
|
|
|
39
45
|
ApproxParams calldata guessYtOut,
|
|
40
46
|
LimitOrderData calldata limit
|
|
41
47
|
) external returns (uint256 netYtOut, uint256 netSyFee) {
|
|
42
|
-
(IStandardizedYield SY
|
|
48
|
+
(IStandardizedYield SY, , IPYieldToken YT) = IPMarket(market).readTokens();
|
|
43
49
|
_transferFrom(SY, msg.sender, _entry_swapExactSyForYt(YT, limit), exactSyIn);
|
|
44
50
|
|
|
45
51
|
(netYtOut, netSyFee) = _swapExactSyForYt(receiver, market, SY, YT, exactSyIn, minYtOut, guessYtOut, limit);
|
|
@@ -71,8 +77,12 @@ contract ActionSwapYTV3 is CallbackHelper, IPActionSwapYTV3, ActionBase {
|
|
|
71
77
|
}
|
|
72
78
|
|
|
73
79
|
if (doMarketOrder) {
|
|
74
|
-
(uint256 netYtOutMarket,) =
|
|
75
|
-
|
|
80
|
+
(uint256 netYtOutMarket, ) = _readMarket(market).approxSwapExactSyForYt(
|
|
81
|
+
YT.newIndex(),
|
|
82
|
+
netSyLeft,
|
|
83
|
+
block.timestamp,
|
|
84
|
+
guessYtOut
|
|
85
|
+
);
|
|
76
86
|
|
|
77
87
|
(, uint256 netSyFeeMarket) = IPMarket(market).swapExactPtForSy(
|
|
78
88
|
address(YT),
|
|
@@ -96,7 +106,7 @@ contract ActionSwapYTV3 is CallbackHelper, IPActionSwapYTV3, ActionBase {
|
|
|
96
106
|
TokenOutput calldata output,
|
|
97
107
|
LimitOrderData calldata limit
|
|
98
108
|
) external returns (uint256 netTokenOut, uint256 netSyFee, uint256 netSyInterm) {
|
|
99
|
-
(IStandardizedYield SY
|
|
109
|
+
(IStandardizedYield SY, , IPYieldToken YT) = IPMarket(market).readTokens();
|
|
100
110
|
_transferFrom(YT, msg.sender, _entry_swapExactYtForSy(YT, limit), exactYtIn);
|
|
101
111
|
|
|
102
112
|
(netSyInterm, netSyFee) = _swapExactYtForSy(address(SY), market, SY, YT, exactYtIn, 0, limit);
|
|
@@ -104,7 +114,13 @@ contract ActionSwapYTV3 is CallbackHelper, IPActionSwapYTV3, ActionBase {
|
|
|
104
114
|
netTokenOut = _redeemSyToToken(receiver, address(SY), netSyInterm, output, false);
|
|
105
115
|
|
|
106
116
|
emit SwapYtAndToken(
|
|
107
|
-
msg.sender,
|
|
117
|
+
msg.sender,
|
|
118
|
+
market,
|
|
119
|
+
output.tokenOut,
|
|
120
|
+
receiver,
|
|
121
|
+
exactYtIn.neg(),
|
|
122
|
+
netTokenOut.Int(),
|
|
123
|
+
netSyInterm
|
|
108
124
|
);
|
|
109
125
|
}
|
|
110
126
|
|
|
@@ -115,7 +131,7 @@ contract ActionSwapYTV3 is CallbackHelper, IPActionSwapYTV3, ActionBase {
|
|
|
115
131
|
uint256 minSyOut,
|
|
116
132
|
LimitOrderData calldata limit
|
|
117
133
|
) external returns (uint256 netSyOut, uint256 netSyFee) {
|
|
118
|
-
(IStandardizedYield SY
|
|
134
|
+
(IStandardizedYield SY, , IPYieldToken YT) = IPMarket(market).readTokens();
|
|
119
135
|
_transferFrom(YT, msg.sender, _entry_swapExactYtForSy(YT, limit), exactYtIn);
|
|
120
136
|
|
|
121
137
|
(netSyOut, netSyFee) = _swapExactYtForSy(receiver, market, SY, YT, exactYtIn, minSyOut, limit);
|
|
@@ -174,13 +190,19 @@ contract ActionSwapYTV3 is CallbackHelper, IPActionSwapYTV3, ActionBase {
|
|
|
174
190
|
(, IPPrincipalToken PT, IPYieldToken YT) = IPMarket(market).readTokens();
|
|
175
191
|
|
|
176
192
|
uint256 totalPtToSwap;
|
|
177
|
-
(netYtOut, totalPtToSwap, netSyFee) =
|
|
178
|
-
|
|
193
|
+
(netYtOut, totalPtToSwap, netSyFee) = _readMarket(market).approxSwapExactPtForYt(
|
|
194
|
+
YT.newIndex(),
|
|
195
|
+
exactPtIn,
|
|
196
|
+
block.timestamp,
|
|
197
|
+
guessTotalPtToSwap
|
|
198
|
+
);
|
|
179
199
|
|
|
180
200
|
_transferFrom(IERC20(PT), msg.sender, market, exactPtIn);
|
|
181
201
|
|
|
182
202
|
IPMarket(market).swapExactPtForSy(
|
|
183
|
-
address(YT),
|
|
203
|
+
address(YT),
|
|
204
|
+
totalPtToSwap,
|
|
205
|
+
_encodeSwapExactPtForYt(receiver, exactPtIn, minYtOut, YT)
|
|
184
206
|
);
|
|
185
207
|
|
|
186
208
|
emit SwapPtAndYt(msg.sender, market, receiver, exactPtIn.neg(), netYtOut.Int());
|
|
@@ -197,14 +219,20 @@ contract ActionSwapYTV3 is CallbackHelper, IPActionSwapYTV3, ActionBase {
|
|
|
197
219
|
(, IPPrincipalToken PT, IPYieldToken YT) = IPMarket(market).readTokens();
|
|
198
220
|
|
|
199
221
|
uint256 totalPtFromSwap;
|
|
200
|
-
(netPtOut, totalPtFromSwap, netSyFee) =
|
|
201
|
-
|
|
222
|
+
(netPtOut, totalPtFromSwap, netSyFee) = _readMarket(market).approxSwapExactYtForPt(
|
|
223
|
+
YT.newIndex(),
|
|
224
|
+
exactYtIn,
|
|
225
|
+
block.timestamp,
|
|
226
|
+
guessTotalPtFromSwap
|
|
227
|
+
);
|
|
202
228
|
|
|
203
229
|
if (netPtOut < minPtOut) revert Errors.RouterInsufficientPtOut(netPtOut, minPtOut);
|
|
204
230
|
|
|
205
231
|
_transferFrom(IERC20(YT), msg.sender, address(YT), exactYtIn);
|
|
206
232
|
IPMarket(market).swapSyForExactPt(
|
|
207
|
-
address(this),
|
|
233
|
+
address(this),
|
|
234
|
+
totalPtFromSwap,
|
|
235
|
+
_encodeSwapExactYtForPt(receiver, netPtOut, PT, YT)
|
|
208
236
|
);
|
|
209
237
|
|
|
210
238
|
emit SwapPtAndYt(msg.sender, market, receiver, netPtOut.Int(), exactYtIn.neg());
|
|
@@ -42,7 +42,15 @@ contract PendleRouterHelper is TokenHelper, IPRouterHelper {
|
|
|
42
42
|
_wrap_unwrap_ETH(NATIVE, WETH, input.netTokenIn);
|
|
43
43
|
(netLpOut, netYtOut) = ROUTER.addLiquiditySingleTokenKeepYt(receiver, market, minLpOut, minYtOut, input);
|
|
44
44
|
|
|
45
|
-
emit AddLiquiditySingleTokenKeepYt(
|
|
45
|
+
emit AddLiquiditySingleTokenKeepYt(
|
|
46
|
+
msg.sender,
|
|
47
|
+
market,
|
|
48
|
+
NATIVE,
|
|
49
|
+
msg.sender,
|
|
50
|
+
input.netTokenIn,
|
|
51
|
+
netLpOut,
|
|
52
|
+
netYtOut
|
|
53
|
+
);
|
|
46
54
|
}
|
|
47
55
|
|
|
48
56
|
function transferLiquidityDifferentSyNormal(
|
|
@@ -77,16 +85,18 @@ contract PendleRouterHelper is TokenHelper, IPRouterHelper {
|
|
|
77
85
|
(netLpOut, netYtOut) = _addLiquiditySingleSyKeepYt(toMarket, netSyZapIn);
|
|
78
86
|
}
|
|
79
87
|
|
|
80
|
-
function removeLiquiditySingleToken(
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
{
|
|
88
|
+
function removeLiquiditySingleToken(
|
|
89
|
+
RemoveLiquiditySingleTokenStruct calldata fromMarket
|
|
90
|
+
) public returns (uint256 netTokenOut, uint256 netSyFee) {
|
|
84
91
|
_transferFrom(IERC20(fromMarket.market), msg.sender, address(this), fromMarket.netLpToRemove);
|
|
85
92
|
|
|
86
93
|
_safeApproveInf(fromMarket.market, address(ROUTER));
|
|
87
94
|
|
|
88
95
|
(netTokenOut, netSyFee) = ROUTER.removeLiquiditySingleToken(
|
|
89
|
-
address(this),
|
|
96
|
+
address(this),
|
|
97
|
+
fromMarket.market,
|
|
98
|
+
fromMarket.netLpToRemove,
|
|
99
|
+
fromMarket.output
|
|
90
100
|
);
|
|
91
101
|
|
|
92
102
|
if (fromMarket.doRedeemRewards) {
|
|
@@ -94,20 +104,28 @@ contract PendleRouterHelper is TokenHelper, IPRouterHelper {
|
|
|
94
104
|
}
|
|
95
105
|
|
|
96
106
|
emit RemoveLiquiditySingleToken(
|
|
97
|
-
msg.sender,
|
|
107
|
+
msg.sender,
|
|
108
|
+
fromMarket.market,
|
|
109
|
+
fromMarket.output.tokenOut,
|
|
110
|
+
msg.sender,
|
|
111
|
+
fromMarket.netLpToRemove,
|
|
112
|
+
netTokenOut
|
|
98
113
|
);
|
|
99
114
|
}
|
|
100
115
|
|
|
101
|
-
function removeLiquiditySingleSy(
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
{
|
|
116
|
+
function removeLiquiditySingleSy(
|
|
117
|
+
RemoveLiquiditySingleSyStruct calldata fromMarket
|
|
118
|
+
) public returns (uint256 netSyOut, uint256 netSyFee) {
|
|
105
119
|
_transferFrom(IERC20(fromMarket.market), msg.sender, address(this), fromMarket.netLpToRemove);
|
|
106
120
|
|
|
107
121
|
_safeApproveInf(fromMarket.market, address(ROUTER));
|
|
108
122
|
|
|
109
|
-
(netSyOut, netSyFee) =
|
|
110
|
-
|
|
123
|
+
(netSyOut, netSyFee) = ROUTER.removeLiquiditySingleSy(
|
|
124
|
+
address(this),
|
|
125
|
+
fromMarket.market,
|
|
126
|
+
fromMarket.netLpToRemove,
|
|
127
|
+
0
|
|
128
|
+
);
|
|
111
129
|
|
|
112
130
|
if (fromMarket.doRedeemRewards) {
|
|
113
131
|
IPMarket(fromMarket.market).redeemRewards(msg.sender);
|
|
@@ -139,11 +157,11 @@ contract PendleRouterHelper is TokenHelper, IPRouterHelper {
|
|
|
139
157
|
emit AddLiquiditySingleToken(msg.sender, toMarket.market, tokenToZapIn, msg.sender, actualNetTokenIn, netLpOut);
|
|
140
158
|
}
|
|
141
159
|
|
|
142
|
-
function _addLiquiditySingleSy(
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
{
|
|
146
|
-
(IStandardizedYield SY
|
|
160
|
+
function _addLiquiditySingleSy(
|
|
161
|
+
AddLiquiditySingleSyStruct calldata toMarket,
|
|
162
|
+
uint256 actualNetSyIn
|
|
163
|
+
) internal returns (uint256 netLpOut, uint256 netSyFee) {
|
|
164
|
+
(IStandardizedYield SY, , ) = IPMarket(toMarket.market).readTokens();
|
|
147
165
|
|
|
148
166
|
_safeApproveInf(address(SY), address(ROUTER));
|
|
149
167
|
|
|
@@ -179,20 +197,30 @@ contract PendleRouterHelper is TokenHelper, IPRouterHelper {
|
|
|
179
197
|
);
|
|
180
198
|
|
|
181
199
|
emit AddLiquiditySingleTokenKeepYt(
|
|
182
|
-
msg.sender,
|
|
200
|
+
msg.sender,
|
|
201
|
+
toMarket.market,
|
|
202
|
+
tokenToZapIn,
|
|
203
|
+
msg.sender,
|
|
204
|
+
actualNetTokenIn,
|
|
205
|
+
netLpOut,
|
|
206
|
+
netYtOut
|
|
183
207
|
);
|
|
184
208
|
}
|
|
185
209
|
|
|
186
|
-
function _addLiquiditySingleSyKeepYt(
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
{
|
|
190
|
-
(IStandardizedYield SY
|
|
210
|
+
function _addLiquiditySingleSyKeepYt(
|
|
211
|
+
AddLiquiditySingleSyKeepYtStruct calldata toMarket,
|
|
212
|
+
uint256 actualNetSyIn
|
|
213
|
+
) internal returns (uint256 netLpOut, uint256 netYtOut) {
|
|
214
|
+
(IStandardizedYield SY, , ) = IPMarket(toMarket.market).readTokens();
|
|
191
215
|
|
|
192
216
|
_safeApproveInf(address(SY), address(ROUTER));
|
|
193
217
|
|
|
194
218
|
(netLpOut, netYtOut) = ROUTER.addLiquiditySingleSyKeepYt(
|
|
195
|
-
msg.sender,
|
|
219
|
+
msg.sender,
|
|
220
|
+
toMarket.market,
|
|
221
|
+
actualNetSyIn,
|
|
222
|
+
toMarket.minLpOut,
|
|
223
|
+
toMarket.minYtOut
|
|
196
224
|
);
|
|
197
225
|
|
|
198
226
|
emit AddLiquiditySingleSyKeepYt(msg.sender, toMarket.market, msg.sender, actualNetSyIn, netLpOut, netYtOut);
|
|
@@ -207,23 +235,24 @@ contract PendleRouterHelper is TokenHelper, IPRouterHelper {
|
|
|
207
235
|
}
|
|
208
236
|
|
|
209
237
|
/// @dev either SY or Token here is good since token->sy conversion is almost linearly proportional
|
|
210
|
-
function _scaleApproxParams(
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
{
|
|
238
|
+
function _scaleApproxParams(
|
|
239
|
+
ApproxParams calldata params,
|
|
240
|
+
uint256 guessNetTokenIn,
|
|
241
|
+
uint256 actualNetTokenIn
|
|
242
|
+
) internal pure returns (ApproxParams memory) {
|
|
215
243
|
if (params.guessOffchain == 0) {
|
|
216
244
|
require(params.guessMin == 0 && params.guessMax == type(uint256).max, "invalid guess");
|
|
217
245
|
return params;
|
|
218
246
|
}
|
|
219
247
|
|
|
220
|
-
return
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
248
|
+
return
|
|
249
|
+
ApproxParams({
|
|
250
|
+
guessMin: (params.guessMin * actualNetTokenIn) / guessNetTokenIn,
|
|
251
|
+
guessMax: (params.guessMax * actualNetTokenIn) / guessNetTokenIn,
|
|
252
|
+
guessOffchain: (params.guessOffchain * actualNetTokenIn) / guessNetTokenIn,
|
|
253
|
+
maxIteration: params.maxIteration,
|
|
254
|
+
eps: params.eps
|
|
255
|
+
});
|
|
227
256
|
}
|
|
228
257
|
}
|
|
229
258
|
|
|
@@ -260,9 +289,12 @@ interface RouterV2InterfaceForRouterHelper {
|
|
|
260
289
|
TokenInput calldata input
|
|
261
290
|
) external returns (uint256 netLpOut, uint256 netYtOut);
|
|
262
291
|
|
|
263
|
-
function removeLiquiditySingleSy(
|
|
264
|
-
|
|
265
|
-
|
|
292
|
+
function removeLiquiditySingleSy(
|
|
293
|
+
address receiver,
|
|
294
|
+
address market,
|
|
295
|
+
uint256 netLpToRemove,
|
|
296
|
+
uint256 minSyOut
|
|
297
|
+
) external returns (uint256 netSyOut, uint256 netSyFee);
|
|
266
298
|
|
|
267
299
|
function removeLiquiditySingleToken(
|
|
268
300
|
address receiver,
|