@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.
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCBaseSY.sol/PendleLBTCBaseSY.dbg.json +4 -0
- package/build/artifacts/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCBaseSY.sol/PendleLBTCBaseSY.json +1111 -0
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.json +0 -196
- package/build/artifacts/contracts/interfaces/IPActionCallbackV3.sol/IPActionCallbackV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMarketAuxStatic.sol/IPActionMarketAuxStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionMiscV3.sol/IPActionMiscV3.json +78 -196
- package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSimple.sol/IPActionSimple.json +0 -196
- package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.json +0 -196
- package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.json +0 -196
- package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.json +0 -196
- package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.json +0 -196
- package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.json +16 -1188
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionAddRemoveLiqV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionMiscV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionStorageEvents.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapPTV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapYTV3Events.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPAllEventsV3.json +0 -196
- package/build/artifacts/contracts/interfaces/IPChainlinkOracle.sol/IPChainlinkOracle.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPChainlinkOracle.sol/IPChainlinkOracle.json +122 -0
- package/build/artifacts/contracts/interfaces/IPChainlinkOracleFactory.sol/IPChainlinkOracleFactory.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPChainlinkOracleFactory.sol/IPChainlinkOracleFactory.json +91 -0
- package/build/artifacts/contracts/interfaces/IPChainlinkOracleWithQuote.sol/IPChainlinkOracleWithQuote.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPChainlinkOracleWithQuote.sol/IPChainlinkOracleWithQuote.json +262 -0
- package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitOrderType.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouter.json +96 -0
- package/build/artifacts/contracts/interfaces/IPLimitRouter.sol/IPLimitRouterCallback.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPYLpOracle.sol/IPPYLpOracle.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPPYLpOracle.sol/IPPYLpOracle.json +13 -0
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.json +0 -196
- package/build/artifacts/contracts/interfaces/Lombard/ILBTCMinterBase.sol/ILBTCMinterBase.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/Lombard/ILBTCMinterBase.sol/ILBTCMinterBase.json +63 -0
- package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.dbg.json +1 -1
- package/build/artifacts/contracts/limit/LimitMathCore.sol/LimitMathCore.json +2 -2
- package/build/artifacts/contracts/limit/LimitRouterBase.sol/LimitRouterBase.dbg.json +1 -1
- package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.dbg.json +1 -1
- package/build/artifacts/contracts/limit/PendleLimitRouter.sol/PendleLimitRouter.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/LimitBackendHelper.sol/LimitBackendHelper.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/LimitBackendHelper.sol/LimitBackendHelper.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/PendleRouterStatic.sol/PendleRouterStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionInfoStatic.sol/ActionInfoStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketAuxStatic.sol/ActionMarketAuxStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMarketCoreStatic.sol/ActionMarketCoreStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionMintRedeemStatic.sol/ActionMintRedeemStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionStorageStatic.sol/ActionStorageStatic.json +2 -198
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/ActionVePendleStatic.sol/ActionVePendleStatic.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PendlePYLpOracle.sol/PendlePYLpOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/PendlePYLpOracle.sol/PendlePYLpOracle.json +2 -2
- package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracle.sol/PendleChainlinkOracle.dbg.json +4 -0
- package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracle.sol/PendleChainlinkOracle.json +226 -0
- package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.dbg.json +4 -0
- package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleFactory.sol/PendleChainlinkOracleFactory.json +343 -0
- package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.dbg.json +4 -0
- package/build/artifacts/contracts/oracles/factory/PendleChainlinkOracleWithQuote.sol/PendleChainlinkOracleWithQuote.json +257 -0
- package/build/artifacts/contracts/oracles/samples/BoringLpGlpOracle.sol/BoringLpGlpOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/samples/BoringLpGlpOracle.sol/BoringLpGlpOracle.json +2 -2
- package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkAssetOracle.sol/BoringPYUsdChainlinkAssetOracle.json +2 -2
- package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.dbg.json +1 -1
- package/build/artifacts/contracts/oracles/samples/BoringPYUsdChainlinkSYOracle.sol/BoringPYUsdChainlinkSYOracle.json +2 -2
- package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +2 -198
- package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionCallbackV3.sol/ActionCallbackV3.json +2 -2
- package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +80 -198
- package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.json +2 -198
- package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.json +2 -198
- package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +2 -198
- package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +2 -198
- package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.dbg.json +1 -1
- package/build/artifacts/contracts/router/PendleRouterV4.sol/PendleRouterV4.json +2 -2
- package/build/artifacts/contracts/router/Reflector.sol/Reflector.dbg.json +1 -1
- package/build/artifacts/contracts/router/Reflector.sol/Reflector.json +2 -2
- package/build/artifacts/contracts/router/base/ActionBase.sol/ActionBase.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.dbg.json +1 -1
- package/build/artifacts/contracts/router/base/ActionDelegateBase.sol/ActionDelegateBase.json +2 -2
- package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/ApproxStateLib.sol/ApproxStateLib.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtInLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtInLib.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtOutLib.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLib.sol/MarketApproxPtOutLib.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtInLibOnchain.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLibOnchain.sol/MarketApproxPtOutLibOnchain.json +2 -2
- package/contracts/core/StandardizedYield/implementations/Lombard/PendleLBTCBaseSY.sol +121 -0
- package/contracts/interfaces/IPActionAddRemoveLiqV3.sol +6 -6
- package/contracts/interfaces/IPActionMiscV3.sol +8 -2
- package/contracts/interfaces/IPActionSwapPTV3.sol +4 -4
- package/contracts/interfaces/IPActionSwapYTV3.sol +4 -4
- package/contracts/interfaces/IPAllActionTypeV3.sol +0 -4
- package/contracts/interfaces/IPAllActionV3.sol +1 -3
- package/contracts/interfaces/IPAllEventsV3.sol +1 -44
- package/contracts/interfaces/IPChainlinkOracle.sol +11 -0
- package/contracts/interfaces/IPChainlinkOracleFactory.sol +22 -0
- package/contracts/interfaces/IPChainlinkOracleWithQuote.sol +8 -0
- package/contracts/interfaces/IPLimitRouter.sol +22 -12
- package/contracts/interfaces/IPPYLpOracle.sol +3 -4
- package/contracts/interfaces/Lombard/ILBTCMinterBase.sol +12 -0
- package/contracts/oracles/factory/PendleChainlinkOracle.sol +134 -0
- package/contracts/oracles/factory/PendleChainlinkOracleFactory.sol +121 -0
- package/contracts/oracles/factory/PendleChainlinkOracleWithQuote.sol +50 -0
- package/contracts/router/ActionAddRemoveLiqV3.sol +9 -9
- package/contracts/router/ActionMiscV3.sol +17 -3
- package/contracts/router/ActionSwapPTV3.sol +4 -4
- package/contracts/router/ActionSwapYTV3.sol +4 -4
- package/contracts/router/base/ActionBase.sol +12 -35
- package/contracts/router/base/ActionDelegateBase.sol +1 -1
- package/deployments/1-core.json +1 -1
- package/deployments/1-markets/MORPHO-PWBTC-JUN2025.json +14 -0
- package/deployments/8453-markets/CBETH-BASE-DEC2025.json +14 -0
- package/deployments/8453-markets/LBTC-BASE-MAY2025.json +14 -0
- package/package.json +1 -1
- package/typechain-types/ActionAddRemoveLiqV3.ts +0 -148
- package/typechain-types/ActionMiscV3.ts +44 -148
- package/typechain-types/ActionSimple.ts +0 -148
- package/typechain-types/ActionStorageStatic.ts +0 -148
- package/typechain-types/ActionStorageV4.ts +0 -148
- package/typechain-types/ActionSwapPTV3.ts +0 -148
- package/typechain-types/ActionSwapYTV3.ts +0 -148
- package/typechain-types/ILBTCMinterBase.ts +159 -0
- package/typechain-types/IPActionAddRemoveLiqV3.ts +0 -148
- package/typechain-types/IPActionMiscV3.ts +44 -148
- package/typechain-types/IPActionSimple.ts +0 -148
- package/typechain-types/IPActionStorageStatic.ts +0 -148
- package/typechain-types/IPActionStorageV4.ts +0 -148
- package/typechain-types/IPActionSwapPTV3.ts +0 -148
- package/typechain-types/IPActionSwapYTV3.ts +0 -148
- package/typechain-types/IPAllActionV3.ts +20 -390
- package/typechain-types/IPAllEventsV3.ts +0 -148
- package/typechain-types/IPLimitRouter.ts +36 -0
- package/typechain-types/IPPYLpOracle.ts +21 -0
- package/typechain-types/IPRouterStatic.ts +0 -148
- package/typechain-types/PendleLBTCBaseSY.ts +1470 -0
- package/typechain-types/factories/ActionAddRemoveLiqV3__factory.ts +1 -197
- package/typechain-types/factories/ActionCallbackV3__factory.ts +1 -1
- package/typechain-types/factories/ActionInfoStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMarketAuxStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMarketCoreStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMintRedeemStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionMiscV3__factory.ts +79 -197
- package/typechain-types/factories/ActionSimple__factory.ts +1 -197
- package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -197
- package/typechain-types/factories/ActionStorageV4__factory.ts +1 -197
- package/typechain-types/factories/ActionSwapPTV3__factory.ts +1 -197
- package/typechain-types/factories/ActionSwapYTV3__factory.ts +1 -197
- package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
- package/typechain-types/factories/BoringLpGlpOracle__factory.ts +1 -1
- package/typechain-types/factories/BoringPYUsdChainlinkAssetOracle__factory.ts +1 -1
- package/typechain-types/factories/BoringPYUsdChainlinkSYOracle__factory.ts +1 -1
- package/typechain-types/factories/ILBTCMinterBase__factory.ts +78 -0
- package/typechain-types/factories/IPActionAddRemoveLiqV3__factory.ts +0 -196
- package/typechain-types/factories/IPActionMiscV3__factory.ts +78 -196
- package/typechain-types/factories/IPActionSimple__factory.ts +0 -196
- package/typechain-types/factories/IPActionStorageStatic__factory.ts +0 -196
- package/typechain-types/factories/IPActionStorageV4__factory.ts +0 -196
- package/typechain-types/factories/IPActionSwapPTV3__factory.ts +0 -196
- package/typechain-types/factories/IPActionSwapYTV3__factory.ts +0 -196
- package/typechain-types/factories/IPAllActionV3__factory.ts +16 -1188
- package/typechain-types/factories/IPAllEventsV3__factory.ts +0 -196
- package/typechain-types/factories/IPLimitRouter__factory.ts +96 -0
- package/typechain-types/factories/IPPYLpOracle__factory.ts +13 -0
- package/typechain-types/factories/IPRouterStatic__factory.ts +0 -196
- package/typechain-types/factories/LimitBackendHelper__factory.ts +1 -1
- package/typechain-types/factories/PendleChainlinkOracleFactory__factory.ts +1 -1
- package/typechain-types/factories/PendleChainlinkOracleWithQuote__factory.ts +1 -49
- package/typechain-types/factories/PendleChainlinkOracle__factory.ts +1 -49
- package/typechain-types/factories/PendleLBTCBaseSY__factory.ts +1164 -0
- package/typechain-types/factories/PendleLimitRouter__factory.ts +1 -1
- package/typechain-types/factories/PendlePYLpOracle__factory.ts +1 -1
- package/typechain-types/factories/PendlePoolDeployHelper__factory.ts +1 -1
- package/typechain-types/factories/PendleRouterStatic__factory.ts +1 -1
- package/typechain-types/factories/PendleRouterV4__factory.ts +1 -1
- package/typechain-types/factories/Reflector__factory.ts +1 -1
- package/typechain-types/hardhat.d.ts +72 -0
- package/typechain-types/index.ts +16 -0
- package/build/artifacts/contracts/interfaces/IPActionSwapLimitV3.sol/IPActionSwapLimitV3.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPActionSwapLimitV3.sol/IPActionSwapLimitV3.json +0 -2638
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapLimitV3Events.dbg.json +0 -4
- package/build/artifacts/contracts/interfaces/IPAllEventsV3.sol/IPActionSwapLimitV3Events.json +0 -207
- package/build/artifacts/contracts/router/ActionSwapLimitV3.sol/ActionSwapLimitV3.dbg.json +0 -4
- package/build/artifacts/contracts/router/ActionSwapLimitV3.sol/ActionSwapLimitV3.json +0 -2638
- package/contracts/interfaces/IPActionSwapLimitV3.sol +0 -42
- 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
|
-
}
|