@pendle/core-v2 2.30.1 → 3.0.0-alpha-1

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 (618) 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/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +1 -1
  8. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  9. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.json +13 -0
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +20 -2
  13. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  14. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +20 -2
  15. package/build/artifacts/contracts/LiquidityMining/PendleMerkleDistributor.sol/PendleMerkleDistributor.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  17. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +2 -2
  18. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.dbg.json +1 -1
  19. package/build/artifacts/contracts/LiquidityMining/VeDistributor/PendleFeeDistributorV2.sol/PendleFeeDistributorV2.json +2 -2
  20. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  21. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +2 -2
  22. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  23. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  24. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +2 -2
  25. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  26. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +2 -2
  27. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  28. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  29. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  30. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  31. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  32. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  33. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  34. package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
  35. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +1 -1
  36. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +2 -2
  37. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +2 -2
  39. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +1 -1
  40. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +2 -2
  41. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  42. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  43. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  45. package/build/artifacts/contracts/core/Market/PendleExternalRewardDistributor.sol/PendleExternalRewardDistributor.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/Market/PendleExternalRewardDistributor.sol/PendleExternalRewardDistributor.json +2 -2
  47. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  50. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  52. package/build/artifacts/contracts/core/Market/v2/PendleGaugeV2.sol/PendleGaugeV2.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/Market/v2/PendleMarketFactoryV2.sol/PendleMarketFactoryV2.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/Market/v2/PendleMarketFactoryV2.sol/PendleMarketFactoryV2.json +2 -2
  55. package/build/artifacts/contracts/core/Market/v2/PendleMarketV2.sol/PendleMarketV2.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/Market/v2/PendleMarketV2.sol/PendleMarketV2.json +2 -2
  57. package/build/artifacts/contracts/core/Market/v3/PendleMarketFactoryV3.sol/PendleMarketFactoryV3.dbg.json +4 -0
  58. package/build/artifacts/contracts/core/Market/v3/PendleMarketFactoryV3.sol/PendleMarketFactoryV3.json +610 -0
  59. package/build/artifacts/contracts/core/Market/v3/PendleMarketV3.sol/PendleMarketV3.dbg.json +4 -0
  60. package/build/artifacts/contracts/core/Market/v3/PendleMarketV3.sol/PendleMarketV3.json +1271 -0
  61. package/build/artifacts/contracts/core/RewardManager/PendleLinearDistributor.sol/PendleLinearDistributor.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  63. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  64. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  65. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
  66. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  67. package/build/artifacts/contracts/core/StandardizedYield/SYBaseUpg.sol/SYBaseUpg.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  69. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewardsUpg.sol/SYBaseWithRewardsUpg.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.dbg.json +1 -1
  71. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +1 -1
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ankr/PendleAnkrBNBSY.sol/PendleAnkrBNBSY.dbg.json +1 -1
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ankr/PendleAnkrBNBSY.sol/PendleAnkrBNBSY.json +2 -2
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/AuraEthxBbAWethSY.sol/AuraEthxBbAWethSY.dbg.json +1 -1
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/AuraEthxBbAWethSY.sol/AuraEthxBbAWethSY.json +2 -2
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/AuraSwEthBbAWethSYV2.sol/AuraSwEthBbAWethSYV2.dbg.json +1 -1
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/AuraSwEthBbAWethSYV2.sol/AuraSwEthBbAWethSYV2.json +2 -2
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/AuraWethVethSYUpg.sol/AuraWethVethSYUpg.dbg.json +1 -1
  81. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/AuraWethVethSYUpg.sol/AuraWethVethSYUpg.json +2 -2
  82. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.dbg.json +1 -1
  83. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.json +2 -2
  84. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.dbg.json +1 -1
  85. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.json +2 -2
  86. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.dbg.json +1 -1
  87. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.json +2 -2
  88. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.dbg.json +1 -1
  89. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.json +2 -2
  90. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.dbg.json +1 -1
  91. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.json +2 -2
  92. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWstethAnkreth.sol/PendleAuraWstethAnkreth.dbg.json +1 -1
  93. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWstethAnkreth.sol/PendleAuraWstethAnkreth.json +2 -2
  94. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.dbg.json +1 -1
  95. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.dbg.json +1 -1
  96. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreviewProxy.sol/ComposableStablePreviewProxy.dbg.json +1 -1
  97. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreviewV4.sol/ComposableStablePreviewV4.dbg.json +1 -1
  98. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreviewV5.sol/ComposableStablePreviewV5.dbg.json +1 -1
  99. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.dbg.json +1 -1
  100. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAPoolHelper.dbg.json +1 -1
  101. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAWethHelper.dbg.json +1 -1
  102. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol/LinearMath.dbg.json +1 -1
  103. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol/LinearPreview.dbg.json +1 -1
  104. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +1 -1
  105. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +1 -1
  106. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.dbg.json +1 -1
  107. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV3Upg.sol/PendleAuraBalancerStableLPSYV3Upg.dbg.json +1 -1
  108. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +1 -1
  109. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +1 -1
  110. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  111. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  112. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  113. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  114. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotRewardHelper.sol/CamelotRewardHelper.dbg.json +1 -1
  115. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileCommon.sol/CamelotV1VolatileCommon.dbg.json +1 -1
  116. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileLpHelper.sol/CamelotV1VolatileLpHelper.dbg.json +1 -1
  117. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatilePreview.sol/CamelotV1VolatilePreview.dbg.json +1 -1
  118. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.dbg.json +1 -1
  119. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.json +2 -2
  120. package/build/artifacts/contracts/core/StandardizedYield/implementations/ChainlinkRelayer/PendleChainlinkReceiver.sol/PendleChainlinkReceiver.dbg.json +1 -1
  121. package/build/artifacts/contracts/core/StandardizedYield/implementations/ChainlinkRelayer/PendleChainlinkReceiver.sol/PendleChainlinkReceiver.json +2 -2
  122. package/build/artifacts/contracts/core/StandardizedYield/implementations/ChainlinkRelayer/PendleChainlinkRelayer.sol/PendleChainlinkRelayer.dbg.json +1 -1
  123. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  124. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  125. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  126. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  127. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
  128. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
  129. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
  130. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +1 -1
  131. package/build/artifacts/contracts/core/StandardizedYield/implementations/Flux/FluxTokenLib.sol/FluxTokenLib.dbg.json +1 -1
  132. package/build/artifacts/contracts/core/StandardizedYield/implementations/Flux/FluxTokenLib.sol/FluxTokenLib.json +2 -2
  133. package/build/artifacts/contracts/core/StandardizedYield/implementations/Flux/PendleFluxLendingSY.sol/PendleFluxLendingSY.dbg.json +1 -1
  134. package/build/artifacts/contracts/core/StandardizedYield/implementations/Flux/PendleFluxLendingSY.sol/PendleFluxLendingSY.json +2 -2
  135. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GLPPreviewHelper.sol/GLPPreviewHelper.dbg.json +1 -1
  136. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GMTokenPricingHelper.sol/GMTokenPricingHelper.dbg.json +1 -1
  137. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GMTokenPricingHelper.sol/IGMXV2DataStore.dbg.json +1 -1
  138. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GMTokenPricingHelper.sol/IGMXV2Oracle.dbg.json +1 -1
  139. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/GMTokenPricingHelper.sol/IGMXV2Reader.dbg.json +1 -1
  140. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGMV2TokenSY.sol/PendleGMV2TokenSY.dbg.json +1 -1
  141. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGMV2TokenSY.sol/PendleGMV2TokenSY.json +2 -2
  142. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  143. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
  144. package/build/artifacts/contracts/core/StandardizedYield/implementations/HMX/HLPPricingHelper.sol/HLPPricingHelper.dbg.json +1 -1
  145. package/build/artifacts/contracts/core/StandardizedYield/implementations/HMX/PendleHlpSY.sol/PendleHlpSY.dbg.json +1 -1
  146. package/build/artifacts/contracts/core/StandardizedYield/implementations/HMX/PendleHlpSY.sol/PendleHlpSY.json +2 -2
  147. package/build/artifacts/contracts/core/StandardizedYield/implementations/Kyber/KyberMathHelper.sol/KyberMathHelper.dbg.json +1 -1
  148. package/build/artifacts/contracts/core/StandardizedYield/implementations/Kyber/KyberNftManagerBaseUpg.sol/KyberNftManagerBaseUpg.dbg.json +1 -1
  149. package/build/artifacts/contracts/core/StandardizedYield/implementations/Kyber/PendleKyberElasticSYUpg.sol/PendleKyberElasticSYUpg.dbg.json +1 -1
  150. package/build/artifacts/contracts/core/StandardizedYield/implementations/Kyber/PendleKyberElasticSYUpg.sol/PendleKyberElasticSYUpg.json +2 -2
  151. package/build/artifacts/contracts/core/StandardizedYield/implementations/Kyber/libraries/FullMath.sol/FullMath.dbg.json +1 -1
  152. package/build/artifacts/contracts/core/StandardizedYield/implementations/Kyber/libraries/LiqDeltaMath.sol/LiqDeltaMath.dbg.json +1 -1
  153. package/build/artifacts/contracts/core/StandardizedYield/implementations/Kyber/libraries/LiquidityMath.sol/LiquidityMath.dbg.json +1 -1
  154. package/build/artifacts/contracts/core/StandardizedYield/implementations/Kyber/libraries/MathConstants.sol/MathConstants.dbg.json +1 -1
  155. package/build/artifacts/contracts/core/StandardizedYield/implementations/Kyber/libraries/QtyDeltaMath.sol/QtyDeltaMath.dbg.json +1 -1
  156. package/build/artifacts/contracts/core/StandardizedYield/implementations/Kyber/libraries/QuadMath.sol/QuadMath.dbg.json +1 -1
  157. package/build/artifacts/contracts/core/StandardizedYield/implementations/Kyber/libraries/ReinvestmentMath.sol/ReinvestmentMath.dbg.json +1 -1
  158. package/build/artifacts/contracts/core/StandardizedYield/implementations/Kyber/libraries/SafeCast.sol/SafeCast.dbg.json +1 -1
  159. package/build/artifacts/contracts/core/StandardizedYield/implementations/Kyber/libraries/SwapMath.sol/SwapMath.dbg.json +1 -1
  160. package/build/artifacts/contracts/core/StandardizedYield/implementations/Kyber/libraries/TickMath.sol/TickMath.dbg.json +1 -1
  161. package/build/artifacts/contracts/core/StandardizedYield/implementations/MUX/MlpPricingHelper.sol/MlpPricingHelper.dbg.json +1 -1
  162. package/build/artifacts/contracts/core/StandardizedYield/implementations/MUX/PendleMlpSY.sol/PendleMlpSY.dbg.json +1 -1
  163. package/build/artifacts/contracts/core/StandardizedYield/implementations/MUX/PendleMlpSY.sol/PendleMlpSY.json +2 -2
  164. package/build/artifacts/contracts/core/StandardizedYield/implementations/MantleStakedEth/PendleMantleStakedEthSY.sol/PendleMantleStakedEthSY.dbg.json +1 -1
  165. package/build/artifacts/contracts/core/StandardizedYield/implementations/MantleStakedEth/PendleMantleStakedEthSY.sol/PendleMantleStakedEthSY.json +2 -2
  166. package/build/artifacts/contracts/core/StandardizedYield/implementations/MantleStakedEth/PendleOracleForSyProxy.sol/PendleOracleForSyProxy.dbg.json +1 -1
  167. package/build/artifacts/contracts/core/StandardizedYield/implementations/MantleStakedEth/PendleOracleForSyProxy.sol/PendleOracleForSyProxy.json +2 -2
  168. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleArbitrumStakedEthSY.sol/PendleArbitrumStakedEthSY.dbg.json +1 -1
  169. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleArbitrumStakedEthSY.sol/PendleArbitrumStakedEthSY.json +2 -2
  170. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleBridgedLSDSY.sol/PendleBridgedLSDSY.dbg.json +1 -1
  171. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleBridgedLSDSY.sol/PendleBridgedLSDSY.json +2 -2
  172. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626SY.sol/PendleERC4626SY.dbg.json +1 -1
  173. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626SY.sol/PendleERC4626SY.json +2 -2
  174. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleEUSDSY.sol/PendleEUSDSY.dbg.json +1 -1
  175. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleEUSDSY.sol/PendleEUSDSY.json +2 -2
  176. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  177. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +2 -2
  178. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  179. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  180. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
  181. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.json +2 -2
  182. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.dbg.json +1 -1
  183. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.json +2 -2
  184. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWbEthSY.sol/PendleWbEthSY.dbg.json +1 -1
  185. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWbEthSY.sol/PendleWbEthSY.json +2 -2
  186. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  187. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  188. package/build/artifacts/contracts/core/StandardizedYield/implementations/Silo/PendleSiloWithIncentiveSY.sol/PendleSiloWithIncentiveSY.dbg.json +1 -1
  189. package/build/artifacts/contracts/core/StandardizedYield/implementations/Silo/PendleSiloWithIncentiveSY.sol/PendleSiloWithIncentiveSY.json +2 -2
  190. package/build/artifacts/contracts/core/StandardizedYield/implementations/Stader/PendleETHXSY.sol/PendleETHXSY.dbg.json +1 -1
  191. package/build/artifacts/contracts/core/StandardizedYield/implementations/Stader/PendleETHXSY.sol/PendleETHXSY.json +2 -2
  192. package/build/artifacts/contracts/core/StandardizedYield/implementations/Swell/PendleSwETH.sol/SwETHSY.dbg.json +1 -1
  193. package/build/artifacts/contracts/core/StandardizedYield/implementations/Swell/PendleSwETH.sol/SwETHSY.json +2 -2
  194. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/PendleThenaSY.sol/PendleThenaSY.dbg.json +1 -1
  195. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/PendleThenaSY.sol/PendleThenaSY.json +2 -2
  196. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/ThenaLpHelper.sol/ThenaLpHelper.dbg.json +1 -1
  197. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/ThenaMath.sol/ThenaMath.dbg.json +1 -1
  198. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/ThenaPreview.sol/IThenaSY.dbg.json +1 -1
  199. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/ThenaPreview.sol/ThenaPreview.dbg.json +1 -1
  200. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  201. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.json +13 -0
  202. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  203. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  204. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  205. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  206. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  207. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +34 -21
  208. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +1 -1
  209. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
  210. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +2 -2
  211. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  212. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +2 -2
  213. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  214. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +2 -2
  215. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  216. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  217. package/build/artifacts/contracts/core/erc20/PendleERC20PermitUpg.sol/PendleERC20PermitUpg.dbg.json +1 -1
  218. package/build/artifacts/contracts/core/erc20/PendleERC20Upg.sol/PendleERC20Upg.dbg.json +1 -1
  219. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  220. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  221. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  222. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  223. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  224. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  225. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +29 -2
  226. package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  227. package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  228. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
  229. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  230. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  231. package/build/artifacts/contracts/core/libraries/math/PMath.sol/PMath.dbg.json +1 -1
  232. package/build/artifacts/contracts/interfaces/Ankr/IAnkrBNB.sol/IAnkrBNB.dbg.json +1 -1
  233. package/build/artifacts/contracts/interfaces/Ankr/IAnkrLiquidStaking.sol/IAnkrLiquidStaking.dbg.json +1 -1
  234. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.dbg.json +1 -1
  235. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.dbg.json +1 -1
  236. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
  237. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.dbg.json +1 -1
  238. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +1 -1
  239. package/build/artifacts/contracts/interfaces/Balancer/IERC4626LinearPool.sol/IERC4626LinearPool.dbg.json +1 -1
  240. package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.dbg.json +1 -1
  241. package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.dbg.json +1 -1
  242. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +1 -1
  243. package/build/artifacts/contracts/interfaces/Balancer/IPComposableStablePreview.sol/IPComposableStablePreview.dbg.json +1 -1
  244. package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.dbg.json +1 -1
  245. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
  246. package/build/artifacts/contracts/interfaces/Balancer/IVersion.sol/IVersion.dbg.json +1 -1
  247. package/build/artifacts/contracts/interfaces/BinanceEth/IWBETH.sol/IWBETH.dbg.json +1 -1
  248. package/build/artifacts/contracts/interfaces/Camelot/ICamelotFactory.sol/ICamelotFactory.dbg.json +1 -1
  249. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTFactory.sol/ICamelotNFTFactory.dbg.json +1 -1
  250. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTHandler.sol/ICamelotNFTHandler.dbg.json +1 -1
  251. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTPool.sol/ICamelotNFTPool.dbg.json +1 -1
  252. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPool.sol/ICamelotNitroPool.dbg.json +1 -1
  253. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPoolFactory.sol/ICamelotNitroPoolFactory.dbg.json +1 -1
  254. package/build/artifacts/contracts/interfaces/Camelot/ICamelotPair.sol/ICamelotPair.dbg.json +1 -1
  255. package/build/artifacts/contracts/interfaces/Camelot/ICamelotRouter.sol/ICamelotRouter.dbg.json +1 -1
  256. package/build/artifacts/contracts/interfaces/Camelot/ICamelotYieldBooster.sol/ICamelotYieldBooster.dbg.json +1 -1
  257. package/build/artifacts/contracts/interfaces/Camelot/IXGrail.sol/IXGrail.dbg.json +1 -1
  258. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
  259. package/build/artifacts/contracts/interfaces/ConvexCurve/ICrvDepositor.sol/ICrvDepositor.dbg.json +1 -1
  260. package/build/artifacts/contracts/interfaces/ConvexCurve/ICvxCrv.sol/ICvxCrv.dbg.json +1 -1
  261. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  262. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  263. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +1 -1
  264. package/build/artifacts/contracts/interfaces/Flux/IFluxErc20.sol/IFluxErc20.dbg.json +1 -1
  265. package/build/artifacts/contracts/interfaces/Flux/IFluxInterestRateModel.sol/IFluxInterestRateModel.dbg.json +1 -1
  266. package/build/artifacts/contracts/interfaces/Frax/IFrxEthMinter.sol/IFrxEthMinter.dbg.json +1 -1
  267. package/build/artifacts/contracts/interfaces/GMX/IGMXPriceHelper.sol/IGMXPriceHelper.dbg.json +1 -1
  268. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +1 -1
  269. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.dbg.json +1 -1
  270. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +1 -1
  271. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.dbg.json +1 -1
  272. package/build/artifacts/contracts/interfaces/HMX/IHLPStaking.sol/IHLPStaking.dbg.json +1 -1
  273. package/build/artifacts/contracts/interfaces/HMX/IHMXCalculator.sol/IHMXCalculator.dbg.json +1 -1
  274. package/build/artifacts/contracts/interfaces/HMX/IHMXCompounder.sol/IHMXCompounder.dbg.json +1 -1
  275. package/build/artifacts/contracts/interfaces/HMX/IHMXStaking.sol/IHMXStaking.dbg.json +1 -1
  276. package/build/artifacts/contracts/interfaces/HMX/IHMXVester.sol/IHMXVester.dbg.json +1 -1
  277. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +1 -1
  278. package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
  279. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  280. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  281. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.dbg.json +1 -1
  282. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +1 -1
  283. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  284. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
  285. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
  286. package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.dbg.json +1 -1
  287. package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.dbg.json +1 -1
  288. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  289. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
  290. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  291. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  292. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  293. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
  294. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  295. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  296. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  297. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  298. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +1 -1
  299. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  300. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +1 -1
  301. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +1 -1
  302. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +1 -1
  303. package/build/artifacts/contracts/interfaces/IPExternalRewardDistributor.sol/IPExternalRewardDistributor.dbg.json +1 -1
  304. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  305. package/build/artifacts/contracts/interfaces/IPFeeDistributorV2.sol/IPFeeDistributorV2.dbg.json +1 -1
  306. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  307. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  308. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  309. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  310. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.json +13 -0
  311. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +1 -1
  312. package/build/artifacts/contracts/interfaces/IPLinearDistributor.sol/IPLinearDistributor.dbg.json +1 -1
  313. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  314. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  315. package/build/artifacts/contracts/interfaces/IPMarketFactoryV2.sol/IPMarketFactoryV2.dbg.json +1 -1
  316. package/build/artifacts/contracts/interfaces/IPMarketFactoryV3.sol/IPMarketFactoryV3.dbg.json +4 -0
  317. package/build/artifacts/contracts/interfaces/IPMarketFactoryV3.sol/IPMarketFactoryV3.json +145 -0
  318. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  319. package/build/artifacts/contracts/interfaces/IPMarketV3.sol/IPMarketV3.dbg.json +4 -0
  320. package/build/artifacts/contracts/interfaces/IPMarketV3.sol/IPMarketV3.json +833 -0
  321. package/build/artifacts/contracts/interfaces/IPMerkleDistributor.sol/IPMerkleDistributor.dbg.json +1 -1
  322. package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +1 -1
  323. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  324. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  325. package/build/artifacts/contracts/interfaces/IPOffchainStorage.sol/IPOffchainStorage.dbg.json +1 -1
  326. package/build/artifacts/contracts/interfaces/IPOracleForSy.sol/IPOracleForSy.dbg.json +1 -1
  327. package/build/artifacts/contracts/interfaces/IPPriceFeed.sol/IPPriceFeed.dbg.json +1 -1
  328. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  329. package/build/artifacts/contracts/interfaces/IPPtOracle.sol/IPPtOracle.dbg.json +1 -1
  330. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
  331. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  332. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  333. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  334. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  335. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  336. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  337. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.json +32 -19
  338. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +1 -1
  339. package/build/artifacts/contracts/interfaces/IPendlePreviewHelper.sol/IPendlePreviewHelper.dbg.json +1 -1
  340. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  341. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  342. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  343. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  344. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  345. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  346. package/build/artifacts/contracts/interfaces/IStargateLP.sol/IStargateLP.dbg.json +1 -1
  347. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  348. package/build/artifacts/contracts/interfaces/IStargateStaking.sol/IStargateStaking.dbg.json +1 -1
  349. package/build/artifacts/contracts/interfaces/ISwETH.sol/ISwETH.dbg.json +1 -1
  350. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  351. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  352. package/build/artifacts/contracts/interfaces/Kyber/IKyberElasticFactory.sol/IKyberElasticFactory.dbg.json +1 -1
  353. package/build/artifacts/contracts/interfaces/Kyber/IKyberElasticPool.sol/IKyberElasticPool.dbg.json +1 -1
  354. package/build/artifacts/contracts/interfaces/Kyber/IKyberElasticRouter.sol/IKyberElasticRouter.dbg.json +1 -1
  355. package/build/artifacts/contracts/interfaces/Kyber/IKyberLiquidityMining.sol/IKyberLiquidityMining.dbg.json +1 -1
  356. package/build/artifacts/contracts/interfaces/Kyber/IKyberMathHelper.sol/IKyberMathHelper.dbg.json +1 -1
  357. package/build/artifacts/contracts/interfaces/Kyber/IKyberPositionManager.sol/IKyberPositionManager.dbg.json +1 -1
  358. package/build/artifacts/contracts/interfaces/Lybra/IEUSD.sol/IEUSD.dbg.json +1 -1
  359. package/build/artifacts/contracts/interfaces/MUX/IMUXRewardRouter.sol/IMUXRewardRouter.dbg.json +1 -1
  360. package/build/artifacts/contracts/interfaces/Silo/ISilo.sol/ISilo.dbg.json +1 -1
  361. package/build/artifacts/contracts/interfaces/Silo/ISiloIncentiveController.sol/ISiloIncentiveController.dbg.json +1 -1
  362. package/build/artifacts/contracts/interfaces/Silo/ISiloLens.sol/ISiloLens.dbg.json +1 -1
  363. package/build/artifacts/contracts/interfaces/Stader/IStaderStakeManager.sol/IStaderStakeManager.dbg.json +1 -1
  364. package/build/artifacts/contracts/interfaces/Thena/IThenaFactory.sol/IThenaFactory.dbg.json +1 -1
  365. package/build/artifacts/contracts/interfaces/Thena/IThenaGaugeV2.sol/IThenaGaugeV2.dbg.json +1 -1
  366. package/build/artifacts/contracts/interfaces/Thena/IThenaPair.sol/IThenaPair.dbg.json +1 -1
  367. package/build/artifacts/contracts/interfaces/Thena/IThenaRouter.sol/IThenaRouter.dbg.json +1 -1
  368. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +1 -1
  369. package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/AutomateReady.dbg.json +1 -1
  370. package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/IAutomate.dbg.json +1 -1
  371. package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/IOpsProxyFactory.dbg.json +1 -1
  372. package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/ITaskTreasuryUpgradable.dbg.json +1 -1
  373. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  374. package/build/artifacts/contracts/offchain-helpers/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
  375. package/build/artifacts/contracts/offchain-helpers/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  376. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  377. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
  378. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +1 -1
  379. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +2 -2
  380. package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.dbg.json +1 -1
  381. package/build/artifacts/contracts/offchain-helpers/LegacyNFTHelper.sol/LegacyNFTHelper.dbg.json +1 -1
  382. package/build/artifacts/contracts/offchain-helpers/LegacyNFTHelper.sol/StarNFTV1.dbg.json +1 -1
  383. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.dbg.json +1 -1
  384. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.json +2 -2
  385. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
  386. package/build/artifacts/contracts/offchain-helpers/PendleMulticallV1.sol/PendleMulticallV1.dbg.json +1 -1
  387. package/build/artifacts/contracts/offchain-helpers/PendleMulticallV2.sol/PendleMulticallV2.dbg.json +1 -1
  388. package/build/artifacts/contracts/offchain-helpers/PendleOffchainStorage.sol/PendleOffchainStorage.dbg.json +1 -1
  389. package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.dbg.json +1 -1
  390. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  391. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  392. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  393. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  394. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  395. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  396. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  397. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
  398. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  399. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  400. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  401. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -2
  402. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  403. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  404. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  405. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
  406. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.json +2 -2
  407. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.dbg.json +1 -1
  408. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.json +2 -2
  409. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.dbg.json +1 -1
  410. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.json +2 -2
  411. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.dbg.json +1 -1
  412. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.json +2 -2
  413. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.dbg.json +1 -1
  414. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.json +2 -2
  415. package/build/artifacts/contracts/oracles/samples/PendlePtUsdChainlinkOracle.sol/PendlePtUsdChainlinkOracle.dbg.json +1 -1
  416. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  417. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +2 -2
  418. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  419. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +2 -2
  420. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  421. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  422. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +2 -2
  423. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  424. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +2 -2
  425. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  426. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -2
  427. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
  428. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +2 -2
  429. package/build/artifacts/contracts/router/PendleRouterHelper2.sol/PendleRouterHelper2.dbg.json +1 -1
  430. package/build/artifacts/contracts/router/PendleRouterHelper2.sol/PendleRouterHelper2.json +2 -2
  431. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  432. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  433. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  434. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  435. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  436. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  437. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  438. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
  439. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapBase.dbg.json +1 -1
  440. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapL1.dbg.json +1 -1
  441. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapL1.json +2 -2
  442. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapL2.dbg.json +1 -1
  443. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwapL2.json +2 -2
  444. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +1 -1
  445. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutorOptimistic.sol/IAggregationExecutorOptimistic.dbg.json +1 -1
  446. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelper.sol/IExecutorHelper.dbg.json +1 -1
  447. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelperL2.sol/IExecutorHelperL2.dbg.json +1 -1
  448. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/interfaces/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +1 -1
  449. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l1-contracts/InputScalingHelper.sol/InputScalingHelper.dbg.json +1 -1
  450. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l1-contracts/InputScalingHelper.sol/InputScalingHelper.json +2 -2
  451. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l1-contracts/ScalingDataLib.sol/ScalingDataLib.dbg.json +1 -1
  452. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l1-contracts/ScalingDataLib.sol/ScalingDataLib.json +2 -2
  453. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/BytesHelper.sol/BytesHelper.dbg.json +1 -1
  454. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/BytesHelper.sol/BytesHelper.json +2 -2
  455. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/CalldataReader.sol/CalldataReader.dbg.json +1 -1
  456. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/CalldataReader.sol/CalldataReader.json +2 -2
  457. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/CalldataWriter.sol/CalldataWriter.dbg.json +1 -1
  458. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/CalldataWriter.sol/CalldataWriter.json +2 -2
  459. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/Common.sol/Common.dbg.json +1 -1
  460. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/Common.sol/Common.json +2 -2
  461. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/DexScaler.sol/DexScaler.dbg.json +1 -1
  462. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/DexScaler.sol/DexScaler.json +2 -2
  463. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/ExecutorReader.sol/ExecutorReader.dbg.json +1 -1
  464. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/ExecutorReader.sol/ExecutorReader.json +2 -2
  465. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/InputScalingHelperL2.sol/InputScalingHelperL2.dbg.json +1 -1
  466. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/InputScalingHelperL2.sol/InputScalingHelperL2.json +2 -2
  467. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/ScalingDataL2Lib.sol/ScalingDataL2Lib.dbg.json +1 -1
  468. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/l2-contracts/ScalingDataL2Lib.sol/ScalingDataL2Lib.json +2 -2
  469. package/build/artifacts/contracts/router/swap-aggregator/oneinch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +1 -1
  470. package/build/artifacts/contracts/router/swap-aggregator/oneinch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +1 -1
  471. package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol +14 -4
  472. package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol +8 -10
  473. package/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol +5 -3
  474. package/contracts/core/Market/v3/PendleMarketFactoryV3.sol +137 -0
  475. package/contracts/core/Market/v3/PendleMarketV3.sol +360 -0
  476. package/contracts/core/RewardManager/RewardManager.sol +14 -6
  477. package/contracts/core/StandardizedYield/SYBaseWithRewards.sol +3 -4
  478. package/contracts/core/StandardizedYield/SYBaseWithRewardsUpg.sol +3 -4
  479. package/contracts/core/YieldContracts/InterestManagerYT.sol +2 -0
  480. package/contracts/core/YieldContracts/PendleYieldToken.sol +5 -0
  481. package/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol +2 -2
  482. package/contracts/core/libraries/Errors.sol +2 -0
  483. package/contracts/interfaces/IPInterestManagerYT.sol +2 -0
  484. package/contracts/interfaces/IPMarketFactoryV3.sol +24 -0
  485. package/contracts/interfaces/IPMarketV3.sol +8 -0
  486. package/contracts/interfaces/IPYieldToken.sol +1 -1
  487. package/contracts/oracles/PendleLpOracleLib.sol +8 -4
  488. package/contracts/oracles/PendlePtOracle.sol +2 -1
  489. package/contracts/oracles/PendlePtOracleLib.sol +5 -1
  490. package/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutor.sol +6 -2
  491. package/contracts/router/swap-aggregator/kyberswap/interfaces/IAggregationExecutorOptimistic.sol +6 -2
  492. package/contracts/router/swap-aggregator/kyberswap/interfaces/IExecutorHelper.sol +10 -16
  493. package/contracts/router/swap-aggregator/kyberswap/l1-contracts/ScalingDataLib.sol +81 -94
  494. package/contracts/router/swap-aggregator/kyberswap/l2-contracts/BytesHelper.sol +6 -5
  495. package/contracts/router/swap-aggregator/kyberswap/l2-contracts/CalldataReader.sol +22 -21
  496. package/contracts/router/swap-aggregator/kyberswap/l2-contracts/CalldataWriter.sol +8 -19
  497. package/contracts/router/swap-aggregator/kyberswap/l2-contracts/Common.sol +4 -5
  498. package/contracts/router/swap-aggregator/kyberswap/l2-contracts/DexScaler.sol +136 -130
  499. package/contracts/router/swap-aggregator/kyberswap/l2-contracts/ExecutorReader.sol +7 -10
  500. package/contracts/router/swap-aggregator/kyberswap/l2-contracts/InputScalingHelperL2.sol +49 -34
  501. package/contracts/router/swap-aggregator/kyberswap/l2-contracts/ScalingDataL2Lib.sol +69 -85
  502. package/deployments/1-core.json +3 -1
  503. package/deployments/10-core.json +4 -2
  504. package/deployments/42161-core.json +3 -1
  505. package/deployments/56-core.json +3 -1
  506. package/package.json +1 -1
  507. package/typechain-types/IPInterestManagerYT.ts +20 -3
  508. package/typechain-types/IPMarketFactoryV3.ts +225 -0
  509. package/typechain-types/IPMarketV3.ts +1068 -0
  510. package/typechain-types/IPYieldToken.ts +34 -19
  511. package/typechain-types/InterestManagerYT.ts +20 -3
  512. package/typechain-types/PendleGaugeControllerBaseUpg.ts +19 -0
  513. package/typechain-types/PendleGaugeControllerMainchainUpg.ts +19 -0
  514. package/typechain-types/PendleGaugeControllerSidechainUpg.ts +19 -0
  515. package/typechain-types/PendleMarketFactoryV3.ts +719 -0
  516. package/typechain-types/PendleMarketV3.ts +1364 -0
  517. package/typechain-types/PendleYieldToken.ts +34 -19
  518. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1 -1
  519. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  520. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  521. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
  522. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  523. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -1
  524. package/typechain-types/factories/ActionMiscV3__factory.ts +1 -1
  525. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
  526. package/typechain-types/factories/ActionSwapPT__factory.ts +1 -1
  527. package/typechain-types/factories/ActionSwapYT__factory.ts +1 -1
  528. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  529. package/typechain-types/factories/AuraEthxBbAWethSY__factory.ts +1 -1
  530. package/typechain-types/factories/AuraSwEthBbAWethSYV2__factory.ts +1 -1
  531. package/typechain-types/factories/AuraWethVethSYUpg__factory.ts +1 -1
  532. package/typechain-types/factories/Broadcaster__factory.ts +1 -1
  533. package/typechain-types/factories/BulkSellerFactory__factory.ts +1 -1
  534. package/typechain-types/factories/BulkSellerOffchain__factory.ts +1 -1
  535. package/typechain-types/factories/BulkSeller__factory.ts +1 -1
  536. package/typechain-types/factories/Errors__factory.ts +28 -1
  537. package/typechain-types/factories/IPInterestManagerYT__factory.ts +13 -0
  538. package/typechain-types/factories/IPMarketFactoryV3__factory.ts +160 -0
  539. package/typechain-types/factories/IPMarketV3__factory.ts +845 -0
  540. package/typechain-types/factories/IPYieldToken__factory.ts +32 -19
  541. package/typechain-types/factories/InterestManagerYT__factory.ts +13 -0
  542. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  543. package/typechain-types/factories/PendleAnkrBNBSY__factory.ts +1 -1
  544. package/typechain-types/factories/PendleArbitrumStakedEthSY__factory.ts +1 -1
  545. package/typechain-types/factories/PendleAuraBbAWethSwethSY__factory.ts +1 -1
  546. package/typechain-types/factories/PendleAuraWethAnkrethSYV2__factory.ts +1 -1
  547. package/typechain-types/factories/PendleAuraWethRocketEthSYV2__factory.ts +1 -1
  548. package/typechain-types/factories/PendleAuraWethStafiEthSY__factory.ts +1 -1
  549. package/typechain-types/factories/PendleAuraWethWstethSYV2__factory.ts +1 -1
  550. package/typechain-types/factories/PendleAuraWstethAnkreth__factory.ts +1 -1
  551. package/typechain-types/factories/PendleBridgedLSDSY__factory.ts +1 -1
  552. package/typechain-types/factories/PendleCamelotV1VolatileSY__factory.ts +1 -1
  553. package/typechain-types/factories/PendleChainlinkReceiver__factory.ts +1 -1
  554. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  555. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  556. package/typechain-types/factories/PendleERC4626SY__factory.ts +1 -1
  557. package/typechain-types/factories/PendleETHXSY__factory.ts +1 -1
  558. package/typechain-types/factories/PendleEUSDSY__factory.ts +1 -1
  559. package/typechain-types/factories/PendleExternalRewardDistributor__factory.ts +1 -1
  560. package/typechain-types/factories/PendleFeeDistributorV2__factory.ts +1 -1
  561. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  562. package/typechain-types/factories/PendleFluxLendingSY__factory.ts +1 -1
  563. package/typechain-types/factories/PendleGDaiSY__factory.ts +1 -1
  564. package/typechain-types/factories/PendleGMV2TokenSY__factory.ts +1 -1
  565. package/typechain-types/factories/PendleGaugeControllerBaseUpg__factory.ts +13 -0
  566. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +23 -1
  567. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +23 -1
  568. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  569. package/typechain-types/factories/PendleHlpSY__factory.ts +1 -1
  570. package/typechain-types/factories/PendleKyberElasticSYUpg__factory.ts +1 -1
  571. package/typechain-types/factories/PendleLimitRouter__factory.ts +1 -1
  572. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  573. package/typechain-types/factories/PendleLpGlpOracle__factory.ts +1 -1
  574. package/typechain-types/factories/PendleMantleStakedEthSY__factory.ts +1 -1
  575. package/typechain-types/factories/PendleMarketFactoryV2__factory.ts +1 -1
  576. package/typechain-types/factories/PendleMarketFactoryV3__factory.ts +714 -0
  577. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  578. package/typechain-types/factories/PendleMarketV2__factory.ts +1 -1
  579. package/typechain-types/factories/PendleMarketV3__factory.ts +1351 -0
  580. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  581. package/typechain-types/factories/PendleMlpSY__factory.ts +1 -1
  582. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  583. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  584. package/typechain-types/factories/PendleOracleForSyProxy__factory.ts +1 -1
  585. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +1 -1
  586. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  587. package/typechain-types/factories/PendlePtGlpOracle__factory.ts +1 -1
  588. package/typechain-types/factories/PendlePtOracle__factory.ts +1 -1
  589. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  590. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  591. package/typechain-types/factories/PendleRouterHelper2__factory.ts +1 -1
  592. package/typechain-types/factories/PendleRouterHelper__factory.ts +1 -1
  593. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  594. package/typechain-types/factories/PendleRouterV3__factory.ts +1 -1
  595. package/typechain-types/factories/PendleRouter__factory.ts +1 -1
  596. package/typechain-types/factories/PendleSfrxEthSY__factory.ts +1 -1
  597. package/typechain-types/factories/PendleSiloWithIncentiveSY__factory.ts +1 -1
  598. package/typechain-types/factories/PendleStargateLPSY__factory.ts +1 -1
  599. package/typechain-types/factories/PendleSwapL1__factory.ts +1 -1
  600. package/typechain-types/factories/PendleSwapL2__factory.ts +1 -1
  601. package/typechain-types/factories/PendleThenaSY__factory.ts +1 -1
  602. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  603. package/typechain-types/factories/PendleWbEthSY__factory.ts +1 -1
  604. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  605. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
  606. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  607. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1 -1
  608. package/typechain-types/factories/PendleYieldToken__factory.ts +33 -20
  609. package/typechain-types/factories/PtAndLpToAsset__factory.ts +1 -1
  610. package/typechain-types/factories/SAPE__factory.ts +1 -1
  611. package/typechain-types/factories/SwETHSY__factory.ts +1 -1
  612. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  613. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  614. package/typechain-types/hardhat.d.ts +36 -0
  615. package/typechain-types/index.ts +8 -0
  616. package/build/artifacts/contracts/offchain-helpers/PtAndLpToAsset.sol/PtAndLpToAsset.dbg.json +0 -4
  617. package/build/artifacts/contracts/offchain-helpers/PtAndLpToAsset.sol/PtAndLpToAsset.json +0 -97
  618. package/contracts/offchain-helpers/PtAndLpToAsset.sol +0 -56
