@pendle/core-v2 2.4.0-mainnet → 2.5.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 (221) 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/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.dbg.json +1 -1
  5. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol/PendleMsgSendEndpointUpg.json +2 -2
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  10. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  12. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  14. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  16. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  18. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  19. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  20. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  21. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  22. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  23. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  24. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  25. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  26. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  28. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  29. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  30. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
  32. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  34. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  36. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  38. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  40. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  42. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
  46. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSY.sol/PendleAuraWethAnkrethSY.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSY.sol/PendleAuraWethAnkrethSY.json +2 -2
  48. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.json +2 -2
  50. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.json +2 -2
  52. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +2 -2
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.dbg.json +4 -0
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.json +1157 -0
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  72. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  73. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  74. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  75. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  76. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  77. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  78. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
  79. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +2 -2
  80. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  81. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +2 -2
  82. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  83. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +2 -2
  84. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  85. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +18 -2
  86. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  87. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  88. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  89. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  90. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  91. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  92. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  93. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  94. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  95. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +4 -0
  96. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.json +747 -0
  97. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  98. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  99. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  100. package/build/artifacts/contracts/interfaces/IStargateLP.sol/IStargateLP.dbg.json +4 -0
  101. package/build/artifacts/contracts/interfaces/{IStargatePool.sol/IStargatePool.json → IStargateLP.sol/IStargateLP.json} +68 -3
  102. package/build/artifacts/contracts/interfaces/IStargateStaking.sol/IStargateStaking.dbg.json +4 -0
  103. package/build/artifacts/contracts/interfaces/{IStargateLPStaking.sol/IStargateLPStaking.json → IStargateStaking.sol/IStargateStaking.json} +20 -27
  104. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  105. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
  106. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  107. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  108. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  109. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  110. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  111. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  112. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  113. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  114. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  115. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
  116. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  117. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  118. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  119. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
  120. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  121. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  122. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  123. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  124. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  125. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  126. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  127. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  128. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  129. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  130. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  131. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  132. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  133. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +4 -0
  134. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +891 -0
  135. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  136. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  137. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  138. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  139. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  140. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  141. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +1 -1
  142. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.dbg.json +1 -1
  143. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapArbitrum.sol/PendleSwapArbitrum.json +2 -2
  144. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.dbg.json +1 -1
  145. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapEthereum.sol/PendleSwapEthereum.json +2 -2
  146. package/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol +222 -0
  147. package/contracts/core/libraries/Errors.sol +2 -0
  148. package/contracts/interfaces/IPRouterHelper.sol +168 -0
  149. package/contracts/interfaces/{IStargatePool.sol → IStargateLP.sol} +14 -1
  150. package/contracts/interfaces/{IStargateLPStaking.sol → IStargateStaking.sol} +2 -2
  151. package/contracts/router/PendleRouterHelper.sol +358 -0
  152. package/contracts/router/base/ActionBaseMintRedeem.sol +5 -4
  153. package/deployments/1-core.json +2 -1
  154. package/deployments/42161-core.json +2 -1
  155. package/package.json +2 -2
  156. package/typechain-types/IPRouterHelper.ts +638 -0
  157. package/typechain-types/ISiloPriceProvider.ts +150 -0
  158. package/typechain-types/PendlePtOracleBase.ts +26 -0
  159. package/typechain-types/PendleRouterHelper.ts +270 -171
  160. package/typechain-types/PendleStargateLPSY.ts +1442 -0
  161. package/typechain-types/PtFraxUsdcOracle.ts +26 -0
  162. package/typechain-types/PtStETHOracle.ts +26 -0
  163. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  164. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  165. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  166. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
  167. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  168. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  169. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  170. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  171. package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
  172. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  173. package/typechain-types/factories/Broadcaster__factory.ts +1 -1
  174. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  175. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  176. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  177. package/typechain-types/factories/Errors__factory.ts +17 -1
  178. package/typechain-types/factories/IPRouterHelper__factory.ts +763 -0
  179. package/typechain-types/factories/ISiloPriceProvider__factory.ts +90 -0
  180. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  181. package/typechain-types/factories/PendleAuraWethAnkrethSY__factory.ts +1 -1
  182. package/typechain-types/factories/PendleAuraWethRethSY__factory.ts +1 -1
  183. package/typechain-types/factories/PendleAuraWethWstethSY__factory.ts +1 -1
  184. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  185. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  186. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  187. package/typechain-types/factories/PendleGDaiSY__factory.ts +1 -1
  188. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  189. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  190. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  191. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  192. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  193. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  194. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  195. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  196. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +1 -1
  197. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  198. package/typechain-types/factories/PendlePtOracleBase__factory.ts +26 -0
  199. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  200. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  201. package/typechain-types/factories/PendleRouterHelper__factory.ts +159 -47
  202. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  203. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  204. package/typechain-types/factories/PendleStargateLPSY__factory.ts +1241 -0
  205. package/typechain-types/factories/PendleSwapArbitrum__factory.ts +1 -1
  206. package/typechain-types/factories/PendleSwapEthereum__factory.ts +1 -1
  207. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  208. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  209. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
  210. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  211. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1 -1
  212. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  213. package/typechain-types/factories/PtFraxUsdcOracle__factory.ts +27 -1
  214. package/typechain-types/factories/PtStETHOracle__factory.ts +27 -1
  215. package/typechain-types/factories/SAPE__factory.ts +1 -1
  216. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  217. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  218. package/typechain-types/hardhat.d.ts +30 -21
  219. package/typechain-types/index.ts +8 -6
  220. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +0 -4
  221. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +0 -4
