@pendle/core-v2 1.4.0-mainnet → 2.0.1-mainnet

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (357) hide show
  1. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.dbg.json +1 -1
  2. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol/PendleMsgReceiveEndpointUpg.json +2 -2
  3. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.dbg.json +1 -1
  4. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol/PendleMsgReceiverAppUpg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
  7. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +3 -3
  13. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  14. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  15. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  17. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  18. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  20. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  21. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +3 -3
  22. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  23. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  24. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  25. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  26. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  29. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  30. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  31. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  32. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
  33. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  34. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  35. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  37. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  39. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  42. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  44. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
  51. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol/PendleAura3EthSY.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAura3EthSY.sol/PendleAura3EthSY.json +2 -2
  53. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol/PendleAuraCbethWstethSY.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraCbethWstethSY.sol/PendleAuraCbethWstethSY.json +2 -2
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.json +2 -2
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.json +2 -2
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.dbg.json +4 -0
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.json +50 -0
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +4 -0
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +1163 -0
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  77. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  78. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  79. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  80. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  81. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  82. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  83. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  84. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +4 -0
  85. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.json +66 -0
  86. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +4 -0
  87. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +476 -0
  88. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +4 -0
  89. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +590 -0
  90. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +4 -0
  91. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +1017 -0
  92. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  93. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +50 -2
  94. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  95. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +4 -0
  96. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.json +308 -0
  97. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.dbg.json +4 -0
  98. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.json +43 -0
  99. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +4 -0
  100. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.json +201 -0
  101. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.dbg.json +4 -0
  102. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.json +45 -0
  103. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +4 -0
  104. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.json +48 -0
  105. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.dbg.json +4 -0
  106. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.json +93 -0
  107. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +4 -0
  108. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.json +87 -0
  109. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +338 -16
  111. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  112. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +105 -224
  113. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  114. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.json +56 -12
  115. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  116. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +52 -8
  117. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  118. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +231 -8
  119. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  120. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +675 -241
  121. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  122. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +4 -0
  123. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.json +40 -0
  124. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  125. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  126. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.json +1 -1
  127. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  128. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  129. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +4 -0
  130. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.json +679 -0
  131. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +4 -0
  132. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.json +143 -0
  133. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  134. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  135. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  136. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +2 -28
  137. package/build/artifacts/contracts/offchain-helpers/PendleMulticall.sol/PendleMulticall.dbg.json +1 -1
  138. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  139. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +144 -60
  140. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  141. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +345 -62
  142. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  143. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +107 -260
  144. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  145. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +57 -18
  146. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  147. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +54 -65
  148. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  149. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +342 -44
  150. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  151. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +76 -67
  152. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +4 -0
  153. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.json +141 -0
  154. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  155. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +1 -15
  156. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  157. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  158. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  159. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  160. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  161. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +4 -0
  162. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.json +160 -0
  163. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +4 -0
  164. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.json +10 -0
  165. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +4 -0
  166. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.json +56 -0
  167. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.dbg.json +4 -0
  168. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.json +72 -0
  169. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.dbg.json +4 -0
  170. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.json +10 -0
  171. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.dbg.json +4 -0
  172. package/build/artifacts/contracts/router/{kyberswap → swap-aggregator/kyberswap}/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.json +3 -3
  173. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +4 -0
  174. package/build/artifacts/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IAggregationExecutor.sol/IAggregationExecutor.json +1 -1
  175. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +4 -0
  176. package/build/artifacts/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.json +30 -1
  177. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IHashflow.sol/IHashflow.dbg.json +4 -0
  178. package/build/artifacts/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IHashflow.sol/IHashflow.json +1 -1
  179. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +4 -0
  180. package/build/artifacts/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.json +1 -1
  181. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol +0 -1
  182. package/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol +142 -0
  183. package/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol +224 -0
  184. package/contracts/core/StandardizedYield/implementations/GLP/README.md +61 -0
  185. package/contracts/core/YieldContractsV2/InterestManagerYTV2.sol +114 -0
  186. package/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol +63 -0
  187. package/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol +200 -0
  188. package/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol +485 -0
  189. package/contracts/core/libraries/Errors.sol +5 -0
  190. package/contracts/core/libraries/TokenHelper.sol +10 -0
  191. package/contracts/interfaces/GMX/IGMXVault.sol +47 -0
  192. package/contracts/interfaces/GMX/IGlpManager.sol +8 -0
  193. package/contracts/interfaces/GMX/IRewardRouterV2.sol +43 -0
  194. package/contracts/interfaces/GMX/IVaultPriceFeed.sol +11 -0
  195. package/contracts/interfaces/IAddressProvider.sol +7 -0
  196. package/contracts/interfaces/IDiamondCut.sol +36 -0
  197. package/contracts/interfaces/IDiamondLoupe.sol +38 -0
  198. package/contracts/interfaces/IPActionAddRemoveLiq.sol +36 -1
  199. package/contracts/interfaces/IPActionMintRedeem.sol +2 -55
  200. package/contracts/interfaces/IPActionMisc.sol +18 -4
  201. package/contracts/interfaces/IPActionSwapPT.sol +1 -1
  202. package/contracts/interfaces/IPActionSwapYT.sol +28 -4
  203. package/contracts/interfaces/IPAllAction.sol +5 -3
  204. package/contracts/interfaces/IPInterestManagerYTV2.sol +13 -0
  205. package/contracts/interfaces/IPMsgReceiverApp.sol +1 -1
  206. package/contracts/interfaces/IPYieldTokenV2.sol +66 -0
  207. package/contracts/offchain-helpers/AddressProvider.sol +16 -0
  208. package/contracts/offchain-helpers/MarketMathStatic.sol +15 -0
  209. package/contracts/offchain-helpers/RouterStatic.sol +22 -0
  210. package/contracts/router/ActionAddRemoveLiq.sol +116 -6
  211. package/contracts/router/ActionMintRedeem.sol +12 -202
  212. package/contracts/router/ActionMisc.sol +45 -19
  213. package/contracts/router/ActionSwapPT.sol +0 -5
  214. package/contracts/router/ActionSwapYT.sol +103 -13
  215. package/contracts/router/PendleRouter.sol +211 -72
  216. package/contracts/router/{ActionCallback.sol → base/ActionBaseCallback.sol} +47 -47
  217. package/contracts/router/base/ActionBaseMintRedeem.sol +105 -60
  218. package/contracts/router/base/CallbackHelper.sol +137 -44
  219. package/contracts/router/base/MarketApproxLib.sol +227 -350
  220. package/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol +45 -0
  221. package/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol +69 -0
  222. package/contracts/router/swap-aggregator/IPSwapAggregator.sol +25 -0
  223. package/contracts/router/swap-aggregator/PendleSwapAggregator.sol +47 -0
  224. package/contracts/router/{kyberswap/AggregationRouterHelper.sol → swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol} +5 -108
  225. package/contracts/router/{kyberswap → swap-aggregator/kyberswap}/ScaleDataHelperEthereum1.sol +13 -0
  226. package/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IAggregationExecutor.sol +0 -0
  227. package/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IExecutorHelperEthereum1.sol +6 -0
  228. package/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IHashflow.sol +0 -0
  229. package/contracts/router/{kyberswap → swap-aggregator/kyberswap}/interfaces/IMetaAggregationRouterV2.sol +0 -0
  230. package/deployments/1-core.json +2 -1
  231. package/deployments/1-markets/BALANCER-LP-AURA-WSTETH-WETH-JUN272024.json +2 -1
  232. package/deployments/42161-core.json +26 -0
  233. package/deployments/42161-markets/GLP-28MARCH2024.json +10 -0
  234. package/deployments/42161-offchain-helper.json +4 -0
  235. package/package.json +1 -1
  236. package/typechain-types/ActionAddRemoveLiq.ts +203 -23
  237. package/typechain-types/ActionBaseCallback.ts +115 -0
  238. package/typechain-types/ActionMintRedeem.ts +29 -230
  239. package/typechain-types/ActionMisc.ts +77 -27
  240. package/typechain-types/ActionSwapPT.ts +26 -31
  241. package/typechain-types/ActionSwapYT.ts +202 -21
  242. package/typechain-types/AddressProvider.ts +280 -0
  243. package/typechain-types/GLPPreviewHelper.ts +121 -0
  244. package/typechain-types/GMXPreviewHelper.ts +40 -0
  245. package/typechain-types/IAddressProvider.ts +123 -0
  246. package/typechain-types/IDiamondCut.ts +152 -0
  247. package/typechain-types/IDiamondLoupe.ts +190 -0
  248. package/typechain-types/IExecutorHelperEthereum1.ts +44 -0
  249. package/typechain-types/IPActionAddRemoveLiq.ts +213 -14
  250. package/typechain-types/IPActionMintRedeem.ts +29 -211
  251. package/typechain-types/IPActionMisc.ts +77 -27
  252. package/typechain-types/IPActionSwapPT.ts +26 -12
  253. package/typechain-types/IPActionSwapYT.ts +168 -12
  254. package/typechain-types/IPAllAction.ts +445 -227
  255. package/typechain-types/IPInterestManagerYTV2.ts +117 -0
  256. package/typechain-types/IPMsgReceiverApp.ts +5 -5
  257. package/typechain-types/IPSwapAggregator.ts +126 -0
  258. package/typechain-types/IPYieldTokenV2.ts +9 -23
  259. package/typechain-types/IRewardRouterV2.ts +60 -17
  260. package/typechain-types/InterestManagerYTV2.ts +36 -3
  261. package/typechain-types/PendleGaugeControllerSidechainUpg.ts +4 -4
  262. package/typechain-types/PendleGlpSY.ts +67 -0
  263. package/typechain-types/PendleMsgReceiverAppUpg.ts +5 -5
  264. package/typechain-types/PendleRouter.ts +109 -131
  265. package/typechain-types/PendleSwapAggregator.ts +126 -0
  266. package/typechain-types/PendleYieldTokenV2.ts +70 -76
  267. package/typechain-types/RouterStatic.ts +92 -0
  268. package/typechain-types/VotingEscrowPendleSidechain.ts +4 -5
  269. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +346 -68
  270. package/typechain-types/factories/ActionBaseCallback__factory.ts +156 -0
  271. package/typechain-types/factories/ActionMintRedeem__factory.ts +108 -266
  272. package/typechain-types/factories/ActionMisc__factory.ts +56 -17
  273. package/typechain-types/factories/ActionSwapPT__factory.ts +55 -71
  274. package/typechain-types/factories/ActionSwapYT__factory.ts +356 -48
  275. package/typechain-types/factories/AddressProvider__factory.ts +196 -0
  276. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  277. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  278. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  279. package/typechain-types/factories/Errors__factory.ts +49 -1
  280. package/typechain-types/factories/GLPPreviewHelper__factory.ts +65 -0
  281. package/typechain-types/factories/GMXPreviewHelper__factory.ts +26 -0
  282. package/typechain-types/factories/IAddressProvider__factory.ts +63 -0
  283. package/typechain-types/factories/IDiamondCut__factory.ts +105 -0
  284. package/typechain-types/factories/IDiamondLoupe__factory.ts +99 -0
  285. package/typechain-types/factories/IExecutorHelperEthereum1__factory.ts +29 -0
  286. package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +338 -16
  287. package/typechain-types/factories/IPActionMintRedeem__factory.ts +105 -224
  288. package/typechain-types/factories/IPActionMisc__factory.ts +55 -11
  289. package/typechain-types/factories/IPActionSwapPT__factory.ts +52 -8
  290. package/typechain-types/factories/IPActionSwapYT__factory.ts +231 -8
  291. package/typechain-types/factories/IPAllAction__factory.ts +675 -241
  292. package/typechain-types/factories/IPInterestManagerYTV2__factory.ts +59 -0
  293. package/typechain-types/factories/IPMsgReceiverApp__factory.ts +1 -1
  294. package/typechain-types/factories/IPSwapAggregator__factory.ts +71 -0
  295. package/typechain-types/factories/IPYieldTokenV2__factory.ts +6 -14
  296. package/typechain-types/factories/IRewardRouterV2__factory.ts +43 -7
  297. package/typechain-types/factories/InterestManagerYTV2__factory.ts +18 -0
  298. package/typechain-types/factories/MarketMathStatic__factory.ts +1 -27
  299. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  300. package/typechain-types/factories/PendleAura3EthSY__factory.ts +1 -1
  301. package/typechain-types/factories/PendleAuraCbethWstethSY__factory.ts +1 -1
  302. package/typechain-types/factories/PendleAuraWethRethSY__factory.ts +1 -1
  303. package/typechain-types/factories/PendleAuraWethWstethSY__factory.ts +1 -1
  304. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  305. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  306. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  307. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  308. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +2 -2
  309. package/typechain-types/factories/PendleGlpSY__factory.ts +34 -1
  310. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  311. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  312. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  313. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  314. package/typechain-types/factories/PendleMsgReceiverAppUpg__factory.ts +1 -1
  315. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  316. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +1 -1
  317. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  318. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  319. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  320. package/typechain-types/factories/PendleRouter__factory.ts +75 -74
  321. package/typechain-types/factories/PendleSwapAggregator__factory.ts +129 -0
  322. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  323. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  324. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
  325. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  326. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +35 -48
  327. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  328. package/typechain-types/factories/RouterStatic__factory.ts +69 -1
  329. package/typechain-types/factories/SAPE__factory.ts +1 -1
  330. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  331. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +2 -2
  332. package/typechain-types/hardhat.d.ts +118 -64
  333. package/typechain-types/index.ts +32 -20
  334. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +0 -4
  335. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.json +0 -190
  336. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +0 -4
  337. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +0 -165
  338. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +0 -4
  339. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +0 -343
  340. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +0 -4
  341. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +0 -224
  342. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +0 -4
  343. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.json +0 -35
  344. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +0 -4
  345. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json +0 -24
  346. package/build/artifacts/contracts/router/kyberswap/ScaleDataHelperEthereum1.sol/ScaleDataHelperEthereum1.dbg.json +0 -4
  347. package/build/artifacts/contracts/router/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +0 -4
  348. package/build/artifacts/contracts/router/kyberswap/interfaces/IExecutorHelperEthereum1.sol/IExecutorHelperEthereum1.dbg.json +0 -4
  349. package/build/artifacts/contracts/router/kyberswap/interfaces/IHashflow.sol/IHashflow.dbg.json +0 -4
  350. package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol/IMetaAggregationRouter.dbg.json +0 -4
  351. package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol/IMetaAggregationRouter.json +0 -183
  352. package/build/artifacts/contracts/router/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +0 -4
  353. package/contracts/interfaces/IPActionSwapPTYT.sol +0 -31
  354. package/contracts/router/ActionSwapPTYT.sol +0 -108
  355. package/contracts/router/kyberswap/IAggregatorRouterHelper.sol +0 -10
  356. package/contracts/router/kyberswap/KyberSwapHelper.sol +0 -79
  357. package/contracts/router/kyberswap/interfaces/IMetaAggregationRouter.sol +0 -33
