@pendle/core-v2 5.2.1-beta-1 → 5.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (211) hide show
  1. package/build/artifacts/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCBaseSY.sol/PendleLBTCBaseSY.dbg.json +4 -0
  2. package/build/artifacts/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCBaseSY.sol/PendleLBTCBaseSY.json +1111 -0
  3. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
  4. package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.json +0 -196
  5. package/build/artifacts/contracts/interfaces/IPActionCallbackV3.sol/IPActionCallbackV3.dbg.json +1 -1
  6. package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
  7. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
  8. package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.json +78 -196
  9. package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.dbg.json +1 -1
  10. package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.json +0 -196
  11. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
  12. package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.json +0 -196
  13. package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.dbg.json +1 -1
  14. package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.json +0 -196
  15. package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
  16. package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.json +0 -196
  17. package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
  18. package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.json +0 -196
  19. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
  20. package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.json +16 -1188
  21. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionAddRemoveLiqV3Events.dbg.json +1 -1
  22. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionMiscV3Events.dbg.json +1 -1
  23. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionStorageEvents.dbg.json +1 -1
  24. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapPTV3Events.dbg.json +1 -1
  25. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapYTV3Events.dbg.json +1 -1
  26. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.dbg.json +1 -1
  27. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.json +0 -196
  28. package/build/artifacts/contracts/interfaces/IPChainlinkOracle.sol/IPChainlinkOracle.dbg.json +4 -0
  29. package/build/artifacts/contracts/interfaces/IPChainlinkOracle.sol/IPChainlinkOracle.json +122 -0
  30. package/build/artifacts/contracts/interfaces/IPChainlinkOracleFactory.sol/IPChainlinkOracleFactory.dbg.json +4 -0
  31. package/build/artifacts/contracts/interfaces/IPChainlinkOracleFactory.sol/IPChainlinkOracleFactory.json +91 -0
  32. package/build/artifacts/contracts/interfaces/IPChainlinkOracleWithQuote.sol/IPChainlinkOracleWithQuote.dbg.json +4 -0
  33. package/build/artifacts/contracts/interfaces/IPChainlinkOracleWithQuote.sol/IPChainlinkOracleWithQuote.json +262 -0
  34. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitOrderType.dbg.json +1 -1
  35. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.dbg.json +1 -1
  36. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.json +96 -0
  37. package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouterCallback.dbg.json +1 -1
  38. package/build/artifacts/contracts/interfaces/IPPYLpOracle.sol/IPPYLpOracle.dbg.json +1 -1
  39. package/build/artifacts/contracts/interfaces/IPPYLpOracle.sol/IPPYLpOracle.json +13 -0
  40. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
  41. package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +0 -196
  42. package/build/artifacts/contracts/interfaces/Lombard/ILBTCMinterBase.sol/ILBTCMinterBase.dbg.json +4 -0
  43. package/build/artifacts/contracts/interfaces/Lombard/ILBTCMinterBase.sol/ILBTCMinterBase.json +63 -0
  44. package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.dbg.json +1 -1
  45. package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.json +2 -2
  46. package/build/artifacts/contracts/limit/LimitRouterBase.sol/LimitRouterBase.dbg.json +1 -1
  47. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.dbg.json +1 -1
  48. package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.json +2 -2
  49. package/build/artifacts/contracts/offchain-helpers/LimitBackendHelper.sol/LimitBackendHelper.dbg.json +1 -1
  50. package/build/artifacts/contracts/offchain-helpers/LimitBackendHelper.sol/LimitBackendHelper.json +2 -2
  51. package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
  52. package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.json +2 -2
  53. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
  54. package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
  55. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
  56. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
  57. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
  58. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
  59. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
  60. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
  61. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
  62. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
  63. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
  64. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -198
  65. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
  66. package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
  67. package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
  68. package/build/artifacts/contracts/oracles/PendlePYLpOracle.sol/PendlePYLpOracle.dbg.json +1 -1
  69. package/build/artifacts/contracts/oracles/PendlePYLpOracle.sol/PendlePYLpOracle.json +2 -2
  70. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracle.sol/PendleChainlinkOracle.dbg.json +4 -0
  71. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracle.sol/PendleChainlinkOracle.json +226 -0
  72. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.dbg.json +4 -0
  73. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.json +343 -0
  74. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.dbg.json +4 -0
  75. package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.json +257 -0
  76. package/build/artifacts/contracts/oracles/samples/BoringLpGlpOracle.sol/BoringLpGlpOracle.dbg.json +1 -1
  77. package/build/artifacts/contracts/oracles/samples/BoringLpGlpOracle.sol/BoringLpGlpOracle.json +2 -2
  78. package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.dbg.json +1 -1
  79. package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.json +2 -2
  80. package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.dbg.json +1 -1
  81. package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.json +2 -2
  82. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
  83. package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +2 -198
  84. package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.dbg.json +1 -1
  85. package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.json +2 -2
  86. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
  87. package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +80 -198
  88. package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.dbg.json +1 -1
  89. package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.json +2 -198
  90. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +1 -1
  91. package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.json +2 -198
  92. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
  93. package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +2 -198
  94. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
  95. package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +2 -198
  96. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.dbg.json +1 -1
  97. package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.json +2 -2
  98. package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
  99. package/build/artifacts/contracts/router/Reflector.sol/Reflector.json +2 -2
  100. package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
  101. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.dbg.json +1 -1
  102. package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.json +2 -2
  103. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.dbg.json +1 -1
  104. package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.json +2 -2
  105. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
  106. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
  107. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
  108. package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
  109. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.dbg.json +1 -1
  110. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.json +2 -2
  111. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.dbg.json +1 -1
  112. package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.json +2 -2
  113. package/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCBaseSY.sol +121 -0
  114. package/contracts/interfaces/IPActionAddRemoveLiqV3.sol +6 -6
  115. package/contracts/interfaces/IPActionMiscV3.sol +8 -2
  116. package/contracts/interfaces/IPActionSwapPTV3.sol +4 -4
  117. package/contracts/interfaces/IPActionSwapYTV3.sol +4 -4
  118. package/contracts/interfaces/IPAllActionTypeV3.sol +0 -4
  119. package/contracts/interfaces/IPAllActionV3.sol +1 -3
  120. package/contracts/interfaces/IPAllEventsV3.sol +1 -44
  121. package/contracts/interfaces/IPChainlinkOracle.sol +11 -0
  122. package/contracts/interfaces/IPChainlinkOracleFactory.sol +22 -0
  123. package/contracts/interfaces/IPChainlinkOracleWithQuote.sol +8 -0
  124. package/contracts/interfaces/IPLimitRouter.sol +22 -12
  125. package/contracts/interfaces/IPPYLpOracle.sol +3 -4
  126. package/contracts/interfaces/Lombard/ILBTCMinterBase.sol +12 -0
  127. package/contracts/oracles/factory/PendleChainlinkOracle.sol +134 -0
  128. package/contracts/oracles/factory/PendleChainlinkOracleFactory.sol +121 -0
  129. package/contracts/oracles/factory/PendleChainlinkOracleWithQuote.sol +50 -0
  130. package/contracts/router/ActionAddRemoveLiqV3.sol +9 -9
  131. package/contracts/router/ActionMiscV3.sol +17 -3
  132. package/contracts/router/ActionSwapPTV3.sol +4 -4
  133. package/contracts/router/ActionSwapYTV3.sol +4 -4
  134. package/contracts/router/base/ActionBase.sol +12 -35
  135. package/contracts/router/base/ActionDelegateBase.sol +1 -1
  136. package/deployments/1-core.json +1 -1
  137. package/deployments/1-markets/MORPHO-PWBTC-JUN2025.json +14 -0
  138. package/deployments/8453-markets/CBETH-BASE-DEC2025.json +14 -0
  139. package/deployments/8453-markets/LBTC-BASE-MAY2025.json +14 -0
  140. package/package.json +1 -1
  141. package/typechain-types/ActionAddRemoveLiqV3.ts +0 -148
  142. package/typechain-types/ActionMiscV3.ts +44 -148
  143. package/typechain-types/ActionSimple.ts +0 -148
  144. package/typechain-types/ActionStorageStatic.ts +0 -148
  145. package/typechain-types/ActionStorageV4.ts +0 -148
  146. package/typechain-types/ActionSwapPTV3.ts +0 -148
  147. package/typechain-types/ActionSwapYTV3.ts +0 -148
  148. package/typechain-types/ILBTCMinterBase.ts +159 -0
  149. package/typechain-types/IPActionAddRemoveLiqV3.ts +0 -148
  150. package/typechain-types/IPActionMiscV3.ts +44 -148
  151. package/typechain-types/IPActionSimple.ts +0 -148
  152. package/typechain-types/IPActionStorageStatic.ts +0 -148
  153. package/typechain-types/IPActionStorageV4.ts +0 -148
  154. package/typechain-types/IPActionSwapPTV3.ts +0 -148
  155. package/typechain-types/IPActionSwapYTV3.ts +0 -148
  156. package/typechain-types/IPAllActionV3.ts +20 -390
  157. package/typechain-types/IPAllEventsV3.ts +0 -148
  158. package/typechain-types/IPLimitRouter.ts +36 -0
  159. package/typechain-types/IPPYLpOracle.ts +21 -0
  160. package/typechain-types/IPRouterStatic.ts +0 -148
  161. package/typechain-types/PendleLBTCBaseSY.ts +1470 -0
  162. package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +1 -197
  163. package/typechain-types/factories/ActionCallbackV3__factory.ts +1 -1
  164. package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
  165. package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
  166. package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
  167. package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
  168. package/typechain-types/factories/ActionMiscV3__factory.ts +79 -197
  169. package/typechain-types/factories/ActionSimple__factory.ts +1 -197
  170. package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -197
  171. package/typechain-types/factories/ActionStorageV4__factory.ts +1 -197
  172. package/typechain-types/factories/ActionSwapPTV3__factory.ts +1 -197
  173. package/typechain-types/factories/ActionSwapYTV3__factory.ts +1 -197
  174. package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
  175. package/typechain-types/factories/BoringLpGlpOracle__factory.ts +1 -1
  176. package/typechain-types/factories/BoringPYUsdChainlinkAssetOracle__factory.ts +1 -1
  177. package/typechain-types/factories/BoringPYUsdChainlinkSYOracle__factory.ts +1 -1
  178. package/typechain-types/factories/ILBTCMinterBase__factory.ts +78 -0
  179. package/typechain-types/factories/IPActionAddRemoveLiqV3__factory.ts +0 -196
  180. package/typechain-types/factories/IPActionMiscV3__factory.ts +78 -196
  181. package/typechain-types/factories/IPActionSimple__factory.ts +0 -196
  182. package/typechain-types/factories/IPActionStorageStatic__factory.ts +0 -196
  183. package/typechain-types/factories/IPActionStorageV4__factory.ts +0 -196
  184. package/typechain-types/factories/IPActionSwapPTV3__factory.ts +0 -196
  185. package/typechain-types/factories/IPActionSwapYTV3__factory.ts +0 -196
  186. package/typechain-types/factories/IPAllActionV3__factory.ts +16 -1188
  187. package/typechain-types/factories/IPAllEventsV3__factory.ts +0 -196
  188. package/typechain-types/factories/IPLimitRouter__factory.ts +96 -0
  189. package/typechain-types/factories/IPPYLpOracle__factory.ts +13 -0
  190. package/typechain-types/factories/IPRouterStatic__factory.ts +0 -196
  191. package/typechain-types/factories/LimitBackendHelper__factory.ts +1 -1
  192. package/typechain-types/factories/PendleChainlinkOracleFactory__factory.ts +1 -1
  193. package/typechain-types/factories/PendleChainlinkOracleWithQuote__factory.ts +1 -49
  194. package/typechain-types/factories/PendleChainlinkOracle__factory.ts +1 -49
  195. package/typechain-types/factories/PendleLBTCBaseSY__factory.ts +1164 -0
  196. package/typechain-types/factories/PendleLimitRouter__factory.ts +1 -1
  197. package/typechain-types/factories/PendlePYLpOracle__factory.ts +1 -1
  198. package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +1 -1
  199. package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
  200. package/typechain-types/factories/PendleRouterV4__factory.ts +1 -1
  201. package/typechain-types/factories/Reflector__factory.ts +1 -1
  202. package/typechain-types/hardhat.d.ts +72 -0
  203. package/typechain-types/index.ts +16 -0
  204. package/build/artifacts/contracts/interfaces/IPActionSwapLimitV3.sol/IPActionSwapLimitV3.dbg.json +0 -4
  205. package/build/artifacts/contracts/interfaces/IPActionSwapLimitV3.sol/IPActionSwapLimitV3.json +0 -2638
  206. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapLimitV3Events.dbg.json +0 -4
  207. package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapLimitV3Events.json +0 -207
  208. package/build/artifacts/contracts/router/ActionSwapLimitV3.sol/ActionSwapLimitV3.dbg.json +0 -4
  209. package/build/artifacts/contracts/router/ActionSwapLimitV3.sol/ActionSwapLimitV3.json +0 -2638
  210. package/contracts/interfaces/IPActionSwapLimitV3.sol +0 -42
  211. package/contracts/router/ActionSwapLimitV3.sol +0 -126
