@pendle/core-v2 0.15.0-mainnet → 0.15.2-mainnet

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (431) 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 +110 -48
  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 +75 -21
  6. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.dbg.json +1 -1
  7. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol/PendleMsgSenderAppUpg.json +39 -0
  8. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.dbg.json +4 -0
  9. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol/ExcessivelySafeCall.json +10 -0
  10. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.dbg.json +4 -0
  11. package/build/artifacts/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol/LayerZeroHelper.json +10 -0
  12. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/EpochResultManager.sol/EpochResultManager.dbg.json +1 -1
  13. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.dbg.json +1 -1
  14. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributor.sol/PendleFeeDistributor.json +15 -2
  15. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.dbg.json +1 -1
  16. package/build/artifacts/contracts/LiquidityMining/FeeDistributor/PendleFeeDistributorFactory.sol/PendleFeeDistributorFactory.json +15 -2
  17. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.dbg.json +1 -1
  18. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerBaseUpg.sol/PendleGaugeControllerBaseUpg.json +13 -0
  19. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.dbg.json +1 -1
  20. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerMainchainUpg.sol/PendleGaugeControllerMainchainUpg.json +15 -2
  21. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.dbg.json +1 -1
  22. package/build/artifacts/contracts/LiquidityMining/GaugeController/PendleGaugeControllerSidechainUpg.sol/PendleGaugeControllerSidechainUpg.json +15 -2
  23. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.dbg.json +1 -1
  24. package/build/artifacts/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol/PendleVotingControllerUpg.json +46 -2
  25. package/build/artifacts/contracts/LiquidityMining/VotingController/VotingControllerStorageUpg.sol/VotingControllerStorageUpg.dbg.json +1 -1
  26. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.dbg.json +1 -1
  27. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol/VotingEscrowPendleMainchain.json +52 -8
  28. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.dbg.json +1 -1
  29. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleSidechain.sol/VotingEscrowPendleSidechain.json +15 -2
  30. package/build/artifacts/contracts/LiquidityMining/VotingEscrow/VotingEscrowTokenBase.sol/VotingEscrowTokenBase.dbg.json +1 -1
  31. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.dbg.json +1 -1
  32. package/build/artifacts/contracts/LiquidityMining/libraries/VeBalanceLib.sol/VeBalanceLib.json +2 -2
  33. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.dbg.json +1 -1
  34. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/CheckpointHelper.json +2 -2
  35. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.dbg.json +1 -1
  36. package/build/artifacts/contracts/LiquidityMining/libraries/VeHistoryLib.sol/Checkpoints.json +2 -2
  37. package/build/artifacts/contracts/LiquidityMining/libraries/WeekMath.sol/WeekMath.dbg.json +1 -1
  38. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.dbg.json +4 -0
  39. package/build/artifacts/contracts/core/BulkSeller/BulkSeller.sol/BulkSeller.json +699 -0
  40. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.dbg.json +4 -0
  41. package/build/artifacts/contracts/core/BulkSeller/BulkSellerFactory.sol/BulkSellerFactory.json +515 -0
  42. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.dbg.json +4 -0
  43. package/build/artifacts/contracts/core/BulkSeller/BulkSellerMathCore.sol/BulkSellerMathCore.json +10 -0
  44. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.dbg.json +1 -1
  45. package/build/artifacts/contracts/core/Market/MarketMathCore.sol/MarketMathCore.json +2 -2
  46. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.dbg.json +1 -1
  47. package/build/artifacts/contracts/core/Market/OracleLib.sol/OracleLib.json +2 -2
  48. package/build/artifacts/contracts/core/Market/PendleGauge.sol/PendleGauge.dbg.json +1 -1
  49. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.dbg.json +1 -1
  50. package/build/artifacts/contracts/core/Market/PendleMarket.sol/PendleMarket.json +2 -2
  51. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.dbg.json +1 -1
  52. package/build/artifacts/contracts/core/Market/PendleMarketFactory.sol/PendleMarketFactory.json +77 -17
  53. package/build/artifacts/contracts/core/RewardManager/RewardManager.sol/RewardManager.dbg.json +1 -1
  54. package/build/artifacts/contracts/core/RewardManager/RewardManagerAbstract.sol/RewardManagerAbstract.dbg.json +1 -1
  55. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.dbg.json +1 -1
  56. package/build/artifacts/contracts/core/StandardizedYield/PYIndex.sol/PYIndexLib.json +2 -2
  57. package/build/artifacts/contracts/core/StandardizedYield/SYBase.sol/SYBase.dbg.json +1 -1
  58. package/build/artifacts/contracts/core/StandardizedYield/SYBaseWithRewards.sol/SYBaseWithRewards.dbg.json +1 -1
  59. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.dbg.json +1 -1
  60. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenHelper.sol/PendleQiTokenHelper.json +2 -2
  61. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.dbg.json +1 -1
  62. package/build/artifacts/contracts/core/StandardizedYield/implementations/BenQi/PendleQiTokenSY.sol/PendleQiTokenSY.json +2 -2
  63. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.dbg.json +4 -0
  64. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol/PendleCurveFraxUsdcSY.json +1003 -0
  65. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.dbg.json +4 -0
  66. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol/PendleCurveUsdd3CrvSY.json +1068 -0
  67. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.dbg.json +4 -0
  68. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol/Curve3CrvPoolHelper.json +10 -0
  69. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.dbg.json +4 -0
  70. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol/CurveFraxUsdcPoolHelper.json +10 -0
  71. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.dbg.json +4 -0
  72. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol/CurveUsdd3CrvPoolHelper.json +10 -0
  73. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/base/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +4 -0
  74. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/{ConvexCurveLP → base}/PendleConvexLPSY.sol/PendleConvexLPSY.json +1 -1
  75. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.dbg.json +4 -0
  76. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol/PendleLooksStakingSY.json +856 -0
  77. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.dbg.json +1 -1
  78. package/build/artifacts/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol/PendleWstEthSY.json +2 -2
  79. package/build/artifacts/contracts/core/YieldContracts/InterestManagerYT.sol/InterestManagerYT.dbg.json +1 -1
  80. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.dbg.json +1 -1
  81. package/build/artifacts/contracts/core/YieldContracts/PendlePrincipalToken.sol/PendlePrincipalToken.json +15 -2
  82. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.dbg.json +1 -1
  83. package/build/artifacts/contracts/core/YieldContracts/PendleYieldContractFactory.sol/PendleYieldContractFactory.json +85 -4
  84. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.dbg.json +1 -1
  85. package/build/artifacts/contracts/core/YieldContracts/PendleYieldToken.sol/PendleYieldToken.json +17 -4
  86. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.dbg.json +1 -1
  87. package/build/artifacts/contracts/core/erc20/PendleERC20.sol/PendleERC20.json +2 -2
  88. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.dbg.json +1 -1
  89. package/build/artifacts/contracts/core/erc20/PendleERC20Permit.sol/PendleERC20Permit.json +2 -2
  90. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.dbg.json +1 -1
  91. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/BaseSplitCodeFactory.json +3 -38
  92. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.dbg.json +1 -1
  93. package/build/artifacts/contracts/core/libraries/BaseSplitCodeFactory.sol/CodeDeployer.json +2 -2
  94. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.dbg.json +1 -1
  95. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeable.json +13 -0
  96. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.dbg.json +1 -1
  97. package/build/artifacts/contracts/core/libraries/BoringOwnableUpgradeable.sol/BoringOwnableUpgradeableData.json +2 -2
  98. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.dbg.json +1 -1
  99. package/build/artifacts/contracts/core/libraries/Errors.sol/Errors.json +319 -35
  100. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.dbg.json +4 -0
  101. package/build/artifacts/contracts/core/libraries/StringLib.sol/StringLib.json +10 -0
  102. package/build/artifacts/contracts/core/libraries/TokenHelper.sol/TokenHelper.dbg.json +1 -1
  103. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.dbg.json +1 -1
  104. package/build/artifacts/contracts/interfaces/ConvexCurve/IBooster.sol/IBooster.json +1 -1
  105. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.dbg.json +1 -1
  106. package/build/artifacts/contracts/interfaces/Curve/ICrvPool.sol/ICrvPool.json +39 -85
  107. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.dbg.json +4 -0
  108. package/build/artifacts/contracts/interfaces/Curve/ITriCrvPool.sol/ITriCrvPool.json +213 -0
  109. package/build/artifacts/contracts/interfaces/IAToken.sol/IAToken.dbg.json +1 -1
  110. package/build/artifacts/contracts/interfaces/IERC4626.sol/IERC4626.dbg.json +1 -1
  111. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.dbg.json +4 -0
  112. package/build/artifacts/contracts/interfaces/ILayerZeroEndpoint.sol/ILayerZeroEndpoint.json +119 -0
  113. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.dbg.json +4 -0
  114. package/build/artifacts/contracts/interfaces/ILayerZeroReceiver.sol/ILayerZeroReceiver.json +39 -0
  115. package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.dbg.json +4 -0
  116. package/build/artifacts/contracts/interfaces/ILooksFeeSharing.sol/ILooksFeeSharing.json +30 -0
  117. package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.dbg.json +4 -0
  118. package/build/artifacts/contracts/interfaces/ILooksStaking.sol/ILooksStaking.json +76 -0
  119. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.dbg.json +1 -1
  120. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiq.sol/IPActionAddRemoveLiq.json +91 -17
  121. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.dbg.json +1 -1
  122. package/build/artifacts/contracts/interfaces/IPActionMintRedeem.sol/IPActionMintRedeem.json +50 -0
  123. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.dbg.json +1 -1
  124. package/build/artifacts/contracts/interfaces/IPActionSwapPT.sol/IPActionSwapPT.json +20 -0
  125. package/build/artifacts/contracts/interfaces/IPActionSwapPTYT.sol/IPActionSwapPTYT.dbg.json +1 -1
  126. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.dbg.json +1 -1
  127. package/build/artifacts/contracts/interfaces/IPActionSwapYT.sol/IPActionSwapYT.json +20 -0
  128. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.dbg.json +1 -1
  129. package/build/artifacts/contracts/interfaces/IPAllAction.sol/IPAllAction.json +181 -17
  130. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.dbg.json +4 -0
  131. package/build/artifacts/contracts/interfaces/IPBulkSeller.sol/IPBulkSeller.json +173 -0
  132. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.dbg.json +4 -0
  133. package/build/artifacts/contracts/interfaces/IPBulkSellerFactory.sol/IPBulkSellerFactory.json +86 -0
  134. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.dbg.json +4 -0
  135. package/build/artifacts/contracts/interfaces/IPBulkSellerSYCallback.sol/IPBulkSellerCallback.json +34 -0
  136. package/build/artifacts/contracts/interfaces/IPMarket.sol/IPMarket.dbg.json +1 -1
  137. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.dbg.json +1 -1
  138. package/build/artifacts/contracts/interfaces/IPMarketFactory.sol/IPMarketFactory.json +2 -2
  139. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.dbg.json +1 -1
  140. package/build/artifacts/contracts/interfaces/IPMsgSendEndpoint.sol/IPMsgSendEndpoint.json +12 -2
  141. package/build/artifacts/contracts/interfaces/IPPrincipalToken.sol/IPPrincipalToken.dbg.json +1 -1
  142. package/build/artifacts/contracts/interfaces/IPVotingController.sol/IPVotingController.dbg.json +1 -1
  143. package/build/artifacts/contracts/interfaces/IPVotingEscrowMainchain.sol/IPVotingEscrowMainchain.dbg.json +1 -1
  144. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.dbg.json +1 -1
  145. package/build/artifacts/contracts/interfaces/IPYieldContractFactory.sol/IPYieldContractFactory.json +1 -1
  146. package/build/artifacts/contracts/interfaces/IPYieldToken.sol/IPYieldToken.dbg.json +1 -1
  147. package/build/artifacts/contracts/interfaces/IQiAvax.sol/IQiAvax.dbg.json +1 -1
  148. package/build/artifacts/contracts/interfaces/IQiErc20.sol/IQiErc20.dbg.json +1 -1
  149. package/build/artifacts/contracts/interfaces/IQiToken.sol/IQiToken.dbg.json +1 -1
  150. package/build/artifacts/contracts/interfaces/ISJoe.sol/ISJoe.dbg.json +1 -1
  151. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.dbg.json +1 -1
  152. package/build/artifacts/contracts/interfaces/IStETH.sol/IStETH.json +45 -0
  153. package/build/artifacts/contracts/interfaces/IStandardizedYield.sol/IStandardizedYield.dbg.json +1 -1
  154. package/build/artifacts/contracts/interfaces/IWAvax.sol/IWAvax.dbg.json +1 -1
  155. package/build/artifacts/contracts/interfaces/IWETH.sol/IWETH.dbg.json +1 -1
  156. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.dbg.json +1 -1
  157. package/build/artifacts/contracts/offchain-helpers/BaseSplitCodeFactoryContract.sol/BaseSplitCodeFactoryContract.json +15 -2
  158. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.dbg.json +4 -0
  159. package/build/artifacts/contracts/offchain-helpers/BulkSellerOffchain.sol/BulkSellerOffchain.json +35 -0
  160. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.dbg.json +1 -1
  161. package/build/artifacts/contracts/offchain-helpers/MarketMathStatic.sol/MarketMathStatic.json +2 -80
  162. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.dbg.json +1 -1
  163. package/build/artifacts/contracts/offchain-helpers/RouterStatic.sol/RouterStatic.json +299 -60
  164. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.dbg.json +1 -1
  165. package/build/artifacts/contracts/router/ActionAddRemoveLiq.sol/ActionAddRemoveLiq.json +118 -41
  166. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.dbg.json +1 -1
  167. package/build/artifacts/contracts/router/ActionCallback.sol/ActionCallback.json +2 -2
  168. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.dbg.json +1 -1
  169. package/build/artifacts/contracts/router/ActionMintRedeem.sol/ActionMintRedeem.json +61 -24
  170. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.dbg.json +1 -1
  171. package/build/artifacts/contracts/router/ActionMisc.sol/ActionMisc.json +2 -2
  172. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.dbg.json +1 -1
  173. package/build/artifacts/contracts/router/ActionSwapPT.sol/ActionSwapPT.json +31 -24
  174. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.dbg.json +1 -1
  175. package/build/artifacts/contracts/router/ActionSwapPTYT.sol/ActionSwapPTYT.json +2 -2
  176. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.dbg.json +1 -1
  177. package/build/artifacts/contracts/router/ActionSwapYT.sol/ActionSwapYT.json +31 -24
  178. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.dbg.json +1 -1
  179. package/build/artifacts/contracts/router/PendleRouter.sol/PendleRouter.json +15 -2
  180. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.dbg.json +1 -1
  181. package/build/artifacts/contracts/router/base/ActionBaseMintRedeem.sol/ActionBaseMintRedeem.json +1 -1
  182. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  183. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  184. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  185. package/build/artifacts/contracts/router/base/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  186. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.dbg.json +1 -1
  187. package/build/artifacts/contracts/router/kyberswap/AggregationRouterHelper.sol/AggregationRouterHelper.json +191 -2
  188. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.dbg.json +4 -0
  189. package/build/artifacts/contracts/router/kyberswap/IAggregatorRouterHelper.sol/IAggregationRouterHelper.json +35 -0
  190. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.dbg.json +1 -1
  191. package/build/artifacts/contracts/router/kyberswap/KyberSwapHelper.sol/KyberSwapHelper.json +1 -1
  192. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgReceiveEndpointUpg.sol +58 -27
  193. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSendEndpointUpg.sol +46 -12
  194. package/contracts/LiquidityMining/CrossChainMsg/PendleMsgSenderAppUpg.sol +31 -7
  195. package/contracts/LiquidityMining/CrossChainMsg/libraries/ExcessivelySafeCall.sol +133 -0
  196. package/contracts/LiquidityMining/CrossChainMsg/libraries/LayerZeroHelper.sol +27 -0
  197. package/contracts/LiquidityMining/VotingController/PendleVotingControllerUpg.sol +9 -10
  198. package/contracts/LiquidityMining/VotingEscrow/VotingEscrowPendleMainchain.sol +9 -23
  199. package/contracts/core/BulkSeller/BulkSeller.sol +259 -0
  200. package/contracts/core/BulkSeller/BulkSellerFactory.sol +88 -0
  201. package/contracts/core/BulkSeller/BulkSellerMathCore.sol +143 -0
  202. package/contracts/core/Market/PendleMarket.sol +18 -7
  203. package/contracts/core/Market/PendleMarketFactory.sol +15 -5
  204. package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveFraxUsdcSY.sol +102 -0
  205. package/contracts/core/StandardizedYield/implementations/Convex/PendleCurveUsdd3CrvSY.sol +160 -0
  206. package/contracts/core/StandardizedYield/implementations/Convex/README.md +29 -0
  207. package/contracts/core/StandardizedYield/implementations/Convex/base/Curve3CrvPoolHelper.sol +215 -0
  208. package/contracts/core/StandardizedYield/implementations/Convex/base/CurveFraxUsdcPoolHelper.sol +127 -0
  209. package/contracts/core/StandardizedYield/implementations/Convex/base/CurveUsdd3CrvPoolHelper.sol +152 -0
  210. package/contracts/core/StandardizedYield/implementations/Convex/{ConvexCurveLP → base}/PendleConvexLPSY.sol +2 -4
  211. package/contracts/core/StandardizedYield/implementations/PendleLooksStakingSY.sol +122 -0
  212. package/contracts/core/StandardizedYield/implementations/PendleWstEthSY.sol +17 -8
  213. package/contracts/core/YieldContracts/PendlePrincipalToken.sol +3 -3
  214. package/contracts/core/YieldContracts/PendleYieldContractFactory.sol +38 -11
  215. package/contracts/core/YieldContracts/PendleYieldToken.sol +54 -21
  216. package/contracts/core/erc20/PendleERC20.sol +4 -7
  217. package/contracts/core/libraries/BaseSplitCodeFactory.sol +1 -1
  218. package/contracts/core/libraries/BoringOwnableUpgradeable.sol +1 -1
  219. package/contracts/core/libraries/Errors.sol +32 -4
  220. package/contracts/core/libraries/StringLib.sol +782 -0
  221. package/contracts/core/libraries/TokenHelper.sol +9 -0
  222. package/contracts/interfaces/ConvexCurve/IBooster.sol +1 -1
  223. package/contracts/interfaces/Curve/ICrvPool.sol +12 -31
  224. package/contracts/interfaces/Curve/ITriCrvPool.sol +41 -0
  225. package/contracts/interfaces/ILayerZeroEndpoint.sol +39 -0
  226. package/contracts/interfaces/ILayerZeroReceiver.sol +12 -0
  227. package/contracts/interfaces/ILooksFeeSharing.sol +5 -0
  228. package/contracts/interfaces/ILooksStaking.sol +13 -0
  229. package/contracts/interfaces/IPActionAddRemoveLiq.sol +3 -5
  230. package/contracts/interfaces/IPActionMintRedeem.sol +2 -0
  231. package/contracts/interfaces/IPBulkSeller.sol +28 -0
  232. package/contracts/interfaces/IPBulkSellerFactory.sol +12 -0
  233. package/contracts/interfaces/IPBulkSellerSYCallback.sol +10 -0
  234. package/contracts/interfaces/IPMarketFactory.sol +1 -1
  235. package/contracts/interfaces/IPMsgSendEndpoint.sol +4 -2
  236. package/contracts/interfaces/IPYieldContractFactory.sol +1 -1
  237. package/contracts/interfaces/IStETH.sol +6 -0
  238. package/contracts/interfaces/IStandardizedYield.sol +15 -10
  239. package/contracts/offchain-helpers/BulkSellerOffchain.sol +43 -0
  240. package/contracts/offchain-helpers/MarketMathStatic.sol +0 -173
  241. package/contracts/offchain-helpers/RouterStatic.sol +189 -50
  242. package/contracts/router/ActionAddRemoveLiq.sol +71 -52
  243. package/contracts/router/ActionCallback.sol +4 -8
  244. package/contracts/router/ActionMintRedeem.sol +27 -18
  245. package/contracts/router/ActionSwapPT.sol +8 -9
  246. package/contracts/router/ActionSwapPTYT.sol +3 -7
  247. package/contracts/router/ActionSwapYT.sol +15 -10
  248. package/contracts/router/PendleRouter.sol +3 -0
  249. package/contracts/router/base/ActionBaseMintRedeem.sol +78 -83
  250. package/contracts/router/base/MarketApproxLib.sol +1 -1
  251. package/contracts/router/kyberswap/AggregationRouterHelper.sol +17 -1
  252. package/contracts/router/kyberswap/IAggregatorRouterHelper.sol +10 -0
  253. package/contracts/router/kyberswap/KyberSwapHelper.sol +21 -8
  254. package/deployments/1-markets/FRAX_30_MAR_23.json +8 -0
  255. package/deployments/1-markets/LOOKS_30_MAR_23.json +8 -0
  256. package/deployments/1-markets/STETH_MARCH_30.json +1 -1
  257. package/deployments/1-markets/USDD_MARCH_30.json +8 -0
  258. package/deployments/1-offchain-helper.json +3 -0
  259. package/package.json +3 -2
  260. package/typechain-types/AccessControl.ts +360 -0
  261. package/typechain-types/AccessControlUpgradeable.ts +369 -0
  262. package/typechain-types/ActionAddRemoveLiq.ts +64 -52
  263. package/typechain-types/ActionBaseMintRedeem.ts +8 -8
  264. package/typechain-types/ActionMintRedeem.ts +48 -16
  265. package/typechain-types/ActionSwapPT.ts +34 -12
  266. package/typechain-types/ActionSwapYT.ts +34 -12
  267. package/typechain-types/AggregationRouterHelper.ts +287 -3
  268. package/typechain-types/BaseSplitCodeFactoryContract.ts +9 -0
  269. package/typechain-types/BeaconProxy.ts +97 -0
  270. package/typechain-types/BoringOwnableUpgradeable.ts +9 -0
  271. package/typechain-types/BulkSeller.ts +777 -0
  272. package/typechain-types/BulkSellerFactory.ts +707 -0
  273. package/typechain-types/BulkSellerOffchain.ts +117 -0
  274. package/typechain-types/ContextUpgradeable.ts +68 -0
  275. package/typechain-types/Curve3CrvPoolHelper.ts +236 -0
  276. package/typechain-types/CurveFraxUsdcPoolHelper.ts +158 -0
  277. package/typechain-types/CurveUsdd3CrvPoolHelper.ts +184 -0
  278. package/typechain-types/ERC165.ts +102 -0
  279. package/typechain-types/ERC165Upgradeable.ts +113 -0
  280. package/typechain-types/IAccessControl.ts +305 -0
  281. package/typechain-types/IAccessControlUpgradeable.ts +305 -0
  282. package/typechain-types/IAggregationRouterHelper.ts +108 -0
  283. package/typechain-types/IBooster.ts +9 -3
  284. package/typechain-types/ICrvPool.ts +69 -172
  285. package/typechain-types/IERC165.ts +102 -0
  286. package/typechain-types/IERC165Upgradeable.ts +102 -0
  287. package/typechain-types/ILayerZeroEndpoint.ts +256 -0
  288. package/typechain-types/ILayerZeroReceiver.ts +117 -0
  289. package/typechain-types/ILooksFeeSharing.ts +102 -0
  290. package/typechain-types/ILooksStaking.ts +189 -0
  291. package/typechain-types/IPActionAddRemoveLiq.ts +56 -44
  292. package/typechain-types/IPActionMintRedeem.ts +40 -8
  293. package/typechain-types/IPActionSwapPT.ts +26 -4
  294. package/typechain-types/IPActionSwapYT.ts +26 -4
  295. package/typechain-types/IPAllAction.ts +76 -54
  296. package/typechain-types/IPBulkSeller.ts +290 -0
  297. package/typechain-types/IPBulkSellerCallback.ts +115 -0
  298. package/typechain-types/IPBulkSellerFactory.ts +147 -0
  299. package/typechain-types/IPMarketFactory.ts +2 -2
  300. package/typechain-types/IPMsgSendEndpoint.ts +24 -14
  301. package/typechain-types/IPYieldContractFactory.ts +3 -3
  302. package/typechain-types/IStETH.ts +56 -0
  303. package/typechain-types/ITriCrvPool.ts +345 -0
  304. package/typechain-types/ImplicitSwapfeeContract.ts +9 -17
  305. package/typechain-types/Initializable.ts +68 -0
  306. package/typechain-types/KyberSwapHelper.ts +8 -8
  307. package/typechain-types/MarketMathStatic.ts +0 -117
  308. package/typechain-types/PendleConvex2TokensSY.ts +1215 -0
  309. package/typechain-types/PendleCurveFraxUsdcSY.ts +1228 -0
  310. package/typechain-types/PendleCurveUsdd3CrvSY.ts +1299 -0
  311. package/typechain-types/PendleFeeDistributor.ts +9 -0
  312. package/typechain-types/PendleFeeDistributorFactory.ts +9 -0
  313. package/typechain-types/PendleGaugeControllerBaseUpg.ts +9 -0
  314. package/typechain-types/PendleGaugeControllerMainchainUpg.ts +9 -0
  315. package/typechain-types/PendleGaugeControllerSidechainUpg.ts +9 -0
  316. package/typechain-types/PendleLooksStaking.ts +1052 -0
  317. package/typechain-types/PendleLooksStakingSY.ts +1052 -0
  318. package/typechain-types/PendleMarketFactory.ts +51 -2
  319. package/typechain-types/PendleMsgReceiveEndpointUpg.ts +135 -68
  320. package/typechain-types/PendleMsgSendEndpointUpg.ts +108 -39
  321. package/typechain-types/PendleMsgSenderAppUpg.ts +64 -0
  322. package/typechain-types/PendlePrincipalToken.ts +9 -0
  323. package/typechain-types/PendleRouter.ts +9 -0
  324. package/typechain-types/PendleVotingControllerUpg.ts +64 -0
  325. package/typechain-types/PendleYieldContractFactory.ts +57 -8
  326. package/typechain-types/PendleYieldToken.ts +21 -0
  327. package/typechain-types/ReentrancyGuardUpgradeable.ts +68 -0
  328. package/typechain-types/RouterStatic.ts +302 -20
  329. package/typechain-types/VotingEscrowPendleMainchain.ts +70 -6
  330. package/typechain-types/VotingEscrowPendleSidechain.ts +9 -0
  331. package/typechain-types/factories/AccessControlUpgradeable__factory.ts +247 -0
  332. package/typechain-types/factories/AccessControl__factory.ts +227 -0
  333. package/typechain-types/factories/ActionAddRemoveLiq__factory.ts +122 -59
  334. package/typechain-types/factories/ActionBaseMintRedeem__factory.ts +1 -1
  335. package/typechain-types/factories/ActionCallback__factory.ts +1 -1
  336. package/typechain-types/factories/ActionMintRedeem__factory.ts +65 -42
  337. package/typechain-types/factories/ActionMisc__factory.ts +1 -1
  338. package/typechain-types/factories/ActionSwapPTYT__factory.ts +1 -1
  339. package/typechain-types/factories/ActionSwapPT__factory.ts +35 -42
  340. package/typechain-types/factories/ActionSwapYT__factory.ts +35 -42
  341. package/typechain-types/factories/AggregationRouterHelper__factory.ts +190 -1
  342. package/typechain-types/factories/BaseSplitCodeFactoryContract__factory.ts +14 -1
  343. package/typechain-types/factories/BaseSplitCodeFactory__factory.ts +1 -1
  344. package/typechain-types/factories/BeaconProxy__factory.ts +141 -0
  345. package/typechain-types/factories/BoringOwnableUpgradeableData__factory.ts +1 -1
  346. package/typechain-types/factories/BoringOwnableUpgradeable__factory.ts +13 -0
  347. package/typechain-types/factories/BulkSellerFactory__factory.ts +568 -0
  348. package/typechain-types/factories/BulkSellerOffchain__factory.ts +88 -0
  349. package/typechain-types/factories/BulkSeller__factory.ts +749 -0
  350. package/typechain-types/factories/ContextUpgradeable__factory.ts +39 -0
  351. package/typechain-types/factories/Curve3CrvPoolHelper__factory.ts +220 -0
  352. package/typechain-types/factories/CurveFraxUsdcPoolHelper__factory.ts +146 -0
  353. package/typechain-types/factories/CurveUsdd3CrvPoolHelper__factory.ts +172 -0
  354. package/typechain-types/factories/ERC165Upgradeable__factory.ts +58 -0
  355. package/typechain-types/factories/ERC165__factory.ts +39 -0
  356. package/typechain-types/factories/ERC20__factory.ts +1 -1
  357. package/typechain-types/factories/Errors__factory.ts +318 -34
  358. package/typechain-types/factories/IAccessControlUpgradeable__factory.ts +202 -0
  359. package/typechain-types/factories/IAccessControl__factory.ts +198 -0
  360. package/typechain-types/factories/IAggregationRouterHelper__factory.ts +54 -0
  361. package/typechain-types/factories/IBooster__factory.ts +1 -1
  362. package/typechain-types/factories/ICrvPool__factory.ts +39 -85
  363. package/typechain-types/factories/IERC165Upgradeable__factory.ts +45 -0
  364. package/typechain-types/factories/IERC165__factory.ts +42 -0
  365. package/typechain-types/factories/ILayerZeroEndpoint__factory.ts +134 -0
  366. package/typechain-types/factories/ILayerZeroReceiver__factory.ts +54 -0
  367. package/typechain-types/factories/ILooksFeeSharing__factory.ts +45 -0
  368. package/typechain-types/factories/ILooksStaking__factory.ts +88 -0
  369. package/typechain-types/factories/IPActionAddRemoveLiq__factory.ts +91 -17
  370. package/typechain-types/factories/IPActionMintRedeem__factory.ts +50 -0
  371. package/typechain-types/factories/IPActionSwapPT__factory.ts +20 -0
  372. package/typechain-types/factories/IPActionSwapYT__factory.ts +20 -0
  373. package/typechain-types/factories/IPAllAction__factory.ts +181 -17
  374. package/typechain-types/factories/IPBulkSellerCallback__factory.ts +53 -0
  375. package/typechain-types/factories/IPBulkSellerFactory__factory.ts +101 -0
  376. package/typechain-types/factories/IPBulkSeller__factory.ts +185 -0
  377. package/typechain-types/factories/IPMarketFactory__factory.ts +2 -2
  378. package/typechain-types/factories/IPMsgSendEndpoint__factory.ts +12 -2
  379. package/typechain-types/factories/IPYieldContractFactory__factory.ts +1 -1
  380. package/typechain-types/factories/IStETH__factory.ts +45 -0
  381. package/typechain-types/factories/ITriCrvPool__factory.ts +225 -0
  382. package/typechain-types/factories/ImplicitSwapfeeContract__factory.ts +4 -12
  383. package/typechain-types/factories/Initializable__factory.ts +36 -0
  384. package/typechain-types/factories/KyberSwapHelper__factory.ts +1 -1
  385. package/typechain-types/factories/MarketMathStatic__factory.ts +1 -79
  386. package/typechain-types/factories/OracleLib__factory.ts +1 -1
  387. package/typechain-types/factories/Pendle3CrvAndTokenSY__factory.ts +1 -1
  388. package/typechain-types/factories/PendleConvex2TokensSY__factory.ts +1093 -0
  389. package/typechain-types/factories/PendleCurveFraxUsdcSY__factory.ts +1068 -0
  390. package/typechain-types/factories/PendleCurveUsdd3CrvSY__factory.ts +1133 -0
  391. package/typechain-types/factories/PendleERC20Permit__factory.ts +1 -1
  392. package/typechain-types/factories/PendleERC20__factory.ts +1 -1
  393. package/typechain-types/factories/PendleFeeDistributorFactory__factory.ts +14 -1
  394. package/typechain-types/factories/PendleFeeDistributor__factory.ts +14 -1
  395. package/typechain-types/factories/PendleGaugeControllerBaseUpg__factory.ts +13 -0
  396. package/typechain-types/factories/PendleGaugeControllerMainchainUpg__factory.ts +14 -1
  397. package/typechain-types/factories/PendleGaugeControllerSidechainUpg__factory.ts +14 -1
  398. package/typechain-types/factories/PendleLooksStakingSY__factory.ts +937 -0
  399. package/typechain-types/factories/PendleLooksStaking__factory.ts +933 -0
  400. package/typechain-types/factories/PendleMarketFactory__factory.ts +76 -16
  401. package/typechain-types/factories/PendleMarket__factory.ts +1 -1
  402. package/typechain-types/factories/PendleMsgReceiveEndpointUpg__factory.ts +113 -51
  403. package/typechain-types/factories/PendleMsgSendEndpointUpg__factory.ts +84 -23
  404. package/typechain-types/factories/PendleMsgSenderAppUpg__factory.ts +39 -0
  405. package/typechain-types/factories/PendlePrincipalToken__factory.ts +14 -1
  406. package/typechain-types/factories/PendleQiTokenHelper__factory.ts +1 -1
  407. package/typechain-types/factories/PendleQiTokenSY__factory.ts +1 -1
  408. package/typechain-types/factories/PendleRouter__factory.ts +14 -1
  409. package/typechain-types/factories/PendleVotingControllerUpg__factory.ts +57 -2
  410. package/typechain-types/factories/PendleWstEthSY__factory.ts +1 -1
  411. package/typechain-types/factories/PendleYieldContractFactory__factory.ts +84 -3
  412. package/typechain-types/factories/PendleYieldToken__factory.ts +16 -3
  413. package/typechain-types/factories/ReentrancyGuardUpgradeable__factory.ts +43 -0
  414. package/typechain-types/factories/RouterStatic__factory.ts +244 -1
  415. package/typechain-types/factories/VotingEscrowPendleMainchain__factory.ts +63 -8
  416. package/typechain-types/factories/VotingEscrowPendleSidechain__factory.ts +14 -1
  417. package/typechain-types/hardhat.d.ts +260 -35
  418. package/typechain-types/index.ts +56 -10
  419. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSY.sol/Pendle3CrvAndTokenSY.dbg.json +0 -4
  420. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSY.sol/Pendle3CrvAndTokenSY.json +0 -1018
  421. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/PendleConvexLPSY.sol/PendleConvexLPSY.dbg.json +0 -4
  422. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.dbg.json +0 -4
  423. package/build/artifacts/contracts/core/StandardizedYield/implementations/Convex/Pendle3CrvHelper.sol/Pendle3CrvHelper.json +0 -76
  424. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.dbg.json +0 -4
  425. package/build/artifacts/contracts/interfaces/ICelerMessageBus.sol/ICelerMessageBus.json +0 -53
  426. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.dbg.json +0 -4
  427. package/build/artifacts/contracts/interfaces/ICelerMessageReceiverApp.sol/ICelerMessageReceiverApp.json +0 -45
  428. package/contracts/core/StandardizedYield/implementations/Convex/ConvexCurveLP/Pendle3CrvAndTokenSY.sol +0 -167
  429. package/contracts/core/StandardizedYield/implementations/Convex/Pendle3CrvHelper.sol +0 -83
  430. package/contracts/interfaces/ICelerMessageBus.sol +0 -28
  431. package/contracts/interfaces/ICelerMessageReceiverApp.sol +0 -25