@@ -0,0 +1,45 @@
1
+ // SPDX-License-Identifier: MIT
2
+
3
+ pragma solidity 0.8.17;
4
+
5
+ import "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
6
+
7
+ interface I1inchAggregationRouterV5 {
8
+ struct SwapDescription {
9
+ IERC20 srcToken;
10
+ IERC20 dstToken;
11
+ address payable srcReceiver;
12
+ address payable dstReceiver;
13
+ uint256 amount;
14
+ uint256 minReturnAmount;
15
+ uint256 flags;
16
+ }
17
+
18
+ function uniswapV3SwapTo(
19
+ address payable recipient,
20
+ uint256 amount,
21
+ uint256 minReturn,
22
+ uint256[] calldata pools
23
+ ) external payable returns(uint256 returnAmount);
24
+
25
+ function swap(
26
+ address executor,
27
+ SwapDescription calldata desc,
28
+ bytes calldata permit,
29
+ bytes calldata data
30
+ )
31
+ external
32
+ payable
33
+ returns (
34
+ uint256 returnAmount,
35
+ uint256 spentAmount
36
+ );
37
+
38
+ function unoswapTo(
39
+ address payable recipient,
40
+ address srcToken,
41
+ uint256 amount,
42
+ uint256 minReturn,
43
+ uint256[] calldata pools
44
+ ) external payable returns(uint256 returnAmount);
45
+ }
@@ -0,0 +1,69 @@
1
+ // SPDX-License-Identifier: MIT
2
+
3
+ pragma solidity 0.8.17;
4
+
5
+ import "./I1inchAggregationRouterV5.sol";
6
+ import "../../../core/libraries/Errors.sol";
7
+
8
+ abstract contract OneInchAggregationRouterHelper {
9
+ function _rescaleMinAmount(
10
+ uint256 minAmount,
11
+ uint256 oldAmount,
12
+ uint256 newAmount
13
+ ) internal pure returns (uint256) {
14
+ return (minAmount * newAmount) / oldAmount;
15
+ }
16
+
17
+ function _get1inchScaledInputData(bytes calldata rawCallData, uint256 newAmount)
18
+ internal
19
+ pure
20
+ returns (bytes memory)
21
+ {
22
+ bytes4 selector = bytes4(rawCallData[:4]);
23
+ bytes memory args = rawCallData[4:];
24
+
25
+ if (selector == I1inchAggregationRouterV5.uniswapV3SwapTo.selector) {
26
+ (
27
+ address payable recipient,
28
+ uint256 amount,
29
+ uint256 minReturn,
30
+ uint256[] memory pools
31
+ ) = abi.decode(args, (address, uint256, uint256, uint256[]));
32
+
33
+ minReturn = _rescaleMinAmount(minReturn, amount, newAmount);
34
+ amount = newAmount;
35
+ return abi.encodeWithSelector(selector, recipient, amount, minReturn, pools);
36
+ }
37
+
38
+ if (selector == I1inchAggregationRouterV5.swap.selector) {
39
+ (
40
+ address executor,
41
+ I1inchAggregationRouterV5.SwapDescription memory desc,
42
+ bytes memory permit,
43
+ bytes memory data
44
+ ) = abi.decode(
45
+ args,
46
+ (address, I1inchAggregationRouterV5.SwapDescription, bytes, bytes)
47
+ );
48
+
49
+ desc.minReturnAmount = _rescaleMinAmount(desc.minReturnAmount, desc.amount, newAmount);
50
+ desc.amount = newAmount;
51
+ return abi.encodeWithSelector(selector, executor, desc, permit, data);
52
+ }
53
+
54
+ if (selector == I1inchAggregationRouterV5.unoswapTo.selector) {
55
+ (
56
+ address payable recipient,
57
+ address srcToken,
58
+ uint256 amount,
59
+ uint256 minReturn,
60
+ uint256[] memory pools
61
+ ) = abi.decode(args, (address, address, uint256, uint256, uint256[]));
62
+
63
+ minReturn = _rescaleMinAmount(minReturn, amount, newAmount);
64
+ amount = newAmount;
65
+ return abi.encodeWithSelector(selector, recipient, srcToken, amount, minReturn, pools);
66
+ }
67
+ revert Errors.UnsupportedSelector(1, selector);
68
+ }
69
+ }
@@ -0,0 +1,25 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ struct SwapData {
5
+ SwapType swapType;
6
+ address extRouter;
7
+ bytes extCalldata;
8
+ bool needScale;
9
+ }
10
+
11
+ enum SwapType {
12
+ NONE,
13
+ KYBERSWAP,
14
+ ONE_INCH,
15
+ // ETH_WETH not used in Aggregator
16
+ ETH_WETH
17
+ }
18
+
19
+ interface IPSwapAggregator {
20
+ function swap(
21
+ address tokenIn,
22
+ uint256 amountIn,
23
+ SwapData calldata swapData
24
+ ) external payable;
25
+ }
@@ -0,0 +1,47 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "@openzeppelin/contracts/utils/Address.sol";
5
+ import "../../interfaces/IWETH.sol";
6
+ import "../../core/libraries/TokenHelper.sol";
7
+ import "../../core/libraries/Errors.sol";
8
+ import "./IPSwapAggregator.sol";
9
+ import "./1inch/OneInchAggregationRouterHelper.sol";
10
+ import "./kyberswap/KyberAggregationRouterHelper.sol";
11
+
12
+ contract PendleSwapAggregator is
13
+ IPSwapAggregator,
14
+ TokenHelper,
15
+ KyberAggregationRouterHelper,
16
+ OneInchAggregationRouterHelper
17
+ {
18
+ using Address for address;
19
+
20
+ function swap(
21
+ address tokenIn,
22
+ uint256 amountIn,
23
+ SwapData calldata data
24
+ ) external payable {
25
+ _safeApproveInf(tokenIn, data.extRouter);
26
+ data.extRouter.functionCallWithValue(
27
+ data.needScale
28
+ ? _getScaledInputData(data.swapType, data.extCalldata, amountIn)
29
+ : data.extCalldata,
30
+ tokenIn == NATIVE ? amountIn : 0
31
+ );
32
+ }
33
+
34
+ function _getScaledInputData(
35
+ SwapType swapType,
36
+ bytes calldata rawCallData,
37
+ uint256 amountIn
38
+ ) internal pure returns (bytes memory scaledCallData) {
39
+ if (swapType == SwapType.KYBERSWAP) {
40
+ scaledCallData = _getKyberScaledInputData(rawCallData, amountIn);
41
+ } else if (swapType == SwapType.ONE_INCH) {
42
+ scaledCallData = _get1inchScaledInputData(rawCallData, amountIn);
43
+ } else {
44
+ assert(false);
45
+ }
46
+ }
47
+ }
@@ -1,25 +1,12 @@
1
1
  // SPDX-License-Identifier: MIT