@@ -1,42 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity ^0.8.0;
3
-
4
- import "../router/math/MarketApproxLib.sol";
5
- import "./IPAllActionTypeV3.sol";
6
- import {IPAllEventsV3} from "./IPAllEventsV3.sol";
7
-
8
- interface IPActionSwapLimitV3 is IPAllEventsV3 {
9
- function swapMaxPtForTokenLimitOnly(
10
- address receiver,
11
- address market,
12
- uint256 maxPtIn,
13
- uint256 minTokenPtRate,
14
- TokenOutput calldata output,
15
- LimitOrderData memory limit
16
- ) external returns (uint256 netTokenOut, uint256 netPtReturned, uint256 netSyFee, uint256 netSyInterm);
17
-
18
- function swapMaxPtForSyLimitOnly(
19
- address receiver,
20
- address market,
21
- uint256 maxPtIn,
22
- uint256 minSyPtRate,
23
- LimitOrderData memory limit
24
- ) external returns (uint256 netSyOut, uint256 netPtReturned, uint256 netSyFee);
25
-
26
- function swapMaxTokenForYtLimitOnly(
27
- address receiver,
28
- address market,
29
- uint256 minSyInterm,
30
- uint256 minYtSyRate,
31
- TokenInput calldata input,
32
- LimitOrderData memory limit
33
- ) external payable returns (uint256 netYtOut, uint256 netSyReturned, uint256 netSyFee, uint256 netSyInterm);
34
-
35
- function swapMaxSyForYtLimitOnly(
36
- address receiver,
37
- address market,
38
- uint256 maxSyIn,
39
- uint256 minYtSyRate,
40
- LimitOrderData memory limit
41
- ) external returns (uint256 netYtOut, uint256 netSyReturned, uint256 netSyFee);
42
- }
@@ -1,126 +0,0 @@
1
- // SPDX-License-Identifier: GPL-3.0-or-later
2
- pragma solidity ^0.8.17;
3
-
4
- import "./base/ActionBase.sol";
5
- import "../interfaces/IPActionSwapLimitV3.sol";
6
-
7
- contract ActionSwapLimitV3 is IPActionSwapLimitV3, ActionBase {
8
- using PMath for uint256;
9
-
10
- function swapMaxPtForTokenLimitOnly(
11
- address receiver,
12
- address market,
13
- uint256 maxPtIn,
14
- uint256 minTokenPtRate,
15
- TokenOutput calldata output,
16
- LimitOrderData memory limit
17
- ) external returns (uint256 netTokenOut, uint256 netPtReturned, uint256 netSyFee, uint256 netSyInterm) {
18
- (IStandardizedYield SY, IPPrincipalToken PT, ) = IPMarket(market).readTokens();
19
- _transferFrom(PT, msg.sender, address(this), maxPtIn);
20
-
21
- (netSyInterm, netPtReturned, netSyFee) = _swapMaxPtForSyLimitOnly(address(SY), PT, maxPtIn, 0, limit);
22
-
23
- netTokenOut = _redeemSyToToken(receiver, address(SY), netSyInterm, output, false);
24
-
25
- uint256 netPtUsed = maxPtIn - netPtReturned;
26
- if (netTokenOut.divDown(netPtUsed) < minTokenPtRate) revert("Slippage LO: INSUFFICIENT_TOKEN_OUT");
27
-
28
- emit SwapMaxPtForTokenLimitOnly(
29
- msg.sender,
30
- market,
31
- output.tokenOut,
32
- receiver,
33
- maxPtIn,
34
- netTokenOut,
35
- netSyInterm,
36
- netPtReturned
37
- );
38
- }
39
-
40
- function swapMaxPtForSyLimitOnly(
41
- address receiver,
42
- address market,
43
- uint256 maxPtIn,
44
- uint256 minSyPtRate,
45
- LimitOrderData memory limit
46
- ) external returns (uint256 netSyOut, uint256 netPtReturned, uint256 netSyFee) {
47
- (, IPPrincipalToken PT, ) = IPMarket(market).readTokens();
48
- _transferFrom(PT, msg.sender, address(this), maxPtIn);
49
-
50
- (netSyOut, netPtReturned, netSyFee) = _swapMaxPtForSyLimitOnly(receiver, PT, maxPtIn, minSyPtRate, limit);
51
-
52
- emit SwapMaxPtForSyLimitOnly(msg.sender, market, receiver, maxPtIn, netSyOut, netPtReturned);
53
- }
54
-
55
- function swapMaxTokenForYtLimitOnly(
56
- address receiver,
57
- address market,
58
- uint256 minSyInterm,
59
- uint256 minYtSyRate,
60
- TokenInput calldata input,
61
- LimitOrderData memory limit
62
- ) external payable returns (uint256 netYtOut, uint256 netSyReturned, uint256 netSyFee, uint256 netSyInterm) {
63
- (IStandardizedYield SY, , ) = IPMarket(market).readTokens();
64
-
65
- netSyInterm = _mintSyFromToken(address(this), address(SY), minSyInterm, input);
66
- (netYtOut, netSyReturned, netSyFee) = _swapMaxSyForYtLimitOnly(receiver, SY, netSyInterm, minYtSyRate, limit);
67
-
68
- emit SwapMaxTokenForYtLimitOnly(
69
- msg.sender,
70
- market,
71
- input.tokenIn,
72
- receiver,
73
- input.netTokenIn,
74
- netYtOut,
75
- netSyInterm,
76
- netSyReturned
77
- );
78
- }
79
-
80
- function swapMaxSyForYtLimitOnly(
81
- address receiver,
82
- address market,
83
- uint256 maxSyIn,
84
- uint256 minYtSyRate,
85
- LimitOrderData memory limit
86
- ) external returns (uint256 netYtOut, uint256 netSyReturned, uint256 netSyFee) {
87
- (IStandardizedYield SY, , ) = IPMarket(market).readTokens();
88
-
89
- _transferFrom(SY, msg.sender, address(this), maxSyIn);
90
- (netYtOut, netSyReturned, netSyFee) = _swapMaxSyForYtLimitOnly(receiver, SY, maxSyIn, minYtSyRate, limit);
91
-
92
- emit SwapMaxSyForYtLimitOnly(msg.sender, market, receiver, maxSyIn, netYtOut, netSyReturned);
93
- }
94
-
95
- function _swapMaxPtForSyLimitOnly(
96
- address receiver,
97
- IPPrincipalToken PT,
98
- uint256 maxPtIn,
99
- uint256 minSyPtRate,
100
- LimitOrderData memory limit
101
- ) internal returns (uint256 netSyOut, uint256 netPtReturned, uint256 netSyFee) {
102
- (netPtReturned, netSyOut, netSyFee, ) = _fillLimit(receiver, PT, maxPtIn, limit);
103
- if (netSyOut == 0) revert("Slippage LO: NO_ORDER_FILLED");
104
-
105
- uint256 netPtUsed = maxPtIn - netPtReturned;
106
- if (netSyOut.divDown(netPtUsed) < minSyPtRate) revert("Slippage LO: INSUFFICIENT_SY_OUT");
107
-
108
- _transferOut(address(PT), msg.sender, netPtReturned);
109
- }
110
-
111
- function _swapMaxSyForYtLimitOnly(
112
- address receiver,
113
- IStandardizedYield SY,
114
- uint256 maxSyIn,
115
- uint256 minYtSyRate,
116
- LimitOrderData memory limit
117
- ) internal returns (uint256 netYtOut, uint256 netSyReturned, uint256 netSyFee) {
118
- (netSyReturned, netYtOut, netSyFee, ) = _fillLimit(receiver, SY, maxSyIn, limit);
119
- if (netYtOut == 0) revert("Slippage LO: NO_ORDER_FILLED");
120
-
121
- uint256 netSyUsed = maxSyIn - netSyReturned;
122
- if (netYtOut.divDown(netSyUsed) < minYtSyRate) revert("Slippage LO: INSUFFICIENT_YT_OUT");
123
-
124
- _transferOut(address(SY), msg.sender, netSyReturned);
125
- }
126
- }