@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,222 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "../SYBaseWithRewards.sol";
5
+ import "../../../interfaces/IStargateRouter.sol";
6
+ import "../../../interfaces/IStargateLP.sol";
7
+ import "../../../interfaces/IStargateStaking.sol";
8
+
9
+ contract PendleStargateLPSY is SYBaseWithRewards {
10
+ uint256 public constant STARGATE_BP_DENOMINATOR = 10000;
11
+
12
+ using Math for uint256;
13
+
14
+ uint16 public immutable pid; // pool id
15
+ uint256 public immutable sid; // staking id
16
+ address public immutable lp;
17
+ address public immutable underlying;
18
+ address public immutable stargateRouter;
19
+ address public immutable stargateStaking;
20
+ address public immutable stgToken;
21
+
22
+ // preview variables
23
+ uint256 public immutable convertRate;
24
+
25
+ constructor(
26
+ string memory _name,
27
+ string memory _symbol,
28
+ address _stargateLP,
29
+ address _stargateStaking,
30
+ uint256 _sid
31
+ ) SYBaseWithRewards(_name, _symbol, _stargateLP) {
32
+ lp = _stargateLP;
33
+ underlying = IStargateLP(lp).token();
34
+
35
+ stargateRouter = IStargateLP(lp).router();
36
+ pid = uint16(IStargateLP(lp).poolId());
37
+
38
+ stargateStaking = _stargateStaking;
39
+ sid = _sid;
40
+
41
+ stgToken = IStargateStaking(stargateStaking).stargate();
42
+
43
+ // preview variables
44
+ convertRate = IStargateLP(lp).convertRate();
45
+
46
+ _safeApproveInf(underlying, stargateRouter);
47
+ _safeApproveInf(lp, stargateStaking);
48
+
49
+ _validateStargateStakingId(stargateStaking, sid, lp);
50
+ }
51
+
52
+ function _validateStargateStakingId(
53
+ address staking,
54
+ uint256 id,
55
+ address lpToken
56
+ ) internal view {
57
+ (address _lpToken, , , ) = IStargateStaking(staking).poolInfo(id);
58
+ // Custom error not needed here since this only happens on deployment
59
+ require(_lpToken == lpToken, "invalid sid & lpToken");
60
+ }
61
+
62
+ /*///////////////////////////////////////////////////////////////
63
+ DEPOSIT/REDEEM USING BASE TOKENS
64
+ //////////////////////////////////////////////////////////////*/
65
+
66
+ /**
67
+ * The underlying yield token is startgateLP. If the base token deposited is underlying, the function
68
+ * deposits received underlying into the startgateLP contract.
69
+ */
70
+ function _deposit(
71
+ address tokenIn,
72
+ uint256 amountDeposited
73
+ ) internal virtual override returns (uint256 amountSharesOut) {
74
+ if (tokenIn == underlying) {
75
+ IStargateRouter(stargateRouter).addLiquidity(pid, amountDeposited, address(this));
76
+ amountSharesOut = _selfBalance(lp);
77
+ // all outstanding LP will be staked
78
+ } else {
79
+ amountSharesOut = amountDeposited;
80
+ }
81
+ IStargateStaking(stargateStaking).deposit(sid, amountSharesOut);
82
+ }
83
+
84
+ function _redeem(
85
+ address receiver,
86
+ address tokenOut,
87
+ uint256 amountSharesToRedeem
88
+ ) internal virtual override returns (uint256 amountTokenOut) {
89
+ IStargateStaking(stargateStaking).withdraw(sid, amountSharesToRedeem);
90
+ if (tokenOut == lp) {
91
+ amountTokenOut = amountSharesToRedeem;
92
+ _transferOut(lp, receiver, amountTokenOut);
93
+ } else {
94
+ /**
95
+ * @dev There is an lp cap variable in stargate to define the maximum amount of lp
96
+ * which can be burned.
97
+ * In case there is not enough liquidity in the pool to proceed the withdrawal,
98
+ * stargatePool will not revert and try to withdraw as much lp as it can instead.
99
+ *
100
+ * When this rare case happens, Pendle's SY should guarantee to revert.
101
+ */
102
+
103
+ uint256 preBalanceLp = _selfBalance(lp);
104
+
105
+ uint256 amountSD = IStargateRouter(stargateRouter).instantRedeemLocal(
106
+ pid,
107
+ amountSharesToRedeem,
108
+ receiver
109
+ );
110
+ uint256 lpUsed = preBalanceLp - _selfBalance(lp);
111
+ if (lpUsed < amountSharesToRedeem) {
112
+ revert Errors.SYStargateRedeemCapExceeded(amountSharesToRedeem, lpUsed);
113
+ }
114
+
115
+ amountTokenOut = amountSD * convertRate;
116
+ }
117
+ }
118
+
119
+ /*///////////////////////////////////////////////////////////////
120
+ EXCHANGE-RATE
121
+ //////////////////////////////////////////////////////////////*/
122
+
123
+ /**
124
+ * @notice Calculates and updates the exchange rate of shares to underlying asset token
125
+ * @dev It is the exchange rate of lp to underlying
126
+ */
127
+ function exchangeRate() public view virtual override returns (uint256) {
128
+ return
129
+ IStargateLP(lp).totalLiquidity().divDown(IStargateLP(lp).totalSupply()) * convertRate;
130
+ }
131
+
132
+ /*///////////////////////////////////////////////////////////////
133
+ REWARDS-RELATED
134
+ //////////////////////////////////////////////////////////////*/
135
+
136
+ /**
137
+ * @dev See {IStandardizedYield-getRewardTokens}
138
+ */
139
+ function _getRewardTokens() internal view override returns (address[] memory res) {
140
+ res = new address[](1);
141
+ res[0] = stgToken;
142
+ }
143
+
144
+ function _redeemExternalReward() internal override {
145
+ IStargateStaking(stargateStaking).withdraw(sid, 0);
146
+ }
147
+
148
+ /*///////////////////////////////////////////////////////////////
149
+ MISC FUNCTIONS FOR METADATA
150
+ //////////////////////////////////////////////////////////////*/
151
+
152
+ function _previewDeposit(
153
+ address tokenIn,
154
+ uint256 amountTokenToDeposit
155
+ ) internal view override returns (uint256 amountSharesOut) {
156
+ if (tokenIn == lp) {
157
+ amountSharesOut = amountTokenToDeposit;
158
+ } else {
159
+ uint256 totalLiquidity = IStargateLP(lp).totalLiquidity();
160
+ uint256 totalSupply = IStargateLP(lp).totalSupply();
161
+ uint256 mintFeeBP = IStargateLP(lp).mintFeeBP();
162
+
163
+ uint256 amountSD = amountTokenToDeposit / convertRate;
164
+
165
+ // Tho fee is always enabled, it is currently set to zero
166
+ uint256 mintFeeSD = (amountSD * mintFeeBP) / STARGATE_BP_DENOMINATOR;
167
+ amountSD = amountSD - mintFeeSD;
168
+
169
+ // skip check for lp.totalSupply() == 0
170
+ amountSharesOut = (amountSD * totalSupply) / totalLiquidity;
171
+ }
172
+ }
173
+
174
+ function _previewRedeem(
175
+ address tokenOut,
176
+ uint256 amountSharesToRedeem
177
+ ) internal view override returns (uint256 amountTokenOut) {
178
+ if (tokenOut == lp) {
179
+ amountTokenOut = amountSharesToRedeem;
180
+ } else {
181
+ uint256 totalLiquidity = IStargateLP(lp).totalLiquidity();
182
+ uint256 totalSupply = IStargateLP(lp).totalSupply();
183
+ uint256 deltaCredit = IStargateLP(lp).deltaCredit();
184
+
185
+ uint256 capAmountLp = (deltaCredit * totalSupply) / totalLiquidity;
186
+ if (amountSharesToRedeem > capAmountLp) {
187
+ revert Errors.SYStargateRedeemCapExceeded(amountSharesToRedeem, capAmountLp);
188
+ }
189
+
190
+ uint256 amountSD = (amountSharesToRedeem * totalLiquidity) / totalSupply;
191
+ amountTokenOut = amountSD * convertRate;
192
+ }
193
+ }
194
+
195
+ function getTokensIn() public view virtual override returns (address[] memory res) {
196
+ res = new address[](2);
197
+ res[0] = underlying;
198
+ res[1] = lp;
199
+ }
200
+
201
+ function getTokensOut() public view virtual override returns (address[] memory res) {
202
+ res = new address[](2);
203
+ res[0] = underlying;
204
+ res[1] = lp;
205
+ }
206
+
207
+ function isValidTokenIn(address token) public view virtual override returns (bool) {
208
+ return token == underlying || token == lp;
209
+ }
210
+
211
+ function isValidTokenOut(address token) public view virtual override returns (bool) {
212
+ return token == underlying || token == lp;
213
+ }
214
+
215
+ function assetInfo()
216
+ external
217
+ view
218
+ returns (AssetType assetType, address assetAddress, uint8 assetDecimals)
219
+ {
220
+ return (AssetType.TOKEN, underlying, IERC20Metadata(underlying).decimals());
221
+ }
222
+ }
@@ -114,6 +114,8 @@ library Errors {
114
114
  error SYBalancerInvalidPid();
115
115
  error SYInvalidRewardToken(address token);
116
116
 
117
+ error SYStargateRedeemCapExceeded(uint256 amountLpDesired, uint256 amountLpRedeemable);
118
+
117
119
  // Liquidity Mining
118
120
  error VCInactivePool(address pool);
119
121
  error VCPoolAlreadyActive(address pool);
@@ -0,0 +1,168 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity 0.8.17;
3
+
4
+ import "../router/base/MarketApproxLib.sol";
5
+ import "../router/base/ActionBaseMintRedeem.sol";
6
+
7
+ interface IPRouterHelper {
8
+ /**
9
+ * @param output This output struct should be filled the same way as the normal removeLiquiditySingleToken
10
+ operation (This means all BulkSeller, PendleSwap still works the same way). Note that the
11
+ output.tokenOut will also be used as the input token for the addLiquidity
12
+ */
13
+ struct RemoveLiquiditySingleTokenStruct {
14
+ address market;
15
+ uint256 netLpToRemove;
16
+ bool doRedeemRewards;
17
+ TokenOutput output;
18
+ }
19
+
20
+ /**
21
+ * @param guessNetTokenIn the predicted amount of tokenIn that will be used to add liquidity. This
22
+ should be the same amount that was used to generate guessPtReceivedFromSy (if any).
23
+ * @param guessPtReceivedFromSy the same guess struct in the normal addLiquiditySingleToken operation.
24
+ Again, note that this struct, if not empty (i.e. if guessOffchain == 0), should be generated
25
+ using `guessNetTokenIn` amount of tokenIn
26
+ * @dev tokenIn is the output.tokenOut of the removeLiquiditySingleTokenStruct
27
+ */
28
+ struct AddLiquiditySingleTokenStruct {
29
+ address market;
30
+ uint256 minLpOut;
31
+ uint256 guessNetTokenIn;
32
+ ApproxParams guessPtReceivedFromSy;
33
+ address bulk;
34
+ }
35
+
36
+ /**
37
+ * @dev tokenIn is the output.tokenOut of the removeLiquiditySingleTokenStruct
38
+ */
39
+ struct AddLiquiditySingleTokenKeepYtStruct {
40
+ address market;
41
+ uint256 minLpOut;
42
+ uint256 minYtOut;
43
+ address bulk;
44
+ }
45
+
46
+ struct RemoveLiquiditySingleSyStruct {
47
+ address market;
48
+ uint256 netLpToRemove;
49
+ bool doRedeemRewards;
50
+ }
51
+
52
+ /**
53
+ * @dev guessNetSyIn & guessPtReceivedFromSy have similar meanings to AddLiquiditySingleTokenStruct
54
+ */
55
+ struct AddLiquiditySingleSyStruct {
56
+ address market;
57
+ uint256 minLpOut;
58
+ uint256 guessNetSyIn;
59
+ ApproxParams guessPtReceivedFromSy;
60
+ }
61
+
62
+ struct AddLiquiditySingleSyKeepYtStruct {
63
+ address market;
64
+ uint256 minLpOut;
65
+ uint256 minYtOut;
66
+ }
67
+
68
+ event RemoveLiquiditySingleToken(
69
+ address indexed caller,
70
+ address indexed market,
71
+ address indexed token,
72
+ address receiver,
73
+ uint256 netLpToRemove,
74
+ uint256 netTokenOut
75
+ );
76
+
77
+ event RemoveLiquiditySingleSy(
78
+ address indexed caller,
79
+ address indexed market,
80
+ address indexed receiver,
81
+ uint256 netLpToRemove,
82
+ uint256 netSyOut
83
+ );
84
+
85
+ event AddLiquiditySingleToken(
86
+ address indexed caller,
87
+ address indexed market,
88
+ address indexed token,
89
+ address receiver,
90
+ uint256 netTokenIn,
91
+ uint256 netLpOut
92
+ );
93
+
94
+ event AddLiquiditySingleSy(
95
+ address indexed caller,
96
+ address indexed market,
97
+ address indexed receiver,
98
+ uint256 netSyIn,
99
+ uint256 netLpOut
100
+ );
101
+
102
+ event AddLiquiditySingleTokenKeepYt(
103
+ address indexed caller,
104
+ address indexed market,
105
+ address indexed token,
106
+ address receiver,
107
+ uint256 netTokenIn,
108
+ uint256 netLpOut,
109
+ uint256 netYtOut
110
+ );
111
+
112
+ event AddLiquiditySingleSyKeepYt(
113
+ address indexed caller,
114
+ address indexed market,
115
+ address indexed receiver,
116
+ uint256 netSyIn,
117
+ uint256 netLpOut,
118
+ uint256 netYtOut
119
+ );
120
+
121
+ function transferLiquidityDifferentSyNormal(
122
+ RemoveLiquiditySingleTokenStruct calldata fromMarket,
123
+ AddLiquiditySingleTokenStruct calldata toMarket
124
+ )
125
+ external
126
+ returns (
127
+ uint256 netLpOut,
128
+ uint256 netTokenZapIn,
129
+ uint256 netSyFeeOfRemove,
130
+ uint256 netSyFeeOfAdd
131
+ );
132
+
133
+ function transferLiquidityDifferentSyKeepYt(
134
+ RemoveLiquiditySingleTokenStruct calldata fromMarket,
135
+ AddLiquiditySingleTokenKeepYtStruct calldata toMarket
136
+ )
137
+ external
138
+ returns (
139
+ uint256 netLpOut,
140
+ uint256 netYtOut,
141
+ uint256 netTokenZapIn,
142
+ uint256 netSyFeeOfRemove
143
+ );
144
+
145
+ function transferLiquiditySameSyNormal(
146
+ RemoveLiquiditySingleSyStruct calldata fromMarket,
147
+ AddLiquiditySingleSyStruct calldata toMarket
148
+ )
149
+ external
150
+ returns (
151
+ uint256 netLpOut,
152
+ uint256 netSyZapIn,
153
+ uint256 netSyFeeOfRemove,
154
+ uint256 netSyFeeOfAdd
155
+ );
156
+
157
+ function transferLiquiditySameSyKeepYt(
158
+ RemoveLiquiditySingleSyStruct calldata fromMarket,
159
+ AddLiquiditySingleSyKeepYtStruct calldata toMarket
160
+ )
161
+ external
162
+ returns (
163
+ uint256 netLpOut,
164
+ uint256 netYtOut,
165
+ uint256 netSyZapIn,
166
+ uint256 netSyFeeOfRemove
167
+ );
168
+ }
@@ -22,7 +22,9 @@
22
22
  */
23
23
  pragma solidity 0.8.17;
24
24
 
25
- interface IStargatePool {
25
+ interface IStargateLP {
26
+
27
+
26
28
  struct SwapObj {
27
29
  uint256 amount;
28
30
  uint256 eqFee;
@@ -45,5 +47,16 @@ interface IStargatePool {
45
47
 
46
48
  function token() external view returns (address);
47
49
 
50
+ function router() external view returns (address);
51
+
52
+ function totalSupply() external view returns (uint256);
53
+
48
54
  function totalLiquidity() external view returns (uint256);
55
+
56
+ function mintFeeBP() external view returns (uint256);
57
+
58
+ function convertRate() external view returns (uint256);
59
+
60
+ function deltaCredit() external view returns (uint256);
61
+
49
62
  }
@@ -22,7 +22,7 @@
22
22
  */
23
23
  pragma solidity 0.8.17;
24
24
 
25
- interface IStargateLPStaking {
25
+ interface IStargateStaking {
26
26
  struct PoolInfo {
27
27
  address lpToken; // Address of LP token contract.
28
28
  uint256 allocPoint; // How many allocation points assigned to this pool. STGs to distribute per block.
@@ -41,7 +41,7 @@ interface IStargateLPStaking {
41
41
 
42
42
  function withdraw(uint256 _pid, uint256 _amount) external;
43
43
 
44
- function poolInfo(uint256 _pid) external view returns (PoolInfo memory);
44
+ function poolInfo(uint256 _pid) external view returns (address, uint256, uint256, uint256);
45
45
 
46
46
  function userInfo(uint256 _pid, address _user) external view returns (UserInfo memory);
47
47
  }