2
2
 
3
3
  pragma solidity 0.8.17;
4
- import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
5
- import "../../core/libraries/BoringOwnableUpgradeable.sol";
6
-
7
- import "../../interfaces/IWETH.sol";
8
-
9
- import "./interfaces/IMetaAggregationRouter.sol";
10
4
  import "./interfaces/IMetaAggregationRouterV2.sol";
11
5
  import "./interfaces/IHashflow.sol";
12
6
  import "./interfaces/IExecutorHelperEthereum1.sol";
13
-
14
- import "./IAggregatorRouterHelper.sol";
15
7
  import "./ScaleDataHelperEthereum1.sol";
16
8
 
17
- contract AggregationRouterHelper is
18
- IAggregationRouterHelper,
19
- Initializable,
20
- UUPSUpgradeable,
21
- BoringOwnableUpgradeable
22
- {
9
+ abstract contract KyberAggregationRouterHelper {
23
10
  uint256 private constant _PARTIAL_FILL = 0x01;
24
11
  uint256 private constant _REQUIRES_EXTRA_ETH = 0x02;
25
12
  uint256 private constant _SHOULD_CLAIM = 0x04;
@@ -27,14 +14,6 @@ contract AggregationRouterHelper is
27
14
  uint256 private constant _BURN_FROM_TX_ORIGIN = 0x10;
28
15
  uint256 private constant _SIMPLE_SWAP = 0x20;
29
16
 
30
- constructor() initializer {}
31
-
32
- function initialize() external initializer {
33
- __BoringOwnable_init();
34
- }
35
-
36
- function _authorizeUpgrade(address newImplementation) internal override onlyOwner {}
37
-
38
17
  struct Swap {
39
18
  bytes data;
40
19
  bytes4 selector;
@@ -58,45 +37,13 @@ contract AggregationRouterHelper is
58
37
  bytes destTokenFeeData;
59
38
  }
60
39
 
61
- function getScaledInputData(bytes calldata kybercall, uint256 newAmount)
62
- external
40
+ function _getKyberScaledInputData(bytes calldata kybercall, uint256 newAmount)
41
+ internal
63
42
  pure
64
43
  returns (bytes memory)
65
44
  {
66
45
  bytes4 selector = bytes4(kybercall[:4]);
67
46
 
68
- if (selector == IWETH.deposit.selector) {
69
- return kybercall; // no scaling needed
70
- }
71
-
72
- if (selector == IWETH.withdraw.selector) {
73
- return abi.encodeWithSelector(selector, newAmount);
74
- }
75
-
76
- if (
77
- selector == IMetaAggregationRouter.swap.selector ||
78
- selector == IMetaAggregationRouter.swapSimpleMode.selector
79
- ) {
80
- (
81
- address callTarget,
82
- IMetaAggregationRouter.SwapDescription memory desc,
83
- bytes memory targetData,
84
- bytes memory clientData
85
- ) = abi.decode(
86
- kybercall[4:],
87
- (address, IMetaAggregationRouter.SwapDescription, bytes, bytes)
88
- );
89
-
90
- (desc, targetData) = _getScaledInputDataV1(
91
- desc,
92
- targetData,
93
- newAmount,
94
- selector == IMetaAggregationRouter.swapSimpleMode.selector ||
95
- _flagsChecked(desc.flags, _SIMPLE_SWAP)
96
- );
97
- return abi.encodeWithSelector(selector, callTarget, desc, targetData, clientData);
98
- }
99
-
100
47
  if (selector == IMetaAggregationRouterV2.swap.selector) {
101
48
  IMetaAggregationRouterV2.SwapExecutionParams memory params = abi.decode(
102
49
  kybercall[4:],
@@ -130,32 +77,6 @@ contract AggregationRouterHelper is
130
77
  revert("InputScalingHelper: Invalid selector");
131
78
  }
132
79
 
133
- function _getScaledInputDataV1(
134
- IMetaAggregationRouter.SwapDescription memory desc,
135
- bytes memory executorData,
136
- uint256 newAmount,
137
- bool isSimpleMode
138
- ) internal pure returns (IMetaAggregationRouter.SwapDescription memory, bytes memory) {
139
- uint256 oldAmount = desc.amount;
140
- if (oldAmount == newAmount) {
141
- return (desc, executorData);
142
- }
143
-
144
- // simple mode swap
145
- if (isSimpleMode) {
146
- return (
147
- _scaledSwapDescriptionV1(desc, oldAmount, newAmount),
148
- _scaledSimpleSwapData(executorData, oldAmount, newAmount)
149
- );
150
- }
151
-
152
- //normal mode swap
153
- return (
154
- _scaledSwapDescriptionV1(desc, oldAmount, newAmount),
155
- _scaledExecutorCallBytesData(executorData, oldAmount, newAmount)
156
- );
157
- }
158
-
159
80
  function _getScaledInputDataV2(
160
81
  IMetaAggregationRouterV2.SwapDescriptionV2 memory desc,
161
82
  bytes memory executorData,
@@ -182,32 +103,6 @@ contract AggregationRouterHelper is
182
103
  );
183
104
  }
184
105
 
185
- function _scaledSwapDescriptionV1(
186
- IMetaAggregationRouter.SwapDescription memory desc,
187
- uint256 oldAmount,
188
- uint256 newAmount
189
- ) internal pure returns (IMetaAggregationRouter.SwapDescription memory) {
190
- uint256 oldMinReturnAmount = desc.minReturnAmount;
191
- desc.minReturnAmount = (desc.minReturnAmount * newAmount) / oldAmount;
192
- //newMinReturnAmount should no be 0 if oldMinReturnAmount > 0
193
- if (oldMinReturnAmount > 0 && desc.minReturnAmount == 0) desc.minReturnAmount = 1;
194
- desc.amount = newAmount;
195
- if (desc.srcReceivers.length == 0) {
196
- return desc;
197
- }
198
-
199
- uint256 newTotal;
200
- for (uint256 i = 0; i < desc.srcReceivers.length; i++) {
201
- if (i == desc.srcReceivers.length - 1) {
202
- desc.srcAmounts[i] = newAmount - newTotal;
203
- } else {
204
- desc.srcAmounts[i] = (desc.srcAmounts[i] * newAmount) / oldAmount;
205
- }
206
- newTotal += desc.srcAmounts[i];
207
- }
208
- return desc;
209
- }
210
-
211
106
  function _scaledSimpleSwapData(
212
107
  bytes memory data,
213
108
  uint256 oldAmount,
@@ -280,6 +175,8 @@ contract AggregationRouterHelper is
280
175
  swap.data = ScaleDataHelperEthereum1.newPSM(swap.data, oldAmount, newAmount);
281
176
  } else if (selector == IExecutorHelperEthereum1.executeHashflowSwap.selector) {
282
177
  revert("InputScalingHelper: Can not scale RFQ swap");
178
+ } else if (selector == IExecutorHelperEthereum1.executeFraxSwap.selector) {
179
+ swap.data = ScaleDataHelperEthereum1.newFrax(swap.data, oldAmount, newAmount);
283
180
  } else revert("AggregationExecutor: Dex type not supported");
284
181
  }
285
182
  return abi.encode(executorDesc);
@@ -131,4 +131,17 @@ library ScaleDataHelperEthereum1 {
131
131
  psm.amountIn = (psm.amountIn * newAmount) / oldAmount;
132
132
  return abi.encode(psm);
133
133
  }
134
+
135
+ function newFrax(
136
+ bytes memory data,
137
+ uint256 oldAmount,
138
+ uint256 newAmount
139
+ ) internal pure returns (bytes memory) {
140
+ IExecutorHelperEthereum1.UniSwap memory frax = abi.decode(
141
+ data,
142
+ (IExecutorHelperEthereum1.UniSwap)
143
+ );
144
+ frax.collectAmount = (frax.collectAmount * newAmount) / oldAmount;
145
+ return abi.encode(frax);
146
+ }
134
147
  }
@@ -182,4 +182,10 @@ interface IExecutorHelperEthereum1 {
182
182
  bytes memory data,
183
183
  uint256 previousAmountOut
184
184
  ) external payable returns (uint256);
185
+
186
+ function executeFraxSwap(
187
+ uint256 index,
188
+ bytes memory data,
189
+ uint256 previousAmountOut
190
+ ) external payable returns (uint256);
185
191
  }
