@pendle/core-v2 2.29.1 → 3.0.0-beta-2

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 (715) 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/ExcessivelySafeCall.sol/ExcessivelySafeCall.json +2 -2
  9. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +1 -1
  10. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +2 -2
  11. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  12. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +2 -2
  14. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  15. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +2 -2
  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/LiquidityMining/libraries/WeekMath.sol/WeekMath.json +2 -2
  36. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  37. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  38. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  39. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  40. package/build/artifacts/contracts/core/Market/PendleExternalRewardDistributor.sol/PendleExternalRewardDistributor.dbg.json +1 -1
  41. package/build/artifacts/contracts/core/Market/PendleExternalRewardDistributor.sol/PendleExternalRewardDistributor.json +2 -2
  42. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  43. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  44. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  45. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  46. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +2 -2
  47. package/build/artifacts/contracts/core/Market/v2/PendleGaugeV2.sol/PendleGaugeV2.dbg.json +1 -1
  48. package/build/artifacts/contracts/core/Market/v2/PendleMarketFactoryV2.sol/PendleMarketFactoryV2.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/Market/v2/PendleMarketFactoryV2.sol/PendleMarketFactoryV2.json +2 -2
  50. package/build/artifacts/contracts/core/Market/v2/PendleMarketV2.sol/PendleMarketV2.dbg.json +1 -1
  51. package/build/artifacts/contracts/core/Market/v2/PendleMarketV2.sol/PendleMarketV2.json +2 -2
  52. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  53. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
  56. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  57. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/StandardizedYield/SYUtils.sol/SYUtils.json +2 -2
  60. package/build/artifacts/contracts/core/StandardizedYield/StEthHelper.sol/StEthHelper.dbg.json +1 -1
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ankr/PendleAnkrBNBSY.sol/PendleAnkrBNBSY.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ankr/PendleAnkrBNBSY.sol/PendleAnkrBNBSY.json +2 -2
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.dbg.json +1 -1
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/Ape/sAPE.sol/sAPE.json +2 -2
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/AuraEthxBbAWethSY.sol/AuraEthxBbAWethSY.dbg.json +1 -1
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/AuraEthxBbAWethSY.sol/AuraEthxBbAWethSY.json +2 -2
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/AuraSwEthBbAWethSYV2.sol/AuraSwEthBbAWethSYV2.dbg.json +1 -1
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/AuraSwEthBbAWethSYV2.sol/AuraSwEthBbAWethSYV2.json +2 -2
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.dbg.json +1 -1
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraBbAWethSwethSY.sol/PendleAuraBbAWethSwethSY.json +2 -2
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.dbg.json +1 -1
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethAnkrethSYV2.sol/PendleAuraWethAnkrethSYV2.json +2 -2
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.dbg.json +1 -1
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethRocketEthSYV2.sol/PendleAuraWethRocketEthSYV2.json +2 -2
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.dbg.json +1 -1
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethStafiEthSY.sol/PendleAuraWethStafiEthSY.json +2 -2
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethVethSY.sol/PendleAuraWethVethSY.dbg.json +1 -1
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethVethSY.sol/PendleAuraWethVethSY.json +2 -2
  79. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.dbg.json +1 -1
  80. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWethWstethSYV2.sol/PendleAuraWethWstethSYV2.json +2 -2
  81. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWstethAnkreth.sol/PendleAuraWstethAnkreth.dbg.json +1 -1
  82. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/PendleAuraWstethAnkreth.sol/PendleAuraWstethAnkreth.json +2 -2
  83. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.dbg.json +1 -1
  84. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStableMath.sol/ComposableStableMath.json +2 -2
  85. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreview.sol/ComposableStablePreview.dbg.json +1 -1
  86. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreviewProxy.sol/ComposableStablePreviewProxy.dbg.json +1 -1
  87. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreviewV4.sol/ComposableStablePreviewV4.dbg.json +1 -1
  88. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/ComposableStable/ComposableStablePreviewV5.sol/ComposableStablePreviewV5.dbg.json +1 -1
  89. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.dbg.json +1 -1
  90. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/FixedPoint.sol/FixedPoint.json +2 -2
  91. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAPoolHelper.dbg.json +1 -1
  92. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/BbAPoolHelper.sol/BbAWethHelper.dbg.json +1 -1
  93. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol/LinearMath.dbg.json +1 -1
  94. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearMath.sol/LinearMath.json +2 -2
  95. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol/LinearPreview.dbg.json +1 -1
  96. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/Linear/LinearPreview.sol/LinearPreview.json +2 -2
  97. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.dbg.json +1 -1
  98. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStableMath.sol/MetaStableMath.json +2 -2
  99. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/MetaStable/MetaStablePreview.sol/MetaStablePreview.dbg.json +1 -1
  100. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/PendleAuraBalancerStableLPSYV2.sol/PendleAuraBalancerStableLPSYV2.dbg.json +1 -1
  101. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.dbg.json +1 -1
  102. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePoolUserData.sol/StablePoolUserData.json +2 -2
  103. package/build/artifacts/contracts/core/StandardizedYield/implementations/BalancerStable/base/StablePreviewBase.sol/StablePreviewBase.dbg.json +1 -1
  104. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  105. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  106. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  107. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  108. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotRewardHelper.sol/CamelotRewardHelper.dbg.json +1 -1
  109. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotRewardHelper.sol/CamelotRewardHelper.json +2 -2
  110. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileCommon.sol/CamelotV1VolatileCommon.dbg.json +1 -1
  111. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileCommon.sol/CamelotV1VolatileCommon.json +2 -2
  112. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatileLpHelper.sol/CamelotV1VolatileLpHelper.dbg.json +1 -1
  113. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatilePreview.sol/CamelotV1VolatilePreview.dbg.json +1 -1
  114. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/CamelotV1VolatilePreview.sol/CamelotV1VolatilePreview.json +2 -2
  115. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.dbg.json +1 -1
  116. package/build/artifacts/contracts/core/StandardizedYield/implementations/CamelotV1Volatile/PendleCamelotV1VolatileSY.sol/PendleCamelotV1VolatileSY.json +2 -2
  117. package/build/artifacts/contracts/core/StandardizedYield/implementations/ChainlinkRelayer/PendleChainlinkReceiver.sol/PendleChainlinkReceiver.dbg.json +1 -1
  118. package/build/artifacts/contracts/core/StandardizedYield/implementations/ChainlinkRelayer/PendleChainlinkReceiver.sol/PendleChainlinkReceiver.json +2 -2
  119. package/build/artifacts/contracts/core/StandardizedYield/implementations/ChainlinkRelayer/PendleChainlinkRelayer.sol/PendleChainlinkRelayer.dbg.json +1 -1
  120. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +1 -1
  121. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +2 -2
  122. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +1 -1
  123. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +2 -2
  124. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +1 -1
  125. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.json +2 -2
  126. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +1 -1
  127. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.json +2 -2
  128. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +1 -1
  129. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.json +2 -2
  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/PendleGlpSY.sol/PendleGlpSY.dbg.json +1 -1
  137. package/build/artifacts/contracts/core/StandardizedYield/implementations/GLP/PendleGlpSY.sol/PendleGlpSY.json +2 -2
  138. package/build/artifacts/contracts/core/StandardizedYield/implementations/HMX/HLPPricingHelper.sol/HLPPricingHelper.dbg.json +1 -1
  139. package/build/artifacts/contracts/core/StandardizedYield/implementations/HMX/PendleHlpSY.sol/PendleHlpSY.dbg.json +1 -1
  140. package/build/artifacts/contracts/core/StandardizedYield/implementations/HMX/PendleHlpSY.sol/PendleHlpSY.json +2 -2
  141. package/build/artifacts/contracts/core/StandardizedYield/implementations/MantleStakedEth/PendleMantleStakedEthSY.sol/PendleMantleStakedEthSY.dbg.json +1 -1
  142. package/build/artifacts/contracts/core/StandardizedYield/implementations/MantleStakedEth/PendleMantleStakedEthSY.sol/PendleMantleStakedEthSY.json +2 -2
  143. package/build/artifacts/contracts/core/StandardizedYield/implementations/MantleStakedEth/PendleOracleForSyProxy.sol/PendleOracleForSyProxy.dbg.json +1 -1
  144. package/build/artifacts/contracts/core/StandardizedYield/implementations/MantleStakedEth/PendleOracleForSyProxy.sol/PendleOracleForSyProxy.json +2 -2
  145. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleArbitrumStakedEthSY.sol/PendleArbitrumStakedEthSY.dbg.json +1 -1
  146. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleArbitrumStakedEthSY.sol/PendleArbitrumStakedEthSY.json +2 -2
  147. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleBridgedLSDSY.sol/PendleBridgedLSDSY.dbg.json +1 -1
  148. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleBridgedLSDSY.sol/PendleBridgedLSDSY.json +2 -2
  149. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626SY.sol/PendleERC4626SY.dbg.json +1 -1
  150. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleERC4626SY.sol/PendleERC4626SY.json +2 -2
  151. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleEUSDSY.sol/PendleEUSDSY.dbg.json +1 -1
  152. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleEUSDSY.sol/PendleEUSDSY.json +2 -2
  153. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.dbg.json +1 -1
  154. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleGdaiSY.sol/PendleGDaiSY.json +2 -2
  155. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +1 -1
  156. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +2 -2
  157. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.dbg.json +1 -1
  158. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleSfrxEthSY.sol/PendleSfrxEthSY.json +2 -2
  159. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.dbg.json +1 -1
  160. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleStargateLPSY.sol/PendleStargateLPSY.json +2 -2
  161. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWbEthSY.sol/PendleWbEthSY.dbg.json +1 -1
  162. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWbEthSY.sol/PendleWbEthSY.json +2 -2
  163. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  164. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  165. package/build/artifacts/contracts/core/StandardizedYield/implementations/Stader/PendleETHXSY.sol/PendleETHXSY.dbg.json +1 -1
  166. package/build/artifacts/contracts/core/StandardizedYield/implementations/Stader/PendleETHXSY.sol/PendleETHXSY.json +2 -2
  167. package/build/artifacts/contracts/core/StandardizedYield/implementations/Swell/PendleSwETH.sol/SwETHSY.dbg.json +1 -1
  168. package/build/artifacts/contracts/core/StandardizedYield/implementations/Swell/PendleSwETH.sol/SwETHSY.json +2 -2
  169. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/PendleThenaSY.sol/PendleThenaSY.dbg.json +1 -1
  170. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/PendleThenaSY.sol/PendleThenaSY.json +2 -2
  171. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/ThenaLpHelper.sol/ThenaLpHelper.dbg.json +1 -1
  172. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/ThenaMath.sol/ThenaMath.dbg.json +1 -1
  173. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/ThenaPreview.sol/IThenaSY.dbg.json +1 -1
  174. package/build/artifacts/contracts/core/StandardizedYield/implementations/Thena/ThenaPreview.sol/ThenaPreview.dbg.json +1 -1
  175. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  176. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  177. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +2 -2
  178. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  179. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +2 -2
  180. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  181. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +2 -2
  182. package/build/artifacts/contracts/core/YieldContractsV2/InterestManagerYTV2.sol/InterestManagerYTV2.dbg.json +1 -1
  183. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.dbg.json +1 -1
  184. package/build/artifacts/contracts/core/YieldContractsV2/PendlePrincipalTokenV2.sol/PendlePrincipalTokenV2.json +2 -2
  185. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.dbg.json +1 -1
  186. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldContractFactoryV2.sol/PendleYieldContractFactoryV2.json +2 -2
  187. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.dbg.json +1 -1
  188. package/build/artifacts/contracts/core/YieldContractsV2/PendleYieldTokenV2.sol/PendleYieldTokenV2.json +2 -2
  189. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  190. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.json +2 -2
  191. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  192. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.json +2 -2
  193. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.dbg.json +1 -1
  194. package/build/artifacts/contracts/core/libraries/ArrayLib.sol/ArrayLib.json +2 -2
  195. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  196. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.json +2 -2
  197. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  198. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.json +2 -2
  199. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  200. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  201. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +2 -2
  202. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  203. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +9 -162
  204. package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.dbg.json +1 -1
  205. package/build/artifacts/contracts/core/libraries/ExpiryUtilsLib.sol/ExpiryUtils.json +2 -2
  206. package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.dbg.json +1 -1
  207. package/build/artifacts/contracts/core/libraries/MiniHelpers.sol/MiniHelpers.json +2 -2
  208. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +1 -1
  209. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.json +2 -2
  210. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  211. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.dbg.json +1 -1
  212. package/build/artifacts/contracts/core/libraries/math/LogExpMath.sol/LogExpMath.json +2 -2
  213. package/build/artifacts/contracts/core/libraries/math/PMath.sol/PMath.dbg.json +1 -1
  214. package/build/artifacts/contracts/core/libraries/math/PMath.sol/PMath.json +2 -2
  215. package/build/artifacts/contracts/interfaces/Ankr/IAnkrBNB.sol/IAnkrBNB.dbg.json +1 -1
  216. package/build/artifacts/contracts/interfaces/Ankr/IAnkrLiquidStaking.sol/IAnkrLiquidStaking.dbg.json +1 -1
  217. package/build/artifacts/contracts/interfaces/Balancer/IAsset.sol/IAsset.dbg.json +1 -1
  218. package/build/artifacts/contracts/interfaces/Balancer/IBalancerFees.sol/IBalancerFees.dbg.json +1 -1
  219. package/build/artifacts/contracts/interfaces/Balancer/IBalancerStablePreview.sol/IBalancerStablePreview.dbg.json +1 -1
  220. package/build/artifacts/contracts/interfaces/Balancer/IBasePool.sol/IBasePool.dbg.json +1 -1
  221. package/build/artifacts/contracts/interfaces/Balancer/IComposableStable.sol/IComposableStable.dbg.json +1 -1
  222. package/build/artifacts/contracts/interfaces/Balancer/IERC4626LinearPool.sol/IERC4626LinearPool.dbg.json +1 -1
  223. package/build/artifacts/contracts/interfaces/Balancer/IGauge.sol/IGauge.dbg.json +1 -1
  224. package/build/artifacts/contracts/interfaces/Balancer/ILiquidityGaugeFactory.sol/ILiquidityGaugeFactory.dbg.json +1 -1
  225. package/build/artifacts/contracts/interfaces/Balancer/IMetaStablePool.sol/IMetaStablePool.dbg.json +1 -1
  226. package/build/artifacts/contracts/interfaces/Balancer/IPComposableStablePreview.sol/IPComposableStablePreview.dbg.json +1 -1
  227. package/build/artifacts/contracts/interfaces/Balancer/IRateProvider.sol/IRateProvider.dbg.json +1 -1
  228. package/build/artifacts/contracts/interfaces/Balancer/IVault.sol/IVault.dbg.json +1 -1
  229. package/build/artifacts/contracts/interfaces/Balancer/IVersion.sol/IVersion.dbg.json +1 -1
  230. package/build/artifacts/contracts/interfaces/BinanceEth/IWBETH.sol/IWBETH.dbg.json +1 -1
  231. package/build/artifacts/contracts/interfaces/Camelot/ICamelotFactory.sol/ICamelotFactory.dbg.json +1 -1
  232. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTFactory.sol/ICamelotNFTFactory.dbg.json +1 -1
  233. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTHandler.sol/ICamelotNFTHandler.dbg.json +1 -1
  234. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNFTPool.sol/ICamelotNFTPool.dbg.json +1 -1
  235. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPool.sol/ICamelotNitroPool.dbg.json +1 -1
  236. package/build/artifacts/contracts/interfaces/Camelot/ICamelotNitroPoolFactory.sol/ICamelotNitroPoolFactory.dbg.json +1 -1
  237. package/build/artifacts/contracts/interfaces/Camelot/ICamelotPair.sol/ICamelotPair.dbg.json +1 -1
  238. package/build/artifacts/contracts/interfaces/Camelot/ICamelotRouter.sol/ICamelotRouter.dbg.json +1 -1
  239. package/build/artifacts/contracts/interfaces/Camelot/ICamelotYieldBooster.sol/ICamelotYieldBooster.dbg.json +1 -1
  240. package/build/artifacts/contracts/interfaces/Camelot/IXGrail.sol/IXGrail.dbg.json +1 -1
  241. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
  242. package/build/artifacts/contracts/interfaces/ConvexCurve/ICrvDepositor.sol/ICrvDepositor.dbg.json +1 -1
  243. package/build/artifacts/contracts/interfaces/ConvexCurve/ICvxCrv.sol/ICvxCrv.dbg.json +1 -1
  244. package/build/artifacts/contracts/interfaces/ConvexCurve/IRewards.sol/IRewards.dbg.json +1 -1
  245. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  246. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +1 -1
  247. package/build/artifacts/contracts/interfaces/Flux/IFluxErc20.sol/IFluxErc20.dbg.json +1 -1
  248. package/build/artifacts/contracts/interfaces/Flux/IFluxInterestRateModel.sol/IFluxInterestRateModel.dbg.json +1 -1
  249. package/build/artifacts/contracts/interfaces/Frax/IFrxEthMinter.sol/IFrxEthMinter.dbg.json +1 -1
  250. package/build/artifacts/contracts/interfaces/GMX/IGMXVault.sol/IGMXVault.dbg.json +1 -1
  251. package/build/artifacts/contracts/interfaces/GMX/IGlpManager.sol/IGlpManager.dbg.json +1 -1
  252. package/build/artifacts/contracts/interfaces/GMX/IRewardRouterV2.sol/IRewardRouterV2.dbg.json +1 -1
  253. package/build/artifacts/contracts/interfaces/GMX/IVaultPriceFeed.sol/IVaultPriceFeed.dbg.json +1 -1
  254. package/build/artifacts/contracts/interfaces/HMX/IHLPStaking.sol/IHLPStaking.dbg.json +1 -1
  255. package/build/artifacts/contracts/interfaces/HMX/IHMXCalculator.sol/IHMXCalculator.dbg.json +1 -1
  256. package/build/artifacts/contracts/interfaces/HMX/IHMXCompounder.sol/IHMXCompounder.dbg.json +1 -1
  257. package/build/artifacts/contracts/interfaces/HMX/IHMXStaking.sol/IHMXStaking.dbg.json +1 -1
  258. package/build/artifacts/contracts/interfaces/HMX/IHMXVester.sol/IHMXVester.dbg.json +1 -1
  259. package/build/artifacts/contracts/interfaces/IAddressProvider.sol/IAddressProvider.dbg.json +1 -1
  260. package/build/artifacts/contracts/interfaces/IApeStaking.sol/IApeStaking.dbg.json +1 -1
  261. package/build/artifacts/contracts/interfaces/IBenQiComptroller.sol/IBenQiComptroller.dbg.json +1 -1
  262. package/build/artifacts/contracts/interfaces/IBenQiInterestRateModel.sol/IBenQiInterestRateModel.dbg.json +1 -1
  263. package/build/artifacts/contracts/interfaces/IDailLikePermit.sol/IDaiLikePermit.dbg.json +4 -0
  264. package/build/artifacts/contracts/interfaces/IDailLikePermit.sol/IDaiLikePermit.json +59 -0
  265. package/build/artifacts/contracts/interfaces/IDiamondCut.sol/IDiamondCut.dbg.json +1 -1
  266. package/build/artifacts/contracts/interfaces/IDiamondLoupe.sol/IDiamondLoupe.dbg.json +1 -1
  267. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  268. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +1 -1
  269. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +1 -1
  270. package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.dbg.json +1 -1
  271. package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.dbg.json +1 -1
  272. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  273. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +1050 -30
  274. package/build/artifacts/contracts/interfaces/IPActionInfoStatic.sol/IPActionInfoStatic.dbg.json +1 -1
  275. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  276. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.dbg.json +1 -1
  277. package/build/artifacts/contracts/interfaces/IPActionMarketCoreStatic.sol/IPActionMarketCoreStatic.json +0 -45
  278. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.dbg.json +1 -1
  279. package/build/artifacts/contracts/interfaces/IPActionMintRedeemStatic.sol/IPActionMintRedeemStatic.json +0 -69
  280. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.dbg.json +1 -1
  281. package/build/artifacts/contracts/interfaces/IPActionMisc.sol/IPActionMisc.json +734 -1
  282. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  283. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.json +0 -26
  284. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  285. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +688 -108
  286. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  287. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +688 -108
  288. package/build/artifacts/contracts/interfaces/IPActionVePendleStatic.sol/IPActionVePendleStatic.dbg.json +1 -1
  289. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  290. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +2550 -331
  291. package/build/artifacts/contracts/interfaces/IPExternalRewardDistributor.sol/IPExternalRewardDistributor.dbg.json +1 -1
  292. package/build/artifacts/contracts/interfaces/IPFeeDistributor.sol/IPFeeDistributor.dbg.json +1 -1
  293. package/build/artifacts/contracts/interfaces/IPFeeDistributorV2.sol/IPFeeDistributorV2.dbg.json +1 -1
  294. package/build/artifacts/contracts/interfaces/IPGauge.sol/IPGauge.dbg.json +1 -1
  295. package/build/artifacts/contracts/interfaces/IPGaugeController.sol/IPGaugeController.dbg.json +1 -1
  296. package/build/artifacts/contracts/interfaces/IPGaugeControllerMainchain.sol/IPGaugeControllerMainchain.dbg.json +1 -1
  297. package/build/artifacts/contracts/interfaces/IPInterestManagerYT.sol/IPInterestManagerYT.dbg.json +1 -1
  298. package/build/artifacts/contracts/interfaces/IPInterestManagerYTV2.sol/IPInterestManagerYTV2.dbg.json +1 -1
  299. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/ILimitOrderCallee.dbg.json +4 -0
  300. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/ILimitOrderCallee.json +77 -0
  301. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.dbg.json +4 -0
  302. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.json +779 -0
  303. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPOrderMixin.dbg.json +4 -0
  304. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPOrderMixin.json +544 -0
  305. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPOrderMixinType.dbg.json +4 -0
  306. package/build/artifacts/contracts/{router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json → interfaces/IPLimitRouter.sol/IPOrderMixinType.json} +2 -2
  307. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  308. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  309. package/build/artifacts/contracts/interfaces/IPMarketFactoryV2.sol/IPMarketFactoryV2.dbg.json +1 -1
  310. package/build/artifacts/contracts/interfaces/IPMarketSwapCallback.sol/IPMarketSwapCallback.dbg.json +1 -1
  311. package/build/artifacts/contracts/interfaces/IPMiniDiamond.sol/IPMiniDiamond.dbg.json +1 -1
  312. package/build/artifacts/contracts/interfaces/IPMsgReceiverApp.sol/IPMsgReceiverApp.dbg.json +1 -1
  313. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  314. package/build/artifacts/contracts/interfaces/IPOracleForSy.sol/IPOracleForSy.dbg.json +1 -1
  315. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  316. package/build/artifacts/contracts/interfaces/IPPtOracle.sol/IPPtOracle.dbg.json +1 -1
  317. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.dbg.json +1 -1
  318. package/build/artifacts/contracts/interfaces/IPRouterHelper.sol/IPRouterHelper.json +0 -25
  319. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  320. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +0 -140
  321. package/build/artifacts/contracts/interfaces/IPVeToken.sol/IPVeToken.dbg.json +1 -1
  322. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  323. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  324. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  325. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  326. package/build/artifacts/contracts/interfaces/IPYieldTokenV2.sol/IPYieldTokenV2.dbg.json +1 -1
  327. package/build/artifacts/contracts/interfaces/IPendlePreviewHelper.sol/IPendlePreviewHelper.dbg.json +1 -1
  328. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  329. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  330. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  331. package/build/artifacts/contracts/interfaces/IRewardManager.sol/IRewardManager.dbg.json +1 -1
  332. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  333. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  334. package/build/artifacts/contracts/interfaces/IStargateLP.sol/IStargateLP.dbg.json +1 -1
  335. package/build/artifacts/contracts/interfaces/IStargateRouter.sol/IStargateRouter.dbg.json +1 -1
  336. package/build/artifacts/contracts/interfaces/IStargateStaking.sol/IStargateStaking.dbg.json +1 -1
  337. package/build/artifacts/contracts/interfaces/ISwETH.sol/ISwETH.dbg.json +1 -1
  338. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  339. package/build/artifacts/contracts/interfaces/IWstETH.sol/IWstETH.dbg.json +1 -1
  340. package/build/artifacts/contracts/interfaces/Lybra/IEUSD.sol/IEUSD.dbg.json +1 -1
  341. package/build/artifacts/contracts/interfaces/Stader/IStaderStakeManager.sol/IStaderStakeManager.dbg.json +1 -1
  342. package/build/artifacts/contracts/interfaces/Thena/IThenaFactory.sol/IThenaFactory.dbg.json +1 -1
  343. package/build/artifacts/contracts/interfaces/Thena/IThenaGaugeV2.sol/IThenaGaugeV2.dbg.json +1 -1
  344. package/build/artifacts/contracts/interfaces/Thena/IThenaPair.sol/IThenaPair.dbg.json +1 -1
  345. package/build/artifacts/contracts/interfaces/Thena/IThenaRouter.sol/IThenaRouter.dbg.json +1 -1
  346. package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.dbg.json +4 -0
  347. package/build/artifacts/contracts/{core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json → limit/LimitMathCore.sol/LimitMathCore.json} +4 -4
  348. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.dbg.json +4 -0
  349. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.json +910 -0
  350. package/build/artifacts/contracts/limit/PendleOrderMixin.sol/PendleOrderMixin.dbg.json +4 -0
  351. package/build/artifacts/contracts/limit/PendleOrderMixin.sol/PendleOrderMixin.json +760 -0
  352. package/build/artifacts/contracts/limit/helpers/ArgumentsDecoder.sol/ArgumentsDecoder.dbg.json +4 -0
  353. package/build/artifacts/contracts/limit/helpers/ArgumentsDecoder.sol/ArgumentsDecoder.json +10 -0
  354. package/build/artifacts/contracts/limit/helpers/NonceManager.sol/NonceManager.dbg.json +4 -0
  355. package/build/artifacts/contracts/limit/helpers/NonceManager.sol/NonceManager.json +99 -0
  356. package/build/artifacts/contracts/limit/helpers/Permitable.sol/Permitable.dbg.json +4 -0
  357. package/build/artifacts/contracts/limit/helpers/Permitable.sol/Permitable.json +10 -0
  358. package/build/artifacts/contracts/limit/helpers/RevertReasonParser.sol/RevertReasonParser.dbg.json +4 -0
  359. package/build/artifacts/contracts/limit/helpers/RevertReasonParser.sol/RevertReasonParser.json +10 -0
  360. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.dbg.json +1 -1
  361. package/build/artifacts/contracts/offchain-helpers/AddressProvider.sol/AddressProvider.json +2 -2
  362. package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/AutomateReady.dbg.json +1 -1
  363. package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/IAutomate.dbg.json +1 -1
  364. package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/IOpsProxyFactory.dbg.json +1 -1
  365. package/build/artifacts/contracts/offchain-helpers/AutomateReady.sol/ITaskTreasuryUpgradable.dbg.json +1 -1
  366. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  367. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.json +2 -2
  368. package/build/artifacts/contracts/offchain-helpers/BoringLpSeller.sol/BoringLpSeller.dbg.json +1 -1
  369. package/build/artifacts/contracts/offchain-helpers/BoringPtSeller.sol/BoringPtSeller.dbg.json +1 -1
  370. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.dbg.json +1 -1
  371. package/build/artifacts/contracts/offchain-helpers/Broadcaster.sol/Broadcaster.json +2 -2
  372. package/build/artifacts/contracts/offchain-helpers/ChainlinkRelayerAutomation.sol/ChainlinkRelayerAutomation.dbg.json +1 -1
  373. package/build/artifacts/contracts/offchain-helpers/ChainlinkRelayerAutomation.sol/ChainlinkRelayerAutomation.json +2 -2
  374. package/build/artifacts/contracts/offchain-helpers/ChainlinkRelayerGelato.sol/ChainlinkRelayerGelato.dbg.json +1 -1
  375. package/build/artifacts/contracts/offchain-helpers/ChainlinkRelayerGelato.sol/ChainlinkRelayerGelato.json +2 -2
  376. package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.dbg.json +1 -1
  377. package/build/artifacts/contracts/offchain-helpers/EmptyUUPS.sol/EmptyUUPS.json +2 -2
  378. package/build/artifacts/contracts/offchain-helpers/LegacyNFTHelper.sol/LegacyNFTHelper.dbg.json +1 -1
  379. package/build/artifacts/contracts/offchain-helpers/LegacyNFTHelper.sol/LegacyNFTHelper.json +2 -2
  380. package/build/artifacts/contracts/offchain-helpers/LegacyNFTHelper.sol/StarNFTV1.dbg.json +1 -1
  381. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.dbg.json +1 -1
  382. package/build/artifacts/contracts/offchain-helpers/MarketExchangeRateLib.sol/MarketExchangeRateLib.json +2 -2
  383. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.dbg.json +1 -1
  384. package/build/artifacts/contracts/offchain-helpers/Multicall2.sol/Multicall2.json +2 -2
  385. package/build/artifacts/contracts/offchain-helpers/PendleMulticallV1.sol/PendleMulticallV1.dbg.json +1 -1
  386. package/build/artifacts/contracts/offchain-helpers/PendleMulticallV1.sol/PendleMulticallV1.json +2 -2
  387. package/build/artifacts/contracts/offchain-helpers/PendleMulticallV2.sol/PendleMulticallV2.dbg.json +1 -1
  388. package/build/artifacts/contracts/offchain-helpers/PendleMulticallV2.sol/PendleMulticallV2.json +2 -2
  389. package/build/artifacts/contracts/offchain-helpers/PtAndLpToAsset.sol/PtAndLpToAsset.dbg.json +1 -1
  390. package/build/artifacts/contracts/offchain-helpers/PtAndLpToAsset.sol/PtAndLpToAsset.json +2 -2
  391. package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.dbg.json +1 -1
  392. package/build/artifacts/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol/SDKErrorsDirectory.json +2 -171
  393. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  394. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  395. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  396. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  397. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  398. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  399. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  400. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -47
  401. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  402. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -103
  403. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  404. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -28
  405. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  406. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  407. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  408. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.dbg.json +1 -1
  409. package/build/artifacts/contracts/oracles/PendleLpOracleLib.sol/PendleLpOracleLib.json +2 -2
  410. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.dbg.json +1 -1
  411. package/build/artifacts/contracts/oracles/PendlePtOracle.sol/PendlePtOracle.json +2 -2
  412. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.dbg.json +1 -1
  413. package/build/artifacts/contracts/oracles/PendlePtOracleLib.sol/PendlePtOracleLib.json +2 -2
  414. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.dbg.json +1 -1
  415. package/build/artifacts/contracts/oracles/samples/PendleLpGlpOracle.sol/PendleLpGlpOracle.json +2 -2
  416. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.dbg.json +1 -1
  417. package/build/artifacts/contracts/oracles/samples/PendlePtGlpOracle.sol/PendlePtGlpOracle.json +2 -2
  418. package/build/artifacts/contracts/oracles/samples/PendlePtUsdChainlinkOracle.sol/PendlePtUsdChainlinkOracle.dbg.json +1 -1
  419. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  420. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +1052 -32
  421. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  422. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +878 -3
  423. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  424. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +730 -163
  425. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  426. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +730 -169
  427. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  428. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +2 -18
  429. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.dbg.json +1 -1
  430. package/build/artifacts/contracts/router/PendleRouterHelper.sol/PendleRouterHelper.json +3 -33
  431. package/build/artifacts/contracts/router/PendleRouterHelper.sol/RouterV2InterfaceForRouterHelper.dbg.json +4 -0
  432. package/build/artifacts/contracts/{interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json → router/PendleRouterHelper.sol/RouterV2InterfaceForRouterHelper.json} +113 -352
  433. package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +4 -0
  434. package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.json +10 -0
  435. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.dbg.json +1 -1
  436. package/build/artifacts/contracts/router/base/ActionBaseCallback.sol/ActionBaseCallback.json +0 -59
  437. package/build/artifacts/contracts/router/base/CallbackHelper.sol/CallbackHelper.dbg.json +1 -1
  438. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  439. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  440. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  441. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  442. package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
  443. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
  444. package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +2 -2
  445. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IAggregationExecutor.sol/IAggregationExecutor.dbg.json +1 -1
  446. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IExecutorHelper.sol/IExecutorHelper.dbg.json +1 -1
  447. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/IMetaAggregationRouterV2.sol/IMetaAggregationRouterV2.dbg.json +1 -1
  448. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/KyberInputScalingHelper.sol/KyberInputScalingHelper.dbg.json +1 -1
  449. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScalingDataLib.sol/ScalingDataLib.dbg.json +1 -1
  450. package/build/artifacts/contracts/router/swap-aggregator/kyberswap/ScalingDataLib.sol/ScalingDataLib.json +2 -2
  451. package/build/artifacts/contracts/router/swap-aggregator/oneinch/I1inchAggregationRouterV5.sol/I1inchAggregationRouterV5.dbg.json +1 -1
  452. package/build/artifacts/contracts/router/swap-aggregator/oneinch/OneInchAggregationRouterHelper.sol/OneInchAggregationRouterHelper.dbg.json +1 -1
  453. package/contracts/core/Market/PendleMarketFactory.sol +21 -27
  454. package/contracts/core/libraries/Errors.sol +4 -21
  455. package/contracts/core/libraries/TokenHelper.sol +7 -7
  456. package/contracts/interfaces/IDailLikePermit.sol +17 -0
  457. package/contracts/interfaces/IPActionAddRemoveLiq.sol +16 -18
  458. package/contracts/interfaces/IPActionMarketCoreStatic.sol +20 -118
  459. package/contracts/interfaces/IPActionMintRedeemStatic.sol +17 -47
  460. package/contracts/interfaces/IPActionMisc.sol +88 -1
  461. package/contracts/interfaces/IPActionStorageStatic.sol +1 -8
  462. package/contracts/interfaces/IPActionSwapPT.sol +9 -20
  463. package/contracts/interfaces/IPActionSwapYT.sol +10 -21
  464. package/contracts/interfaces/IPAllAction.sol +0 -2
  465. package/contracts/interfaces/IPAllActionType.sol +33 -0
  466. package/contracts/interfaces/IPLimitRouter.sol +162 -0
  467. package/contracts/interfaces/IPMarketFactory.sol +2 -0
  468. package/contracts/interfaces/IPRouterHelper.sol +11 -45
  469. package/contracts/limit/LimitMathCore.sol +208 -0
  470. package/contracts/limit/PendleLimitRouter.sol +72 -0
  471. package/contracts/limit/PendleOrderMixin.sol +526 -0
  472. package/contracts/limit/helpers/ArgumentsDecoder.sol +47 -0
  473. package/contracts/limit/helpers/NonceManager.sol +28 -0
  474. package/contracts/limit/helpers/Permitable.sol +48 -0
  475. package/contracts/limit/helpers/RevertReasonParser.sol +75 -0
  476. package/contracts/offchain-helpers/AddressProvider.sol +1 -1
  477. package/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol +5 -18
  478. package/contracts/offchain-helpers/Broadcaster.sol +3 -3
  479. package/contracts/offchain-helpers/ChainlinkRelayerAutomation.sol +6 -13
  480. package/contracts/offchain-helpers/ChainlinkRelayerGelato.sol +5 -4
  481. package/contracts/offchain-helpers/EmptyUUPS.sol +2 -1
  482. package/contracts/offchain-helpers/PendleMulticallV1.sol +9 -11
  483. package/contracts/offchain-helpers/PendleMulticallV2.sol +1 -1
  484. package/contracts/offchain-helpers/errors/SDKErrorsDirectory.sol +2 -19
  485. package/contracts/offchain-helpers/router-static/PendleRouterStatic.sol +1 -1
  486. package/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol +5 -18
  487. package/contracts/offchain-helpers/router-static/base/ActionLimitOrdersStatic.sol +145 -0
  488. package/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol +29 -82
  489. package/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol +82 -288
  490. package/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol +37 -108
  491. package/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol +4 -16
  492. package/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol +8 -10
  493. package/contracts/offchain-helpers/router-static/base/StorageLayout.sol +1 -4
  494. package/contracts/router/ActionAddRemoveLiq.sol +225 -440
  495. package/contracts/router/ActionMisc.sol +134 -14
  496. package/contracts/router/ActionSwapPT.sol +35 -195
  497. package/contracts/router/ActionSwapYT.sol +127 -288
  498. package/contracts/router/PendleRouter.sol +104 -128
  499. package/contracts/router/PendleRouterHelper.sol +100 -186
  500. package/contracts/router/base/ActionBase.sol +238 -0
  501. package/contracts/router/base/ActionBaseCallback.sol +25 -124
  502. package/contracts/router/base/CallbackHelper.sol +31 -110
  503. package/contracts/router/base/MarketApproxLib.sol +143 -176
  504. package/contracts/router/swap-aggregator/PendleSwap.sol +9 -20
  505. package/deployments/42161-core.json +4 -2
  506. package/package.json +4 -4
  507. package/typechain-types/ActionAddRemoveLiq.ts +151 -26
  508. package/typechain-types/ActionLimitOrdersStatic.ts +262 -0
  509. package/typechain-types/ActionMarketCoreStatic.ts +18 -63
  510. package/typechain-types/ActionMintRedeem.ts +4 -10
  511. package/typechain-types/ActionMintRedeemStatic.ts +10 -102
  512. package/typechain-types/ActionMisc.ts +732 -11
  513. package/typechain-types/ActionStorageStatic.ts +0 -55
  514. package/typechain-types/ActionSwapPT.ts +119 -121
  515. package/typechain-types/ActionSwapYT.ts +124 -126
  516. package/typechain-types/AuraWethVethSYUpg.ts +1547 -0
  517. package/typechain-types/EIP712Upgradeable.ts +68 -0
  518. package/typechain-types/IDaiLikePermit.ts +146 -0
  519. package/typechain-types/IKyberElasticFactory.ts +734 -0
  520. package/typechain-types/IKyberElasticPool.ts +514 -0
  521. package/typechain-types/IKyberElasticRouter.ts +315 -0
  522. package/typechain-types/IKyberLiquidityMining.ts +968 -0
  523. package/typechain-types/IKyberMathHelper.ts +231 -0
  524. package/typechain-types/IKyberPositionManager.ts +773 -0
  525. package/typechain-types/ILimitOrderCallee.ts +179 -0
  526. package/typechain-types/IPActionAddRemoveLiq.ts +151 -26
  527. package/typechain-types/IPActionMarketCoreStatic.ts +18 -63
  528. package/typechain-types/IPActionMintRedeem.ts +4 -10
  529. package/typechain-types/IPActionMintRedeemStatic.ts +10 -102
  530. package/typechain-types/IPActionMisc.ts +688 -11
  531. package/typechain-types/IPActionStorageStatic.ts +0 -55
  532. package/typechain-types/IPActionSwapPT.ts +119 -121
  533. package/typechain-types/IPActionSwapYT.ts +124 -126
  534. package/typechain-types/IPAllAction.ts +355 -284
  535. package/typechain-types/IPLimitRouter.ts +702 -0
  536. package/typechain-types/IPOrderMixin.ts +479 -0
  537. package/typechain-types/IPRouterHelper.ts +6 -19
  538. package/typechain-types/IPRouterStatic.ts +28 -220
  539. package/typechain-types/KyberMathHelper.ts +604 -0
  540. package/typechain-types/KyberNftManagerBaseUpg.ts +148 -0
  541. package/typechain-types/NonceManager.ts +209 -0
  542. package/typechain-types/PendleAuraBalancerStableLPSYV3Upg.ts +1512 -0
  543. package/typechain-types/PendleERC20PermitUpg.ts +452 -0
  544. package/typechain-types/PendleERC20Upg.ts +348 -0
  545. package/typechain-types/PendleKyberElasticSY.ts +1583 -0
  546. package/typechain-types/PendleLimitRouter.ts +1041 -0
  547. package/typechain-types/PendleOrderMixin.ts +818 -0
  548. package/typechain-types/PendleRouterHelper.ts +7 -23
  549. package/typechain-types/PredicateHelper.ts +298 -0
  550. package/typechain-types/RouterV2InterfaceForRouterHelper.ts +479 -0
  551. package/typechain-types/SYBaseUpg.ts +1205 -0
  552. package/typechain-types/SYBaseWithRewardsUpg.ts +1298 -0
  553. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +1051 -31
  554. package/typechain-types/factories/ActionBaseCallback__factory.ts +0 -59
  555. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  556. package/typechain-types/factories/ActionLimitOrdersStatic__factory.ts +499 -0
  557. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  558. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -46
  559. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -102
  560. package/typechain-types/factories/ActionMintRedeem__factory.ts +1 -21
  561. package/typechain-types/factories/ActionMisc__factory.ts +877 -2
  562. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -27
  563. package/typechain-types/factories/ActionSwapPT__factory.ts +689 -162
  564. package/typechain-types/factories/ActionSwapYT__factory.ts +692 -186
  565. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  566. package/typechain-types/factories/AddressProvider__factory.ts +1 -1
  567. package/typechain-types/factories/AuraEthxBbAWethSY__factory.ts +1 -1
  568. package/typechain-types/factories/AuraSwEthBbAWethSYV2__factory.ts +1 -1
  569. package/typechain-types/factories/AuraWethVethSYUpg__factory.ts +1215 -0
  570. package/typechain-types/factories/AutomationBase__factory.ts +1 -1
  571. package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +1 -1
  572. package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
  573. package/typechain-types/factories/Broadcaster__factory.ts +1 -1
  574. package/typechain-types/factories/CamelotRewardHelper__factory.ts +1 -1
  575. package/typechain-types/factories/CamelotV1VolatilePreview__factory.ts +1 -1
  576. package/typechain-types/factories/ChainlinkRelayerAutomation__factory.ts +1 -1
  577. package/typechain-types/factories/ChainlinkRelayerGelato__factory.ts +1 -1
  578. package/typechain-types/factories/EIP712Upgradeable__factory.ts +39 -0
  579. package/typechain-types/factories/ERC20__factory.ts +1 -1
  580. package/typechain-types/factories/EmptyUUPS__factory.ts +1 -1
  581. package/typechain-types/factories/Errors__factory.ts +8 -161
  582. package/typechain-types/factories/IDaiLikePermit__factory.ts +74 -0
  583. package/typechain-types/factories/IKyberElasticFactory__factory.ts +455 -0
  584. package/typechain-types/factories/IKyberElasticPool__factory.ts +315 -0
  585. package/typechain-types/factories/IKyberElasticRouter__factory.ts +240 -0
  586. package/typechain-types/factories/IKyberLiquidityMining__factory.ts +913 -0
  587. package/typechain-types/factories/IKyberMathHelper__factory.ts +143 -0
  588. package/typechain-types/factories/IKyberPositionManager__factory.ts +633 -0
  589. package/typechain-types/factories/ILimitOrderCallee__factory.ts +92 -0
  590. package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +1050 -30
  591. package/typechain-types/factories/IPActionMarketCoreStatic__factory.ts +0 -45
  592. package/typechain-types/factories/IPActionMintRedeemStatic__factory.ts +0 -69
  593. package/typechain-types/factories/IPActionMintRedeem__factory.ts +0 -20
  594. package/typechain-types/factories/IPActionMisc__factory.ts +734 -1
  595. package/typechain-types/factories/IPActionStorageStatic__factory.ts +0 -26
  596. package/typechain-types/factories/IPActionSwapPT__factory.ts +688 -108
  597. package/typechain-types/factories/IPActionSwapYT__factory.ts +688 -108
  598. package/typechain-types/factories/IPAllAction__factory.ts +2550 -331
  599. package/typechain-types/factories/IPLimitRouter__factory.ts +791 -0
  600. package/typechain-types/factories/IPOrderMixin__factory.ts +556 -0
  601. package/typechain-types/factories/IPRouterHelper__factory.ts +0 -25
  602. package/typechain-types/factories/IPRouterStatic__factory.ts +0 -140
  603. package/typechain-types/factories/KyberMathHelper__factory.ts +430 -0
  604. package/typechain-types/factories/KyberNftManagerBaseUpg__factory.ts +101 -0
  605. package/typechain-types/factories/LegacyNFTHelper__factory.ts +1 -1
  606. package/typechain-types/factories/LinearPreview__factory.ts +1 -1
  607. package/typechain-types/factories/MetaStableMath__factory.ts +1 -1
  608. package/typechain-types/factories/Multicall2__factory.ts +1 -1
  609. package/typechain-types/factories/NonceManager__factory.ts +149 -0
  610. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  611. package/typechain-types/factories/PendleAnkrBNBSY__factory.ts +1 -1
  612. package/typechain-types/factories/PendleArbitrumStakedEthSY__factory.ts +1 -1
  613. package/typechain-types/factories/PendleAuraBalancerStableLPSYV3Upg__factory.ts +1160 -0
  614. package/typechain-types/factories/PendleAuraBbAWethSwethSY__factory.ts +1 -1
  615. package/typechain-types/factories/PendleAuraWethAnkrethSYV2__factory.ts +1 -1
  616. package/typechain-types/factories/PendleAuraWethRocketEthSYV2__factory.ts +1 -1
  617. package/typechain-types/factories/PendleAuraWethStafiEthSY__factory.ts +1 -1
  618. package/typechain-types/factories/PendleAuraWethVethSY__factory.ts +1 -1
  619. package/typechain-types/factories/PendleAuraWethWstethSYV2__factory.ts +1 -1
  620. package/typechain-types/factories/PendleAuraWstethAnkreth__factory.ts +1 -1
  621. package/typechain-types/factories/PendleBridgedLSDSY__factory.ts +1 -1
  622. package/typechain-types/factories/PendleCamelotV1VolatileSY__factory.ts +1 -1
  623. package/typechain-types/factories/PendleChainlinkReceiver__factory.ts +1 -1
  624. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1 -1
  625. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1 -1
  626. package/typechain-types/factories/PendleERC20PermitUpg__factory.ts +340 -0
  627. package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
  628. package/typechain-types/factories/PendleERC20Upg__factory.ts +261 -0
  629. package/typechain-types/factories/PendleERC20__factory.ts +1 -1
  630. package/typechain-types/factories/PendleERC4626SY__factory.ts +1 -1
  631. package/typechain-types/factories/PendleETHXSY__factory.ts +1 -1
  632. package/typechain-types/factories/PendleEUSDSY__factory.ts +1 -1
  633. package/typechain-types/factories/PendleExternalRewardDistributor__factory.ts +1 -1
  634. package/typechain-types/factories/PendleFeeDistributorV2__factory.ts +1 -1
  635. package/typechain-types/factories/PendleFeeDistributor__factory.ts +1 -1
  636. package/typechain-types/factories/PendleFluxLendingSY__factory.ts +1 -1
  637. package/typechain-types/factories/PendleGDaiSY__factory.ts +1 -1
  638. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +1 -1
  639. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +1 -1
  640. package/typechain-types/factories/PendleGlpSY__factory.ts +1 -1
  641. package/typechain-types/factories/PendleHlpSY__factory.ts +1 -1
  642. package/typechain-types/factories/PendleKyberElasticSY__factory.ts +1302 -0
  643. package/typechain-types/factories/PendleLimitRouter__factory.ts +1064 -0
  644. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +1 -1
  645. package/typechain-types/factories/PendleLpGlpOracle__factory.ts +1 -1
  646. package/typechain-types/factories/PendleMantleStakedEthSY__factory.ts +1 -1
  647. package/typechain-types/factories/PendleMarketFactoryV2__factory.ts +1 -1
  648. package/typechain-types/factories/PendleMarketFactory__factory.ts +1 -1
  649. package/typechain-types/factories/PendleMarketV2__factory.ts +1 -1
  650. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  651. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +1 -1
  652. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +1 -1
  653. package/typechain-types/factories/PendleMulticallV1__factory.ts +1 -1
  654. package/typechain-types/factories/PendleMulticallV2__factory.ts +1 -1
  655. package/typechain-types/factories/PendleOracleForSyProxy__factory.ts +1 -1
  656. package/typechain-types/factories/PendleOrderMixin__factory.ts +775 -0
  657. package/typechain-types/factories/PendlePrincipalTokenV2__factory.ts +1 -1
  658. package/typechain-types/factories/PendlePrincipalToken__factory.ts +1 -1
  659. package/typechain-types/factories/PendlePtGlpOracle__factory.ts +1 -1
  660. package/typechain-types/factories/PendlePtOracle__factory.ts +1 -1
  661. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  662. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  663. package/typechain-types/factories/PendleRouterHelper__factory.ts +2 -32
  664. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  665. package/typechain-types/factories/PendleRouter__factory.ts +1 -21
  666. package/typechain-types/factories/PendleSfrxEthSY__factory.ts +1 -1
  667. package/typechain-types/factories/PendleStargateLPSY__factory.ts +1 -1
  668. package/typechain-types/factories/PendleSwap__factory.ts +1 -1
  669. package/typechain-types/factories/PendleThenaSY__factory.ts +1 -1
  670. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +1 -1
  671. package/typechain-types/factories/PendleWbEthSY__factory.ts +1 -1
  672. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  673. package/typechain-types/factories/PendleYieldContractFactoryV2__factory.ts +1 -1
  674. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +1 -1
  675. package/typechain-types/factories/PendleYieldTokenV2__factory.ts +1 -1
  676. package/typechain-types/factories/PendleYieldToken__factory.ts +1 -1
  677. package/typechain-types/factories/PredicateHelper__factory.ts +218 -0
  678. package/typechain-types/factories/PtAndLpToAsset__factory.ts +1 -1
  679. package/typechain-types/factories/RouterV2InterfaceForRouterHelper__factory.ts +487 -0
  680. package/typechain-types/factories/SAPE__factory.ts +1 -1
  681. package/typechain-types/factories/SDKErrorsDirectory__factory.ts +1 -170
  682. package/typechain-types/factories/SYBaseUpg__factory.ts +939 -0
  683. package/typechain-types/factories/SYBaseWithRewardsUpg__factory.ts +1012 -0
  684. package/typechain-types/factories/SwETHSY__factory.ts +1 -1
  685. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +1 -1
  686. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +1 -1
  687. package/typechain-types/hardhat.d.ts +81 -63
  688. package/typechain-types/index.ts +18 -14
  689. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +0 -4
  690. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +0 -642
  691. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +0 -4
  692. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +0 -521
  693. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +0 -4
  694. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +0 -4
  695. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +0 -4
  696. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.json +0 -321
  697. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +0 -4
  698. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.json +0 -92
  699. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +0 -4
  700. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.json +0 -34
  701. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +0 -4
  702. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +0 -125
  703. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +0 -4
  704. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +0 -753
  705. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +0 -4
  706. package/contracts/core/BulkSeller/BulkSeller.sol +0 -233
  707. package/contracts/core/BulkSeller/BulkSellerFactory.sol +0 -85
  708. package/contracts/core/BulkSeller/BulkSellerMathCore.sol +0 -139
  709. package/contracts/interfaces/IPActionMintRedeem.sol +0 -108
  710. package/contracts/interfaces/IPBulkSeller.sol +0 -48
  711. package/contracts/interfaces/IPBulkSellerFactory.sol +0 -12
  712. package/contracts/interfaces/IPBulkSellerSYCallback.sol +0 -6
  713. package/contracts/offchain-helpers/BulkSellerOffchain.sol +0 -69
  714. package/contracts/router/ActionMintRedeem.sol +0 -134
  715. package/contracts/router/base/ActionBaseMintRedeem.sol +0 -203