@@ -0,0 +1,358 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "../interfaces/IPAllAction.sol";
5
+ import "../interfaces/IPMarket.sol";
6
+ import "../interfaces/IPRouterHelper.sol";
7
+ import "./base/ActionBaseMintRedeem.sol";
8
+ import "./base/MarketApproxLib.sol";
9
+ import "../interfaces/IAddressProvider.sol";
10
+
11
+ contract PendleRouterHelper is TokenHelper, IPRouterHelper {
12
+ IPAllAction public immutable ROUTER;
13
+ address public immutable WETH;
14
+
15
+ constructor(address _ROUTER, IAddressProvider provider) {
16
+ ROUTER = IPAllAction(_ROUTER);
17
+ WETH = _getWETHAddress(provider, 1);
18
+ }
19
+
20
+ function _getWETHAddress(IAddressProvider provider, uint256 providerId)
21
+ internal
22
+ view
23
+ returns (address)
24
+ {
25
+ return provider.get(providerId);
26
+ }
27
+
28
+ receive() external payable {}
29
+
30
+ /**
31
+ * @dev all the parameters for this function should be generated in the same way as they are
32
+ generated for the main Router, except that input.tokenIn & swapData should be generated
33
+ for tokenIn == WETH instead of ETH
34
+ */
35
+ function addLiquiditySingleTokenKeepYtWithEth(
36
+ address receiver,
37
+ address market,
38
+ uint256 minLpOut,
39
+ uint256 minYtOut,
40
+ TokenInput calldata input
41
+ ) external payable returns (uint256 netLpOut, uint256 netYtOut) {
42
+ require(input.tokenIn == WETH);
43
+
44
+ _transferIn(NATIVE, msg.sender, input.netTokenIn);
45
+
46
+ _wrap_unwrap_ETH(NATIVE, WETH, input.netTokenIn);
47
+ (netLpOut, netYtOut) = ROUTER.addLiquiditySingleTokenKeepYt(
48
+ receiver,
49
+ market,
50
+ minLpOut,
51
+ minYtOut,
52
+ input
53
+ );
54
+
55
+ emit AddLiquiditySingleTokenKeepYt(
56
+ msg.sender,
57
+ market,
58
+ NATIVE,
59
+ msg.sender,
60
+ input.netTokenIn,
61
+ netLpOut,
62
+ netYtOut
63
+ );
64
+ }
65
+
66
+ function transferLiquidityDifferentSyNormal(
67
+ RemoveLiquiditySingleTokenStruct calldata fromMarket,
68
+ AddLiquiditySingleTokenStruct calldata toMarket
69
+ )
70
+ external
71
+ returns (
72
+ uint256 netLpOut,
73
+ uint256 netTokenZapIn,
74
+ uint256 netSyFeeOfRemove,
75
+ uint256 netSyFeeOfAdd
76
+ )
77
+ {
78
+ (netTokenZapIn, netSyFeeOfRemove) = _removeLiquiditySingleToken(fromMarket);
79
+ (netLpOut, netSyFeeOfAdd) = _addLiquiditySingleToken(
80
+ toMarket,
81
+ fromMarket.output.tokenOut,
82
+ netTokenZapIn
83
+ );
84
+ }
85
+
86
+ function transferLiquidityDifferentSyKeepYt(
87
+ RemoveLiquiditySingleTokenStruct calldata fromMarket,
88
+ AddLiquiditySingleTokenKeepYtStruct calldata toMarket
89
+ )
90
+ external
91
+ returns (
92
+ uint256 netLpOut,
93
+ uint256 netYtOut,
94
+ uint256 netTokenZapIn,
95
+ uint256 netSyFeeOfRemove
96
+ )
97
+ {
98
+ (netTokenZapIn, netSyFeeOfRemove) = _removeLiquiditySingleToken(fromMarket);
99
+ (netLpOut, netYtOut) = _addLiquiditySingleTokenKeepYt(
100
+ toMarket,
101
+ fromMarket.output.tokenOut,
102
+ netTokenZapIn
103
+ );
104
+ }
105
+
106
+ function transferLiquiditySameSyNormal(
107
+ RemoveLiquiditySingleSyStruct calldata fromMarket,
108
+ AddLiquiditySingleSyStruct calldata toMarket
109
+ )
110
+ external
111
+ returns (
112
+ uint256 netLpOut,
113
+ uint256 netSyZapIn,
114
+ uint256 netSyFeeOfRemove,
115
+ uint256 netSyFeeOfAdd
116
+ )
117
+ {
118
+ (netSyZapIn, netSyFeeOfRemove) = _removeLiquiditySingleSy(fromMarket);
119
+ (netLpOut, netSyFeeOfAdd) = _addLiquiditySingleSy(toMarket, netSyZapIn);
120
+ }
121
+
122
+ function transferLiquiditySameSyKeepYt(
123
+ RemoveLiquiditySingleSyStruct calldata fromMarket,
124
+ AddLiquiditySingleSyKeepYtStruct calldata toMarket
125
+ )
126
+ external
127
+ returns (
128
+ uint256 netLpOut,
129
+ uint256 netYtOut,
130
+ uint256 netSyZapIn,
131
+ uint256 netSyFeeOfRemove
132
+ )
133
+ {
134
+ (netSyZapIn, netSyFeeOfRemove) = _removeLiquiditySingleSy(fromMarket);
135
+ (netLpOut, netYtOut) = _addLiquiditySingleSyKeepYt(toMarket, netSyZapIn);
136
+ }
137
+
138
+ function _removeLiquiditySingleToken(RemoveLiquiditySingleTokenStruct calldata fromMarket)
139
+ internal
140
+ returns (uint256 netTokenOut, uint256 netSyFee)
141
+ {
142
+ _transferFrom(
143
+ IERC20(fromMarket.market),
144
+ msg.sender,
145
+ address(this),
146
+ fromMarket.netLpToRemove
147
+ );
148
+
149
+ _safeApproveInf(fromMarket.market, address(ROUTER));
150
+
151
+ (netTokenOut, netSyFee) = ROUTER.removeLiquiditySingleToken(
152
+ address(this),
153
+ fromMarket.market,
154
+ fromMarket.netLpToRemove,
155
+ fromMarket.output
156
+ );
157
+
158
+ if (fromMarket.doRedeemRewards) {
159
+ IPMarket(fromMarket.market).redeemRewards(msg.sender);
160
+ }
161
+
162
+ emit RemoveLiquiditySingleToken(
163
+ msg.sender,
164
+ fromMarket.market,
165
+ fromMarket.output.tokenOut,
166
+ msg.sender,
167
+ fromMarket.netLpToRemove,
168
+ netTokenOut
169
+ );
170
+ }
171
+
172
+ function _removeLiquiditySingleSy(RemoveLiquiditySingleSyStruct calldata fromMarket)
173
+ internal
174
+ returns (uint256 netSyOut, uint256 netSyFee)
175
+ {
176
+ _transferFrom(
177
+ IERC20(fromMarket.market),
178
+ msg.sender,
179
+ address(this),
180
+ fromMarket.netLpToRemove
181
+ );
182
+
183
+ _safeApproveInf(fromMarket.market, address(ROUTER));
184
+
185
+ (netSyOut, netSyFee) = ROUTER.removeLiquiditySingleSy(
186
+ address(this),
187
+ fromMarket.market,
188
+ fromMarket.netLpToRemove,
189
+ 0
190
+ );
191
+
192
+ if (fromMarket.doRedeemRewards) {
193
+ IPMarket(fromMarket.market).redeemRewards(msg.sender);
194
+ }
195
+
196
+ emit RemoveLiquiditySingleSy(
197
+ msg.sender,
198
+ fromMarket.market,
199
+ msg.sender,
200
+ fromMarket.netLpToRemove,
201
+ netSyOut
202
+ );
203
+ }
204
+
205
+ function _addLiquiditySingleToken(
206
+ AddLiquiditySingleTokenStruct calldata toMarket,
207
+ address tokenToZapIn,
208
+ uint256 actualNetTokenIn
209
+ ) internal returns (uint256 netLpOut, uint256 netSyFee) {
210
+ uint256 netNativeToAttach;
211
+ if (tokenToZapIn == NATIVE) {
212
+ netNativeToAttach = actualNetTokenIn;
213
+ }
214
+
215
+ _safeApproveInf(tokenToZapIn, address(ROUTER));
216
+
217
+ (netLpOut, netSyFee) = ROUTER.addLiquiditySingleToken{ value: netNativeToAttach }(
218
+ msg.sender,
219
+ toMarket.market,
220
+ toMarket.minLpOut,
221
+ _scaleApproxParams(
222
+ toMarket.guessPtReceivedFromSy,
223
+ toMarket.guessNetTokenIn,
224
+ actualNetTokenIn
225
+ ),
226
+ _newTokenInputStruct(tokenToZapIn, actualNetTokenIn, toMarket.bulk)
227
+ );
228
+
229
+ emit AddLiquiditySingleToken(
230
+ msg.sender,
231
+ toMarket.market,
232
+ tokenToZapIn,
233
+ msg.sender,
234
+ actualNetTokenIn,
235
+ netLpOut
236
+ );
237
+ }
238
+
239
+ function _addLiquiditySingleSy(
240
+ AddLiquiditySingleSyStruct calldata toMarket,
241
+ uint256 actualNetSyIn
242
+ ) internal returns (uint256 netLpOut, uint256 netSyFee) {
243
+ (IStandardizedYield SY, , ) = IPMarket(toMarket.market).readTokens();
244
+
245
+ _safeApproveInf(address(SY), address(ROUTER));
246
+
247
+ (netLpOut, netSyFee) = ROUTER.addLiquiditySingleSy(
248
+ msg.sender,
249
+ toMarket.market,
250
+ actualNetSyIn,
251
+ toMarket.minLpOut,
252
+ _scaleApproxParams(
253
+ toMarket.guessPtReceivedFromSy,
254
+ toMarket.guessNetSyIn,
255
+ actualNetSyIn
256
+ )
257
+ );
258
+
259
+ emit AddLiquiditySingleSy(
260
+ msg.sender,
261
+ toMarket.market,
262
+ msg.sender,
263
+ actualNetSyIn,
264
+ netLpOut
265
+ );
266
+ }
267
+
268
+ function _addLiquiditySingleTokenKeepYt(
269
+ AddLiquiditySingleTokenKeepYtStruct calldata toMarket,
270
+ address tokenToZapIn,
271
+ uint256 actualNetTokenIn
272
+ ) internal returns (uint256 netLpOut, uint256 netYtOut) {
273
+ if (tokenToZapIn == NATIVE) {
274
+ tokenToZapIn = WETH;
275
+ _wrap_unwrap_ETH(NATIVE, WETH, actualNetTokenIn);
276
+ }
277
+
278
+ _safeApproveInf(tokenToZapIn, address(ROUTER));
279
+
280
+ (netLpOut, netYtOut) = ROUTER.addLiquiditySingleTokenKeepYt(
281
+ msg.sender,
282
+ toMarket.market,
283
+ toMarket.minLpOut,
284
+ toMarket.minYtOut,
285
+ _newTokenInputStruct(tokenToZapIn, actualNetTokenIn, toMarket.bulk)
286
+ );
287
+
288
+ emit AddLiquiditySingleTokenKeepYt(
289
+ msg.sender,
290
+ toMarket.market,
291
+ tokenToZapIn,
292
+ msg.sender,
293
+ actualNetTokenIn,
294
+ netLpOut,
295
+ netYtOut
296
+ );
297
+ }
298
+
299
+ function _addLiquiditySingleSyKeepYt(
300
+ AddLiquiditySingleSyKeepYtStruct calldata toMarket,
301
+ uint256 actualNetSyIn
302
+ ) internal returns (uint256 netLpOut, uint256 netYtOut) {
303
+ (IStandardizedYield SY, , ) = IPMarket(toMarket.market).readTokens();
304
+
305
+ _safeApproveInf(address(SY), address(ROUTER));
306
+
307
+ (netLpOut, netYtOut) = ROUTER.addLiquiditySingleSyKeepYt(
308
+ msg.sender,
309
+ toMarket.market,
310
+ actualNetSyIn,
311
+ toMarket.minLpOut,
312
+ toMarket.minYtOut
313
+ );
314
+
315
+ emit AddLiquiditySingleSyKeepYt(
316
+ msg.sender,
317
+ toMarket.market,
318
+ msg.sender,
319
+ actualNetSyIn,
320
+ netLpOut,
321
+ netYtOut
322
+ );
323
+ }
324
+
325
+ // ============ struct helpers ============
326
+
327
+ function _newTokenInputStruct(
328
+ address tokenIn,
329
+ uint256 netTokenIn,
330
+ address bulk
331
+ ) internal pure returns (TokenInput memory res) {
332
+ res.tokenIn = res.tokenMintSy = tokenIn;
333
+ res.netTokenIn = netTokenIn;
334
+ res.bulk = bulk;
335
+ return res;
336
+ }
337
+
338
+ /// @dev either SY or Token here is good since token->sy conversion is almost linearly proportional
339
+ function _scaleApproxParams(
340
+ ApproxParams calldata params,
341
+ uint256 guessNetTokenIn,
342
+ uint256 actualNetTokenIn
343
+ ) internal pure returns (ApproxParams memory) {
344
+ if (params.guessOffchain == 0) {
345
+ require(params.guessMin == 0 && params.guessMax == type(uint256).max, "invalid guess");
346
+ return params;
347
+ }
348
+
349
+ return
350
+ ApproxParams({
351
+ guessMin: (params.guessMin * actualNetTokenIn) / guessNetTokenIn,
352
+ guessMax: (params.guessMax * actualNetTokenIn) / guessNetTokenIn,
353
+ guessOffchain: (params.guessOffchain * actualNetTokenIn) / guessNetTokenIn,
354
+ maxIteration: params.maxIteration,
355
+ eps: params.eps
356
+ });
357
+ }
358
+ }
@@ -193,10 +193,11 @@ abstract contract ActionBaseMintRedeem is TokenHelper {
193
193
  if (netSyOut < minSyOut) revert Errors.RouterInsufficientSyOut(netSyOut, minSyOut);
194
194
  }