@@ -20,8 +20,9 @@
20
20
  "marketFactory": "0x27b1dAcd74688aF24a64BD3C9C1B143118740784",
21
21
  "bulkSellerFactory": "0x4B1da107B50529d53e5C906a79eaEcDCbC0E1dE3",
22
22
  "bulkSellerOffchain": "0x9ACc60F915dFcd190D270fc92567aE71776bd320",
23
- "router": "0x41FAD93F225b5C1C95f2445A5d7fcB85bA46713f",
23
+ "router": "0x0000000001e4ef00d069e71d6ba041b0a16f7ea0",
24
24
  "routerStatic": "0xcF45b92cd0B0859FC42a767fAac2354909f937e9",
25
+ "pendleSwap": "0x9660AC0cB085F8Fb39a6F383cF2067785364f924",
25
26
  "vePendle": "0x4f30A9D41B80ecC5B94306AB4364951AE3170210",
26
27
  "senderEndpoint": "0x07b1014c88f14C9E910092526db57A20052E989F",
27
28
  "votingController": "0x44087E105137a5095c008AaB6a6530182821F2F0",
@@ -6,5 +6,6 @@
6
6
  "market": "0xFcbAe4635CA89866F83Add208eCcEec742678746",
7
7
  "expiry": 1719446400,