@@ -3,8 +3,8 @@
3
3
  "contractName": "ScalingDataL2Lib",
4
4
  "sourceName": "contracts/router/swap-aggregator/kyberswap/l2-contracts/ScalingDataL2Lib.sol",
5
5
  "abi": [],
6
- "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d078e058a7a43cc8947546e8d2d532f7cba5955f861a02dea8e034195bbd960464736f6c63430008170033",
7
- "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d078e058a7a43cc8947546e8d2d532f7cba5955f861a02dea8e034195bbd960464736f6c63430008170033",
6
+ "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b47dc5f942c9cf301d157464112a21c8bae98a60966d6b934a18c3229a39502c64736f6c63430008170033",
7
+ "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b47dc5f942c9cf301d157464112a21c8bae98a60966d6b934a18c3229a39502c64736f6c63430008170033",
8
8
  "linkReferences": {},
9
9
  "deployedLinkReferences": {}
10
10
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../build-info/e2ea7c19c361d1241026e79eda282113.json"
3
+ "buildInfo": "../../../../../build-info/b8a77b6f1d4f10fbb0c6a4d526f977af.json"
4
4
  }
@@ -1,4 +1,4 @@
1
1
  {
2
2
  "_format": "hh-sol-dbg-1",
3
- "buildInfo": "../../../../../build-info/e2ea7c19c361d1241026e79eda282113.json"
3
+ "buildInfo": "../../../../../build-info/b8a77b6f1d4f10fbb0c6a4d526f977af.json"
4
4
  }
