@pendle/core-v2 2.1.2-mainnet → 2.3.0-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 (491) 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/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +2 -2
  9. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  12. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  14. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  16. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  18. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  20. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  21. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  22. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  23. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  24. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  25. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  26. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  27. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  29. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  30. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  31. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  32. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  33. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
  34. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  36. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  38. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  40. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  43. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  45. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
  49. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.json +2 -2
  53. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
  56. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSY.sol/PendleAuraWethAnkrethSY.dbg.json +4 -0
  57. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSY.sol/PendleAuraWethAnkrethSY.json +1192 -0
  58. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol/PendleAuraWethRethSY.json +2 -2
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.dbg.json +1 -1
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol/PendleAuraWethWstethSY.json +2 -2
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.json +2 -2
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.json +2 -2
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol/PendleAuraBalancerStableLPSY.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.json +2 -2
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.json +2 -2
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
  81. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.json +2 -2
  82. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
  83. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.json +2 -2
  84. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  85. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.dbg.json +1 -1
  86. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  87. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
  88. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  89. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +2 -2
  90. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  91. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  92. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  93. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  94. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  95. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  96. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  97. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  98. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  99. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  100. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  101. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +1 -1
  102. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
  103. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +2 -2
  104. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  105. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +2 -2
  106. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  107. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +2 -2
  108. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  109. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.json +2 -2
  110. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  111. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.json +2 -2
  112. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  113. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.json +2 -2
  114. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  115. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.json +2 -2
  116. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  117. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.json +2 -2
  118. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  119. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  120. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +2 -2
  121. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  122. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +2 -2
  123. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
  124. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.json +2 -2
  125. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  126. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  127. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.json +2 -2
  128. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.dbg.json +1 -1
  129. package/build/artifacts/contracts/core/libraries/math/Math.sol/Math.json +2 -2
  130. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
  131. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +1 -1
  132. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +1 -1
  133. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
  134. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
  135. package/build/artifacts/contracts/interfaces/ConvexCurve/ICrvDepositor.sol/ICrvDepositor.dbg.json +1 -1
  136. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  137. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  138. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +1 -1
  139. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +1 -1
  140. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +1 -1
  141. package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
  142. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +1 -1
  143. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  144. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  145. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +4 -0
  146. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.json +307 -0
  147. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +4 -0
  148. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.json +269 -0
  149. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +4 -0
  150. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.json +1260 -0
  151. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  152. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +4 -0
  153. package/build/artifacts/contracts/interfaces/{IAToken.sol/IAToken.json → IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.json} +114 -93
  154. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +4 -0
  155. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.json +184 -0
  156. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  157. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  158. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +4 -0
  159. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.json +40 -0
  160. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  161. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  162. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +1 -1
  163. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  164. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  165. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  166. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  167. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +1 -1
  168. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  169. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  170. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  171. package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +4 -0
  172. package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.json +55 -0
  173. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +4 -0
  174. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +2322 -0
  175. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  176. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  177. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  178. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +1 -1
  179. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  180. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  181. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  182. package/build/artifacts/contracts/interfaces/IStargateLPStaking.sol/IStargateLPStaking.dbg.json +1 -1
  183. package/build/artifacts/contracts/interfaces/IStargatePool.sol/IStargatePool.dbg.json +1 -1
  184. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  185. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +1 -1
  186. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.json +2 -2
  187. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  188. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.json +2 -2
  189. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  190. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
  191. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  192. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  193. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
  194. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.json +2 -2
  195. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +4 -0
  196. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +30 -0
  197. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +4 -0
  198. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +307 -0
  199. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +4 -0
  200. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +333 -0
  201. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +4 -0
  202. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +1397 -0
  203. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +4 -0
  204. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +310 -0
  205. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +4 -0
  206. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +228 -0
  207. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +4 -0
  208. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +93 -0
  209. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +4 -0
  210. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.json +10 -0
  211. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  212. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  213. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  214. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  215. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  216. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +2 -2
  217. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  218. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  219. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  220. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  221. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  222. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  223. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  224. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  225. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  226. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  227. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  228. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  229. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  230. package/build/artifacts/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +1 -1
  231. package/build/artifacts/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +1 -1
  232. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
  233. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.dbg.json +1 -1
  234. package/build/artifacts/contracts/router/swap-aggregator/PendleSwapAggregator.sol/PendleSwapAggregator.json +2 -2
  235. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol/KyberAggregationRouterHelper.dbg.json +1 -1
  236. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +1 -1
  237. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +1 -1
  238. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol +4 -5
  239. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiverAppUpg.sol +3 -5
  240. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol +7 -10
  241. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol +8 -10
  242. package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +16 -8
  243. package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +3 -5
  244. package/contracts/LiquidityMining/README.md +49 -46
  245. package/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol +9 -14
  246. package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +4 -10
  247. package/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol +23 -36
  248. package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +18 -24
  249. package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol +3 -4
  250. package/contracts/LiquidityMining/libraries/VeBalanceLib.sol +20 -26
  251. package/contracts/core/BulkSeller/BulkSeller.sol +1 -5
  252. package/contracts/core/BulkSeller/BulkSellerFactory.sol +4 -5
  253. package/contracts/core/BulkSeller/BulkSellerMathCore.sol +20 -25
  254. package/contracts/core/Market/MarketMathCore.sol +23 -69
  255. package/contracts/core/Market/OracleLib.sol +4 -4
  256. package/contracts/core/Market/PendleGauge.sol +7 -20
  257. package/contracts/core/Market/PendleMarket.sol +5 -15
  258. package/contracts/core/Market/PendleMarketFactory.sol +3 -9
  259. package/contracts/core/RewardManager/RewardManager.sol +4 -6
  260. package/contracts/core/RewardManager/RewardManagerAbstract.sol +4 -4
  261. package/contracts/core/StandardizedYield/PYIndex.sol +7 -36
  262. package/contracts/core/StandardizedYield/SYBase.sol +20 -26
  263. package/contracts/core/StandardizedYield/SYBaseWithRewards.sol +7 -19
  264. package/contracts/core/StandardizedYield/SYUtils.sol +4 -5
  265. package/contracts/core/StandardizedYield/StEthHelper.sol +12 -16
  266. package/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol +14 -24
  267. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSY.sol +127 -0
  268. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRethSY.sol +12 -20
  269. package/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSY.sol +12 -20
  270. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol +1 -5
  271. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol +28 -44
  272. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSY.sol +28 -47
  273. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol +6 -10
  274. package/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol +6 -10
  275. package/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol +13 -22
  276. package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol +20 -27
  277. package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol +20 -27
  278. package/contracts/core/StandardizedYield/implementations/Convex/README.md +4 -4
  279. package/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol +32 -40
  280. package/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol +10 -12
  281. package/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol +14 -18
  282. package/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol +32 -48
  283. package/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol +6 -7
  284. package/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol +14 -24
  285. package/contracts/core/StandardizedYield/implementations/GLP/README.md +15 -13
  286. package/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol +12 -38
  287. package/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol +13 -23
  288. package/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol +13 -23
  289. package/contracts/core/YieldContracts/PendleYieldToken.sol +28 -44
  290. package/contracts/core/YieldContractsV2/InterestManagerYTV2.sol +4 -4
  291. package/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol +1 -1
  292. package/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol +24 -38
  293. package/contracts/core/erc20/PendleERC20.sol +14 -44
  294. package/contracts/core/libraries/ArrayLib.sol +20 -9
  295. package/contracts/core/libraries/BaseSplitCodeFactory.sol +5 -7
  296. package/contracts/core/libraries/BoringOwnableUpgradeable.sol +1 -5
  297. package/contracts/core/libraries/Errors.sol +0 -2
  298. package/contracts/core/libraries/StringLib.sol +14 -20
  299. package/contracts/core/libraries/TokenHelper.sol +6 -31
  300. package/contracts/core/libraries/math/LogExpMath.sol +2 -2
  301. package/contracts/core/libraries/math/Math.sol +3 -15
  302. package/contracts/interfaces/Balancer/IComposableStable.sol +4 -14
  303. package/contracts/interfaces/Balancer/IMetaStablePool.sol +4 -13
  304. package/contracts/interfaces/Balancer/IVault.sol +4 -6
  305. package/contracts/interfaces/ConvexCurve/IBooster.sol +4 -16
  306. package/contracts/interfaces/ConvexCurve/ICrvDepositor.sol +1 -5
  307. package/contracts/interfaces/ConvexCurve/IRewards.sol +1 -4
  308. package/contracts/interfaces/Curve/ICrvPool.sol +12 -11
  309. package/contracts/interfaces/Curve/ITriCrvPool.sol +4 -4
  310. package/contracts/interfaces/GMX/IGMXVault.sol +4 -4
  311. package/contracts/interfaces/GMX/IRewardRouterV2.sol +4 -4
  312. package/contracts/interfaces/IApeStaking.sol +3 -4
  313. package/contracts/interfaces/IDiamondLoupe.sol +3 -1
  314. package/contracts/interfaces/IERC4626.sol +1 -5
  315. package/contracts/interfaces/IPActionAddRemoveLiq.sol +2 -15
  316. package/contracts/interfaces/IPActionInfoStatic.sol +43 -0
  317. package/contracts/interfaces/IPActionMarketAuxStatic.sol +34 -0
  318. package/contracts/interfaces/IPActionMarketCoreStatic.sol +335 -0
  319. package/contracts/interfaces/IPActionMintRedeemStatic.sol +55 -0
  320. package/contracts/interfaces/IPActionStorageStatic.sol +24 -0
  321. package/contracts/interfaces/IPActionVePendleStatic.sol +9 -0
  322. package/contracts/interfaces/IPBulkSellerSYCallback.sol +1 -5
  323. package/contracts/interfaces/IPFeeDistributor.sol +4 -3
  324. package/contracts/interfaces/IPGaugeController.sol +3 -9
  325. package/contracts/interfaces/IPInterestManagerYT.sol +3 -4
  326. package/contracts/interfaces/IPInterestManagerYTV2.sol +4 -6
  327. package/contracts/interfaces/IPMarket.sol +5 -16
  328. package/contracts/interfaces/IPMarketFactory.sol +3 -8
  329. package/contracts/interfaces/IPMarketSwapCallback.sol +1 -5
  330. package/contracts/interfaces/IPMiniDiamond.sol +12 -0
  331. package/contracts/interfaces/IPRouterStatic.sol +19 -0
  332. package/contracts/interfaces/IPVotingController.sol +5 -6
  333. package/contracts/interfaces/IPVotingEscrowMainchain.sol +8 -7
  334. package/contracts/interfaces/IPYieldToken.sol +4 -3
  335. package/contracts/interfaces/IPYieldTokenV2.sol +4 -3
  336. package/contracts/interfaces/IRewardManager.sol +4 -4
  337. package/contracts/interfaces/IStETH.sol +4 -3
  338. package/contracts/interfaces/IStandardizedYield.sol +10 -14
  339. package/contracts/interfaces/IStargateRouter.sol +1 -5
  340. package/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol +4 -1
  341. package/contracts/offchain-helpers/BulkSellerOffchain.sol +7 -11
  342. package/contracts/offchain-helpers/Multicall2.sol +14 -24
  343. package/contracts/offchain-helpers/router-static/PendleRouterStatic.sol +19 -0
  344. package/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol +122 -0
  345. package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +165 -0
  346. package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +780 -0
  347. package/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol +158 -0
  348. package/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol +76 -0
  349. package/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol +55 -0
  350. package/contracts/offchain-helpers/router-static/base/StorageLayout.sol +21 -0
  351. package/contracts/router/ActionAddRemoveLiq.sol +2 -17
  352. package/contracts/router/ActionSwapYT.sol +9 -3
  353. package/contracts/router/base/ActionBaseCallback.sol +2 -2
  354. package/contracts/router/base/ActionBaseMintRedeem.sol +4 -5
  355. package/contracts/router/base/CallbackHelper.sol +16 -27
  356. package/contracts/router/base/MarketApproxLib.sol +18 -82
  357. package/contracts/router/swap-aggregator/1inch/I1inchAggregationRouterV5.sol +4 -10
  358. package/contracts/router/swap-aggregator/1inch/OneInchAggregationRouterHelper.sol +4 -5
  359. package/contracts/router/swap-aggregator/IPSwapAggregator.sol +1 -5
  360. package/contracts/router/swap-aggregator/PendleSwapAggregator.sol +1 -5
  361. package/contracts/router/swap-aggregator/kyberswap/KyberAggregationRouterHelper.sol +4 -5
  362. package/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol +9 -9
  363. package/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol +3 -4
  364. package/deployments/1-core.json +1 -1
  365. package/deployments/1-markets/BALANCER-LP-AURA-ANKRETH-WETH-MARCH-28-2024.json +11 -0
  366. package/deployments/42161-core.json +1 -1
  367. package/package.json +5 -4
  368. package/typechain-types/ActionMarketCoreStatic.ts +0 -4
  369. package/typechain-types/ActionStorageStatic.ts +5 -3
  370. package/typechain-types/IPActionMarketCoreStatic.ts +0 -4
  371. package/typechain-types/IPActionStorageStatic.ts +5 -3
  372. package/typechain-types/IPRouterStatic.ts +5 -7
  373. package/typechain-types/IStargateLP.ts +306 -0
  374. package/typechain-types/IStargateStaking.ts +232 -0
  375. package/typechain-types/PendleAuraWethAnkrethSY.ts +1523 -0
  376. package/typechain-types/PendlePtOracleBase.ts +139 -0
  377. package/typechain-types/PendleStargateLP.ts +1442 -0
  378. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  379. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  380. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  381. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -11
  382. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  383. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  384. package/typechain-types/factories/ActionMisc__factory.ts +1 -1
  385. package/typechain-types/factories/ActionStorageStatic__factory.ts +3 -3
  386. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  387. package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
  388. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  389. package/typechain-types/factories/AddressProvider__factory.ts +1 -1
  390. package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +1 -1
  391. package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
  392. package/typechain-types/factories/Broadcaster__factory.ts +1 -1
  393. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  394. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  395. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  396. package/typechain-types/factories/Errors__factory.ts +1 -1
  397. package/typechain-types/factories/IPActionMarketCoreStatic__factory.ts +0 -10
  398. package/typechain-types/factories/IPActionStorageStatic__factory.ts +2 -2
  399. package/typechain-types/factories/IPRouterStatic__factory.ts +2 -12
  400. package/typechain-types/factories/IStargateLP__factory.ts +212 -0
  401. package/typechain-types/factories/IStargateStaking__factory.ts +145 -0
  402. package/typechain-types/factories/MarketMathStatic__factory.ts +1 -1
  403. package/typechain-types/factories/MetaStableMath__factory.ts +1 -1
  404. package/typechain-types/factories/MetaStablePreview__factory.ts +1 -1
  405. package/typechain-types/factories/Multicall2__factory.ts +1 -1
  406. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  407. package/typechain-types/factories/PendleAuraWethAnkrethSY__factory.ts +1265 -0
  408. package/typechain-types/factories/PendleAuraWethRethSY__factory.ts +1 -1
  409. package/typechain-types/factories/PendleAuraWethWstethSY__factory.ts +1 -1
  410. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  411. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  412. package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
  413. package/typechain-types/factories/PendleERC20__factory.ts +1 -1
  414. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  415. package/typechain-types/factories/PendleGDaiSY__factory.ts +1 -1
  416. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  417. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  418. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  419. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  420. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  421. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  422. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  423. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  424. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +1 -1
  425. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  426. package/typechain-types/factories/PendlePtOracleBase__factory.ts +78 -0
  427. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  428. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  429. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  430. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  431. package/typechain-types/factories/PendleStargateLP__factory.ts +1241 -0
  432. package/typechain-types/factories/PendleSwapAggregator__factory.ts +1 -1
  433. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  434. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  435. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
  436. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  437. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1 -1
  438. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  439. package/typechain-types/factories/RouterStatic__factory.ts +1 -1
  440. package/typechain-types/factories/SAPE__factory.ts +1 -1
  441. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  442. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  443. package/typechain-types/hardhat.d.ts +44 -17
  444. package/typechain-types/index.ts +12 -2
  445. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +0 -4
  446. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.dbg.json +0 -4
  447. package/build/artifacts/contracts/interfaces/IAavePool.sol/IAavePool.json +0 -87
  448. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.dbg.json +0 -4
  449. package/build/artifacts/contracts/interfaces/IAaveRewardsController.sol/IAaveRewardsController.json +0 -59
  450. package/build/artifacts/contracts/interfaces/IBoringOwnableUpgradeable.sol/IBoringOwnableUpgradeable.dbg.json +0 -4
  451. package/build/artifacts/contracts/interfaces/IBoringOwnableUpgradeable.sol/IBoringOwnableUpgradeable.json +0 -34
  452. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.dbg.json +0 -4
  453. package/build/artifacts/contracts/interfaces/IEulerEToken.sol/IEulerEToken.json +0 -162
  454. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.dbg.json +0 -4
  455. package/build/artifacts/contracts/interfaces/IEulerMarkets.sol/IEulerMarkets.json +0 -87
  456. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.dbg.json +0 -4
  457. package/build/artifacts/contracts/interfaces/IPGovernanceManager.sol/IPGovernanceManager.json +0 -24
  458. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.dbg.json +0 -4
  459. package/build/artifacts/contracts/interfaces/IPPermissionsV2Upg.sol/IPermissionsV2Upg.json +0 -24
  460. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.dbg.json +0 -4
  461. package/build/artifacts/contracts/interfaces/IREDACTEDStaking.sol/IREDACTEDStaking.json +0 -92
  462. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.dbg.json +0 -4
  463. package/build/artifacts/contracts/interfaces/ISAvax.sol/ISAvax.json +0 -199
  464. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +0 -4
  465. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.json +0 -168
  466. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +0 -4
  467. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.json +0 -252
  468. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.dbg.json +0 -4
  469. package/build/artifacts/contracts/interfaces/IWXBTRFLY.sol/IWXBTRFLY.json +0 -132
  470. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.dbg.json +0 -4
  471. package/build/artifacts/contracts/interfaces/IYearnVault.sol/IYearnVault.json +0 -148
  472. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +0 -4
  473. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +0 -259
  474. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +0 -4
  475. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +0 -2825
  476. package/contracts/interfaces/IAToken.sol +0 -44
  477. package/contracts/interfaces/IAavePool.sol +0 -41
  478. package/contracts/interfaces/IAaveRewardsController.sol +0 -32
  479. package/contracts/interfaces/IBoringOwnableUpgradeable.sol +0 -10
  480. package/contracts/interfaces/IEulerEToken.sol +0 -60
  481. package/contracts/interfaces/IEulerMarkets.sol +0 -46
  482. package/contracts/interfaces/IPGovernanceManager.sol +0 -28
  483. package/contracts/interfaces/IPPermissionsV2Upg.sol +0 -28
  484. package/contracts/interfaces/IREDACTEDStaking.sol +0 -35
  485. package/contracts/interfaces/ISAvax.sol +0 -61
  486. package/contracts/interfaces/ISJoe.sol +0 -57
  487. package/contracts/interfaces/IWAvax.sol +0 -34
  488. package/contracts/interfaces/IWXBTRFLY.sol +0 -39
  489. package/contracts/interfaces/IYearnVault.sol +0 -46
  490. package/contracts/offchain-helpers/MarketMathStatic.sol +0 -572
  491. package/contracts/offchain-helpers/RouterStatic.sol +0 -929
