@pendle/core-v2 5.8.2 → 5.8.3-factory
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/interfaces/IPActionAddRemoveLiqV3.sol/IPActionAddRemoveLiqV3.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/IPActionSimple.sol/IPActionSimple.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageStatic.sol/IPActionStorageStatic.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionStorageV4.sol/IPActionStorageV4.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapPTV3.sol/IPActionSwapPTV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPActionSwapYTV3.sol/IPActionSwapYTV3.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPAllActionV3.sol/IPAllActionV3.dbg.json +1 -1
- 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/IPCommonSYFactory.sol/IPCommonSYFactory.dbg.json +1 -1
- package/build/artifacts/contracts/interfaces/IPCommonSYFactory.sol/IPCommonSYFactory.json +34 -0
- package/build/artifacts/contracts/interfaces/IPMarketSwapNSeed.sol/IPMarketSwapNSeed.dbg.json +4 -0
- package/build/artifacts/contracts/interfaces/IPMarketSwapNSeed.sol/IPMarketSwapNSeed.json +10 -0
- package/build/artifacts/contracts/interfaces/IPRouterStatic.sol/IPRouterStatic.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/SwapNSeed.sol/MarketSwapNSeed.dbg.json +4 -0
- package/build/artifacts/contracts/offchain-helpers/SwapNSeed.sol/MarketSwapNSeed.json +232 -0
- package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol/PendleCommonPoolDeployHelperV2.json +320 -2
- package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonSYFactory.sol/PendleCommonSYFactory.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/deploy/PendleCommonSYFactory.sol/PendleCommonSYFactory.json +56 -3
- package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelper.sol/PendlePoolDeployHelper.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol/PendlePoolDeployHelperV2.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol/PendlePoolDeployHelperV2.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 -2
- 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/MarketApproxLibV1.sol/MarketApproxPtInLibV1.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtInLibV1.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.dbg.json +1 -1
- package/build/artifacts/contracts/offchain-helpers/router-static/base/MarketApproxLibV1.sol/MarketApproxPtOutLibV1.json +2 -2
- package/build/artifacts/contracts/offchain-helpers/router-static/base/StorageLayout.sol/StorageLayout.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionAddRemoveLiqV3.sol/ActionAddRemoveLiqV3.json +2 -2
- package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionMiscV3.sol/ActionMiscV3.json +2 -2
- package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSimple.sol/ActionSimple.json +2 -2
- package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionStorageV4.sol/ActionStorageV4.json +2 -2
- package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapPTV3.sol/ActionSwapPTV3.json +2 -2
- package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.dbg.json +1 -1
- package/build/artifacts/contracts/router/ActionSwapYTV3.sol/ActionSwapYTV3.json +2 -2
- 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/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/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtInLibV2.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtInLibV2.json +2 -2
- package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtOutLibV2.dbg.json +1 -1
- package/build/artifacts/contracts/router/math/MarketApproxLibV2.sol/MarketApproxPtOutLibV2.json +2 -2
- package/build/artifacts/contracts/router/swap-aggregator/IPSwapAggregator.sol/IPSwapAggregator.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/IOKXDexRouter.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/OKXScaleHelper.sol/OKXScaleHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/OneInchScaleHelper.sol/I1inchAggregationRouterV6.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/OneInchScaleHelper.sol/I1inchAggregationRouterV6.json +214 -0
- package/build/artifacts/contracts/router/swap-aggregator/OneInchScaleHelper.sol/I1inchCommonType.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/OneInchScaleHelper.sol/I1inchCommonType.json +10 -0
- package/build/artifacts/contracts/router/swap-aggregator/OneInchScaleHelper.sol/OneInchScaleHelper.dbg.json +4 -0
- package/build/artifacts/contracts/router/swap-aggregator/OneInchScaleHelper.sol/OneInchScaleHelper.json +10 -0
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IKyberScalingHelper.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/IOdosRouterV2.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.dbg.json +1 -1
- package/build/artifacts/contracts/router/swap-aggregator/PendleSwap.sol/PendleSwap.json +2 -2
- package/contracts/interfaces/IPCommonSYFactory.sol +7 -0
- package/contracts/interfaces/IPMarketSwapNSeed.sol +10 -0
- package/contracts/offchain-helpers/SwapNSeed.sol +221 -0
- package/contracts/offchain-helpers/deploy/PendleCommonPoolDeployHelperV2.sol +55 -0
- package/contracts/offchain-helpers/deploy/PendleCommonSYFactory.sol +34 -1
- package/contracts/offchain-helpers/deploy/PendlePoolDeployHelperV2.sol +5 -1
- package/contracts/router/swap-aggregator/IPSwapAggregator.sol +1 -1
- package/contracts/router/swap-aggregator/OneInchScaleHelper.sol +120 -0
- package/contracts/router/swap-aggregator/PendleSwap.sol +4 -4
- package/deployments/1-core.json +2 -2
- package/deployments/10-core.json +2 -2
- package/deployments/146-core.json +9 -8
- package/deployments/42161-core.json +2 -2
- package/deployments/5000-core.json +2 -2
- package/deployments/56-core.json +2 -2
- package/deployments/80094-core.json +2 -2
- package/deployments/8453-core.json +2 -2
- package/deployments/merkle-distribution/2023-04-27.json +3342 -0
- package/deployments/merkle-distribution/2023-05-25.json +3749 -0
- package/deployments/merkle-distribution/2023-06-29.json +4729 -0
- package/deployments/merkle-distribution/2023-07-27.json +5525 -0
- package/deployments/merkle-distribution/2023-08-31.json +6135 -0
- package/deployments/merkle-distribution/2023-09-28.json +6770 -0
- package/deployments/merkle-distribution/2023-10-26.json +7300 -0
- package/deployments/merkle-distribution/2023-11-30.json +7730 -0
- package/deployments/merkle-distribution/2023-12-28.json +8225 -0
- package/deployments/merkle-distribution/2024-01-25.json +9615 -0
- package/deployments/merkle-distribution/2024-02-29.json +12125 -0
- package/deployments/merkle-distribution/2024-03-28.json +12725 -0
- package/deployments/merkle-distribution/2024-04-25.json +14930 -0
- package/deployments/merkle-distribution/2024-05-30.json +17255 -0
- package/deployments/merkle-distribution/2024-06-27.json +18995 -0
- package/deployments/merkle-distribution/2024-07-25.json +20365 -0
- package/deployments/merkle-distribution/2024-08-29.json +21525 -0
- package/deployments/merkle-distribution/2024-09-26-retroactive.json +21525 -0
- package/deployments/merkle-distribution/2024-09-26.json +22340 -0
- package/deployments/merkle-distribution/2024-10-31.json +23370 -0
- package/deployments/merkle-distribution/2024-11-28.json +24040 -0
- package/deployments/merkle-distribution/2024-12-26.json +25555 -0
- package/deployments/merkle-distribution/2024-12-31-snapshot.json +65767 -0
- package/deployments/merkle-distribution/2025-01-30.json +28060 -0
- package/deployments/merkle-distribution/2025-02-27.json +29930 -0
- package/package.json +1 -1
- package/typechain-types/ERC1967Proxy.ts +97 -0
- package/typechain-types/IPCommonSYFactory.ts +49 -0
- package/typechain-types/ITransparentUpgradeableProxy.ts +235 -0
- package/typechain-types/MarketSwapNSeed.ts +222 -0
- package/typechain-types/PendleCommonPoolDeployHelperV2.ts +267 -0
- package/typechain-types/PendleCommonSYFactory.ts +65 -0
- package/typechain-types/TransparentUpgradeableProxy.ts +97 -0
- package/typechain-types/factories/ActionAddRemoveLiqV3__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 +1 -1
- package/typechain-types/factories/ActionSimple__factory.ts +1 -1
- package/typechain-types/factories/ActionStorageStatic__factory.ts +1 -1
- package/typechain-types/factories/ActionStorageV4__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapPTV3__factory.ts +1 -1
- package/typechain-types/factories/ActionSwapYTV3__factory.ts +1 -1
- package/typechain-types/factories/ActionVePendleStatic__factory.ts +1 -1
- package/typechain-types/factories/ERC1967Proxy__factory.ts +145 -0
- package/typechain-types/factories/IPCommonSYFactory__factory.ts +34 -0
- package/typechain-types/factories/ITransparentUpgradeableProxy__factory.ts +145 -0
- package/typechain-types/factories/MarketSwapNSeed__factory.ts +287 -0
- package/typechain-types/factories/PendleCommonPoolDeployHelperV2__factory.ts +319 -1
- package/typechain-types/factories/PendleCommonSYFactory__factory.ts +62 -4
- package/typechain-types/factories/PendlePoolDeployHelperV2__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/PendleSwap__factory.ts +1 -1
- package/typechain-types/factories/Reflector__factory.ts +1 -1
- package/typechain-types/factories/TransparentUpgradeableProxy__factory.ts +160 -0
- package/typechain-types/hardhat.d.ts +45 -0
- package/typechain-types/index.ts +10 -0
- package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/IAugustusV6.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/IAugustusV6.json +0 -577
- package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/ParaswapScaleHelper.dbg.json +0 -4
- package/build/artifacts/contracts/router/swap-aggregator/ParaswapScaleHelper.sol/ParaswapScaleHelper.json +0 -10
- package/contracts/router/swap-aggregator/ParaswapScaleHelper.sol +0 -252
|
@@ -1,252 +0,0 @@
|
|
|
1
|
-
// SPDX-License-Identifier: GPL-3.0-or-later
|
|
2
|
-
|
|
3
|
-
pragma solidity ^0.8.17;
|
|
4
|
-
|
|
5
|
-
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
|
6
|
-
|
|
7
|
-
interface IAugustusV6 {
|
|
8
|
-
// ============ Generic Swap ============
|
|
9
|
-
struct GenericData {
|
|
10
|
-
IERC20 srcToken;
|
|
11
|
-
IERC20 destToken;
|
|
12
|
-
uint256 fromAmount;
|
|
13
|
-
uint256 toAmount;
|
|
14
|
-
uint256 quotedAmount;
|
|
15
|
-
bytes32 metadata;
|
|
16
|
-
address payable beneficiary;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function swapExactAmountIn(
|
|
20
|
-
address executor,
|
|
21
|
-
GenericData calldata swapData,
|
|
22
|
-
uint256 partnerAndFee,
|
|
23
|
-
bytes calldata permit,
|
|
24
|
-
bytes calldata executorData
|
|
25
|
-
) external payable;
|
|
26
|
-
|
|
27
|
-
// ============ UniswapV2 Swap ============
|
|
28
|
-
struct UniswapV2Data {
|
|
29
|
-
IERC20 srcToken;
|
|
30
|
-
IERC20 destToken;
|
|
31
|
-
uint256 fromAmount;
|
|
32
|
-
uint256 toAmount;
|
|
33
|
-
uint256 quotedAmount;
|
|
34
|
-
bytes32 metadata;
|
|
35
|
-
address payable beneficiary;
|
|
36
|
-
bytes pools;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
function swapExactAmountInOnUniswapV2(
|
|
40
|
-
UniswapV2Data calldata uniData,
|
|
41
|
-
uint256 partnerAndFee,
|
|
42
|
-
bytes calldata permit
|
|
43
|
-
) external payable returns (uint256 receivedAmount, uint256 paraswapShare, uint256 partnerShare);
|
|
44
|
-
|
|
45
|
-
// ============ UniswapV3 Swap ============
|
|
46
|
-
struct UniswapV3Data {
|
|
47
|
-
IERC20 srcToken;
|
|
48
|
-
IERC20 destToken;
|
|
49
|
-
uint256 fromAmount;
|
|
50
|
-
uint256 toAmount;
|
|
51
|
-
uint256 quotedAmount;
|
|
52
|
-
bytes32 metadata;
|
|
53
|
-
address payable beneficiary;
|
|
54
|
-
bytes pools;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
function swapExactAmountInOnUniswapV3(
|
|
58
|
-
UniswapV3Data calldata uniData,
|
|
59
|
-
uint256 partnerAndFee,
|
|
60
|
-
bytes calldata permit
|
|
61
|
-
) external payable returns (uint256 receivedAmount, uint256 paraswapShare, uint256 partnerShare);
|
|
62
|
-
|
|
63
|
-
// ============ BalancerV2 Swap ============
|
|
64
|
-
struct BalancerV2Data {
|
|
65
|
-
uint256 fromAmount;
|
|
66
|
-
uint256 toAmount;
|
|
67
|
-
uint256 quotedAmount;
|
|
68
|
-
bytes32 metadata;
|
|
69
|
-
uint256 beneficiaryAndApproveFlag;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
function swapExactAmountInOnBalancerV2(
|
|
73
|
-
BalancerV2Data calldata balancerData,
|
|
74
|
-
uint256 partnerAndFee,
|
|
75
|
-
bytes calldata permit,
|
|
76
|
-
bytes calldata data
|
|
77
|
-
) external payable returns (uint256 receivedAmount, uint256 paraswapShare, uint256 partnerShare);
|
|
78
|
-
|
|
79
|
-
// ============ CurveV1 Swap ============
|
|
80
|
-
struct CurveV1Data {
|
|
81
|
-
uint256 curveData;
|
|
82
|
-
uint256 curveAssets;
|
|
83
|
-
IERC20 srcToken;
|
|
84
|
-
IERC20 destToken;
|
|
85
|
-
uint256 fromAmount;
|
|
86
|
-
uint256 toAmount;
|
|
87
|
-
uint256 quotedAmount;
|
|
88
|
-
bytes32 metadata;
|
|
89
|
-
address payable beneficiary;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
function swapExactAmountInOnCurveV1(
|
|
93
|
-
CurveV1Data calldata curveV1Data,
|
|
94
|
-
uint256 partnerAndFee,
|
|
95
|
-
bytes calldata permit
|
|
96
|
-
) external payable returns (uint256 receivedAmount, uint256 paraswapShare, uint256 partnerShare);
|
|
97
|
-
|
|
98
|
-
// ============ CurveV2 Swap ============
|
|
99
|
-
struct CurveV2Data {
|
|
100
|
-
uint256 curveData;
|
|
101
|
-
uint256 i;
|
|
102
|
-
uint256 j;
|
|
103
|
-
address poolAddress;
|
|
104
|
-
IERC20 srcToken;
|
|
105
|
-
IERC20 destToken;
|
|
106
|
-
uint256 fromAmount;
|
|
107
|
-
uint256 toAmount;
|
|
108
|
-
uint256 quotedAmount;
|
|
109
|
-
bytes32 metadata;
|
|
110
|
-
address payable beneficiary;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
function swapExactAmountInOnCurveV2(
|
|
114
|
-
CurveV2Data calldata curveV2Data,
|
|
115
|
-
uint256 partnerAndFee,
|
|
116
|
-
bytes calldata permit
|
|
117
|
-
) external payable returns (uint256 receivedAmount, uint256 paraswapShare, uint256 partnerShare);
|
|
118
|
-
|
|
119
|
-
// ============ MakerPSM Swap ============
|
|
120
|
-
struct MakerPSMData {
|
|
121
|
-
IERC20 srcToken;
|
|
122
|
-
IERC20 destToken;
|
|
123
|
-
uint256 fromAmount;
|
|
124
|
-
uint256 toAmount;
|
|
125
|
-
uint256 toll;
|
|
126
|
-
uint256 to18ConversionFactor;
|
|
127
|
-
address exchange;
|
|
128
|
-
address gemJoinAddress;
|
|
129
|
-
bytes32 metadata;
|
|
130
|
-
uint256 beneficiaryDirectionApproveFlag;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
function swapExactAmountInOutOnMakerPSM(
|
|
134
|
-
MakerPSMData calldata makerPSMData,
|
|
135
|
-
bytes calldata permit
|
|
136
|
-
) external returns (uint256 spentAmount, uint256 receivedAmount);
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
contract ParaswapScaleHelper {
|
|
140
|
-
function _paraswapScaling(
|
|
141
|
-
bytes calldata rawCallData,
|
|
142
|
-
uint256 amountIn
|
|
143
|
-
) internal pure returns (bytes memory scaledCallData) {
|
|
144
|
-
bytes4 selector = bytes4(rawCallData[:4]);
|
|
145
|
-
bytes calldata dataToDecode = rawCallData[4:];
|
|
146
|
-
|
|
147
|
-
// Handle Generic Swap
|
|
148
|
-
if (selector == IAugustusV6.swapExactAmountIn.selector) {
|
|
149
|
-
(
|
|
150
|
-
address executor,
|
|
151
|
-
IAugustusV6.GenericData memory swapData,
|
|
152
|
-
uint256 partnerAndFee,
|
|
153
|
-
bytes memory permit,
|
|
154
|
-
bytes memory executorData
|
|
155
|
-
) = abi.decode(dataToDecode, (address, IAugustusV6.GenericData, uint256, bytes, bytes));
|
|
156
|
-
|
|
157
|
-
// Direct scaling calculation
|
|
158
|
-
swapData.toAmount = (swapData.toAmount * amountIn) / swapData.fromAmount;
|
|
159
|
-
swapData.quotedAmount = (swapData.quotedAmount * amountIn) / swapData.fromAmount;
|
|
160
|
-
swapData.fromAmount = amountIn;
|
|
161
|
-
|
|
162
|
-
return abi.encodeWithSelector(selector, executor, swapData, partnerAndFee, permit, executorData);
|
|
163
|
-
}
|
|
164
|
-
// Handle UniswapV2
|
|
165
|
-
else if (selector == IAugustusV6.swapExactAmountInOnUniswapV2.selector) {
|
|
166
|
-
(IAugustusV6.UniswapV2Data memory uniData, uint256 partnerAndFee, bytes memory permit) = abi.decode(
|
|
167
|
-
dataToDecode,
|
|
168
|
-
(IAugustusV6.UniswapV2Data, uint256, bytes)
|
|
169
|
-
);
|
|
170
|
-
|
|
171
|
-
// Direct scaling calculation
|
|
172
|
-
uniData.toAmount = (uniData.toAmount * amountIn) / uniData.fromAmount;
|
|
173
|
-
uniData.quotedAmount = (uniData.quotedAmount * amountIn) / uniData.fromAmount;
|
|
174
|
-
uniData.fromAmount = amountIn;
|
|
175
|
-
|
|
176
|
-
return abi.encodeWithSelector(selector, uniData, partnerAndFee, permit);
|
|
177
|
-
}
|
|
178
|
-
// Handle UniswapV3
|
|
179
|
-
else if (selector == IAugustusV6.swapExactAmountInOnUniswapV3.selector) {
|
|
180
|
-
(IAugustusV6.UniswapV3Data memory uniV3Data, uint256 partnerAndFee, bytes memory permit) = abi.decode(
|
|
181
|
-
dataToDecode,
|
|
182
|
-
(IAugustusV6.UniswapV3Data, uint256, bytes)
|
|
183
|
-
);
|
|
184
|
-
|
|
185
|
-
// Direct scaling calculation
|
|
186
|
-
uniV3Data.toAmount = (uniV3Data.toAmount * amountIn) / uniV3Data.fromAmount;
|
|
187
|
-
uniV3Data.quotedAmount = (uniV3Data.quotedAmount * amountIn) / uniV3Data.fromAmount;
|
|
188
|
-
uniV3Data.fromAmount = amountIn;
|
|
189
|
-
|
|
190
|
-
return abi.encodeWithSelector(selector, uniV3Data, partnerAndFee, permit);
|
|
191
|
-
}
|
|
192
|
-
// Handle BalancerV2
|
|
193
|
-
else if (selector == IAugustusV6.swapExactAmountInOnBalancerV2.selector) {
|
|
194
|
-
(
|
|
195
|
-
IAugustusV6.BalancerV2Data memory balancerData,
|
|
196
|
-
uint256 partnerAndFee,
|
|
197
|
-
bytes memory permit,
|
|
198
|
-
bytes memory data
|
|
199
|
-
) = abi.decode(dataToDecode, (IAugustusV6.BalancerV2Data, uint256, bytes, bytes));
|
|
200
|
-
|
|
201
|
-
// Direct scaling calculation
|
|
202
|
-
balancerData.toAmount = (balancerData.toAmount * amountIn) / balancerData.fromAmount;
|
|
203
|
-
balancerData.quotedAmount = (balancerData.quotedAmount * amountIn) / balancerData.fromAmount;
|
|
204
|
-
balancerData.fromAmount = amountIn;
|
|
205
|
-
|
|
206
|
-
return abi.encodeWithSelector(selector, balancerData, partnerAndFee, permit, data);
|
|
207
|
-
}
|
|
208
|
-
// Handle CurveV1
|
|
209
|
-
else if (selector == IAugustusV6.swapExactAmountInOnCurveV1.selector) {
|
|
210
|
-
(IAugustusV6.CurveV1Data memory curveV1Data, uint256 partnerAndFee, bytes memory permit) = abi.decode(
|
|
211
|
-
dataToDecode,
|
|
212
|
-
(IAugustusV6.CurveV1Data, uint256, bytes)
|
|
213
|
-
);
|
|
214
|
-
|
|
215
|
-
// Direct scaling calculation
|
|
216
|
-
curveV1Data.toAmount = (curveV1Data.toAmount * amountIn) / curveV1Data.fromAmount;
|
|
217
|
-
curveV1Data.quotedAmount = (curveV1Data.quotedAmount * amountIn) / curveV1Data.fromAmount;
|
|
218
|
-
curveV1Data.fromAmount = amountIn;
|
|
219
|
-
|
|
220
|
-
return abi.encodeWithSelector(selector, curveV1Data, partnerAndFee, permit);
|
|
221
|
-
}
|
|
222
|
-
// Handle CurveV2
|
|
223
|
-
else if (selector == IAugustusV6.swapExactAmountInOnCurveV2.selector) {
|
|
224
|
-
(IAugustusV6.CurveV2Data memory curveV2Data, uint256 partnerAndFee, bytes memory permit) = abi.decode(
|
|
225
|
-
dataToDecode,
|
|
226
|
-
(IAugustusV6.CurveV2Data, uint256, bytes)
|
|
227
|
-
);
|
|
228
|
-
|
|
229
|
-
// Direct scaling calculation
|
|
230
|
-
curveV2Data.toAmount = (curveV2Data.toAmount * amountIn) / curveV2Data.fromAmount;
|
|
231
|
-
curveV2Data.quotedAmount = (curveV2Data.quotedAmount * amountIn) / curveV2Data.fromAmount;
|
|
232
|
-
curveV2Data.fromAmount = amountIn;
|
|
233
|
-
|
|
234
|
-
return abi.encodeWithSelector(selector, curveV2Data, partnerAndFee, permit);
|
|
235
|
-
}
|
|
236
|
-
// Handle MakerPSM
|
|
237
|
-
else if (selector == IAugustusV6.swapExactAmountInOutOnMakerPSM.selector) {
|
|
238
|
-
(IAugustusV6.MakerPSMData memory makerPSMData, bytes memory permit) = abi.decode(
|
|
239
|
-
dataToDecode,
|
|
240
|
-
(IAugustusV6.MakerPSMData, bytes)
|
|
241
|
-
);
|
|
242
|
-
|
|
243
|
-
// Direct scaling calculation
|
|
244
|
-
makerPSMData.toAmount = (makerPSMData.toAmount * amountIn) / makerPSMData.fromAmount;
|
|
245
|
-
makerPSMData.fromAmount = amountIn;
|
|
246
|
-
|
|
247
|
-
return abi.encodeWithSelector(selector, makerPSMData, permit);
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
revert("ParaswapScaleHelper: Unsupported swap selector");
|
|
251
|
-
}
|
|
252
|
-
}
|