@@ -39,6 +39,7 @@ abstract contract PendleGaugeControllerBaseUpg is IPGaugeController, BoringOwnab
39
39
 
40
40
  address public immutable pendle;
41
41
  IPMarketFactory public immutable marketFactory;
42
+ IPMarketFactory public immutable marketFactory2;
42
43
 
43
44
  mapping(address => MarketRewardData) public rewardData;
44
45
  mapping(uint128 => bool) public epochRewardReceived;
@@ -46,13 +47,20 @@ abstract contract PendleGaugeControllerBaseUpg is IPGaugeController, BoringOwnab
46
47
  uint256[100] private __gap;
47
48
 
48
49
  modifier onlyPendleMarket() {
49
- if (!marketFactory.isValidMarket(msg.sender)) revert Errors.GCNotPendleMarket(msg.sender);
50
- _;
50
+ if (
51
+ marketFactory.isValidMarket(msg.sender) ||
52
+ (marketFactory2 != IPMarketFactory(address(0)) && marketFactory2.isValidMarket(msg.sender))
53
+ ) {
54
+ _;
55
+ } else {
56
+ revert Errors.GCNotPendleMarket(msg.sender);
57
+ }
51
58
  }
52
59
 
53
- constructor(address _pendle, address _marketFactory) {
60
+ constructor(address _pendle, address _marketFactory, address _marketFactory2) {
54
61
  pendle = _pendle;
55
62
  marketFactory = IPMarketFactory(_marketFactory);
63
+ marketFactory2 = IPMarketFactory(_marketFactory2);
56
64
  }
57
65
 
58
66
  /**
@@ -91,7 +99,9 @@ abstract contract PendleGaugeControllerBaseUpg is IPGaugeController, BoringOwnab
91
99
  epochRewardReceived[wTime] = true;
92
100
 
93
101
  for (uint256 i = 0; i < markets.length; ++i) {
94
- if (!IPMarket(markets[i]).isExpired()) _addRewardsToMarket(markets[i], pendleAmounts[i].Uint128());
102
+ if (!IPMarket(markets[i]).isExpired()) {
103
+ _addRewardsToMarket(markets[i], pendleAmounts[i].Uint128());
104
+ }
95
105
  }
96
106
 
97
107
  emit ReceiveVotingResults(wTime, markets, pendleAmounts);
@@ -12,23 +12,21 @@ contract PendleGaugeControllerMainchainUpg is PendleGaugeControllerBaseUpg, IPGa
12
12
  _;
13
13
  }
14
14
 
15
- constructor(
16
- address _votingController,
17
- address _pendle,
18
- address _marketFactory
19
- ) PendleGaugeControllerBaseUpg(_pendle, _marketFactory) initializer {
15
+ constructor(address _votingController, address _pendle, address _marketFactory, address _marketFactory2)
16
+ PendleGaugeControllerBaseUpg(_pendle, _marketFactory, _marketFactory2)
17
+ {
20
18
  votingController = _votingController;
19
+ _disableInitializers();
21
20
  }
22
21
 
23
22
  function initialize() external initializer {
24
23
  __BoringOwnable_init();
25
24
  }
26
25
 
27
- function updateVotingResults(
28
- uint128 wTime,
29
- address[] memory markets,
30
- uint256[] memory pendleSpeeds
31
- ) external onlyVotingController {
26
+ function updateVotingResults(uint128 wTime, address[] memory markets, uint256[] memory pendleSpeeds)
27
+ external
28
+ onlyVotingController
29
+ {
32
30
  _receiveVotingResults(wTime, markets, pendleSpeeds);
33
31
  }
34
32
  }
@@ -10,12 +10,14 @@ contract PendleGaugeControllerSidechainUpg is PendleGaugeControllerBaseUpg, Pend
10
10
  constructor(
11
11
  address _pendle,
12
12
  address _marketFactory,
13
+ address _marketFactory2,
13
14
  address _PendleMsgReceiveEndpointUpg
14
15
  )
15
- PendleGaugeControllerBaseUpg(_pendle, _marketFactory)
16
+ PendleGaugeControllerBaseUpg(_pendle, _marketFactory, _marketFactory2)
16
17
  PendleMsgReceiverAppUpg(_PendleMsgReceiveEndpointUpg)
17
- initializer
18
- {}
18
+ {
19
+ _disableInitializers();
20
+ }
19
21
 
20
22
  function initialize() external initializer {
21
23
  __BoringOwnable_init();
@@ -0,0 +1,137 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.17;
3
+ import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
4
+
5
+ import "../../../interfaces/IPMarketV3.sol";
6
+ import "../../../interfaces/IPYieldContractFactory.sol";
7
+ import "../../../interfaces/IPMarketFactoryV3.sol";
8
+
9
+ import "../../libraries/BaseSplitCodeFactory.sol";
10
+ import "../../libraries/Errors.sol";
11
+ import "../../libraries/BoringOwnableUpgradeable.sol";
12
+
13
+ contract PendleMarketFactoryV3 is BoringOwnableUpgradeable, IPMarketFactoryV3 {
14
+ using EnumerableSet for EnumerableSet.AddressSet;
15
+
16
+ address public immutable marketCreationCodeContractA;
17
+ uint256 public immutable marketCreationCodeSizeA;
18
+ address public immutable marketCreationCodeContractB;
19
+ uint256 public immutable marketCreationCodeSizeB;
20
+
21
+ address public immutable yieldContractFactory;
22
+ address public immutable vePendle;
23
+ address public immutable gaugeController;
24
+
25
+ uint256 public immutable maxLnFeeRateRoot;
26
+ uint8 public constant maxReserveFeePercent = 100;
27
+ int256 public constant minInitialAnchor = PMath.IONE;
28
+
29
+ address public treasury;
30
+ uint8 public reserveFeePercent;
31
+
32
+ // router -> market -> lnFeeRateRoot. lnFeeRateRoot == 0 means no override
33
+ mapping(address => mapping(address => uint80)) internal overriddenFee;
34
+
35
+ // PT -> scalarRoot -> initialAnchor
36
+ mapping(address => mapping(int256 => mapping(int256 => mapping(uint80 => address)))) internal markets;
37
+ EnumerableSet.AddressSet internal allMarkets;
38
+
39
+ constructor(
40
+ address _yieldContractFactory,
41
+ address _marketCreationCodeContractA,
42
+ uint256 _marketCreationCodeSizeA,
43
+ address _marketCreationCodeContractB,
44
+ uint256 _marketCreationCodeSizeB,
45
+ address _treasury,
46
+ uint8 _reserveFeePercent,
47
+ address _vePendle,
48
+ address _gaugeController
49
+ ) initializer {
50
+ yieldContractFactory = _yieldContractFactory;
51
+ maxLnFeeRateRoot = uint256(LogExpMath.ln(int256((105 * PMath.IONE) / 100))); // ln(1.05)
52
+
53
+ marketCreationCodeContractA = _marketCreationCodeContractA;
54
+ marketCreationCodeSizeA = _marketCreationCodeSizeA;
55
+ marketCreationCodeContractB = _marketCreationCodeContractB;
56
+ marketCreationCodeSizeB = _marketCreationCodeSizeB;
57
+
58
+ __BoringOwnable_init();
59
+ setTreasuryAndFeeReserve(_treasury, _reserveFeePercent);
60
+
61
+ vePendle = _vePendle;
62
+ gaugeController = _gaugeController;
63
+ }
64
+
65
+ /**
66
+ * @notice Create a market between PT and its corresponding SY with scalar & anchor config.
67
+ * Anyone is allowed to create a market on their own.
68
+ */
69
+ function createNewMarket(
70
+ address PT,
71
+ int256 scalarRoot,
72
+ int256 initialAnchor,
73
+ uint80 lnFeeRateRoot
74
+ ) external returns (address market) {
75
+ if (!IPYieldContractFactory(yieldContractFactory).isPT(PT)) revert Errors.MarketFactoryInvalidPt();
76
+ if (IPPrincipalToken(PT).isExpired()) revert Errors.MarketFactoryExpiredPt();
77
+ if (lnFeeRateRoot > maxLnFeeRateRoot)
78
+ revert Errors.MarketFactoryLnFeeRateRootTooHigh(lnFeeRateRoot, maxLnFeeRateRoot);
79
+
80
+ if (markets[PT][scalarRoot][initialAnchor][lnFeeRateRoot] != address(0))
81
+ revert Errors.MarketFactoryMarketExists();
82
+
83
+ if (initialAnchor < minInitialAnchor)
84
+ revert Errors.MarketFactoryInitialAnchorTooLow(initialAnchor, minInitialAnchor);
85
+
86
+ market = BaseSplitCodeFactory._create2(
87
+ 0,
88
+ bytes32(block.chainid),
89
+ abi.encode(PT, scalarRoot, initialAnchor, lnFeeRateRoot, vePendle, gaugeController),
90
+ marketCreationCodeContractA,
91
+ marketCreationCodeSizeA,
92
+ marketCreationCodeContractB,
93
+ marketCreationCodeSizeB
94
+ );
95
+
96
+ markets[PT][scalarRoot][initialAnchor][lnFeeRateRoot] = market;
97
+
98
+ if (!allMarkets.add(market)) assert(false);
99
+
100
+ emit CreateNewMarket(market, PT, scalarRoot, initialAnchor, lnFeeRateRoot);
101
+ }
102
+
103
+ function getMarketConfig(
104
+ address market,
105
+ address router
106
+ ) external view returns (address _treasury, uint80 _overriddenFee, uint8 _reserveFeePercent) {
107
+ (_treasury, _reserveFeePercent) = (treasury, reserveFeePercent);
108
+ _overriddenFee = overriddenFee[router][market];
109
+ }
110
+
111
+ /// @dev for gas-efficient verification of market
112
+ function isValidMarket(address market) external view returns (bool) {
113
+ return allMarkets.contains(market);
114
+ }
115
+
116
+ function setTreasuryAndFeeReserve(address newTreasury, uint8 newReserveFeePercent) public onlyOwner {
117
+ if (newTreasury == address(0)) revert Errors.MarketFactoryZeroTreasury();
118
+ if (newReserveFeePercent > maxReserveFeePercent)
119
+ revert Errors.MarketFactoryReserveFeePercentTooHigh(newReserveFeePercent, maxReserveFeePercent);
120
+
121
+ treasury = newTreasury;
122
+ reserveFeePercent = newReserveFeePercent;
123
+
124
+ emit NewTreasuryAndFeeReserve(newTreasury, newReserveFeePercent);
125
+ }
126
+
127
+ function setOverriddenFee(address router, address market, uint80 newFee) public onlyOwner {
128
+ if (!allMarkets.contains(market)) revert Errors.MFNotPendleMarket(market);
129
+
130
+ uint80 marketFee = IPMarketV3(market).getNonOverrideLnFeeRateRoot();
131
+ if (newFee >= marketFee) revert Errors.MarketFactoryOverriddenFeeTooHigh(newFee, marketFee);
132
+
133
+ // NOTE: newFee = 0 allowed !!
134
+ overriddenFee[router][market] = newFee;
135
+ emit SetOverriddenFee(router, market, newFee);
136
+ }
137
+ }
@@ -0,0 +1,360 @@
1
+ // SPDX-License-Identifier: GPL-3.0-or-later
2
+ pragma solidity ^0.8.17;
3
+
4
+ import "../../../interfaces/IPMarketV3.sol";
5
+ import "../../../interfaces/IPMarketFactoryV3.sol";
6
+ import "../../../interfaces/IPMarketSwapCallback.sol";
7
+
8
+ import "../../erc20/PendleERC20Permit.sol";
9
+ import "../PendleGauge.sol";
10
+ import "../OracleLib.sol";
11
+
12
+ /**
13
+ Invariance to maintain:
14
+ - Internal balances totalPt & totalSy not interfered by people transferring tokens in directly
15
+ - address(0) & address(this) should never have any rewards & activeBalance accounting done. This is
16
+ guaranteed by address(0) & address(this) check in each updateForTwo function
17
+ */
18
+ contract PendleMarketV3 is PendleERC20Permit, PendleGauge, IPMarketV3 {
19
+ using PMath for uint256;
20
+ using PMath for int256;
21
+ using MarketMathCore for MarketState;
22
+ using SafeERC20 for IERC20;
23
+ using PYIndexLib for IPYieldToken;
24
+ using OracleLib for OracleLib.Observation[65535];
25
+
26
+ struct MarketStorage {
27
+ int128 totalPt;
28
+ int128 totalSy;
29
+ // 1 SLOT = 256 bits
30
+ uint96 lastLnImpliedRate;
31
+ uint16 observationIndex;
32
+ uint16 observationCardinality;
33
+ uint16 observationCardinalityNext;
34
+ // 1 SLOT = 144 bits
35
+ }
36
+
37
+ string private constant NAME = "Pendle Market";
38
+ string private constant SYMBOL = "PENDLE-LPT";
39
+
40
+ IPPrincipalToken internal immutable PT;
41
+ IStandardizedYield internal immutable SY;
42
+ IPYieldToken internal immutable YT;
43
+
44
+ address public immutable factory;
45
+ uint256 public immutable expiry;
46
+
47
+ int256 internal immutable scalarRoot;
48
+ int256 internal immutable initialAnchor;
49
+ uint80 internal immutable lnFeeRateRoot;
50
+
51
+ MarketStorage public _storage;
52
+
53
+ OracleLib.Observation[65535] public observations;
54
+
55
+ modifier notExpired() {
56
+ if (isExpired()) revert Errors.MarketExpired();
57
+ _;
58
+ }
59
+
60
+ constructor(
61
+ address _PT,
62
+ int256 _scalarRoot,
63
+ int256 _initialAnchor,
64
+ uint80 _lnFeeRateRoot,
65
+ address _vePendle,
66
+ address _gaugeController
67
+ ) PendleERC20Permit(NAME, SYMBOL, 18) PendleGauge(IPPrincipalToken(_PT).SY(), _vePendle, _gaugeController) {
68
+ PT = IPPrincipalToken(_PT);
69
+ SY = IStandardizedYield(PT.SY());
70
+ YT = IPYieldToken(PT.YT());
71
+
72
+ (_storage.observationCardinality, _storage.observationCardinalityNext) = observations.initialize(
73
+ uint32(block.timestamp)
74
+ );
75
+
76
+ if (_scalarRoot <= 0) revert Errors.MarketScalarRootBelowZero(_scalarRoot);
77
+
78
+ scalarRoot = _scalarRoot;
79
+ initialAnchor = _initialAnchor;
80
+ lnFeeRateRoot = _lnFeeRateRoot;
81
+ expiry = IPPrincipalToken(_PT).expiry();
82
+ factory = msg.sender;
83
+ }
84
+
85
+ /**
86
+ * @notice PendleMarket allows users to provide in PT & SY in exchange for LPs, which
87
+ * will grant LP holders more exchange fee over time
88
+ * @dev will mint as much LP as possible such that the corresponding SY and PT used do
89
+ * not exceed `netSyDesired` and `netPtDesired`, respectively
90
+ * @dev PT and SY should be transferred to this contract prior to calling
91
+ * @dev will revert if PT is expired
92
+ */
93
+ function mint(
94
+ address receiver,
95
+ uint256 netSyDesired,
96
+ uint256 netPtDesired
97
+ ) external nonReentrant notExpired returns (uint256 netLpOut, uint256 netSyUsed, uint256 netPtUsed) {
98
+ MarketState memory market = readState(msg.sender);
99
+ PYIndex index = YT.newIndex();
100
+
101
+ uint256 lpToReserve;
102
+
103
+ (lpToReserve, netLpOut, netSyUsed, netPtUsed) = market.addLiquidity(
104
+ netSyDesired,
105
+ netPtDesired,
106
+ block.timestamp
107
+ );
108
+
109
+ // initializing the market
110
+ if (lpToReserve != 0) {
111
+ market.setInitialLnImpliedRate(index, initialAnchor, block.timestamp);
112
+ _mint(address(1), lpToReserve);
113
+ }
114
+
115
+ _mint(receiver, netLpOut);
116
+
117
+ _writeState(market);
118
+
119
+ if (_selfBalance(SY) < market.totalSy.Uint())
120
+ revert Errors.MarketInsufficientSyReceived(_selfBalance(SY), market.totalSy.Uint());
121
+ if (_selfBalance(PT) < market.totalPt.Uint())
122
+ revert Errors.MarketInsufficientPtReceived(_selfBalance(PT), market.totalPt.Uint());
123
+
124
+ emit Mint(receiver, netLpOut, netSyUsed, netPtUsed);
125
+ }
126
+
127
+ /**
128
+ * @notice LP Holders can burn their LP to receive back SY & PT proportionally
129
+ * to their share of the market
130
+ */
131
+ function burn(
132
+ address receiverSy,
133
+ address receiverPt,
134
+ uint256 netLpToBurn
135
+ ) external nonReentrant returns (uint256 netSyOut, uint256 netPtOut) {
136
+ MarketState memory market = readState(msg.sender);
137
+
138
+ _burn(address(this), netLpToBurn);
139
+
140
+ (netSyOut, netPtOut) = market.removeLiquidity(netLpToBurn);
141
+
142
+ if (receiverSy != address(this)) IERC20(SY).safeTransfer(receiverSy, netSyOut);
143
+ if (receiverPt != address(this)) IERC20(PT).safeTransfer(receiverPt, netPtOut);
144
+
145
+ _writeState(market);
146
+
147
+ emit Burn(receiverSy, receiverPt, netLpToBurn, netSyOut, netPtOut);
148
+ }
149
+
150
+ /**
151
+ * @notice Pendle Market allows swaps between PT & SY it is holding. This function
152
+ * aims to swap an exact amount of PT to SY.
153
+ * @dev steps working of this contract
154
+ - The outcome amount of SY will be precomputed by MarketMathLib
155
+ - Release the calculated amount of SY to receiver
156
+ - Callback to msg.sender if data.length > 0
157
+ - Ensure exactPtIn amount of PT has been transferred to this address
158
+ * @dev will revert if PT is expired
159
+ * @param data bytes data to be sent in the callback (if any)
160
+ */
161
+ function swapExactPtForSy(
162
+ address receiver,
163
+ uint256 exactPtIn,
164
+ bytes calldata data
165
+ ) external nonReentrant notExpired returns (uint256 netSyOut, uint256 netSyFee) {
166
+ MarketState memory market = readState(msg.sender);
167
+
168
+ uint256 netSyToReserve;
169
+ (netSyOut, netSyFee, netSyToReserve) = market.swapExactPtForSy(YT.newIndex(), exactPtIn, block.timestamp);
170
+
171
+ if (receiver != address(this)) IERC20(SY).safeTransfer(receiver, netSyOut);
172
+ IERC20(SY).safeTransfer(market.treasury, netSyToReserve);
173
+
174
+ _writeState(market);
175
+
176
+ if (data.length > 0) {
177
+ IPMarketSwapCallback(msg.sender).swapCallback(exactPtIn.neg(), netSyOut.Int(), data);
178
+ }
179
+
180
+ if (_selfBalance(PT) < market.totalPt.Uint())
181
+ revert Errors.MarketInsufficientPtReceived(_selfBalance(PT), market.totalPt.Uint());
182
+
183
+ emit Swap(msg.sender, receiver, exactPtIn.neg(), netSyOut.Int(), netSyFee, netSyToReserve);
184
+ }
185
+
186
+ /**
187
+ * @notice Pendle Market allows swaps between PT & SY it is holding. This function
188
+ * aims to swap SY for an exact amount of PT.
189
+ * @dev steps working of this function
190
+ - The exact outcome amount of PT will be transferred to receiver
191
+ - Callback to msg.sender if data.length > 0
192
+ - Ensure the calculated required amount of SY is transferred to this address
193
+ * @dev will revert if PT is expired
194
+ * @param data bytes data to be sent in the callback (if any)
195
+ */
196
+ function swapSyForExactPt(
197
+ address receiver,
198
+ uint256 exactPtOut,
199
+ bytes calldata data
200
+ ) external nonReentrant notExpired returns (uint256 netSyIn, uint256 netSyFee) {
201
+ MarketState memory market = readState(msg.sender);
202
+
203
+ uint256 netSyToReserve;
204
+ (netSyIn, netSyFee, netSyToReserve) = market.swapSyForExactPt(YT.newIndex(), exactPtOut, block.timestamp);
205
+
206
+ if (receiver != address(this)) IERC20(PT).safeTransfer(receiver, exactPtOut);
207
+ IERC20(SY).safeTransfer(market.treasury, netSyToReserve);
208
+
209
+ _writeState(market);
210
+
211
+ if (data.length > 0) {
212
+ IPMarketSwapCallback(msg.sender).swapCallback(exactPtOut.Int(), netSyIn.neg(), data);
213
+ }
214
+
215
+ // have received enough SY
216
+ if (_selfBalance(SY) < market.totalSy.Uint())
217
+ revert Errors.MarketInsufficientSyReceived(_selfBalance(SY), market.totalSy.Uint());
218
+
219
+ emit Swap(msg.sender, receiver, exactPtOut.Int(), netSyIn.neg(), netSyFee, netSyToReserve);
220
+ }
221
+
222
+ /// @notice forces balances to match reserves
223
+ function skim() external nonReentrant {
224
+ MarketState memory market = readState(msg.sender);
225
+ uint256 excessPt = _selfBalance(PT) - market.totalPt.Uint();
226
+ uint256 excessSy = _selfBalance(SY) - market.totalSy.Uint();
227
+ if (excessPt != 0) IERC20(PT).safeTransfer(market.treasury, excessPt);
228
+ if (excessSy != 0) IERC20(SY).safeTransfer(market.treasury, excessSy);
229
+ }
230
+
231
+ /**
232
+ * @notice redeems the user's reward
233
+ * @return amount of reward token redeemed, in the same order as `getRewardTokens()`
234
+ */
235
+ function redeemRewards(address user) external nonReentrant returns (uint256[] memory) {
236
+ return _redeemRewards(user);
237
+ }
238
+
239
+ /// @notice returns the list of reward tokens
240
+ function getRewardTokens() external view returns (address[] memory) {
241
+ return _getRewardTokens();
242
+ }
243
+
244
+ /*///////////////////////////////////////////////////////////////
245
+ ORACLE
246
+ //////////////////////////////////////////////////////////////*/
247
+
248
+ function observe(uint32[] memory secondsAgos) external view returns (uint216[] memory lnImpliedRateCumulative) {
249
+ return
250
+ observations.observe(
251
+ uint32(block.timestamp),
252
+ secondsAgos,
253
+ _storage.lastLnImpliedRate,
254
+ _storage.observationIndex,
255
+ _storage.observationCardinality
256
+ );
257
+ }
258
+
259
+ function increaseObservationsCardinalityNext(uint16 cardinalityNext) external nonReentrant {
260
+ uint16 cardinalityNextOld = _storage.observationCardinalityNext;
261
+ uint16 cardinalityNextNew = observations.grow(cardinalityNextOld, cardinalityNext);
262
+ if (cardinalityNextOld != cardinalityNextNew) {
263
+ _storage.observationCardinalityNext = cardinalityNextNew;
264
+ emit IncreaseObservationCardinalityNext(cardinalityNextOld, cardinalityNextNew);
265
+ }
266
+ }
267
+
268
+ /*///////////////////////////////////////////////////////////////
269
+ READ/WRITE STATES
270
+ //////////////////////////////////////////////////////////////*/
271
+
272
+ /**
273
+ * @notice read the state of the market from storage into memory for gas-efficient manipulation
274
+ */
275
+ function readState(address router) public view returns (MarketState memory market) {
276
+ market.totalPt = _storage.totalPt;
277
+ market.totalSy = _storage.totalSy;
278
+ market.totalLp = totalSupply().Int();
279
+
280
+ uint80 overriddenFee;
281
+
282
+ (market.treasury, overriddenFee, market.reserveFeePercent) = IPMarketFactoryV3(factory).getMarketConfig(
283
+ address(this),
284
+ router
285
+ );
286
+
287
+ market.lnFeeRateRoot = overriddenFee == 0 ? lnFeeRateRoot : overriddenFee;
288
+ market.scalarRoot = scalarRoot;
289
+ market.expiry = expiry;
290
+
291
+ market.lastLnImpliedRate = _storage.lastLnImpliedRate;
292
+ }
293
+
294
+ /// @notice write back the state of the market from memory to storage
295
+ function _writeState(MarketState memory market) internal {
296
+ uint96 lastLnImpliedRate96 = market.lastLnImpliedRate.Uint96();
297
+ int128 totalPt128 = market.totalPt.Int128();
298
+ int128 totalSy128 = market.totalSy.Int128();
299
+
300
+ (uint16 observationIndex, uint16 observationCardinality) = observations.write(
301
+ _storage.observationIndex,
302
+ uint32(block.timestamp),
303
+ _storage.lastLnImpliedRate,
304
+ _storage.observationCardinality,
305
+ _storage.observationCardinalityNext
306
+ );
307
+
308
+ _storage.totalPt = totalPt128;
309
+ _storage.totalSy = totalSy128;
310
+ _storage.lastLnImpliedRate = lastLnImpliedRate96;
311
+ _storage.observationIndex = observationIndex;
312
+ _storage.observationCardinality = observationCardinality;
313
+
314
+ emit UpdateImpliedRate(block.timestamp, market.lastLnImpliedRate);
315
+ }
316
+
317
+ function getNonOverrideLnFeeRateRoot() external view returns (uint80) {
318
+ return lnFeeRateRoot;
319
+ }
320
+
321
+ /*///////////////////////////////////////////////////////////////
322
+ TRIVIAL FUNCTIONS
323
+ //////////////////////////////////////////////////////////////*/
324
+
325
+ function readTokens() external view returns (IStandardizedYield _SY, IPPrincipalToken _PT, IPYieldToken _YT) {
326
+ _SY = SY;
327
+ _PT = PT;
328
+ _YT = YT;
329
+ }
330
+
331
+ function isExpired() public view returns (bool) {
332
+ return MiniHelpers.isCurrentlyExpired(expiry);
333
+ }
334
+
335
+ /*///////////////////////////////////////////////////////////////
336
+ PENDLE GAUGE - RELATED
337
+ //////////////////////////////////////////////////////////////*/
338
+
339
+ function _stakedBalance(address user) internal view override returns (uint256) {
340
+ return balanceOf(user);
341
+ }
342
+
343
+ function _totalStaked() internal view override returns (uint256) {
344
+ return totalSupply();
345
+ }
346
+
347
+ // solhint-disable-next-line ordering
348
+ function _beforeTokenTransfer(
349
+ address from,
350
+ address to,
351
+ uint256 amount
352
+ ) internal override(PendleERC20, PendleGauge) {
353
+ PendleGauge._beforeTokenTransfer(from, to, amount);
354
+ }
355
+
356
+ // solhint-disable-next-line ordering
357
+ function _afterTokenTransfer(address from, address to, uint256 amount) internal override(PendleERC20, PendleGauge) {
358
+ PendleGauge._afterTokenTransfer(from, to, amount);
359
+ }
360
+ }
@@ -36,18 +36,26 @@ abstract contract RewardManager is RewardManagerAbstract {
36
36
  address token = tokens[i];
37
37
 
38
38
  // the entire token balance of the contract must be the rewards of the contract
39
- uint256 accrued = _selfBalance(tokens[i]) - rewardState[token].lastBalance;
40
- uint256 index = rewardState[token].index;
39
+
40
+ RewardState memory _state = rewardState[token];
41
+ (uint256 lastBalance, uint256 index) = (_state.lastBalance, _state.index);
42
+
43
+ uint256 accrued = _selfBalance(tokens[i]) - lastBalance;
41
44
 
42
45
  if (index == 0) index = INITIAL_REWARD_INDEX;
43
46
  if (totalShares != 0) index += accrued.divDown(totalShares);
44
47
 
45
- rewardState[token].index = index.Uint128();
46
- rewardState[token].lastBalance += accrued.Uint128();
48
+ rewardState[token] = RewardState({
49
+ index: index.Uint128(),
50
+ lastBalance: (lastBalance + accrued).Uint128()
51
+ });
52
+ indexes[i] = index;
53
+ }
54
+ } else {
55
+ for (uint256 i = 0; i < tokens.length; i++) {
56
+ indexes[i] = rewardState[tokens[i]].index;
47
57
  }
48
58
  }