@@ -1,929 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.17;
3
-
4
- import "../interfaces/IPYieldContractFactory.sol";
5
- import "../interfaces/IPMarketFactory.sol";
6
- import "../interfaces/IPVotingEscrowMainchain.sol";
7
- import "../interfaces/IPBulkSellerFactory.sol";
8
- import "../interfaces/IPBulkSeller.sol";
9
-
10
- import "./MarketMathStatic.sol";
11
-
12
- import "../core/libraries/BoringOwnableUpgradeable.sol";
13
- import "../LiquidityMining/libraries/VeBalanceLib.sol";
14
-
15
- import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
16
- import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
17
- import "@openzeppelin/contracts/proxy/Proxy.sol";
18
-
19
- /// EXCLUDED FROM ALL AUDITS, TO BE CALLED ONLY BY PENDLE's SDK
20
- contract RouterStatic is Initializable, Proxy, BoringOwnableUpgradeable, UUPSUpgradeable {
21
- using Math for uint256;
22
- using VeBalanceLib for VeBalance;
23
- using VeBalanceLib for LockedPosition;
24
- using BulkSellerMathCore for BulkSellerState;
25
-
26
- uint128 public constant MAX_LOCK_TIME = 104 weeks;
27
- uint128 public constant MIN_LOCK_TIME = 1 weeks;
28
-
29
- struct TokenAmount {
30
- address token;
31
- uint256 amount;
32
- }
33
-
34
- struct AssetAmount {
35
- IStandardizedYield.AssetType assetType;
36
- address assetAddress;
37
- uint256 amount;
38
- }
39
-
40
- struct RewardIndex {
41
- address rewardToken;
42
- uint256 index;
43
- }
44
-
45
- struct UserPYInfo {
46
- address yt;
47
- address pt;
48
- uint256 ytBalance;
49
- uint256 ptBalance;
50
- TokenAmount unclaimedInterest;
51
- TokenAmount[] unclaimedRewards;
52
- }
53
-
54
- struct UserMarketInfo {
55
- address market;
56
- uint256 lpBalance;
57
- TokenAmount ptBalance;
58
- TokenAmount syBalance;
59
- AssetAmount assetBalance;
60
- }
61
-
62
- IPYieldContractFactory internal immutable yieldContractFactory;
63
- IPMarketFactory internal immutable marketFactory;
64
- IPVotingEscrowMainchain internal immutable vePENDLE;
65
- IPBulkSellerFactory internal immutable bulkFactory;
66
- address internal immutable marketMathStaticLib;
67
-
68
- constructor(
69
- IPYieldContractFactory _yieldContractFactory,
70
- IPMarketFactory _marketFactory,
71
- IPVotingEscrowMainchain _vePENDLE,
72
- IPBulkSellerFactory _bulkFactory,
73
- address _marketMathStaticLib
74
- ) initializer {
75
- yieldContractFactory = _yieldContractFactory;
76
- marketFactory = _marketFactory;
77
- vePENDLE = _vePENDLE;
78
- bulkFactory = _bulkFactory;
79
- marketMathStaticLib = _marketMathStaticLib;
80
- }
81
-
82
- // all Market-related functions will go to MarketMathStaticLib
83
- function _implementation() internal view override returns (address) {
84
- return marketMathStaticLib;
85
- }
86
-
87
- function initialize() external initializer {
88
- __BoringOwnable_init();
89
- }
90
-
91
- function _authorizeUpgrade(address newImplementation) internal override onlyOwner {}
92
-
93
- // ============= SYSTEM INFO =============
94
-
95
- function getPYInfo(address py)
96
- external
97
- returns (
98
- uint256 exchangeRate,
99
- uint256 totalSupply,
100
- RewardIndex[] memory rewardIndexes
101
- )
102
- {
103
- (, address yt) = getPY(py);
104
- IPYieldToken YT = IPYieldToken(yt);
105
- exchangeRate = YT.pyIndexCurrent();
106
- totalSupply = YT.totalSupply();
107
- address[] memory rewardTokens = YT.getRewardTokens();
108
- rewardIndexes = new RewardIndex[](rewardTokens.length);
109
-
110
- uint256[] memory indexes = YT.rewardIndexesCurrent();
111
- for (uint256 i = 0; i < rewardTokens.length; ++i) {
112
- address rewardToken = rewardTokens[i];
113
- rewardIndexes[i].rewardToken = rewardToken;
114
- rewardIndexes[i].index = indexes[i];
115
- }
116
- }
117
-
118
- function getPendleTokenType(address token)
119
- external
120
- view
121
- returns (
122
- bool isPT,
123
- bool isYT,
124
- bool isMarket
125
- )
126
- {
127
- if (yieldContractFactory.isPT(token)) isPT = true;
128
- else if (yieldContractFactory.isYT(token)) isYT = true;
129
- else if (marketFactory.isValidMarket(token)) isMarket = true;
130
- }
131
-
132
- function getPY(address py) public view returns (address pt, address yt) {
133
- if (yieldContractFactory.isYT(py)) {
134
- pt = IPYieldToken(py).PT();
135
- yt = py;
136
- } else {
137
- pt = py;
138
- yt = IPPrincipalToken(py).YT();
139
- }
140
- }
141
-
142
- function getMarketInfo(address market)
143
- external
144
- returns (
145
- address pt,
146
- address sy,
147
- MarketState memory state,
148
- int256 impliedYield,
149
- uint256 exchangeRate
150
- )
151
- {
152
- IPMarket _market = IPMarket(market);
153
- (IStandardizedYield SY, IPPrincipalToken PT, ) = IPMarket(market).readTokens();
154
-
155
- pt = address(PT);
156
- sy = address(SY);
157
- state = _market.readState(address(this));
158
- impliedYield = getPtImpliedYield(market);
159
- exchangeRate = MarketMathStatic.getTradeExchangeRateExcludeFee(market);
160
- }
161
-
162
- // ============= USER INFO =============
163
-
164
- function getUserPYPositionsByPYs(address user, address[] calldata pys)
165
- external
166
- view
167
- returns (UserPYInfo[] memory userPYPositions)
168
- {
169
- userPYPositions = new UserPYInfo[](pys.length);
170
- for (uint256 i = 0; i < pys.length; ++i) {
171
- userPYPositions[i] = getUserPYInfo(pys[i], user);
172
- }
173
- }
174
-
175
- function getUserMarketPositions(address user, address[] calldata markets)
176
- external
177
- view
178
- returns (UserMarketInfo[] memory userMarketPositions)
179
- {
180
- userMarketPositions = new UserMarketInfo[](markets.length);
181
- for (uint256 i = 0; i < markets.length; ++i) {
182
- userMarketPositions[i] = getUserMarketInfo(markets[i], user);
183
- }
184
- }
185
-
186
- function getUserSYInfo(address sy, address user)
187
- external
188
- view
189
- returns (uint256 balance, TokenAmount[] memory rewards)
190
- {
191
- IStandardizedYield SY = IStandardizedYield(sy);
192
- balance = SY.balanceOf(sy);
193
- address[] memory rewardTokens = SY.getRewardTokens();
194
- rewards = new TokenAmount[](rewardTokens.length);
195
- for (uint256 i = 0; i < rewardTokens.length; ++i) {
196
- address rewardToken = rewardTokens[i];
197
- rewards[i].token = rewardToken;
198
- (, rewards[i].amount) = IRewardManager(sy).userReward(rewardToken, user);
199
- }
200
- }
201
-
202
- function getUserPYInfo(address py, address user)
203
- public
204
- view
205
- returns (UserPYInfo memory userPYInfo)
206
- {
207
- (userPYInfo.pt, userPYInfo.yt) = getPY(py);
208
- IPYieldToken YT = IPYieldToken(userPYInfo.yt);
209
- userPYInfo.ytBalance = YT.balanceOf(user);
210
- userPYInfo.ptBalance = IPPrincipalToken(userPYInfo.pt).balanceOf(user);
211
- userPYInfo.unclaimedInterest.token = YT.SY();
212
- (, userPYInfo.unclaimedInterest.amount) = YT.userInterest(user);
213
- address[] memory rewardTokens = YT.getRewardTokens();
214
- TokenAmount[] memory unclaimedRewards = new TokenAmount[](rewardTokens.length);
215
- uint256 length = 0;
216
- for (uint256 i = 0; i < rewardTokens.length; ++i) {
217
- address rewardToken = rewardTokens[i];
218
- (, uint256 amount) = YT.userReward(rewardToken, user);
219
- if (amount > 0) {
220
- unclaimedRewards[length].token = rewardToken;
221
- unclaimedRewards[length].amount = amount;
222
- ++length;
223
- }
224
- }
225
- userPYInfo.unclaimedRewards = new TokenAmount[](length);
226
- for (uint256 i = 0; i < length; ++i) {
227
- userPYInfo.unclaimedRewards[i] = unclaimedRewards[i];
228
- }
229
- }
230
-
231
- function getUserMarketInfo(address market, address user)
232
- public
233
- view
234
- returns (UserMarketInfo memory userMarketInfo)
235
- {
236
- IPMarket _market = IPMarket(market);
237
- uint256 userLp = _market.balanceOf(user);
238
-
239
- userMarketInfo.market = market;
240
- userMarketInfo.lpBalance = userLp;
241
-
242
- (IStandardizedYield SY, IPPrincipalToken PT, ) = _market.readTokens();
243
- (userMarketInfo.assetBalance.assetType, userMarketInfo.assetBalance.assetAddress, ) = SY
244
- .assetInfo();
245
-
246
- MarketState memory state = _market.readState(address(this));
247
- uint256 totalLp = uint256(state.totalLp);
248
-
249
- if (totalLp == 0) {
250
- return userMarketInfo;
251
- }
252
-
253
- uint256 userPt = (userLp * uint256(state.totalPt)) / totalLp;
254
- uint256 userSy = (userLp * uint256(state.totalSy)) / totalLp;
255
-
256
- userMarketInfo.ptBalance = TokenAmount(address(PT), userPt);
257
- userMarketInfo.syBalance = TokenAmount(address(SY), userSy);
258
- userMarketInfo.assetBalance.amount = (userSy * SY.exchangeRate()) / Math.ONE;
259
- }
260
-
261
- function hasPYPosition(UserPYInfo calldata userPYInfo) public pure returns (bool hasPosition) {
262
- hasPosition = (userPYInfo.ytBalance > 0 ||
263
- userPYInfo.ptBalance > 0 ||
264
- userPYInfo.unclaimedInterest.amount > 0 ||
265
- userPYInfo.unclaimedRewards.length > 0);
266
- }
267
-
268
- // ============= MARKET ACTIONS =============
269
-
270
- function addLiquidityDualSyAndPtStatic(
271
- address market,
272
- uint256 netSyDesired,
273
- uint256 netPtDesired
274
- )
275
- external
276
- view
277
- returns (
278
- uint256 netLpOut,
279
- uint256 netSyUsed,
280
- uint256 netPtUsed
281
- )
282
- {
283
- return MarketMathStatic.addLiquidityDualSyAndPtStatic(market, netSyDesired, netPtDesired);
284
- }
285
-
286
- function addLiquidityDualTokenAndPtStatic(
287
- address market,
288
- address tokenIn,
289
- uint256 netTokenDesired,
290
- address bulk,
291
- uint256 netPtDesired
292
- )
293
- external
294
- view
295
- returns (
296
- uint256 netLpOut,
297
- uint256 netTokenUsed,
298
- uint256 netPtUsed
299
- )
300
- {
301
- uint256 netSyDesired = previewDepositStatic(
302
- getSyMarket(market),
303
- tokenIn,
304
- netTokenDesired,
305
- bulk
306
- );
307
-
308
- uint256 netSyUsed;
309
- (netLpOut, netSyUsed, netPtUsed) = MarketMathStatic.addLiquidityDualSyAndPtStatic(
310
- market,
311
- netSyDesired,
312
- netPtDesired
313
- );
314
-
315
- if (netSyUsed != netSyDesired) revert Errors.RouterNotAllSyUsed(netSyDesired, netSyUsed);
316
-
317
- netTokenUsed = netTokenDesired;
318
- }
319
-
320
- function addLiquiditySinglePtStatic(address market, uint256 netPtIn)
321
- external
322
- returns (
323
- uint256 netLpOut,
324
- uint256 netPtToSwap,
325
- uint256 netSyFee,
326
- uint256 priceImpact,
327
- uint256 exchangeRateAfter
328
- )
329
- {
330
- return MarketMathStatic.addLiquiditySinglePtStatic(market, netPtIn);
331
- }
332
-
333
- function addLiquiditySingleSyStatic(address market, uint256 netSyIn)
334
- public
335
- returns (
336
- uint256 netLpOut,
337
- uint256 netPtFromSwap,
338
- uint256 netSyFee,
339
- uint256 priceImpact,
340
- uint256 exchangeRateAfter
341
- )
342
- {
343
- return MarketMathStatic.addLiquiditySingleSyStatic(market, netSyIn);
344
- }
345
-
346
- function addLiquiditySingleBaseTokenStatic(
347
- address market,
348
- address baseToken,
349
- uint256 netBaseTokenIn,
350
- address bulk
351
- )
352
- external
353
- returns (
354
- uint256 netLpOut,
355
- uint256 netPtFromSwap,
356
- uint256 netSyFee,
357
- uint256 priceImpact,
358
- uint256 exchangeRateAfter
359
- )
360
- {
361
- uint256 netSyIn = previewDepositStatic(
362
- getSyMarket(market),
363
- baseToken,
364
- netBaseTokenIn,
365
- bulk
366
- );
367
-
368
- return MarketMathStatic.addLiquiditySingleSyStatic(market, netSyIn);
369
- }
370
-
371
- function addLiquiditySingleSyKeepYtStatic(address market, uint256 netSyIn)
372
- external
373
- returns (uint256 netLpOut, uint256 netYtOut)
374
- {
375
- return MarketMathStatic.addLiquiditySingleSyKeepYtStatic(market, netSyIn);
376
- }
377
-
378
- function addLiquiditySingleTokenKeepYtStatic(
379
- address market,
380
- address baseToken,
381
- uint256 netBaseTokenIn,
382
- address bulk
383
- ) external returns (uint256 netLpOut, uint256 netYtOut) {
384
- uint256 netSyIn = previewDepositStatic(
385
- getSyMarket(market),
386
- baseToken,
387
- netBaseTokenIn,
388
- bulk
389
- );
390
- return MarketMathStatic.addLiquiditySingleSyKeepYtStatic(market, netSyIn);
391
- }
392
-
393
- function removeLiquidityDualSyAndPtStatic(address market, uint256 netLpToRemove)
394
- external
395
- view
396
- returns (uint256 netSyOut, uint256 netPtOut)
397
- {
398
- return MarketMathStatic.removeLiquidityDualSyAndPtStatic(market, netLpToRemove);
399
- }
400
-
401
- function removeLiquidityDualTokenAndPtStatic(
402
- address market,
403
- uint256 netLpToRemove,
404
- address tokenOut,
405
- address bulk
406
- ) external view returns (uint256 netTokenOut, uint256 netPtOut) {
407
- uint256 netSyOut;
408
-
409
- (netSyOut, netPtOut) = MarketMathStatic.removeLiquidityDualSyAndPtStatic(
410
- market,
411
- netLpToRemove
412
- );
413
-
414
- netTokenOut = previewRedeemStatic(getSyMarket(market), tokenOut, netSyOut, bulk);
415
- }
416
-
417
- function removeLiquiditySinglePtStatic(address market, uint256 netLpToRemove)
418
- external
419
- returns (
420
- uint256 netPtOut,
421
- uint256 netPtFromSwap,
422
- uint256 netSyFee,
423
- uint256 priceImpact,
424
- uint256 exchangeRateAfter
425
- )
426
- {
427
- return MarketMathStatic.removeLiquiditySinglePtStatic(market, netLpToRemove);
428
- }
429
-
430
- function removeLiquiditySingleSyStatic(address market, uint256 netLpToRemove)
431
- public
432
- returns (
433
- uint256 netSyOut,
434
- uint256 netSyFee,
435
- uint256 priceImpact,
436
- uint256 exchangeRateAfter
437
- )
438
- {
439
- return MarketMathStatic.removeLiquiditySingleSyStatic(market, netLpToRemove);
440
- }
441
-
442
- function removeLiquiditySingleBaseTokenStatic(
443
- address market,
444
- uint256 netLpToRemove,
445
- address baseToken,
446
- address bulk
447
- )
448
- external
449
- returns (
450
- uint256 netBaseTokenOut,
451
- uint256 netSyFee,
452
- uint256 priceImpact,
453
- uint256 exchangeRateAfter
454
- )
455
- {
456
- uint256 netSyOut;
457
-
458
- (netSyOut, netSyFee, priceImpact, exchangeRateAfter) = MarketMathStatic
459
- .removeLiquiditySingleSyStatic(market, netLpToRemove);
460
-
461
- netBaseTokenOut = previewRedeemStatic(getSyMarket(market), baseToken, netSyOut, bulk);
462
- }
463
-
464
- function swapExactPtForSyStatic(address market, uint256 exactPtIn)
465
- public
466
- returns (
467
- uint256 netSyOut,
468
- uint256 netSyFee,
469
- uint256 priceImpact,
470
- uint256 exchangeRateAfter
471
- )
472
- {
473
- return MarketMathStatic.swapExactPtForSyStatic(market, exactPtIn);
474
- }
475
-
476
- function swapSyForExactPtStatic(address market, uint256 exactPtOut)
477
- external
478
- returns (
479
- uint256 netSyIn,
480
- uint256 netSyFee,
481
- uint256 priceImpact,
482
- uint256 exchangeRateAfter
483
- )
484
- {
485
- return MarketMathStatic.swapSyForExactPtStatic(market, exactPtOut);
486
- }
487
-
488
- function swapExactSyForPtStatic(address market, uint256 exactSyIn)
489
- public
490
- returns (
491
- uint256 netPtOut,
492
- uint256 netSyFee,
493
- uint256 priceImpact,
494
- uint256 exchangeRateAfter
495
- )
496
- {
497
- return MarketMathStatic.swapExactSyForPtStatic(market, exactSyIn);
498
- }
499
-
500
- function swapPtForExactSyStatic(address market, uint256 exactSyOut)
501
- public
502
- returns (
503
- uint256 netPtIn,
504
- uint256 netSyFee,
505
- uint256 priceImpact,
506
- uint256 exchangeRateAfter
507
- )
508
- {
509
- return MarketMathStatic.swapPtForExactSyStatic(market, exactSyOut);
510
- }
511
-
512
- function swapExactBaseTokenForPtStatic(
513
- address market,
514
- address baseToken,
515
- uint256 amountBaseToken,
516
- address bulk
517
- )
518
- external
519
- returns (
520
- uint256 netPtOut,
521
- uint256 netSyFee,
522
- uint256 priceImpact,
523
- uint256 exchangeRateAfter
524
- )
525
- {
526
- uint256 netSyIn = previewDepositStatic(
527
- getSyMarket(market),
528
- baseToken,
529
- amountBaseToken,
530
- bulk
531
- );
532
- return MarketMathStatic.swapExactSyForPtStatic(market, netSyIn);
533
- }
534
-
535
- function swapExactPtForBaseTokenStatic(
536
- address market,
537
- uint256 exactPtIn,
538
- address baseToken,
539
- address bulk
540
- )
541
- external
542
- returns (
543
- uint256 netBaseTokenOut,
544
- uint256 netSyFee,
545
- uint256 priceImpact,
546
- uint256 exchangeRateAfter
547
- )
548
- {
549
- uint256 netSyOut;
550
- (netSyOut, netSyFee, priceImpact, exchangeRateAfter) = MarketMathStatic
551
- .swapExactPtForSyStatic(market, exactPtIn);
552
-
553
- netBaseTokenOut = previewRedeemStatic(getSyMarket(market), baseToken, netSyOut, bulk);
554
- }
555
-
556
- function swapSyForExactYtStatic(address market, uint256 exactYtOut)
557
- external
558
- returns (
559
- uint256 netSyIn,
560
- uint256 netSyFee,
561
- uint256 priceImpact,
562
- uint256 exchangeRateAfter
563
- )
564
- {
565
- return MarketMathStatic.swapSyForExactYtStatic(market, exactYtOut);
566
- }
567
-
568
- function swapExactSyForYtStatic(address market, uint256 exactSyIn)
569
- public
570
- returns (
571
- uint256 netYtOut,
572
- uint256 netSyFee,
573
- uint256 priceImpact,
574
- uint256 exchangeRateAfter
575
- )
576
- {
577
- return MarketMathStatic.swapExactSyForYtStatic(market, exactSyIn);
578
- }
579
-
580
- function swapExactYtForSyStatic(address market, uint256 exactYtIn)
581
- public
582
- returns (
583
- uint256 netSyOut,
584
- uint256 netSyFee,
585
- uint256 priceImpact,
586
- uint256 exchangeRateAfter
587
- )
588
- {
589
- return MarketMathStatic.swapExactYtForSyStatic(market, exactYtIn);
590
- }
591
-
592
- function swapYtForExactSyStatic(address market, uint256 exactSyOut)
593
- external
594
- returns (
595
- uint256 netYtIn,
596
- uint256 netSyFee,
597
- uint256 priceImpact,
598
- uint256 exchangeRateAfter
599
- )
600
- {
601
- return MarketMathStatic.swapYtForExactSyStatic(market, exactSyOut);
602
- }
603
-
604
- function swapExactYtForBaseTokenStatic(
605
- address market,
606
- uint256 exactYtIn,
607
- address baseToken,
608
- address bulk
609
- )
610
- external
611
- returns (
612
- uint256 netBaseTokenOut,
613
- uint256 netSyFee,
614
- uint256 priceImpact,
615
- uint256 exchangeRateAfter
616
- )
617
- {
618
- uint256 netSyOut;
619
- (netSyOut, netSyFee, priceImpact, exchangeRateAfter) = MarketMathStatic
620
- .swapExactYtForSyStatic(market, exactYtIn);
621
-
622
- netBaseTokenOut = previewRedeemStatic(getSyMarket(market), baseToken, netSyOut, bulk);
623
- }
624
-
625
- function swapExactBaseTokenForYtStatic(
626
- address market,
627
- address baseToken,
628
- uint256 amountBaseToken,
629
- address bulk
630
- )
631
- external
632
- returns (
633
- uint256 netYtOut,
634
- uint256 netSyFee,
635
- uint256 priceImpact,
636
- uint256 exchangeRateAfter
637
- )
638
- {
639
- uint256 netSyIn = previewDepositStatic(
640
- getSyMarket(market),
641
- baseToken,
642
- amountBaseToken,
643
- bulk
644
- );
645
-
646
- return MarketMathStatic.swapExactSyForYtStatic(market, netSyIn);
647
- }
648
-
649
- function swapExactPtForYtStatic(address market, uint256 exactPtIn)
650
- external
651
- returns (
652
- uint256 netYtOut,
653
- uint256 totalPtToSwap,
654
- uint256 netSyFee,
655
- uint256 priceImpact,
656
- uint256 exchangeRateAfter
657
- )
658
- {
659
- return MarketMathStatic.swapExactPtForYt(market, exactPtIn);
660
- }
661
-
662
- function swapExactYtForPtStatic(address market, uint256 exactYtIn)
663
- external
664
- returns (
665
- uint256 netPtOut,
666
- uint256 totalPtSwapped,
667
- uint256 netSyFee,
668
- uint256 priceImpact,
669
- uint256 exchangeRateAfter
670
- )
671
- {
672
- return MarketMathStatic.swapExactYtForPt(market, exactYtIn);
673
- }
674
-
675
- // ============= vePENDLE =============
676
-
677
- function increaseLockPositionStatic(
678
- address user,
679
- uint128 additionalAmountToLock,
680
- uint128 newExpiry
681
- ) external view returns (uint128 newVeBalance) {
682
- if (!WeekMath.isValidWTime(newExpiry)) revert Errors.InvalidWTime(newExpiry);
683
- if (MiniHelpers.isTimeInThePast(newExpiry)) revert Errors.ExpiryInThePast(newExpiry);
684
-
685
- if (newExpiry > block.timestamp + MAX_LOCK_TIME) revert Errors.VEExceededMaxLockTime();
686
- if (newExpiry < block.timestamp + MIN_LOCK_TIME) revert Errors.VEInsufficientLockTime();
687
-
688
- LockedPosition memory oldPosition;
689
-
690
- {
691
- (uint128 amount, uint128 expiry) = vePENDLE.positionData(user);
692
- oldPosition = LockedPosition(amount, expiry);
693
- }
694
-
695
- if (newExpiry < oldPosition.expiry) revert Errors.VENotAllowedReduceExpiry();
696
-
697
- uint128 newTotalAmountLocked = additionalAmountToLock + oldPosition.amount;
698
- if (newTotalAmountLocked == 0) revert Errors.VEZeroAmountLocked();
699
-
700
- uint128 additionalDurationToLock = newExpiry - oldPosition.expiry;
701
-
702
- LockedPosition memory newPosition = LockedPosition(
703
- oldPosition.amount + additionalAmountToLock,
704
- oldPosition.expiry + additionalDurationToLock
705
- );
706
-
707
- VeBalance memory newBalance = newPosition.convertToVeBalance();
708
- return newBalance.getCurrentValue();
709
- }
710
-
711
- // ============= OTHER HELPERS =============
712
-
713
- function mintPYFromSyStatic(address YT, uint256 amountSyToMint)
714
- public
715
- returns (uint256 amountPY)
716
- {
717
- IPYieldToken _YT = IPYieldToken(YT);
718
- if (_YT.isExpired()) revert Errors.YCExpired();
719
- return amountSyToMint.mulDown(_YT.pyIndexCurrent());
720
- }
721
-
722
- function redeemPYToSyStatic(address YT, uint256 amountPYToRedeem)
723
- public
724
- returns (uint256 amountPY)
725
- {
726
- IPYieldToken _YT = IPYieldToken(YT);
727
- return amountPYToRedeem.divDown(_YT.pyIndexCurrent());
728
- }
729
-
730
- function mintPYFromBaseStatic(
731
- address YT,
732
- address baseToken,
733
- uint256 amountBaseToken,
734
- address bulk
735
- ) external returns (uint256 amountPY) {
736
- IStandardizedYield SY = IStandardizedYield(IPYieldToken(YT).SY());
737
- uint256 amountSy = previewDepositStatic(SY, baseToken, amountBaseToken, bulk);
738
- return mintPYFromSyStatic(YT, amountSy);
739
- }
740
-
741
- function redeemPYToBaseStatic(
742
- address YT,
743
- uint256 amountPYToRedeem,
744
- address baseToken,
745
- address bulk
746
- ) external returns (uint256 amountBaseToken) {
747
- IStandardizedYield SY = IStandardizedYield(IPYieldToken(YT).SY());
748
- uint256 amountSy = redeemPYToSyStatic(YT, amountPYToRedeem);
749
- return previewRedeemStatic(SY, baseToken, amountSy, bulk);
750
- }
751
-
752
- function previewDepositStatic(
753
- IStandardizedYield SY,
754
- address baseToken,
755
- uint256 amountToken,
756
- address bulk
757
- ) public view returns (uint256 amountSy) {
758
- if (bulk != address(0)) {
759
- BulkSellerState memory state = IPBulkSeller(bulk).readState();
760
- return state.calcSwapExactTokenForSy(amountToken);
761
- } else {
762
- return SY.previewDeposit(baseToken, amountToken);
763
- }
764
- }
765
-
766
- function previewRedeemStatic(
767
- IStandardizedYield SY,
768
- address baseToken,
769
- uint256 amountSy,
770
- address bulk
771
- ) public view returns (uint256 amountBaseToken) {
772
- if (bulk != address(0)) {
773
- BulkSellerState memory state = IPBulkSeller(bulk).readState();
774
- return state.calcSwapExactSyForToken(amountSy);
775
- } else {
776
- return SY.previewRedeem(baseToken, amountSy);
777
- }
778
- }
779
-
780
- function getPtImpliedYield(address market) public view returns (int256) {
781
- return MarketMathStatic.getPtImpliedYield(market);
782
- }
783
-
784
- function pyIndex(address market) public returns (PYIndex index) {
785
- return MarketMathStatic.pyIndex(market);
786
- }
787
-
788
- function getExchangeRate(address market) public returns (uint256) {
789
- return getTradeExchangeRateIncludeFee(market, 0);
790
- }
791
-
792
- function getTradeExchangeRateIncludeFee(address market, int256 netPtOut)
793
- public
794
- returns (uint256)
795
- {
796
- return MarketMathStatic.getTradeExchangeRateIncludeFee(market, netPtOut);
797
- }
798
-
799
- function calcPriceImpact(address market, int256 netPtOut)
800
- public
801
- returns (uint256 priceImpact)
802
- {
803
- return MarketMathStatic.calcPriceImpactPt(market, netPtOut);
804
- }
805
-
806
- // either but not both pyToken or market must be != 0
807
- function getTokensInOut(address pyToken, address market)
808
- public
809
- view
810
- returns (address[] memory tokensIn, address[] memory tokensOut)
811
- {
812
- if (pyToken != address(0)) {
813
- // SY interface is shared between pt & yt
814
- IStandardizedYield SY = IStandardizedYield(IPPrincipalToken(pyToken).SY());
815
- return (SY.getTokensIn(), SY.getTokensOut());
816
- } else {
817
- (IStandardizedYield SY, , ) = IPMarket(market).readTokens();
818
- return (SY.getTokensIn(), SY.getTokensOut());
819
- }
820
- }
821
-
822
- function getAmountTokenToMintSy(
823
- IStandardizedYield SY,
824
- address tokenIn,
825
- address bulk,
826
- uint256 netSyOut
827
- ) public view returns (uint256 netTokenIn) {
828
- uint256 pivotAmount = 10**IERC20Metadata(tokenIn).decimals();
829
-
830
- uint256 low = pivotAmount;
831
- {
832
- while (true) {
833
- uint256 lowSyOut = previewDepositStatic(SY, tokenIn, low, bulk);
834
- if (lowSyOut >= netSyOut) low /= 10;
835
- else break;
836
- }
837
- }
838
-
839
- uint256 high = pivotAmount;
840
- {
841
- while (true) {
842
- uint256 highSyOut = previewDepositStatic(SY, tokenIn, high, bulk);
843
- if (highSyOut < netSyOut) high *= 10;
844
- else break;
845
- }
846
- }
847
-
848
- while (low <= high) {
849
- uint256 mid = (low + high) / 2;
850
- uint256 syOut = previewDepositStatic(SY, tokenIn, mid, bulk);
851
-
852
- if (syOut >= netSyOut) {
853
- netTokenIn = mid;
854
- high = mid - 1;
855
- } else {
856
- low = mid + 1;
857
- }
858
- }
859
-
860
- assert(netTokenIn > 0);
861
- }
862
-
863
- function getSyMarket(address market) public view returns (IStandardizedYield) {
864
- (IStandardizedYield SY, , ) = IPMarket(market).readTokens();
865
- return SY;
866
- }
867
-
868
- function getBulkSellerInfo(address token, address SY)
869
- external
870
- view
871
- returns (
872
- address bulk,
873
- uint256 totalToken,
874
- uint256 totalSy
875
- )
876
- {
877
- if (address(bulkFactory) != address(0)) {
878
- bulk = IPBulkSellerFactory(bulkFactory).get(token, SY);
879
- if (bulk != address(0)) {
880
- BulkSellerState memory state = IPBulkSeller(bulk).readState();
881
- if (state.rateTokenToSy != 0 || state.rateSyToToken != 0) {
882
- totalToken = state.totalToken;
883
- totalSy = state.totalSy;
884
- }
885
- }
886
- }
887
- }
888
-
889
- function getBulkSellerInfo(
890
- address token,
891
- address SY,
892
- uint256 netTokenIn,
893
- uint256 netSyIn
894
- )
895
- external
896
- view
897
- returns (
898
- address bulk,
899
- uint256 totalToken,
900
- uint256 totalSy
901
- )
902
- {
903
- if (address(bulkFactory) != address(0)) {
904
- bulk = IPBulkSellerFactory(bulkFactory).get(token, SY);
905
- if (bulk != address(0)) {
906
- BulkSellerState memory state = IPBulkSeller(bulk).readState();
907
-
908
- // Paused check
909
- if (state.rateTokenToSy == 0 || state.rateSyToToken == 0) {
910
- return (address(0), 0, 0);
911
- }
912
-
913
- // Liquidity check
914
- uint256 postFeeRateTokenToSy = state.rateTokenToSy.mulDown(Math.ONE - state.feeRate);
915
- uint256 postFeeRateSyToToken = state.rateSyToToken.mulDown(Math.ONE - state.feeRate);
916
- if (
917
- netTokenIn.mulDown(postFeeRateTokenToSy) > state.totalSy ||
918
- netSyIn.mulDown(postFeeRateSyToToken) > state.totalToken
919
- ) {
920
- return (address(0), 0, 0);
921
- }
922
-
923
- // return...
924
- totalToken = state.totalToken;
925
- totalSy = state.totalSy;
926
- }
927
- }
928
- }
929
- }