195
195
 
196
- function _syOrBulk(
197
- address SY,
198
- TokenOutput calldata output
199
- ) internal pure returns (address addr) {
196
+ function _syOrBulk(address SY, TokenOutput calldata output)
197
+ internal
198
+ pure
199
+ returns (address addr)
200
+ {
200
201
  return output.bulk != address(0) ? output.bulk : SY;
201
202
  }
202
203
  }
@@ -27,5 +27,6 @@
27
27
  "senderEndpoint": "0x07b1014c88f14C9E910092526db57A20052E989F",
28
28
  "votingController": "0x44087E105137a5095c008AaB6a6530182821F2F0",
29
29
  "gaugeController": "0x47D74516B33eD5D70ddE7119A40839f6Fcc24e57",
30
- "feeDistributor": "0xd7b34a6fDCb2A7ceD2115FF7f5fdD72aa6aA4dE2"
30
+ "feeDistributor": "0xd7b34a6fDCb2A7ceD2115FF7f5fdD72aa6aA4dE2",
31
+ "routerHelper": "0xeb984195D54Df02BaF757e21B0705032FaEFde2E"
31
32
  }
@@ -22,5 +22,6 @@
22
22
  "pendleSwap": "0xDa78D46C4133EA548386e64eaca26FC456F71D2d",
23
23
  "receiverEndpoint": "0xC9215ae9EC67385F38C755D862C8eE3702B5793A",
24
24
  "vePendle": "0x3209E9412cca80B18338f2a56ADA59c484c39644",
25
- "gaugeController": "0x1e56299ebc8a1010cec26005d12e3e5c5cc2db00"
25
+ "gaugeController": "0x1e56299ebc8a1010cec26005d12e3e5c5cc2db00",
26
+ "routerHelper": "0xeb984195D54Df02BaF757e21B0705032FaEFde2E"
26
27
  }
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": "2.4.0-mainnet",
5
+ "version": "2.5.1-mainnet",
6
6
  "homepage": "https://pendle.finance",
7
7
  "keywords": [
8
8
  "pendle",
@@ -27,7 +27,7 @@
27
27
  "@typechain/hardhat": "^4.0.0",
28
28
  "hardhat": "^2.13.0",
29
29
  "hardhat-contract-sizer": "^2.8.0",
30
- "prettier": "^2.8.4",
30
+ "prettier": "^2.8.5",
31
31
  "prettier-plugin-solidity": "^1.1.3",
32
32
  "solc": "^0.8.19",
33
33
  "solhint": "^3.4.1",