49
-
50
- for (uint256 i = 0; i < tokens.length; i++) indexes[i] = rewardState[tokens[i]].index;
51
59
  }
52
60
 
53
61
  /// @dev this function doesn't need redeemExternal since redeemExternal is bundled in updateRewardIndex
@@ -26,7 +26,7 @@ abstract contract SYBaseWithRewards is SYBase, RewardManager {
26
26
  */
27
27
  function claimRewards(
28
28
  address user
29
- ) external virtual override nonReentrant returns (uint256[] memory rewardAmounts) {
29
+ ) external virtual override nonReentrant whenNotPaused returns (uint256[] memory rewardAmounts) {
30
30
  _updateAndDistributeRewards(user);
31
31
  rewardAmounts = _doTransferOutRewards(user, user);
32
32
 
@@ -54,9 +54,8 @@ abstract contract SYBaseWithRewards is SYBase, RewardManager {
54
54
  }
55
55
  }
56
56
 
57
- function rewardIndexesCurrent() external override nonReentrant returns (uint256[] memory indexes) {
58
- _updateRewardIndex();
59
- return rewardIndexesStored();
57
+ function rewardIndexesCurrent() external override nonReentrant whenNotPaused returns (uint256[] memory indexes) {
58
+ (, indexes) = _updateRewardIndex();
60
59
  }
61
60
 
62
61
  function rewardIndexesStored() public view virtual override returns (uint256[] memory indexes) {