8
8
  "scalarRoot": "28880000000000000000",
9
- "initAnchor": "1105675000000000000"
9
+ "initAnchor": "1105675000000000000",
10
+ "bulkSeller": "0xd044Ee6D5dD9E9e4f6E3e81d1DF3ADB8adabAba0"
10
11
  }
@@ -0,0 +1,26 @@
1
+ {
2
+ "deployer": "0x1FcCC097db89A86Bfc474A1028F93958295b1Fb7",
3
+ "network": {
4
+ "chainId": 42161,
5
+ "treasury": "0xCbcb48e22622a3778b6F14C2f5d258Ba026b05e6",
6
+ "governance": "0x7877AdFaDEd756f3248a0EBfe8Ac2E2eF87b75Ac",
7
+ "pendle": "0x0c880f6761F1af8d9Aa9C466984b80DAb9a8c9e8",
8
+ "lzEndpoint": "0x3c2269811836af69497E5F486A85D7316753cf62",
9
+ "wrappedNative": "0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
10
+ "initialRewardFee": "30000000000000000",
11
+ "initialInterestFee": "30000000000000000",
12
+ "initialFeeRateRoot": "999500333083533",
13
+ "initialReserveFeePercent": "80",
14
+ "safeWaitTime": 15000
15
+ },
16
+ "baseCodeSplitter": "0x29deaEE5413a07C933C15B37d7deB6Eb744Ba9C8",
17
+ "PENDLE": "0x0c880f6761F1af8d9Aa9C466984b80DAb9a8c9e8",
18
+ "yieldContractFactory": "0x28dE02Ac3c3F5ef427e55c321F73fDc7F192e8E4",
19
+ "marketFactory": "0xf5a7De2D276dbda3EEf1b62A9E718EFf4d29dDC8",
20
+ "router": "0x0000000001e4ef00d069e71d6ba041b0a16f7ea0",
21
+ "routerStatic": "0x4106FC9811a792130502Bb3A5b693894cca7bD8e",
22
+ "pendleSwap": "0x0E669e08bd717d7F9c9DE158636BD8561295fbB5",
23
+ "receiverEndpoint": "0xC9215ae9EC67385F38C755D862C8eE3702B5793A",
24
+ "vePendle": "0x3209E9412cca80B18338f2a56ADA59c484c39644",
25
+ "gaugeController": "0x1e56299ebc8a1010cec26005d12e3e5c5cc2db00"
26
+ }
@@ -0,0 +1,10 @@
1
+ {
2
+ "name": "SY GLP",
3
+ "SY": "0x2066a650AF4b6895f72E618587Aad5e8120B7790",
4
+ "YT": "0x56051f8e46b67b4d286454995dbc6f5f3c433e34",
5
+ "PT": "0x96015d0fb97139567a9ba675951816a0bb719e3c",
6
+ "market": "0x7D49E5Adc0EAAD9C027857767638613253eF125f",
7
+ "expiry": 1711584000,
8
+ "scalarRoot": "10484880000000000000",
9
+ "initAnchor": "1285295000000000000"
10
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "multicall": "0x05d0Ea1dBFA239f9fBC47E306e850Ce971Fe632d",
3
+ "implicitSwapfeeContract": "0x704478Dd72FD7F9B83d1F1e0fc18C14B54F034d0"
4
+ }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@pendle/core-v2",
3
3
  "description": "Core smart contracts of Pendle Protocol.",
4
4
  "license": "BUSL-1.1",
5
- "version": "1.4.0-mainnet",
5
+ "version": "2.0.1-mainnet",
6
6
  "homepage": "https://pendle.finance",
7
7
  "keywords": [
8
8
  "pendle",