@@ -1,20 +1,10 @@
1
1
  // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity 0.8.17;
2
+ pragma solidity 0.8.21;
3
3
 
4
- import "./base/ActionBaseMintRedeem.sol";
4
+ import "./base/ActionBase.sol";
5
5
  import "../interfaces/IPActionAddRemoveLiq.sol";
6
- import "../interfaces/IPMarket.sol";
7
- import "../core/libraries/Errors.sol";
8
-
9
- /**
10
- * @dev If market is expired, all actions will revert, except for the following:
11
- * - removeLiquidityDualSyAndPt()
12
- * - removeLiquidityDualTokenAndPt()
13
- * - removeLiquiditySingleSy()
14
- * - removeLiquiditySingleToken()
15
- * This is because swapping and adding liquidity are not allowed on an expired market.
16
- */
17
- contract ActionAddRemoveLiq is IPActionAddRemoveLiq, ActionBaseMintRedeem {
6
+
7
+ contract ActionAddRemoveLiq is IPActionAddRemoveLiq, ActionBase {
18
8
  using PMath for uint256;
19
9
  using PMath for int256;
20
10
  using MarketMathCore for MarketState;
@@ -23,261 +13,181 @@ contract ActionAddRemoveLiq is IPActionAddRemoveLiq, ActionBaseMintRedeem {
23
13
  using PYIndexLib for IPYieldToken;
24
14
  using PYIndexLib for PYIndex;
25
15
 
26
- /**
27
- * @notice Adds liquidity to the SY/PT market, granting LP tokens in return
28
- * @dev Will mint as much LP as possible given no more than `netSyDesired` and `netPtDesired`,
29
- * while not changing the market's price
30
- * @dev Only the necessary SY/PT amount will be transferred
31
- * @dev Reverts if market is expired
32
- */
33
- function addLiquidityDualSyAndPt(
16
+ // ------------------ ADD LIQUIDITY DUAL ------------------
17
+ function addLiquidityDualTokenAndPt(
34
18
  address receiver,
35
19
  address market,
36
- uint256 netSyDesired,
20
+ TokenInput calldata input,
37
21
  uint256 netPtDesired,
38
22
  uint256 minLpOut
39
- ) external returns (uint256 netLpOut, uint256 netSyUsed, uint256 netPtUsed) {
40
- (IStandardizedYield SY, IPPrincipalToken PT, ) = IPMarket(market).readTokens();
23
+ ) external payable returns (uint256 netLpOut, uint256 netPtUsed) {
24
+ (IStandardizedYield SY, IPPrincipalToken PT,) = IPMarket(market).readTokens();
41
25
 
42
- // calculate the amount of SY and PT to be used
43
- MarketState memory state = IPMarket(market).readState(address(this));
44
- (, netLpOut, netSyUsed, netPtUsed) = state.addLiquidity(
45
- netSyDesired,
46
- netPtDesired,
47
- block.timestamp
48
- );
26
+ uint256 netSyDesired = _mintSyFromToken(market, address(SY), 1, input);
27
+ uint256 netSyUsed;
49
28
 
50
- // early-check
51
- if (netLpOut < minLpOut) revert Errors.RouterInsufficientLpOut(netLpOut, minLpOut);
29
+ (,, netSyUsed, netPtUsed) = _readMarket(market).addLiquidity(netSyDesired, netPtDesired, block.timestamp);
52
30
 
53
- // execute the addLiquidity
54
- _transferFrom(IERC20(SY), msg.sender, market, netSyUsed);
55
- _transferFrom(IERC20(PT), msg.sender, market, netPtUsed);
31
+ if (netSyDesired != netSyUsed) {
32
+ revert Errors.RouterNotAllSyUsed(netSyDesired, netSyUsed);
33
+ }
56
34
 
57
- (netLpOut, , ) = IPMarket(market).mint(receiver, netSyUsed, netPtUsed);
35
+ // SY has been minted and transferred to the market
36
+ _transferFrom(PT, msg.sender, market, netPtUsed);
37
+ (netLpOut,,) = IPMarket(market).mint(receiver, netSyUsed, netPtUsed);
58
38
 
59
- // fail-safe
60
- if (netLpOut < minLpOut) assert(false);
39
+ if (netLpOut < minLpOut) revert Errors.RouterInsufficientLpOut(netLpOut, minLpOut);
61
40
 
62
- emit AddLiquidityDualSyAndPt(msg.sender, market, receiver, netSyUsed, netPtUsed, netLpOut);
41
+ emit AddLiquidityDualTokenAndPt(
42
+ msg.sender, market, input.tokenIn, receiver, input.netTokenIn, netPtUsed, netLpOut
43
+ );
63
44
  }
64
45
 
65
- /**
66
- * @notice Adds liquidity to SY/PT market using PT + any token.
67
- * @dev Input token is first swapped to SY-mintable token using Kyber, then SY is minted from
68
- * such. Finally the SY/PT pair is added to the market
69
- * @param input data for input token, see {`./kyberswap/KyberSwapHelper.sol`}
70
- * @param netPtDesired maximum PT to be used
71
- * @dev Only the necessary PT amount will be transferred
72
- * @dev All SY minted must be used, otherwise the call will revert. Therefore it is recommended
73
- * that `netPtDesired` is slightly higher than actual expected.
74
- * @dev Reverts if market is expired
75
- */
76
- function addLiquidityDualTokenAndPt(
46
+ function addLiquidityDualSyAndPt(
77
47
  address receiver,
78
48
  address market,
79
- TokenInput calldata input,
49
+ uint256 netSyDesired,
80
50
  uint256 netPtDesired,
81
51
  uint256 minLpOut
82
- ) external payable returns (uint256 netLpOut, uint256 netTokenUsed, uint256 netPtUsed) {
83
- (IStandardizedYield SY, IPPrincipalToken PT, ) = IPMarket(market).readTokens();
84
-
85
- uint256 netSyDesired = _mintSyFromToken(market, address(SY), 1, input);
86
- uint256 netSyUsed;
87
-
88
- {
89
- // calc the amount of SY and PT to be used
90
- MarketState memory state = IPMarket(market).readState(address(this));
91
- (, netLpOut, netSyUsed, netPtUsed) = state.addLiquidity(
92
- netSyDesired,
93
- netPtDesired,
94
- block.timestamp
95
- );
96
-
97
- if (netSyDesired != netSyUsed)
98
- revert Errors.RouterNotAllSyUsed(netSyDesired, netSyUsed);
99
- if (netLpOut < minLpOut) revert Errors.RouterInsufficientLpOut(netLpOut, minLpOut);
52
+ ) external returns (uint256 netLpOut, uint256 netSyUsed, uint256 netPtUsed) {
53
+ (IStandardizedYield SY, IPPrincipalToken PT,) = IPMarket(market).readTokens();
100
54
 
101
- netTokenUsed = input.netTokenIn;
102
- }
55
+ // calculate the amount of SY and PT to be used
56
+ (, netLpOut, netSyUsed, netPtUsed) =
57
+ _readMarket(market).addLiquidity(netSyDesired, netPtDesired, block.timestamp);
103
58
 
104
- // SY has been minted and transferred to the market
105
- _transferFrom(IERC20(PT), msg.sender, market, netPtUsed);
106
- (netLpOut, , ) = IPMarket(market).mint(receiver, netSyUsed, netPtUsed);
59
+ _transferFrom(SY, msg.sender, market, netSyUsed);
60
+ _transferFrom(PT, msg.sender, market, netPtUsed);
61
+ (netLpOut,,) = IPMarket(market).mint(receiver, netSyUsed, netPtUsed);
107
62
 
108
- // fail-safe
109
- if (netLpOut < minLpOut) assert(false);
63
+ if (netLpOut < minLpOut) revert Errors.RouterInsufficientLpOut(netLpOut, minLpOut);
110
64
 
111
- emit AddLiquidityDualTokenAndPt(
112
- msg.sender,
113
- market,
114
- input.tokenIn,
115
- receiver,
116
- netTokenUsed,
117
- netPtUsed,
118
- netLpOut
119
- );
65
+ emit AddLiquidityDualSyAndPt(msg.sender, market, receiver, netSyUsed, netPtUsed, netLpOut);
120
66
  }
121
67
 
122
- /**
123
- * @notice Swaps partial PT to SY, then use them to add liquidity to SY/PT pair
124
- * @param netPtIn amount of PT to be transferred in from caller
125
- * @param guessPtSwapToSy approximate info for the swap
126
- * @return netLpOut actual LP output, will not be lower than `minLpOut`
127
- * @return netSyFee amount of SY fee incurred from the swap
128
- * @dev Reverts if market is expired
129
- */
68
+ // ------------------ ADD LIQUIDITY SINGLE PT ------------------
69
+
130
70
  function addLiquiditySinglePt(
131
71
  address receiver,
132
72
  address market,
133
73
  uint256 netPtIn,
134
74
  uint256 minLpOut,
135
- ApproxParams calldata guessPtSwapToSy
75
+ ApproxParams calldata guessPtSwapToSy,
76
+ LimitOrderData calldata limit
136
77
  ) external returns (uint256 netLpOut, uint256 netSyFee) {
137
78
  (, IPPrincipalToken PT, IPYieldToken YT) = IPMarket(market).readTokens();
79
+ _transferFrom(PT, msg.sender, _entry_addLiquiditySinglePt(market, limit), netPtIn);
138
80
 
139
- // calculate the amount of PT to swap
140
- MarketState memory state = IPMarket(market).readState(address(this));
81
+ uint256 netPtLeft = netPtIn;
82
+ uint256 netSyReceived;
141
83
 
142
- (uint256 netPtSwap, , ) = state.approxSwapPtToAddLiquidity(
143
- YT.newIndex(),
144
- netPtIn,
145
- block.timestamp,
146
- guessPtSwapToSy
84
+ if (!_isEmptyLimit(limit)) {
85
+ (netPtLeft, netSyReceived, netSyFee,) = _fillLimit(receiver, netPtLeft, limit);
86
+ _transferOut(address(PT), market, netPtLeft);
87
+ }
88
+
89
+ (uint256 netPtSwapMarket,,) = _readMarket(market).approxSwapPtToAddLiquidity(
90
+ YT.newIndex(), netPtLeft, netSyReceived, block.timestamp, guessPtSwapToSy
147
91
  );
148
92
 
149
93
  // execute the swap
150
- _transferFrom(IERC20(PT), msg.sender, market, netPtIn);
94
+ (uint256 netSyOutMarket, uint256 netSyFeeMarket) =
95
+ IPMarket(market).swapExactPtForSy(market, netPtSwapMarket, EMPTY_BYTES);
151
96
 
152
- uint256 netSyReceived;
153
- (netSyReceived, netSyFee) = IPMarket(market).swapExactPtForSy(
154
- market,
155
- netPtSwap,
156
- EMPTY_BYTES
157
- );
97
+ netPtLeft -= netPtSwapMarket;
98
+ netSyReceived += netSyOutMarket;
99
+ netSyFee += netSyFeeMarket;
158
100
 
159
101
  // execute the addLiquidity
160
- (netLpOut, , ) = IPMarket(market).mint(receiver, netSyReceived, netPtIn - netPtSwap);
102
+ (netLpOut,,) = IPMarket(market).mint(receiver, netSyReceived, netPtLeft);
161
103
 
162
104
  if (netLpOut < minLpOut) revert Errors.RouterInsufficientLpOut(netLpOut, minLpOut);
163
105
 
164
106
  emit AddLiquiditySinglePt(msg.sender, market, receiver, netPtIn, netLpOut);
165
107
  }
166
108
 
167
- /**
168
- * @notice Swaps partial SY to PT, then use them to add liquidity to SY/PT pair
169
- * @param netSyIn amount of SY to be transferred in from caller
170
- * @param guessPtReceivedFromSy approx. output PT from the swap
171
- * @return netLpOut actual LP output, will not be lower than `minLpOut`
172
- * @return netSyFee amount of SY fee incurred from the swap
173
- * @dev Reverts if market is expired
174
- */
175
- function addLiquiditySingleSy(
109
+ function _entry_addLiquiditySinglePt(address market, LimitOrderData calldata lim) internal view returns (address) {
110
+ return !_isEmptyLimit(lim) ? address(this) : market;
111
+ }
112
+
113
+ // ------------------ ADD LIQUIDITY SINGLE TOKEN ------------------
114
+
115
+ function addLiquiditySingleToken(
176
116
  address receiver,
177
117
  address market,
178
- uint256 netSyIn,
179
118
  uint256 minLpOut,
180
- ApproxParams calldata guessPtReceivedFromSy
181
- ) external returns (uint256 netLpOut, uint256 netSyFee) {
182
- (IStandardizedYield SY, , IPYieldToken YT) = IPMarket(market).readTokens();
183
-
184
- // transfer SY to market
185
- _transferFrom(IERC20(SY), msg.sender, market, netSyIn);
186
-
187
- // mint LP
188
- (netLpOut, netSyFee) = _addLiquiditySingleSy(
189
- receiver,
190
- market,
191
- YT,
192
- netSyIn,
193
- minLpOut,
194
- guessPtReceivedFromSy
195
- );
119
+ ApproxParams calldata guessPtReceivedFromSy,
120
+ TokenInput calldata input,
121
+ LimitOrderData calldata limit
122
+ ) external payable returns (uint256 netLpOut, uint256 netSyFee) {
123
+ (IStandardizedYield SY,, IPYieldToken YT) = IPMarket(market).readTokens();
196
124
 
197
- emit AddLiquiditySingleSy(msg.sender, market, receiver, netSyIn, netLpOut);
125
+ uint256 netSyUsed = _mintSyFromToken(_entry_addLiquiditySingleSy(market, limit), address(SY), 1, input);
126
+
127
+ (netLpOut, netSyFee) =
128
+ _addLiquiditySingleSy(receiver, market, SY, YT, netSyUsed, minLpOut, guessPtReceivedFromSy, limit);
129
+
130
+ emit AddLiquiditySingleToken(msg.sender, market, input.tokenIn, receiver, input.netTokenIn, netLpOut);
198
131
  }
199
132
 
200
- /**
201
- * @notice Adds liquidity using a single token input. The input token is first swapped through
202
- * Kyberswap to a SY-mintable token, the rest is the same as `addLiquiditySingleSy()`
203
- * @param guessPtReceivedFromSy approximate PT output for the SY-to-PT swap
204
- * @param input data for input token, see {`./kyberswap/KyberSwapHelper.sol`}
205
- * @return netLpOut actual LP output, will not be lower than `minLpOut`
206
- * @return netSyFee amount of SY fee incurred from the swap
207
- * @dev Reverts if market is expired
208
- */
209
- function addLiquiditySingleToken(
133
+ function addLiquiditySingleSy(
210
134
  address receiver,
211
135
  address market,
136
+ uint256 netSyIn,
212
137
  uint256 minLpOut,
213
138
  ApproxParams calldata guessPtReceivedFromSy,
214
- TokenInput calldata input
215
- ) external payable returns (uint256 netLpOut, uint256 netSyFee) {
216
- (IStandardizedYield SY, , IPYieldToken YT) = IPMarket(market).readTokens();
217
-
218
- // mint SY directly to the market
219
- uint256 netSyUsed = _mintSyFromToken(market, address(SY), 1, input);
220
-
221
- // mint LP
222
- (netLpOut, netSyFee) = _addLiquiditySingleSy(
223
- receiver,
224
- market,
225
- YT,
226
- netSyUsed,
227
- minLpOut,
228
- guessPtReceivedFromSy
229
- );
139
+ LimitOrderData calldata limit
140
+ ) external returns (uint256 netLpOut, uint256 netSyFee) {
141
+ (IStandardizedYield SY,, IPYieldToken YT) = IPMarket(market).readTokens();
230
142
 
231
- emit AddLiquiditySingleToken(
232
- msg.sender,
233
- market,
234
- input.tokenIn,
235
- receiver,
236
- input.netTokenIn,
237
- netLpOut
238
- );
143
+ _transferFrom(SY, msg.sender, _entry_addLiquiditySingleSy(market, limit), netSyIn);
144
+
145
+ (netLpOut, netSyFee) =
146
+ _addLiquiditySingleSy(receiver, market, SY, YT, netSyIn, minLpOut, guessPtReceivedFromSy, limit);
147
+
148
+ emit AddLiquiditySingleSy(msg.sender, market, receiver, netSyIn, netLpOut);
239
149
  }
240
150
 
241
- /**
242
- * @notice Mints partial SY to PT+YT, returns YT to user, then uses PT+SY to add liquidity
243
- * @param netSyIn amount of SY to be transferred in from caller
244
- * @return netLpOut actual LP output, will not be lower than `minLpOut`
245
- * @return netYtOut actual YT output, will not be lower than `minYtOut`
246
- * @dev Reverts if market is expired
247
- */
248
- function addLiquiditySingleSyKeepYt(
151
+ function _entry_addLiquiditySingleSy(address market, LimitOrderData calldata lim) internal view returns (address) {
152
+ return !_isEmptyLimit(lim) ? address(this) : market;
153
+ }
154
+
155
+ function _addLiquiditySingleSy(
249
156
  address receiver,
250
157
  address market,
158
+ IStandardizedYield SY,
159
+ IPYieldToken YT,
251
160
  uint256 netSyIn,
252
161
  uint256 minLpOut,
253
- uint256 minYtOut
254
- ) external returns (uint256 netLpOut, uint256 netYtOut) {
255
- (IStandardizedYield SY, , IPYieldToken YT) = IPMarket(market).readTokens();
162
+ ApproxParams calldata guessPtReceivedFromSy,
163
+ LimitOrderData calldata limit
164
+ ) internal returns (uint256 netLpOut, uint256 netSyFee) {
165
+ uint256 netSyLeft = netSyIn;
166
+ uint256 netPtReceived;
256
167
 
257
- _transferIn(address(SY), msg.sender, netSyIn);
168
+ if (!_isEmptyLimit(limit)) {
169
+ (netSyLeft, netPtReceived, netSyFee,) = _fillLimit(receiver, netSyLeft, limit);
170
+ _transferOut(address(SY), market, netSyLeft);
171
+ }
258
172
 
259
- (netLpOut, netYtOut) = _addLiquiditySingleSyKeepYt(
260
- receiver,
261
- market,
262
- SY,
263
- YT,
264
- netSyIn,
265
- minLpOut,
266
- minYtOut
173
+ (uint256 netPtOutMarket,,) = _readMarket(market).approxSwapSyToAddLiquidity(
174
+ YT.newIndex(), netSyLeft, netPtReceived, block.timestamp, guessPtReceivedFromSy
267
175
  );
268
176
 
269
- emit AddLiquiditySingleSyKeepYt(msg.sender, market, receiver, netSyIn, netLpOut, netYtOut);
177
+ (uint256 netSySwapMarket, uint256 netSyFeeMarket) =
178
+ IPMarket(market).swapSyForExactPt(market, netPtOutMarket, EMPTY_BYTES);
179
+
180
+ netSyLeft -= netSySwapMarket;
181
+ netPtReceived += netPtOutMarket;
182
+ netSyFee += netSyFeeMarket;
183
+
184
+ (netLpOut,,) = IPMarket(market).mint(receiver, netSyLeft, netPtReceived);
185
+
186
+ if (netLpOut < minLpOut) revert Errors.RouterInsufficientLpOut(netLpOut, minLpOut);
270
187
  }
271
188
 
272
- /**
273
- * @notice Adds liquidity and returns leftover YT using a single token input. The input token
274
- * is first swapped through Kyberswap to a SY-mintable token, the rest is the same as
275
- * `addLiquiditySingleSyKeepYt()`
276
- * @param input data for input token, see {`./kyberswap/KyberSwapHelper.sol`}
277
- * @return netLpOut actual LP output, will not be lower than `minLpOut`
278
- * @return netYtOut actual YT output, will not be lower than `minYtOut`
279
- * @dev Reverts if market is expired
280
- */
189
+ // ------------------ ADD LIQUIDITY SINGLE TOKEN KEEP YT ------------------
190
+
281
191
  function addLiquiditySingleTokenKeepYt(
282
192
  address receiver,
283
193
  address market,
@@ -285,67 +195,66 @@ contract ActionAddRemoveLiq is IPActionAddRemoveLiq, ActionBaseMintRedeem {
285
195
  uint256 minYtOut,
286
196
  TokenInput calldata input
287
197
  ) external returns (uint256 netLpOut, uint256 netYtOut) {
288
- (IStandardizedYield SY, , IPYieldToken YT) = IPMarket(market).readTokens();
198
+ (IStandardizedYield SY,, IPYieldToken YT) = IPMarket(market).readTokens();
289
199
 
290
200
  uint256 netSyUsed = _mintSyFromToken(address(this), address(SY), 1, input);
291
201
 
292
- (netLpOut, netYtOut) = _addLiquiditySingleSyKeepYt(
293
- receiver,
294
- market,
295
- SY,
296
- YT,
297
- netSyUsed,
298
- minLpOut,
299
- minYtOut
300
- );
202
+ (netLpOut, netYtOut) = _addLiquiditySingleSyKeepYt(receiver, market, SY, YT, netSyUsed, minLpOut, minYtOut);
301
203
 
302
204
  emit AddLiquiditySingleTokenKeepYt(
303
- msg.sender,
304
- market,
305
- input.tokenIn,
306
- receiver,
307
- input.netTokenIn,
308
- netLpOut,
309
- netYtOut
205
+ msg.sender, market, input.tokenIn, receiver, input.netTokenIn, netLpOut, netYtOut
310
206
  );
311
207
  }
312
208
 
313
- /**
314
- * @notice Burns LP token to remove SY/PT liquidity
315
- * @param netLpToRemove amount of LP to be burned from caller
316
- * @dev Will work even if market is expired
317
- */
318
- function removeLiquidityDualSyAndPt(
209
+ function addLiquiditySingleSyKeepYt(
319
210
  address receiver,
320
211
  address market,
321
- uint256 netLpToRemove,
322
- uint256 minSyOut,
323
- uint256 minPtOut
324
- ) external returns (uint256 netSyOut, uint256 netPtOut) {
325
- _transferFrom(IERC20(market), msg.sender, market, netLpToRemove);
212
+ uint256 netSyIn,
213
+ uint256 minLpOut,
214
+ uint256 minYtOut
215
+ ) external returns (uint256 netLpOut, uint256 netYtOut) {
216
+ (IStandardizedYield SY,, IPYieldToken YT) = IPMarket(market).readTokens();
326
217
 
327
- (netSyOut, netPtOut) = IPMarket(market).burn(receiver, receiver, netLpToRemove);
218
+ _transferIn(address(SY), msg.sender, netSyIn);
328
219
 
329
- if (netSyOut < minSyOut) revert Errors.RouterInsufficientSyOut(netSyOut, minSyOut);
330
- if (netPtOut < minPtOut) revert Errors.RouterInsufficientPtOut(netPtOut, minPtOut);
220
+ (netLpOut, netYtOut) = _addLiquiditySingleSyKeepYt(receiver, market, SY, YT, netSyIn, minLpOut, minYtOut);
331
221
 
332
- emit RemoveLiquidityDualSyAndPt(
333
- msg.sender,
334
- market,
335
- receiver,
336
- netLpToRemove,
337
- netPtOut,
338
- netSyOut
339
- );
222
+ emit AddLiquiditySingleSyKeepYt(msg.sender, market, receiver, netSyIn, netLpOut, netYtOut);
223
+ }
224
+
225
+ function _addLiquiditySingleSyKeepYt(
226
+ address receiver,
227
+ address market,
228
+ IStandardizedYield SY,
229
+ IPYieldToken YT,
230
+ uint256 netSyIn,
231
+ uint256 minLpOut,
232
+ uint256 minYtOut
233
+ ) internal returns (uint256 netLpOut, uint256 netYtOut) {
234
+ MarketState memory state = _readMarket(market);
235
+
236
+ PYIndex pyIndex = YT.newIndex();
237
+
238
+ uint256 netSyToPt =
239
+ (netSyIn * state.totalPt.Uint()) / (state.totalPt.Uint() + pyIndex.syToAsset(state.totalSy.Uint()));
240
+
241
+ // transfer SY to mint PY
242
+ _transferOut(address(SY), address(YT), netSyToPt);
243
+
244
+ // the rest of SY goes to market
245
+ _transferOut(address(SY), market, netSyIn - netSyToPt);
246
+
247
+ // PT goes to market, YT goes to receiver
248
+ netYtOut = YT.mintPY(market, receiver);
249
+
250
+ (netLpOut,,) = IPMarket(market).mint(receiver, netSyIn - netSyToPt, netYtOut);
251
+
252
+ if (netLpOut < minLpOut) revert Errors.RouterInsufficientLpOut(netLpOut, minLpOut);
253
+ if (netYtOut < minYtOut) revert Errors.RouterInsufficientYtOut(netYtOut, minYtOut);
340
254
  }
341
255
 
342
- /**
343
- * @notice Burns LP token to remove SY/PT liquidity, then redeems SY, finally (if needed)
344
- * swaps SY redeemings through Kyberswap to desired output token.
345
- * @param netLpToRemove amount of LP to be burned from caller
346
- * @param output data for desired output token, see {`./kyberswap/KyberSwapHelper.sol`}
347
- * @dev Will work even if market is expired
348
- */
256
+ // ------------------ REMOVE LIQUIDITY DUAL ------------------
257
+
349
258
  function removeLiquidityDualTokenAndPt(
350
259
  address receiver,
351
260
  address market,
@@ -353,266 +262,142 @@ contract ActionAddRemoveLiq is IPActionAddRemoveLiq, ActionBaseMintRedeem {
353
262
  TokenOutput calldata output,
354
263
  uint256 minPtOut
355
264
  ) external returns (uint256 netTokenOut, uint256 netPtOut) {
356
- (IStandardizedYield SY, , ) = IPMarket(market).readTokens();
265
+ (IStandardizedYield SY,,) = IPMarket(market).readTokens();
357
266
 
358
- // burn LP, SY sent to either SY or bulk, PT sent to receiver
267
+ // burn LP, SY sent to SY, PT sent to receiver
359
268
  _transferFrom(IERC20(market), msg.sender, market, netLpToRemove);
360
269
 
361
270
  uint256 netSyOut;
362
- (netSyOut, netPtOut) = IPMarket(market).burn(
363
- _syOrBulk(address(SY), output),
364
- receiver,
365
- netLpToRemove
366
- );
367
-
271
+ (netSyOut, netPtOut) = IPMarket(market).burn(address(SY), receiver, netLpToRemove);
368
272
  if (netPtOut < minPtOut) revert Errors.RouterInsufficientPtOut(netPtOut, minPtOut);
369
273
 
370
274
  // redeem SY to token
371
275
  netTokenOut = _redeemSyToToken(receiver, address(SY), netSyOut, output, false);
372
-
373
276
  emit RemoveLiquidityDualTokenAndPt(
374
- msg.sender,
375
- market,
376
- output.tokenOut,
377
- receiver,
378
- netLpToRemove,
379
- netPtOut,
380
- netTokenOut
277
+ msg.sender, market, output.tokenOut, receiver, netLpToRemove, netPtOut, netTokenOut
381
278
  );
382
279
  }
383
280
 
384
- /**
385
- * @notice Removes SY/PT liquidity, then swaps all resulting SY to return only PT
386
- * @param netLpToRemove amount of LP to be burned from caller
387
- * @param guessPtReceivedFromSy approximate info for the swap
388
- * @return netPtOut total PT output, will not be lower than `minPtOut`
389
- * @return netSyFee amount of SY fee incurred from the swap
390
- * @dev Reverts if market is expired
391
- */
392
- function removeLiquiditySinglePt(
281
+ function removeLiquidityDualSyAndPt(
393
282
  address receiver,
394
283
  address market,
395
284
  uint256 netLpToRemove,
396
- uint256 minPtOut,
397
- ApproxParams calldata guessPtReceivedFromSy
398
- ) external returns (uint256 netPtOut, uint256 netSyFee) {
399
- (, , IPYieldToken YT) = IPMarket(market).readTokens();
400
-
401
- // calculate the total amount of PT received from burning & selling SY
402
- MarketState memory state = IPMarket(market).readState(address(this));
403
- (uint256 syFromBurn, uint256 ptFromBurn) = state.removeLiquidity(netLpToRemove);
404
- (uint256 ptFromSwap, ) = state.approxSwapExactSyForPt(
405
- YT.newIndex(),
406
- syFromBurn,
407
- block.timestamp,
408
- guessPtReceivedFromSy
409
- );
410
-
411
- if (ptFromBurn + ptFromSwap < minPtOut)
412
- revert Errors.RouterInsufficientPtOut(ptFromBurn + ptFromSwap, minPtOut);
413
-
414
- // execute the burn & the swap
285
+ uint256 minSyOut,
286
+ uint256 minPtOut
287
+ ) external returns (uint256 netSyOut, uint256 netPtOut) {
415
288
  _transferFrom(IERC20(market), msg.sender, market, netLpToRemove);
416
289
 
417
- (, ptFromBurn) = IPMarket(market).burn(market, receiver, netLpToRemove);
418
- (, netSyFee) = IPMarket(market).swapSyForExactPt(receiver, ptFromSwap, EMPTY_BYTES);
419
-
420
- netPtOut = ptFromBurn + ptFromSwap;
290
+ (netSyOut, netPtOut) = IPMarket(market).burn(receiver, receiver, netLpToRemove);
421
291
 
422
- // fail-safe
423
- if (netPtOut < minPtOut) assert(false);
292
+ if (netSyOut < minSyOut) revert Errors.RouterInsufficientSyOut(netSyOut, minSyOut);
293
+ if (netPtOut < minPtOut) revert Errors.RouterInsufficientPtOut(netPtOut, minPtOut);
424
294
 
425
- emit RemoveLiquiditySinglePt(msg.sender, market, receiver, netLpToRemove, netPtOut);
295
+ emit RemoveLiquidityDualSyAndPt(msg.sender, market, receiver, netLpToRemove, netPtOut, netSyOut);
426
296
  }
427
297
 
428
- /**
429
- * @notice Removes SY/PT liquidity, then converts all resulting PT to return only SY
430
- * @dev Conversion is done with market swap if not expired, or with PT redeeming if expired
431
- * @param netLpToRemove amount of LP to be burned from caller
432
- * @return netSyOut total SY output, will not be lower than `minSyOut`
433
- * @return netSyFee amount of SY fee incurred from the swap
434
- * @dev Will work even if market is expired
435
- */
436
- function removeLiquiditySingleSy(
298
+ // ------------------ REMOVE LIQUIDITY SINGLE PT ------------------
299
+ function removeLiquiditySinglePt(
437
300
  address receiver,
438
301
  address market,
439
302
  uint256 netLpToRemove,
440
- uint256 minSyOut
441
- ) external returns (uint256 netSyOut, uint256 netSyFee) {
442
- // transfer LP to market
303
+ uint256 minPtOut,
304
+ ApproxParams calldata guessPtReceivedFromSy,
305
+ LimitOrderData calldata limit
306
+ ) external returns (uint256 netPtOut, uint256 netSyFee) {
307
+ uint256 netSyLeft;
308
+
309
+ // execute the burn
443
310
  _transferFrom(IERC20(market), msg.sender, market, netLpToRemove);
311
+ (uint256 netSyOutBurn, uint256 netPtOutBurn) =
312
+ IPMarket(market).burn(_entry_swapExactSyForPt(market, limit), receiver, netLpToRemove);
313
+ netSyLeft += netSyOutBurn;
314
+ netPtOut += netPtOutBurn;
444
315
 
445
- // burn LP, SY sent to receiver
446
- (netSyOut, netSyFee) = _removeLiquiditySingleSy(receiver, market, netLpToRemove, minSyOut);
316
+ (uint256 netPtOutSwap, uint256 netSyFeeSwap) =
317
+ _swapExactSyForPt(receiver, market, netSyLeft, 0, guessPtReceivedFromSy, limit);
318
+ netPtOut += netPtOutSwap;
319
+ netSyFee += netSyFeeSwap;
447
320
 
448
- emit RemoveLiquiditySingleSy(msg.sender, market, receiver, netLpToRemove, netSyOut);
321
+ if (netPtOut < minPtOut) revert Errors.RouterInsufficientPtOut(netPtOut, minPtOut);
322
+
323
+ emit RemoveLiquiditySinglePt(msg.sender, market, receiver, netLpToRemove, netPtOut);
449
324
  }
450
325
 
451
- /**
452
- * @notice Removes SY/PT liquidity, then converts all to desired output token.
453
- * @dev inner workings of this function:
454
- - Removes SY/PT liquidity to only SY (see `removeLiquiditySingleSy()`)
455
- - Burns SY to redeem SY-mintable tokens
456
- - (If needed) swaps resulting tokens to desired output token using Kyberswap
457
- * @param netLpToRemove amount of LP to be burned from caller
458
- * @param output data for desired output token, see {`./kyberswap/KyberSwapHelper.sol`}
459
- * @return netTokenOut total token output, will not be lower than `output.minTokenOut`
460
- * @return netSyFee amount of SY fee incurred from the swap
461
- * @dev Will work even if market is expired
462
- */
326
+ // ------------------ REMOVE LIQUIDITY SINGLE TOKEN ------------------
327
+
463
328
  function removeLiquiditySingleToken(
464
329
  address receiver,
465
330
  address market,
466
331
  uint256 netLpToRemove,
467
- TokenOutput calldata output
332
+ TokenOutput calldata output,
333
+ LimitOrderData calldata limit
468
334
  ) external returns (uint256 netTokenOut, uint256 netSyFee) {
469
- (IStandardizedYield SY, , ) = IPMarket(market).readTokens();
335
+ (IStandardizedYield SY,,) = IPMarket(market).readTokens();
470
336
 
471
- // transfer LP to market, burn LP, SY sent to either SY or bulk
472
337
  _transferFrom(IERC20(market), msg.sender, market, netLpToRemove);
473
338
 
474
339
  uint256 netSyReceived;
340
+ (netSyReceived, netSyFee) = _removeLiquiditySingleSy(address(SY), market, netLpToRemove, 1, limit);
475
341
 
476
- (netSyReceived, netSyFee) = _removeLiquiditySingleSy(
477
- _syOrBulk(address(SY), output),
478
- market,
479
- netLpToRemove,
480
- 1
481
- );
482
-
483
- // redeem SY to token
484
342
  netTokenOut = _redeemSyToToken(receiver, address(SY), netSyReceived, output, false);
485
343
 
486
- emit RemoveLiquiditySingleToken(
487
- msg.sender,
488
- market,
489
- output.tokenOut,
490
- receiver,
491
- netLpToRemove,
492
- netTokenOut
493
- );
344
+ emit RemoveLiquiditySingleToken(msg.sender, market, output.tokenOut, receiver, netLpToRemove, netTokenOut);
494
345
  }
495
346
 
496
- /// @dev swaps SY to PT, then adds liquidity
497
- function _addLiquiditySingleSy(
498
- address receiver,
499
- address market,
500
- IPYieldToken YT,
501
- uint256 netSyIn,
502
- uint256 minLpOut,
503
- ApproxParams calldata guessPtReceivedFromSy
504
- ) internal returns (uint256 netLpOut, uint256 netSyFee) {
505
- MarketState memory state = IPMarket(market).readState(address(this));
506
-
507
- // calculate the PT amount needed to add liquidity
508
- (uint256 netPtFromSwap, , ) = state.approxSwapSyToAddLiquidity(
509
- YT.newIndex(),
510
- netSyIn,
511
- block.timestamp,
512
- guessPtReceivedFromSy
513
- );
514
-
515
- // execute the swap & the addLiquidity
516
- uint256 netSySwapped;
517
- (netSySwapped, netSyFee) = IPMarket(market).swapSyForExactPt(
518
- market,
519
- netPtFromSwap,
520
- EMPTY_BYTES
521
- );
522
-
523
- (netLpOut, , ) = IPMarket(market).mint(receiver, netSyIn - netSySwapped, netPtFromSwap);
524
-
525
- if (netLpOut < minLpOut) revert Errors.RouterInsufficientLpOut(netLpOut, minLpOut);
526
- }
527
-
528
- /**
529
- * @dev algorithm:
530
- - Split SY into a SY and b SY (with a + b = netSyIn)
531
- - Mint PY with a SY ---> gives (a * pyIndex / ONE) PT + YT
532
- - Mint LP with (a * pyIndex / ONE) PT and b SY
533
-
534
- -> We want (a * pyIndex / ONE) / totalPt = b / totalSy
535
- -> a * (1 + pyIndex * totalSy / ONE / totalPt) = netSyIn
536
- -> a = (netSyIn * totalPt) / (totalPt + (pyIndex * totalSy / ONE))
537
- -> a = (netSyIn * totalPt) / (totalPt + totalAsset)
538
- */
539
- function _addLiquiditySingleSyKeepYt(
347
+ function removeLiquiditySingleSy(
540
348
  address receiver,
541
349
  address market,
542
- IStandardizedYield SY,
543
- IPYieldToken YT,
544
- uint256 netSyIn,
545
- uint256 minLpOut,
546
- uint256 minYtOut
547
- ) internal returns (uint256 netLpOut, uint256 netYtOut) {
548
- MarketState memory state = IPMarket(market).readState(address(this));
549
-
550
- PYIndex pyIndex = YT.newIndex();
551
-
552
- uint256 netSyToPt = (netSyIn * state.totalPt.Uint()) /
553
- (state.totalPt.Uint() + pyIndex.syToAsset(state.totalSy.Uint()));
554
-
555
- // transfer SY to mint PY
556
- _transferOut(address(SY), address(YT), netSyToPt);
557
-
558
- // the rest of SY goes to market
559
- _transferOut(address(SY), market, netSyIn - netSyToPt);
560
-
561
- // PT goes to market, YT goes to receiver
562
- netYtOut = YT.mintPY(market, receiver);
350
+ uint256 netLpToRemove,
351
+ uint256 minSyOut,
352
+ LimitOrderData calldata limit
353
+ ) external returns (uint256 netSyOut, uint256 netSyFee) {
354
+ _transferFrom(IERC20(market), msg.sender, market, netLpToRemove);
563
355
 
564
- (netLpOut, , ) = IPMarket(market).mint(receiver, netSyIn - netSyToPt, netYtOut);
356
+ (netSyOut, netSyFee) = _removeLiquiditySingleSy(receiver, market, netLpToRemove, minSyOut, limit);
565
357
 
566
- if (netLpOut < minLpOut) revert Errors.RouterInsufficientLpOut(netLpOut, minLpOut);
567
- if (netYtOut < minYtOut) revert Errors.RouterInsufficientYtOut(netYtOut, minYtOut);
358
+ emit RemoveLiquiditySingleSy(msg.sender, market, receiver, netLpToRemove, netSyOut);
568
359
  }
569
360
 
570
- /// @dev removes SY/PT liquidity, then converts PT to SY
361
+ // the entry of this will always be market
571
362
  function _removeLiquiditySingleSy(
572
363
  address receiver,
573
364
  address market,
574
365
  uint256 netLpToRemove,
575
- uint256 minSyOut
366
+ uint256 minSyOut,
367
+ LimitOrderData calldata limit
576
368
  ) internal returns (uint256 netSyOut, uint256 netSyFee) {
577
369
  if (IPMarket(market).isExpired()) {
578
370
  netSyOut = __removeLpToSyAfterExpiry(receiver, market, netLpToRemove);
579
371
  } else {
580
- (netSyOut, netSyFee) = __removeLpToSyBeforeExpiry(receiver, market, netLpToRemove);
372
+ (netSyOut, netSyFee) = __removeLpToSyBeforeExpiry(receiver, market, netLpToRemove, limit);
581
373
  }
582
-
583
374
  if (netSyOut < minSyOut) revert Errors.RouterInsufficientSyOut(netSyOut, minSyOut);
584
375
  }
585
376
 
586
- /// @dev converts PT to SY post-expiry
587
- function __removeLpToSyAfterExpiry(
588
- address receiver,
589
- address market,
590
- uint256 netLpToRemove
591
- ) internal returns (uint256 netSyOut) {
592
- (, , IPYieldToken YT) = IPMarket(market).readTokens();
593
- (uint256 syFromBurn, ) = IPMarket(market).burn(receiver, address(YT), netLpToRemove);
377
+ function __removeLpToSyAfterExpiry(address receiver, address market, uint256 netLpToRemove)
378
+ internal
379
+ returns (uint256 netSyOut)
380
+ {
381
+ (,, IPYieldToken YT) = IPMarket(market).readTokens();
382
+ (uint256 syFromBurn,) = IPMarket(market).burn(receiver, address(YT), netLpToRemove);
594
383
  netSyOut = syFromBurn + YT.redeemPY(receiver);
595
384
  }
596
385
 
597
- /// @dev swaps PT to SY pre-expiry
598
386
  function __removeLpToSyBeforeExpiry(
599
387
  address receiver,
600
388
  address market,
601
- uint256 netLpToRemove
389
+ uint256 netLpToRemove,
390
+ LimitOrderData calldata limit
602
391
  ) internal returns (uint256 netSyOut, uint256 netSyFee) {
603
- (uint256 syFromBurn, uint256 ptFromBurn) = IPMarket(market).burn(
604
- receiver,
605
- market,
606
- netLpToRemove
607
- );
392
+ uint256 netPtLeft;
608
393
 
609
- uint256 syFromSwap;
610
- (syFromSwap, netSyFee) = IPMarket(market).swapExactPtForSy(
611
- receiver,
612
- ptFromBurn,
613
- EMPTY_BYTES
614
- );
394
+ (uint256 netSyOutBurn, uint256 netPtOutBurn) =
395
+ IPMarket(market).burn(receiver, _entry_swapExactPtForSy(market, limit), netLpToRemove);
396
+ netSyOut += netSyOutBurn;
397
+ netPtLeft += netPtOutBurn;
615
398
 
616
- netSyOut = syFromBurn + syFromSwap;
399
+ (uint256 netSyOutSwap, uint256 netSyFeeSwap) = _swapExactPtForSy(receiver, market, netPtLeft, 0, limit);
400
+ netSyOut += netSyOutSwap;
401
+ netSyFee += netSyFeeSwap;
617
402
  }
618
403
  }