@@ -35,35 +35,6 @@ library MarketMathStatic {
35
35
  );
36
36
  }
37
37
 
38
- function addLiquidityDualTokenAndPtStatic(
39
- address market,
40
- address tokenIn,
41
- uint256 netTokenDesired,
42
- uint256 netPtDesired
43
- )
44
- external
45
- view
46
- returns (
47
- uint256 netLpOut,
48
- uint256 netTokenUsed,
49
- uint256 netPtUsed
50
- )
51
- {
52
- (IStandardizedYield SY, , ) = IPMarket(market).readTokens();
53
-
54
- uint256 syDesired = SY.previewDeposit(tokenIn, netTokenDesired);
55
- uint256 syUsed;
56
-
57
- MarketState memory state = IPMarket(market).readState();
58
- (, netLpOut, syUsed, netPtUsed) = state.addLiquidity(
59
- syDesired,
60
- netPtDesired,
61
- block.timestamp
62
- );
63
-
64
- netTokenUsed = (netTokenDesired * syUsed).rawDivUp(syDesired);
65
- }
66
-
67
38
  /// @dev netPtToSwap is the parameter to approx
68
39
  function addLiquiditySinglePtStatic(
69
40
  address market,
@@ -140,31 +111,6 @@ library MarketMathStatic {
140
111
  priceImpact = calcPriceImpact(market, netPtFromSwap.Int());
141
112
  }
142
113
 
143
- /// @dev netPtFromSwap is the parameter to approx
144
- function addLiquiditySingleBaseTokenStatic(
145
- address market,
146
- address baseToken,
147
- uint256 netBaseTokenIn,
148
- ApproxParams memory approxParams
149
- )
150
- external
151
- returns (
152
- uint256 netLpOut,
153
- uint256 netPtFromSwap,
154
- uint256 netSyFee,
155
- uint256 priceImpact
156
- )
157
- {
158
- (IStandardizedYield SY, , ) = IPMarket(market).readTokens();
159
-
160
- return
161
- addLiquiditySingleSyStatic(
162
- market,
163
- SY.previewDeposit(baseToken, netBaseTokenIn),
164
- approxParams
165
- );
166
- }
167
-
168
114
  function removeLiquidityDualSyAndPtStatic(address market, uint256 netLpToRemove)
169
115
  external
170
116
  view
@@ -174,20 +120,6 @@ library MarketMathStatic {
174
120
  (netSyOut, netPtOut) = state.removeLiquidity(netLpToRemove);
175
121
  }
176
122
 
177
- function removeLiquidityDualTokenAndPtStatic(
178
- address market,
179
- uint256 metLpToRemove,
180
- address tokenOut
181
- ) external view returns (uint256 netTokenOut, uint256 netPtOut) {
182
- (IStandardizedYield SY, , ) = IPMarket(market).readTokens();
183
-
184
- uint256 netSyOut;
185
- MarketState memory state = IPMarket(market).readState();
186
- (netSyOut, netPtOut) = state.removeLiquidity(metLpToRemove);
187
-
188
- netTokenOut = SY.previewRedeem(tokenOut, netSyOut);
189
- }
190
-
191
123
  /// @dev netPtFromSwap is the parameter to approx
192
124
  function removeLiquiditySinglePtStatic(
193
125
  address market,
@@ -243,25 +175,6 @@ library MarketMathStatic {
243
175
  }
244
176
  }
245
177
 
246
- function removeLiquiditySingleBaseTokenStatic(
247
- address market,
248
- uint256 netLpToRemove,
249
- address baseToken
250
- )
251
- external
252
- returns (
253
- uint256 netBaseTokenOut,
254
- uint256 netSyFee,
255
- uint256 priceImpact
256
- )
257
- {
258
- uint256 netSyOut;
259
- (netSyOut, netSyFee, priceImpact) = removeLiquiditySingleSyStatic(market, netLpToRemove);
260
-
261
- (IStandardizedYield SY, , ) = IPMarket(market).readTokens();
262
- netBaseTokenOut = SY.previewRedeem(baseToken, netSyOut);
263
- }
264
-
265
178
  function swapExactPtForSyStatic(address market, uint256 exactPtIn)
266
179
  public
267
180
  returns (
@@ -335,49 +248,6 @@ library MarketMathStatic {
335
248
  priceImpact = calcPriceImpact(market, netPtIn.neg());
336
249
  }
337
250
 
338
- /// @dev netPtOut is the parameter to approx
339
- function swapExactBaseTokenForPtStatic(
340
- address market,
341
- address baseToken,
342
- uint256 amountBaseToken,
343
- ApproxParams memory approxParams
344
- )
345
- external
346
- returns (
347
- uint256 netPtOut,
348
- uint256 netSyFee,
349
- uint256 priceImpact
350
- )
351
- {
352
- (IStandardizedYield SY, , ) = IPMarket(market).readTokens();
353
-
354
- return
355
- swapExactSyForPtStatic(
356
- market,
357
- SY.previewDeposit(baseToken, amountBaseToken),
358
- approxParams
359
- );
360
- }
361
-
362
- function swapExactPtForBaseTokenStatic(
363
- address market,
364
- uint256 exactPtIn,
365
- address baseToken
366
- )
367
- external
368
- returns (
369
- uint256 netBaseTokenOut,
370
- uint256 netSyFee,
371
- uint256 priceImpact
372
- )
373
- {
374
- uint256 netSyOut;
375
- (netSyOut, netSyFee, priceImpact) = swapExactPtForSyStatic(market, exactPtIn);
376
-
377
- (IStandardizedYield SY, , ) = IPMarket(market).readTokens();
378
- netBaseTokenOut = SY.previewRedeem(baseToken, netSyOut);
379
- }
380
-
381
251
  function swapSyForExactYtStatic(address market, uint256 exactYtOut)
382
252
  external
383
253
  returns (
@@ -477,49 +347,6 @@ library MarketMathStatic {
477
347
  priceImpact = calcPriceImpact(market, netYtIn.Int());
478
348
  }
479
349
 
480
- function swapExactYtForBaseTokenStatic(
481
- address market,
482
- uint256 exactYtIn,
483
- address baseToken
484
- )
485
- external
486
- returns (
487
- uint256 netBaseTokenOut,
488
- uint256 netSyFee,
489
- uint256 priceImpact
490
- )
491
- {
492
- uint256 netSyOut;
493
- (netSyOut, netSyFee, priceImpact) = swapExactYtForSyStatic(market, exactYtIn);
494
-
495
- (IStandardizedYield SY, , ) = IPMarket(market).readTokens();
496
- netBaseTokenOut = SY.previewRedeem(baseToken, netSyOut);
497
- }
498
-
499
- /// @dev netYtOut is the parameter to approx
500
- function swapExactBaseTokenForYtStatic(
501
- address market,
502
- address baseToken,
503
- uint256 amountBaseToken,
504
- ApproxParams memory approxParams
505
- )
506
- external
507
- returns (
508
- uint256 netYtOut,
509
- uint256 netSyFee,
510
- uint256 priceImpact
511
- )
512
- {
513
- (IStandardizedYield SY, , ) = IPMarket(market).readTokens();
514
-
515
- return
516
- swapExactSyForYtStatic(
517
- market,
518
- SY.previewDeposit(baseToken, amountBaseToken),
519
- approxParams
520
- );
521
- }
522
-
523
350
  // totalPtToSwap is the param to approx
524
351
  function swapExactPtForYt(
525
352
  address market,
@@ -4,13 +4,15 @@ pragma solidity 0.8.17;
4
4
  import "../interfaces/IPYieldContractFactory.sol";
5
5
  import "../interfaces/IPMarketFactory.sol";
6
6
  import "../interfaces/IPVotingEscrowMainchain.sol";
7
+ import "../interfaces/IPBulkSellerFactory.sol";
8
+ import "../interfaces/IPBulkSeller.sol";
7
9
 
8
10
  import "./MarketMathStatic.sol";
9
11
 
10
12
  import "../core/libraries/BoringOwnableUpgradeable.sol";
11
13
  import "../LiquidityMining/libraries/VeBalanceLib.sol";
12
14
 
13
- import "@openzeppelin/contracts/proxy/utils/Initializable.sol";
15
+ import "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
14
16
  import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
15
17
 
16
18
  /// EXCLUDED FROM ALL AUDITS, TO BE CALLED ONLY BY PENDLE's SDK
@@ -58,15 +60,18 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
58
60
  IPYieldContractFactory internal immutable yieldContractFactory;
59
61
  IPMarketFactory internal immutable marketFactory;
60
62
  IPVotingEscrowMainchain internal immutable vePENDLE;
63
+ IPBulkSellerFactory internal immutable bulkFactory;
61
64
 
62
65
  constructor(
63
66
  IPYieldContractFactory _yieldContractFactory,
64
67
  IPMarketFactory _marketFactory,
65
- IPVotingEscrowMainchain _vePENDLE
68
+ IPVotingEscrowMainchain _vePENDLE,
69
+ IPBulkSellerFactory _bulkFactory
66
70
  ) initializer {
67
71
  yieldContractFactory = _yieldContractFactory;
68
72
  marketFactory = _marketFactory;
69
73
  vePENDLE = _vePENDLE;
74
+ bulkFactory = _bulkFactory;
70
75
  }
71
76
 
72
77
  function initialize() external initializer {
@@ -283,6 +288,7 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
283
288
  address market,
284
289
  address tokenIn,
285
290
  uint256 netTokenDesired,
291
+ address bulk,
286
292
  uint256 netPtDesired
287
293
  )
288
294
  external
@@ -293,13 +299,23 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
293
299
  uint256 netPtUsed
294
300
  )
295
301
  {
296
- return
297
- MarketMathStatic.addLiquidityDualTokenAndPtStatic(
298
- market,
299
- tokenIn,
300
- netTokenDesired,
301
- netPtDesired
302
- );
302
+ uint256 netSyDesired = previewDepositStatic(
303
+ getSyMarket(market),
304
+ tokenIn,
305
+ netTokenDesired,
306
+ bulk
307
+ );
308
+
309
+ uint256 netSyUsed;
310
+ (netLpOut, netSyUsed, netPtUsed) = MarketMathStatic.addLiquidityDualSyAndPtStatic(
311
+ market,
312
+ netSyDesired,
313
+ netPtDesired
314
+ );
315
+
316
+ if (netSyUsed != netSyDesired) revert Errors.RouterNotAllSyUsed(netSyDesired, netSyUsed);
317
+
318
+ netTokenUsed = netTokenDesired;
303
319
  }
304
320
 
305
321
  function addLiquiditySinglePtStatic(address market, uint256 netPtIn)
@@ -331,7 +347,8 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
331
347
  function addLiquiditySingleBaseTokenStatic(
332
348
  address market,
333
349
  address baseToken,
334
- uint256 netBaseTokenIn
350
+ uint256 netBaseTokenIn,
351
+ address bulk
335
352
  )
336
353
  external
337
354
  returns (
@@ -341,13 +358,15 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
341
358
  uint256 priceImpact
342
359
  )
343
360
  {
361
+ uint256 netSyIn = previewDepositStatic(
362
+ getSyMarket(market),
363
+ baseToken,
364
+ netBaseTokenIn,
365
+ bulk
366
+ );
367
+
344
368
  return
345
- MarketMathStatic.addLiquiditySingleBaseTokenStatic(
346
- market,
347
- baseToken,
348
- netBaseTokenIn,
349
- getDefaultApproxParams()
350
- );
369
+ MarketMathStatic.addLiquiditySingleSyStatic(market, netSyIn, getDefaultApproxParams());
351
370
  }
352
371
 
353
372
  function removeLiquidityDualSyAndPtStatic(address market, uint256 netLpToRemove)
@@ -361,10 +380,17 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
361
380
  function removeLiquidityDualTokenAndPtStatic(
362
381
  address market,
363
382
  uint256 netLpToRemove,
364
- address tokenOut
383
+ address tokenOut,
384
+ address bulk
365
385
  ) external view returns (uint256 netTokenOut, uint256 netPtOut) {
366
- return
367
- MarketMathStatic.removeLiquidityDualTokenAndPtStatic(market, netLpToRemove, tokenOut);
386
+ uint256 netSyOut;
387
+
388
+ (netSyOut, netPtOut) = MarketMathStatic.removeLiquidityDualSyAndPtStatic(
389
+ market,
390
+ netLpToRemove
391
+ );
392
+
393
+ netTokenOut = previewRedeemStatic(getSyMarket(market), tokenOut, netSyOut, bulk);
368
394
  }
369
395
 
370
396
  function removeLiquiditySinglePtStatic(address market, uint256 netLpToRemove)
@@ -398,7 +424,8 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
398
424
  function removeLiquiditySingleBaseTokenStatic(
399
425
  address market,
400
426
  uint256 netLpToRemove,
401
- address baseToken
427
+ address baseToken,
428
+ address bulk
402
429
  )
403
430
  external
404
431
  returns (
@@ -407,12 +434,14 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
407
434
  uint256 priceImpact
408
435
  )
409
436
  {
410
- return
411
- MarketMathStatic.removeLiquiditySingleBaseTokenStatic(
412
- market,
413
- netLpToRemove,
414
- baseToken
415
- );
437
+ uint256 netSyOut;
438
+
439
+ (netSyOut, netSyFee, priceImpact) = MarketMathStatic.removeLiquiditySingleSyStatic(
440
+ market,
441
+ netLpToRemove
442
+ );
443
+
444
+ netBaseTokenOut = previewRedeemStatic(getSyMarket(market), baseToken, netSyOut, bulk);
416
445
  }
417
446
 
418
447
  function swapExactPtForSyStatic(address market, uint256 exactPtIn)
@@ -464,7 +493,8 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
464
493
  function swapExactBaseTokenForPtStatic(
465
494
  address market,
466
495
  address baseToken,
467
- uint256 amountBaseToken
496
+ uint256 amountBaseToken,
497
+ address bulk
468
498
  )
469
499
  external
470
500
  returns (
@@ -473,19 +503,20 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
473
503
  uint256 priceImpact
474
504
  )
475
505
  {
476
- return
477
- MarketMathStatic.swapExactBaseTokenForPtStatic(
478
- market,
479
- baseToken,
480
- amountBaseToken,
481
- getDefaultApproxParams()
482
- );
506
+ uint256 netSyIn = previewDepositStatic(
507
+ getSyMarket(market),
508
+ baseToken,
509
+ amountBaseToken,
510
+ bulk
511
+ );
512
+ return MarketMathStatic.swapExactSyForPtStatic(market, netSyIn, getDefaultApproxParams());
483
513
  }
484
514
 
485
515
  function swapExactPtForBaseTokenStatic(
486
516
  address market,
487
517
  uint256 exactPtIn,
488
- address baseToken
518
+ address baseToken,
519
+ address bulk
489
520
  )
490
521
  external
491
522
  returns (
@@ -494,7 +525,13 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
494
525
  uint256 priceImpact
495
526
  )
496
527
  {
497
- return MarketMathStatic.swapExactPtForBaseTokenStatic(market, exactPtIn, baseToken);
528
+ uint256 netSyOut;
529
+ (netSyOut, netSyFee, priceImpact) = MarketMathStatic.swapExactPtForSyStatic(
530
+ market,
531
+ exactPtIn
532
+ );
533
+
534
+ netBaseTokenOut = previewRedeemStatic(getSyMarket(market), baseToken, netSyOut, bulk);
498
535
  }
499
536
 
500
537
  function swapSyForExactYtStatic(address market, uint256 exactYtOut)
@@ -546,7 +583,8 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
546
583
  function swapExactYtForBaseTokenStatic(
547
584
  address market,
548
585
  uint256 exactYtIn,
549
- address baseToken
586
+ address baseToken,
587
+ address bulk
550
588
  )
551
589
  external
552
590
  returns (
@@ -555,13 +593,20 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
555
593
  uint256 priceImpact
556
594
  )
557
595
  {
558
- return MarketMathStatic.swapExactYtForBaseTokenStatic(market, exactYtIn, baseToken);
596
+ uint256 netSyOut;
597
+ (netSyOut, netSyFee, priceImpact) = MarketMathStatic.swapExactYtForSyStatic(
598
+ market,
599
+ exactYtIn
600
+ );
601
+
602
+ netBaseTokenOut = previewRedeemStatic(getSyMarket(market), baseToken, netSyOut, bulk);
559
603
  }
560
604
 
561
605
  function swapExactBaseTokenForYtStatic(
562
606
  address market,
563
607
  address baseToken,
564
- uint256 amountBaseToken
608
+ uint256 amountBaseToken,
609
+ address bulk
565
610
  )
566
611
  external
567
612
  returns (
@@ -570,13 +615,14 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
570
615
  uint256 priceImpact
571
616
  )
572
617
  {
573
- return
574
- MarketMathStatic.swapExactBaseTokenForYtStatic(
575
- market,
576
- baseToken,
577
- amountBaseToken,
578
- getDefaultApproxParams()
579
- );
618
+ uint256 netSyIn = previewDepositStatic(
619
+ getSyMarket(market),
620
+ baseToken,
621
+ amountBaseToken,
622
+ bulk
623
+ );
624
+
625
+ return MarketMathStatic.swapExactSyForYtStatic(market, netSyIn, getDefaultApproxParams());
580
626
  }
581
627
 
582
628
  function swapExactPtForYtStatic(address market, uint256 exactPtIn)
@@ -661,19 +707,49 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
661
707
  function mintPYFromBaseStatic(
662
708
  address YT,
663
709
  address baseToken,
664
- uint256 amountBaseToken
710
+ uint256 amountBaseToken,
711
+ address bulk
665
712
  ) external returns (uint256 amountPY) {
666
713
  IStandardizedYield SY = IStandardizedYield(IPYieldToken(YT).SY());
667
- return mintPYFromSyStatic(YT, SY.previewDeposit(baseToken, amountBaseToken));
714
+ uint256 amountSy = previewDepositStatic(SY, baseToken, amountBaseToken, bulk);
715
+ return mintPYFromSyStatic(YT, amountSy);
668
716
  }
669
717
 
670
718
  function redeemPYToBaseStatic(
671
719
  address YT,
672
720
  uint256 amountPYToRedeem,
673
- address baseToken
721
+ address baseToken,
722
+ address bulk
674
723
  ) external returns (uint256 amountBaseToken) {
675
724
  IStandardizedYield SY = IStandardizedYield(IPYieldToken(YT).SY());
676
- return SY.previewRedeem(baseToken, redeemPYToSyStatic(YT, amountPYToRedeem));
725
+ uint256 amountSy = redeemPYToSyStatic(YT, amountPYToRedeem);
726
+ return previewRedeemStatic(SY, baseToken, amountSy, bulk);
727
+ }
728
+
729
+ function previewDepositStatic(
730
+ IStandardizedYield SY,
731
+ address baseToken,
732
+ uint256 amountToken,
733
+ address bulk
734
+ ) public view returns (uint256 amountSy) {
735
+ if (bulk != address(0)) {
736
+ return IPBulkSeller(bulk).calcSwapExactTokenForSy(amountToken);
737
+ } else {
738
+ return SY.previewDeposit(baseToken, amountToken);
739
+ }
740
+ }
741
+
742
+ function previewRedeemStatic(
743
+ IStandardizedYield SY,
744
+ address baseToken,
745
+ uint256 amountSy,
746
+ address bulk
747
+ ) public view returns (uint256 amountBaseToken) {
748
+ if (bulk != address(0)) {
749
+ return IPBulkSeller(bulk).calcSwapExactSyForToken(amountSy);
750
+ } else {
751
+ return SY.previewRedeem(baseToken, amountSy);
752
+ }
677
753
  }
678
754
 
679
755
  function getPtImpliedYield(address market) public view returns (int256) {
@@ -717,4 +793,67 @@ contract RouterStatic is Initializable, BoringOwnableUpgradeable, UUPSUpgradeabl
717
793
  return (SY.getTokensIn(), SY.getTokensOut());
718
794
  }
719
795
  }
796
+
797
+ function getAmountTokenToMintSy(
798
+ IStandardizedYield SY,
799
+ address tokenIn,
800
+ address bulk,
801
+ uint256 netSyOut
802
+ ) public view returns (uint256 netTokenIn) {
803
+ uint256 pivotAmount = netSyOut;
804
+
805
+ uint256 low = pivotAmount;
806
+ {
807
+ while (true) {
808
+ uint256 lowSyOut = previewDepositStatic(SY, tokenIn, low, bulk);
809
+ if (lowSyOut >= netSyOut) low /= 10;
810
+ else break;
811
+ }
812
+ }
813
+
814
+ uint256 high = pivotAmount;
815
+ {
816
+ while (true) {
817
+ uint256 highSyOut = previewDepositStatic(SY, tokenIn, high, bulk);
818
+ if (highSyOut < netSyOut) high *= 10;
819
+ else break;
820
+ }
821
+ }
822
+
823
+ while (low <= high) {
824
+ uint256 mid = (low + high) / 2;
825
+ uint256 syOut = previewDepositStatic(SY, tokenIn, mid, bulk);
826
+
827
+ if (syOut >= netSyOut) {
828
+ netTokenIn = mid;
829
+ high = mid - 1;
830
+ } else {
831
+ low = mid + 1;
832
+ }
833
+ }
834
+
835
+ assert(netTokenIn > 0);
836
+ }
837
+
838
+ function getSyMarket(address market) public view returns (IStandardizedYield) {
839
+ (IStandardizedYield SY, , ) = IPMarket(market).readTokens();
840
+ return SY;
841
+ }
842
+
843
+ function getBulkSellerInfo(address token, address SY)
844
+ external
845
+ view
846
+ returns (
847
+ address bulk,
848
+ uint256 totalToken,
849
+ uint256 totalSy
850
+ )
851
+ {
852
+ bulk = IPBulkSellerFactory(bulkFactory).get(token, SY);
853
+ if (bulk != address(0)) {
854
+ BulkSellerState memory state = IPBulkSeller(bulk).readState();
855
+ totalToken = state.totalToken;
856
+ totalSy = state.totalSy;
857
+ }
858
+ }
720
859
  }