@uniswap/universal-router-sdk 4.19.2 → 4.19.4
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/dist/{cjs/src/entities → entities}/Command.d.ts +12 -12
- package/dist/{types/src/entities → entities}/actions/index.d.ts +2 -2
- package/dist/{cjs/src/entities → entities}/actions/uniswap.d.ts +30 -30
- package/dist/{esm/src/entities → entities}/actions/unwrapWETH.d.ts +12 -12
- package/dist/{cjs/src/entities → entities}/index.d.ts +2 -2
- package/dist/{esm/src/index.d.ts → index.d.ts} +10 -9
- package/dist/index.js +8 -0
- package/dist/{esm/src/swapRouter.d.ts → swapRouter.d.ts} +37 -37
- package/dist/test/forge/writeInterop.d.ts +2 -0
- package/dist/test/utils/addresses.d.ts +5 -0
- package/dist/test/utils/hexToDecimalString.d.ts +2 -0
- package/dist/test/utils/permit2.d.ts +7 -0
- package/dist/test/utils/uniswapData.d.ts +24 -0
- package/dist/universal-router-sdk.cjs.development.js +1424 -0
- package/dist/universal-router-sdk.cjs.development.js.map +1 -0
- package/dist/universal-router-sdk.cjs.production.min.js +2 -0
- package/dist/universal-router-sdk.cjs.production.min.js.map +1 -0
- package/dist/universal-router-sdk.esm.js +1417 -0
- package/dist/universal-router-sdk.esm.js.map +1 -0
- package/dist/{esm/src/utils → utils}/commandParser.d.ts +34 -34
- package/dist/{types/src/utils → utils}/constants.d.ts +30 -30
- package/dist/{cjs/src/utils → utils}/getCurrencyAddress.d.ts +2 -2
- package/dist/{types/src/utils → utils}/inputTokens.d.ts +23 -23
- package/dist/{cjs/src/utils → utils}/numbers.d.ts +6 -6
- package/dist/{types/src/utils → utils}/pathCurrency.d.ts +3 -3
- package/dist/{cjs/src/utils → utils}/routerCommands.d.ts +64 -64
- package/dist/{types/src/utils → utils}/routerTradeAdapter.d.ts +73 -73
- package/package.json +10 -21
- package/dist/cjs/src/entities/Command.js +0 -9
- package/dist/cjs/src/entities/Command.js.map +0 -1
- package/dist/cjs/src/entities/actions/index.d.ts +0 -2
- package/dist/cjs/src/entities/actions/index.js +0 -6
- package/dist/cjs/src/entities/actions/index.js.map +0 -1
- package/dist/cjs/src/entities/actions/uniswap.js +0 -365
- package/dist/cjs/src/entities/actions/uniswap.js.map +0 -1
- package/dist/cjs/src/entities/actions/unwrapWETH.d.ts +0 -12
- package/dist/cjs/src/entities/actions/unwrapWETH.js +0 -33
- package/dist/cjs/src/entities/actions/unwrapWETH.js.map +0 -1
- package/dist/cjs/src/entities/index.js +0 -6
- package/dist/cjs/src/entities/index.js.map +0 -1
- package/dist/cjs/src/index.d.ts +0 -9
- package/dist/cjs/src/index.js +0 -24
- package/dist/cjs/src/index.js.map +0 -1
- package/dist/cjs/src/swapRouter.d.ts +0 -37
- package/dist/cjs/src/swapRouter.js +0 -120
- package/dist/cjs/src/swapRouter.js.map +0 -1
- package/dist/cjs/src/utils/commandParser.d.ts +0 -34
- package/dist/cjs/src/utils/commandParser.js +0 -144
- package/dist/cjs/src/utils/commandParser.js.map +0 -1
- package/dist/cjs/src/utils/constants.d.ts +0 -30
- package/dist/cjs/src/utils/constants.js +0 -373
- package/dist/cjs/src/utils/constants.js.map +0 -1
- package/dist/cjs/src/utils/getCurrencyAddress.js +0 -9
- package/dist/cjs/src/utils/getCurrencyAddress.js.map +0 -1
- package/dist/cjs/src/utils/inputTokens.d.ts +0 -23
- package/dist/cjs/src/utils/inputTokens.js +0 -58
- package/dist/cjs/src/utils/inputTokens.js.map +0 -1
- package/dist/cjs/src/utils/numbers.js +0 -22
- package/dist/cjs/src/utils/numbers.js.map +0 -1
- package/dist/cjs/src/utils/pathCurrency.d.ts +0 -3
- package/dist/cjs/src/utils/pathCurrency.js +0 -27
- package/dist/cjs/src/utils/pathCurrency.js.map +0 -1
- package/dist/cjs/src/utils/routerCommands.js +0 -231
- package/dist/cjs/src/utils/routerCommands.js.map +0 -1
- package/dist/cjs/src/utils/routerTradeAdapter.d.ts +0 -73
- package/dist/cjs/src/utils/routerTradeAdapter.js +0 -139
- package/dist/cjs/src/utils/routerTradeAdapter.js.map +0 -1
- package/dist/esm/src/entities/Command.d.ts +0 -12
- package/dist/esm/src/entities/Command.js +0 -6
- package/dist/esm/src/entities/Command.js.map +0 -1
- package/dist/esm/src/entities/actions/index.d.ts +0 -2
- package/dist/esm/src/entities/actions/index.js +0 -3
- package/dist/esm/src/entities/actions/index.js.map +0 -1
- package/dist/esm/src/entities/actions/uniswap.d.ts +0 -30
- package/dist/esm/src/entities/actions/uniswap.js +0 -361
- package/dist/esm/src/entities/actions/uniswap.js.map +0 -1
- package/dist/esm/src/entities/actions/unwrapWETH.js +0 -28
- package/dist/esm/src/entities/actions/unwrapWETH.js.map +0 -1
- package/dist/esm/src/entities/index.d.ts +0 -2
- package/dist/esm/src/entities/index.js +0 -3
- package/dist/esm/src/entities/index.js.map +0 -1
- package/dist/esm/src/index.js +0 -7
- package/dist/esm/src/index.js.map +0 -1
- package/dist/esm/src/swapRouter.js +0 -115
- package/dist/esm/src/swapRouter.js.map +0 -1
- package/dist/esm/src/utils/commandParser.js +0 -137
- package/dist/esm/src/utils/commandParser.js.map +0 -1
- package/dist/esm/src/utils/constants.d.ts +0 -30
- package/dist/esm/src/utils/constants.js +0 -367
- package/dist/esm/src/utils/constants.js.map +0 -1
- package/dist/esm/src/utils/getCurrencyAddress.d.ts +0 -2
- package/dist/esm/src/utils/getCurrencyAddress.js +0 -5
- package/dist/esm/src/utils/getCurrencyAddress.js.map +0 -1
- package/dist/esm/src/utils/inputTokens.d.ts +0 -23
- package/dist/esm/src/utils/inputTokens.js +0 -51
- package/dist/esm/src/utils/inputTokens.js.map +0 -1
- package/dist/esm/src/utils/numbers.d.ts +0 -6
- package/dist/esm/src/utils/numbers.js +0 -15
- package/dist/esm/src/utils/numbers.js.map +0 -1
- package/dist/esm/src/utils/pathCurrency.d.ts +0 -3
- package/dist/esm/src/utils/pathCurrency.js +0 -23
- package/dist/esm/src/utils/pathCurrency.js.map +0 -1
- package/dist/esm/src/utils/routerCommands.d.ts +0 -64
- package/dist/esm/src/utils/routerCommands.js +0 -226
- package/dist/esm/src/utils/routerCommands.js.map +0 -1
- package/dist/esm/src/utils/routerTradeAdapter.d.ts +0 -73
- package/dist/esm/src/utils/routerTradeAdapter.js +0 -134
- package/dist/esm/src/utils/routerTradeAdapter.js.map +0 -1
- package/dist/types/src/entities/Command.d.ts +0 -12
- package/dist/types/src/entities/actions/uniswap.d.ts +0 -30
- package/dist/types/src/entities/actions/unwrapWETH.d.ts +0 -12
- package/dist/types/src/entities/index.d.ts +0 -2
- package/dist/types/src/index.d.ts +0 -9
- package/dist/types/src/swapRouter.d.ts +0 -37
- package/dist/types/src/utils/commandParser.d.ts +0 -34
- package/dist/types/src/utils/getCurrencyAddress.d.ts +0 -2
- package/dist/types/src/utils/numbers.d.ts +0 -6
- package/dist/types/src/utils/routerCommands.d.ts +0 -64
|
@@ -1,365 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UniswapTrade = void 0;
|
|
4
|
-
const routerCommands_1 = require("../../utils/routerCommands");
|
|
5
|
-
const v2_sdk_1 = require("@uniswap/v2-sdk");
|
|
6
|
-
const v3_sdk_1 = require("@uniswap/v3-sdk");
|
|
7
|
-
const v4_sdk_1 = require("@uniswap/v4-sdk");
|
|
8
|
-
const router_sdk_1 = require("@uniswap/router-sdk");
|
|
9
|
-
const pathCurrency_1 = require("../../utils/pathCurrency");
|
|
10
|
-
const sdk_core_1 = require("@uniswap/sdk-core");
|
|
11
|
-
const Command_1 = require("../Command");
|
|
12
|
-
const constants_1 = require("../../utils/constants");
|
|
13
|
-
const getCurrencyAddress_1 = require("../../utils/getCurrencyAddress");
|
|
14
|
-
const numbers_1 = require("../../utils/numbers");
|
|
15
|
-
const ethers_1 = require("ethers");
|
|
16
|
-
const REFUND_ETH_PRICE_IMPACT_THRESHOLD = new sdk_core_1.Percent(50, 100);
|
|
17
|
-
// Wrapper for uniswap router-sdk trade entity to encode swaps for Universal Router
|
|
18
|
-
// also translates trade objects from previous (v2, v3) SDKs
|
|
19
|
-
class UniswapTrade {
|
|
20
|
-
constructor(trade, options) {
|
|
21
|
-
this.trade = trade;
|
|
22
|
-
this.options = options;
|
|
23
|
-
this.tradeType = Command_1.RouterActionType.UniswapTrade;
|
|
24
|
-
if (!!options.fee && !!options.flatFee)
|
|
25
|
-
throw new Error('Only one fee option permitted');
|
|
26
|
-
if (this.inputRequiresWrap || this.inputRequiresUnwrap || this.options.useRouterBalance) {
|
|
27
|
-
this.payerIsUser = false;
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
this.payerIsUser = true;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
get isAllV4() {
|
|
34
|
-
let result = true;
|
|
35
|
-
for (const swap of this.trade.swaps) {
|
|
36
|
-
result = result && swap.route.protocol == router_sdk_1.Protocol.V4;
|
|
37
|
-
}
|
|
38
|
-
return result;
|
|
39
|
-
}
|
|
40
|
-
get inputRequiresWrap() {
|
|
41
|
-
if (this.isAllV4) {
|
|
42
|
-
return (this.trade.inputAmount.currency.isNative &&
|
|
43
|
-
!this.trade.swaps[0].route.pathInput.isNative);
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
return this.trade.inputAmount.currency.isNative;
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
get inputRequiresUnwrap() {
|
|
50
|
-
if (this.isAllV4) {
|
|
51
|
-
return (!this.trade.inputAmount.currency.isNative &&
|
|
52
|
-
this.trade.swaps[0].route.pathInput.isNative);
|
|
53
|
-
}
|
|
54
|
-
return false;
|
|
55
|
-
}
|
|
56
|
-
get outputRequiresWrap() {
|
|
57
|
-
if (this.isAllV4) {
|
|
58
|
-
return (!this.trade.outputAmount.currency.isNative &&
|
|
59
|
-
this.trade.swaps[0].route.pathOutput.isNative);
|
|
60
|
-
}
|
|
61
|
-
return false;
|
|
62
|
-
}
|
|
63
|
-
get outputRequiresUnwrap() {
|
|
64
|
-
if (this.isAllV4) {
|
|
65
|
-
return (this.trade.outputAmount.currency.isNative &&
|
|
66
|
-
!this.trade.swaps[0].route.pathOutput.isNative);
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
return this.trade.outputAmount.currency.isNative;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
get outputRequiresTransition() {
|
|
73
|
-
return this.outputRequiresWrap || this.outputRequiresUnwrap;
|
|
74
|
-
}
|
|
75
|
-
encode(planner, _config) {
|
|
76
|
-
var _a;
|
|
77
|
-
// If the input currency is the native currency, we need to wrap it with the router as the recipient
|
|
78
|
-
if (this.inputRequiresWrap) {
|
|
79
|
-
// TODO: optimize if only one v2 pool we can directly send this to the pool
|
|
80
|
-
planner.addCommand(routerCommands_1.CommandType.WRAP_ETH, [
|
|
81
|
-
constants_1.ROUTER_AS_RECIPIENT,
|
|
82
|
-
this.trade.maximumAmountIn(this.options.slippageTolerance).quotient.toString(),
|
|
83
|
-
]);
|
|
84
|
-
}
|
|
85
|
-
else if (this.inputRequiresUnwrap) {
|
|
86
|
-
// send wrapped token to router to unwrap
|
|
87
|
-
planner.addCommand(routerCommands_1.CommandType.PERMIT2_TRANSFER_FROM, [
|
|
88
|
-
this.trade.inputAmount.currency.address,
|
|
89
|
-
constants_1.ROUTER_AS_RECIPIENT,
|
|
90
|
-
this.trade.maximumAmountIn(this.options.slippageTolerance).quotient.toString(),
|
|
91
|
-
]);
|
|
92
|
-
planner.addCommand(routerCommands_1.CommandType.UNWRAP_WETH, [constants_1.ROUTER_AS_RECIPIENT, 0]);
|
|
93
|
-
}
|
|
94
|
-
// The overall recipient at the end of the trade, SENDER_AS_RECIPIENT uses the msg.sender
|
|
95
|
-
this.options.recipient = (_a = this.options.recipient) !== null && _a !== void 0 ? _a : constants_1.SENDER_AS_RECIPIENT;
|
|
96
|
-
// flag for whether we want to perform slippage check on aggregate output of multiple routes
|
|
97
|
-
// 1. when there are >2 exact input trades. this is only a heuristic,
|
|
98
|
-
// as it's still more gas-expensive even in this case, but has benefits
|
|
99
|
-
// in that the reversion probability is lower
|
|
100
|
-
const performAggregatedSlippageCheck = this.trade.tradeType === sdk_core_1.TradeType.EXACT_INPUT && this.trade.routes.length > 2;
|
|
101
|
-
const routerMustCustody = performAggregatedSlippageCheck || this.outputRequiresTransition || hasFeeOption(this.options);
|
|
102
|
-
for (const swap of this.trade.swaps) {
|
|
103
|
-
switch (swap.route.protocol) {
|
|
104
|
-
case router_sdk_1.Protocol.V2:
|
|
105
|
-
addV2Swap(planner, swap, this.trade.tradeType, this.options, this.payerIsUser, routerMustCustody);
|
|
106
|
-
break;
|
|
107
|
-
case router_sdk_1.Protocol.V3:
|
|
108
|
-
addV3Swap(planner, swap, this.trade.tradeType, this.options, this.payerIsUser, routerMustCustody);
|
|
109
|
-
break;
|
|
110
|
-
case router_sdk_1.Protocol.V4:
|
|
111
|
-
addV4Swap(planner, swap, this.trade.tradeType, this.options, this.payerIsUser, routerMustCustody);
|
|
112
|
-
break;
|
|
113
|
-
case router_sdk_1.Protocol.MIXED:
|
|
114
|
-
addMixedSwap(planner, swap, this.trade.tradeType, this.options, this.payerIsUser, routerMustCustody);
|
|
115
|
-
break;
|
|
116
|
-
default:
|
|
117
|
-
throw new Error('UNSUPPORTED_TRADE_PROTOCOL');
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
let minimumAmountOut = ethers_1.BigNumber.from(this.trade.minimumAmountOut(this.options.slippageTolerance).quotient.toString());
|
|
121
|
-
// The router custodies for 3 reasons: to unwrap, to take a fee, and/or to do a slippage check
|
|
122
|
-
if (routerMustCustody) {
|
|
123
|
-
const pools = this.trade.swaps[0].route.pools;
|
|
124
|
-
const pathOutputCurrencyAddress = (0, getCurrencyAddress_1.getCurrencyAddress)((0, pathCurrency_1.getPathCurrency)(this.trade.outputAmount.currency, pools[pools.length - 1]));
|
|
125
|
-
// If there is a fee, that percentage is sent to the fee recipient
|
|
126
|
-
// In the case where ETH is the output currency, the fee is taken in WETH (for gas reasons)
|
|
127
|
-
if (!!this.options.fee) {
|
|
128
|
-
const feeBips = (0, numbers_1.encodeFeeBips)(this.options.fee.fee);
|
|
129
|
-
planner.addCommand(routerCommands_1.CommandType.PAY_PORTION, [pathOutputCurrencyAddress, this.options.fee.recipient, feeBips]);
|
|
130
|
-
// If the trade is exact output, and a fee was taken, we must adjust the amount out to be the amount after the fee
|
|
131
|
-
// Otherwise we continue as expected with the trade's normal expected output
|
|
132
|
-
if (this.trade.tradeType === sdk_core_1.TradeType.EXACT_OUTPUT) {
|
|
133
|
-
minimumAmountOut = minimumAmountOut.sub(minimumAmountOut.mul(feeBips).div(10000));
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
// If there is a flat fee, that absolute amount is sent to the fee recipient
|
|
137
|
-
// In the case where ETH is the output currency, the fee is taken in WETH (for gas reasons)
|
|
138
|
-
if (!!this.options.flatFee) {
|
|
139
|
-
const feeAmount = this.options.flatFee.amount;
|
|
140
|
-
if (minimumAmountOut.lt(feeAmount))
|
|
141
|
-
throw new Error('Flat fee amount greater than minimumAmountOut');
|
|
142
|
-
planner.addCommand(routerCommands_1.CommandType.TRANSFER, [pathOutputCurrencyAddress, this.options.flatFee.recipient, feeAmount]);
|
|
143
|
-
// If the trade is exact output, and a fee was taken, we must adjust the amount out to be the amount after the fee
|
|
144
|
-
// Otherwise we continue as expected with the trade's normal expected output
|
|
145
|
-
if (this.trade.tradeType === sdk_core_1.TradeType.EXACT_OUTPUT) {
|
|
146
|
-
minimumAmountOut = minimumAmountOut.sub(feeAmount);
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
// The remaining tokens that need to be sent to the user after the fee is taken will be caught
|
|
150
|
-
// by this if-else clause.
|
|
151
|
-
if (this.outputRequiresUnwrap) {
|
|
152
|
-
planner.addCommand(routerCommands_1.CommandType.UNWRAP_WETH, [this.options.recipient, minimumAmountOut]);
|
|
153
|
-
}
|
|
154
|
-
else if (this.outputRequiresWrap) {
|
|
155
|
-
planner.addCommand(routerCommands_1.CommandType.WRAP_ETH, [this.options.recipient, constants_1.CONTRACT_BALANCE]);
|
|
156
|
-
}
|
|
157
|
-
else {
|
|
158
|
-
planner.addCommand(routerCommands_1.CommandType.SWEEP, [
|
|
159
|
-
(0, getCurrencyAddress_1.getCurrencyAddress)(this.trade.outputAmount.currency),
|
|
160
|
-
this.options.recipient,
|
|
161
|
-
minimumAmountOut,
|
|
162
|
-
]);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
// for exactOutput swaps with native input or that perform an inputToken transition (wrap or unwrap)
|
|
166
|
-
// we need to send back the change to the user
|
|
167
|
-
if (this.trade.tradeType === sdk_core_1.TradeType.EXACT_OUTPUT || riskOfPartialFill(this.trade)) {
|
|
168
|
-
if (this.inputRequiresWrap) {
|
|
169
|
-
planner.addCommand(routerCommands_1.CommandType.UNWRAP_WETH, [this.options.recipient, 0]);
|
|
170
|
-
}
|
|
171
|
-
else if (this.inputRequiresUnwrap) {
|
|
172
|
-
planner.addCommand(routerCommands_1.CommandType.WRAP_ETH, [this.options.recipient, constants_1.CONTRACT_BALANCE]);
|
|
173
|
-
}
|
|
174
|
-
else if (this.trade.inputAmount.currency.isNative) {
|
|
175
|
-
// must refund extra native currency sent along for native v4 trades (no input transition)
|
|
176
|
-
planner.addCommand(routerCommands_1.CommandType.SWEEP, [constants_1.ETH_ADDRESS, this.options.recipient, 0]);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
if (this.options.safeMode)
|
|
180
|
-
planner.addCommand(routerCommands_1.CommandType.SWEEP, [constants_1.ETH_ADDRESS, this.options.recipient, 0]);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
exports.UniswapTrade = UniswapTrade;
|
|
184
|
-
// encode a uniswap v2 swap
|
|
185
|
-
function addV2Swap(planner, { route, inputAmount, outputAmount }, tradeType, options, payerIsUser, routerMustCustody) {
|
|
186
|
-
const trade = new v2_sdk_1.Trade(route, tradeType == sdk_core_1.TradeType.EXACT_INPUT ? inputAmount : outputAmount, tradeType);
|
|
187
|
-
if (tradeType == sdk_core_1.TradeType.EXACT_INPUT) {
|
|
188
|
-
planner.addCommand(routerCommands_1.CommandType.V2_SWAP_EXACT_IN, [
|
|
189
|
-
// if native, we have to unwrap so keep in the router for now
|
|
190
|
-
routerMustCustody ? constants_1.ROUTER_AS_RECIPIENT : options.recipient,
|
|
191
|
-
trade.maximumAmountIn(options.slippageTolerance).quotient.toString(),
|
|
192
|
-
// if router will custody funds, we do aggregated slippage check from router
|
|
193
|
-
routerMustCustody ? 0 : trade.minimumAmountOut(options.slippageTolerance).quotient.toString(),
|
|
194
|
-
route.path.map((token) => token.wrapped.address),
|
|
195
|
-
payerIsUser,
|
|
196
|
-
]);
|
|
197
|
-
}
|
|
198
|
-
else if (tradeType == sdk_core_1.TradeType.EXACT_OUTPUT) {
|
|
199
|
-
planner.addCommand(routerCommands_1.CommandType.V2_SWAP_EXACT_OUT, [
|
|
200
|
-
routerMustCustody ? constants_1.ROUTER_AS_RECIPIENT : options.recipient,
|
|
201
|
-
trade.minimumAmountOut(options.slippageTolerance).quotient.toString(),
|
|
202
|
-
trade.maximumAmountIn(options.slippageTolerance).quotient.toString(),
|
|
203
|
-
route.path.map((token) => token.wrapped.address),
|
|
204
|
-
payerIsUser,
|
|
205
|
-
]);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
// encode a uniswap v3 swap
|
|
209
|
-
function addV3Swap(planner, { route, inputAmount, outputAmount }, tradeType, options, payerIsUser, routerMustCustody) {
|
|
210
|
-
const trade = v3_sdk_1.Trade.createUncheckedTrade({
|
|
211
|
-
route: route,
|
|
212
|
-
inputAmount,
|
|
213
|
-
outputAmount,
|
|
214
|
-
tradeType,
|
|
215
|
-
});
|
|
216
|
-
const path = (0, v3_sdk_1.encodeRouteToPath)(route, trade.tradeType === sdk_core_1.TradeType.EXACT_OUTPUT);
|
|
217
|
-
if (tradeType == sdk_core_1.TradeType.EXACT_INPUT) {
|
|
218
|
-
planner.addCommand(routerCommands_1.CommandType.V3_SWAP_EXACT_IN, [
|
|
219
|
-
routerMustCustody ? constants_1.ROUTER_AS_RECIPIENT : options.recipient,
|
|
220
|
-
trade.maximumAmountIn(options.slippageTolerance).quotient.toString(),
|
|
221
|
-
routerMustCustody ? 0 : trade.minimumAmountOut(options.slippageTolerance).quotient.toString(),
|
|
222
|
-
path,
|
|
223
|
-
payerIsUser,
|
|
224
|
-
]);
|
|
225
|
-
}
|
|
226
|
-
else if (tradeType == sdk_core_1.TradeType.EXACT_OUTPUT) {
|
|
227
|
-
planner.addCommand(routerCommands_1.CommandType.V3_SWAP_EXACT_OUT, [
|
|
228
|
-
routerMustCustody ? constants_1.ROUTER_AS_RECIPIENT : options.recipient,
|
|
229
|
-
trade.minimumAmountOut(options.slippageTolerance).quotient.toString(),
|
|
230
|
-
trade.maximumAmountIn(options.slippageTolerance).quotient.toString(),
|
|
231
|
-
path,
|
|
232
|
-
payerIsUser,
|
|
233
|
-
]);
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
function addV4Swap(planner, { inputAmount, outputAmount, route }, tradeType, options, payerIsUser, routerMustCustody) {
|
|
237
|
-
var _a;
|
|
238
|
-
// create a deep copy of pools since v4Planner encoding tampers with array
|
|
239
|
-
const pools = route.pools.map((p) => p);
|
|
240
|
-
const v4Route = new v4_sdk_1.Route(pools, inputAmount.currency, outputAmount.currency);
|
|
241
|
-
const trade = v4_sdk_1.Trade.createUncheckedTrade({
|
|
242
|
-
route: v4Route,
|
|
243
|
-
inputAmount,
|
|
244
|
-
outputAmount,
|
|
245
|
-
tradeType,
|
|
246
|
-
});
|
|
247
|
-
const slippageToleranceOnSwap = routerMustCustody && tradeType == sdk_core_1.TradeType.EXACT_INPUT ? undefined : options.slippageTolerance;
|
|
248
|
-
const v4Planner = new v4_sdk_1.V4Planner();
|
|
249
|
-
v4Planner.addTrade(trade, slippageToleranceOnSwap);
|
|
250
|
-
v4Planner.addSettle(trade.route.pathInput, payerIsUser);
|
|
251
|
-
v4Planner.addTake(trade.route.pathOutput, routerMustCustody ? constants_1.ROUTER_AS_RECIPIENT : (_a = options.recipient) !== null && _a !== void 0 ? _a : constants_1.SENDER_AS_RECIPIENT);
|
|
252
|
-
planner.addCommand(routerCommands_1.CommandType.V4_SWAP, [v4Planner.finalize()]);
|
|
253
|
-
}
|
|
254
|
-
// encode a mixed route swap, i.e. including both v2 and v3 pools
|
|
255
|
-
function addMixedSwap(planner, swap, tradeType, options, payerIsUser, routerMustCustody) {
|
|
256
|
-
var _a;
|
|
257
|
-
const route = swap.route;
|
|
258
|
-
const inputAmount = swap.inputAmount;
|
|
259
|
-
const outputAmount = swap.outputAmount;
|
|
260
|
-
const tradeRecipient = routerMustCustody ? constants_1.ROUTER_AS_RECIPIENT : (_a = options.recipient) !== null && _a !== void 0 ? _a : constants_1.SENDER_AS_RECIPIENT;
|
|
261
|
-
// single hop, so it can be reduced to plain swap logic for one protocol version
|
|
262
|
-
if (route.pools.length === 1) {
|
|
263
|
-
if (route.pools[0] instanceof v4_sdk_1.Pool) {
|
|
264
|
-
return addV4Swap(planner, swap, tradeType, options, payerIsUser, routerMustCustody);
|
|
265
|
-
}
|
|
266
|
-
else if (route.pools[0] instanceof v3_sdk_1.Pool) {
|
|
267
|
-
return addV3Swap(planner, swap, tradeType, options, payerIsUser, routerMustCustody);
|
|
268
|
-
}
|
|
269
|
-
else if (route.pools[0] instanceof v2_sdk_1.Pair) {
|
|
270
|
-
return addV2Swap(planner, swap, tradeType, options, payerIsUser, routerMustCustody);
|
|
271
|
-
}
|
|
272
|
-
else {
|
|
273
|
-
throw new Error('Invalid route type');
|
|
274
|
-
}
|
|
275
|
-
}
|
|
276
|
-
const trade = router_sdk_1.MixedRouteTrade.createUncheckedTrade({
|
|
277
|
-
route: route,
|
|
278
|
-
inputAmount,
|
|
279
|
-
outputAmount,
|
|
280
|
-
tradeType,
|
|
281
|
-
});
|
|
282
|
-
const amountIn = trade.maximumAmountIn(options.slippageTolerance, inputAmount).quotient.toString();
|
|
283
|
-
const amountOut = routerMustCustody
|
|
284
|
-
? 0
|
|
285
|
-
: trade.minimumAmountOut(options.slippageTolerance, outputAmount).quotient.toString();
|
|
286
|
-
// logic from
|
|
287
|
-
// https://github.com/Uniswap/router-sdk/blob/d8eed164e6c79519983844ca8b6a3fc24ebcb8f8/src/swapRouter.ts#L276
|
|
288
|
-
const sections = (0, router_sdk_1.partitionMixedRouteByProtocol)(route);
|
|
289
|
-
const isLastSectionInRoute = (i) => {
|
|
290
|
-
return i === sections.length - 1;
|
|
291
|
-
};
|
|
292
|
-
let inputToken = route.pathInput;
|
|
293
|
-
for (let i = 0; i < sections.length; i++) {
|
|
294
|
-
const section = sections[i];
|
|
295
|
-
const routePool = section[0];
|
|
296
|
-
const outputToken = (0, router_sdk_1.getOutputOfPools)(section, inputToken);
|
|
297
|
-
const subRoute = new router_sdk_1.MixedRoute(new router_sdk_1.MixedRouteSDK([...section], inputToken, outputToken));
|
|
298
|
-
let nextInputToken;
|
|
299
|
-
let swapRecipient;
|
|
300
|
-
if (isLastSectionInRoute(i)) {
|
|
301
|
-
nextInputToken = outputToken;
|
|
302
|
-
swapRecipient = tradeRecipient;
|
|
303
|
-
}
|
|
304
|
-
else {
|
|
305
|
-
const nextPool = sections[i + 1][0];
|
|
306
|
-
nextInputToken = (0, pathCurrency_1.getPathCurrency)(outputToken, nextPool);
|
|
307
|
-
const v2PoolIsSwapRecipient = nextPool instanceof v2_sdk_1.Pair && outputToken.equals(nextInputToken);
|
|
308
|
-
swapRecipient = v2PoolIsSwapRecipient ? nextPool.liquidityToken.address : constants_1.ROUTER_AS_RECIPIENT;
|
|
309
|
-
}
|
|
310
|
-
if (routePool instanceof v4_sdk_1.Pool) {
|
|
311
|
-
const v4Planner = new v4_sdk_1.V4Planner();
|
|
312
|
-
const v4SubRoute = new v4_sdk_1.Route(section, subRoute.input, subRoute.output);
|
|
313
|
-
v4Planner.addSettle(inputToken, payerIsUser && i === 0, (i == 0 ? amountIn : constants_1.CONTRACT_BALANCE));
|
|
314
|
-
v4Planner.addAction(v4_sdk_1.Actions.SWAP_EXACT_IN, [
|
|
315
|
-
{
|
|
316
|
-
currencyIn: inputToken.isNative ? constants_1.ETH_ADDRESS : inputToken.address,
|
|
317
|
-
path: (0, v4_sdk_1.encodeRouteToPath)(v4SubRoute),
|
|
318
|
-
amountIn: 0,
|
|
319
|
-
amountOutMinimum: !isLastSectionInRoute(i) ? 0 : amountOut,
|
|
320
|
-
},
|
|
321
|
-
]);
|
|
322
|
-
v4Planner.addTake(outputToken, swapRecipient);
|
|
323
|
-
planner.addCommand(routerCommands_1.CommandType.V4_SWAP, [v4Planner.finalize()]);
|
|
324
|
-
}
|
|
325
|
-
else if (routePool instanceof v3_sdk_1.Pool) {
|
|
326
|
-
planner.addCommand(routerCommands_1.CommandType.V3_SWAP_EXACT_IN, [
|
|
327
|
-
swapRecipient,
|
|
328
|
-
i == 0 ? amountIn : constants_1.CONTRACT_BALANCE,
|
|
329
|
-
!isLastSectionInRoute(i) ? 0 : amountOut,
|
|
330
|
-
(0, router_sdk_1.encodeMixedRouteToPath)(subRoute),
|
|
331
|
-
payerIsUser && i === 0, // payerIsUser
|
|
332
|
-
]);
|
|
333
|
-
}
|
|
334
|
-
else if (routePool instanceof v2_sdk_1.Pair) {
|
|
335
|
-
planner.addCommand(routerCommands_1.CommandType.V2_SWAP_EXACT_IN, [
|
|
336
|
-
swapRecipient,
|
|
337
|
-
i === 0 ? amountIn : constants_1.CONTRACT_BALANCE,
|
|
338
|
-
!isLastSectionInRoute(i) ? 0 : amountOut,
|
|
339
|
-
subRoute.path.map((token) => token.wrapped.address),
|
|
340
|
-
payerIsUser && i === 0,
|
|
341
|
-
]);
|
|
342
|
-
}
|
|
343
|
-
else {
|
|
344
|
-
throw new Error('Unexpected Pool Type');
|
|
345
|
-
}
|
|
346
|
-
// perform a token transition (wrap/unwrap if necessary)
|
|
347
|
-
if (!isLastSectionInRoute(i)) {
|
|
348
|
-
if (outputToken.isNative && !nextInputToken.isNative) {
|
|
349
|
-
planner.addCommand(routerCommands_1.CommandType.WRAP_ETH, [constants_1.ROUTER_AS_RECIPIENT, constants_1.CONTRACT_BALANCE]);
|
|
350
|
-
}
|
|
351
|
-
else if (!outputToken.isNative && nextInputToken.isNative) {
|
|
352
|
-
planner.addCommand(routerCommands_1.CommandType.UNWRAP_WETH, [constants_1.ROUTER_AS_RECIPIENT, 0]);
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
inputToken = nextInputToken;
|
|
356
|
-
}
|
|
357
|
-
}
|
|
358
|
-
// if price impact is very high, there's a chance of hitting max/min prices resulting in a partial fill of the swap
|
|
359
|
-
function riskOfPartialFill(trade) {
|
|
360
|
-
return trade.priceImpact.greaterThan(REFUND_ETH_PRICE_IMPACT_THRESHOLD);
|
|
361
|
-
}
|
|
362
|
-
function hasFeeOption(swapOptions) {
|
|
363
|
-
return !!swapOptions.fee || !!swapOptions.flatFee;
|
|
364
|
-
}
|
|
365
|
-
//# sourceMappingURL=uniswap.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"uniswap.js","sourceRoot":"","sources":["../../../../../src/entities/actions/uniswap.ts"],"names":[],"mappings":";;;AAAA,+DAAsE;AACtE,4CAAwD;AACxD,4CAAqF;AACrF,4CAOwB;AACxB,oDAa4B;AAE5B,2DAA0D;AAC1D,gDAAuF;AACvF,wCAAmE;AACnE,qDAA+G;AAC/G,uEAAmE;AACnE,iDAAmD;AACnD,mCAAgD;AAmBhD,MAAM,iCAAiC,GAAG,IAAI,kBAAO,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;AAQ9D,mFAAmF;AACnF,4DAA4D;AAC5D,MAAa,YAAY;IAIvB,YAAmB,KAAiD,EAAS,OAAoB;QAA9E,UAAK,GAAL,KAAK,CAA4C;QAAS,YAAO,GAAP,OAAO,CAAa;QAHxF,cAAS,GAAqB,0BAAgB,CAAC,YAAY,CAAA;QAIlE,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;QAExF,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE;YACvF,IAAI,CAAC,WAAW,GAAG,KAAK,CAAA;SACzB;aAAM;YACL,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;SACxB;IACH,CAAC;IAED,IAAI,OAAO;QACT,IAAI,MAAM,GAAG,IAAI,CAAA;QACjB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACnC,MAAM,GAAG,MAAM,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,qBAAQ,CAAC,EAAE,CAAA;SACtD;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,IAAI,iBAAiB;QACnB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ;gBACxC,CAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAgD,CAAC,SAAS,CAAC,QAAQ,CAC1F,CAAA;SACF;aAAM;YACL,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAA;SAChD;IACH,CAAC;IAED,IAAI,mBAAmB;QACrB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ;gBACxC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAgD,CAAC,SAAS,CAAC,QAAQ,CACzF,CAAA;SACF;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,kBAAkB;QACpB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,CACL,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ;gBACzC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAgD,CAAC,UAAU,CAAC,QAAQ,CAC1F,CAAA;SACF;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,oBAAoB;QACtB,IAAI,IAAI,CAAC,OAAO,EAAE;YAChB,OAAO,CACL,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ;gBACzC,CAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAgD,CAAC,UAAU,CAAC,QAAQ,CAC3F,CAAA;SACF;aAAM;YACL,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAA;SACjD;IACH,CAAC;IAED,IAAI,wBAAwB;QAC1B,OAAO,IAAI,CAAC,kBAAkB,IAAI,IAAI,CAAC,oBAAoB,CAAA;IAC7D,CAAC;IAED,MAAM,CAAC,OAAqB,EAAE,OAAoB;;QAChD,oGAAoG;QACpG,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,2EAA2E;YAC3E,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,QAAQ,EAAE;gBACvC,+BAAmB;gBACnB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;aAC/E,CAAC,CAAA;SACH;aAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;YACnC,yCAAyC;YACzC,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,qBAAqB,EAAE;gBACnD,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAkB,CAAC,OAAO;gBAClD,+BAAmB;gBACnB,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;aAC/E,CAAC,CAAA;YACF,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,WAAW,EAAE,CAAC,+BAAmB,EAAE,CAAC,CAAC,CAAC,CAAA;SACtE;QACD,yFAAyF;QACzF,IAAI,CAAC,OAAO,CAAC,SAAS,GAAG,MAAA,IAAI,CAAC,OAAO,CAAC,SAAS,mCAAI,+BAAmB,CAAA;QAEtE,4FAA4F;QAC5F,uEAAuE;QACvE,4EAA4E;QAC5E,kDAAkD;QAClD,MAAM,8BAA8B,GAClC,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,oBAAS,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAA;QAChF,MAAM,iBAAiB,GACrB,8BAA8B,IAAI,IAAI,CAAC,wBAAwB,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAE/F,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACnC,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;gBAC3B,KAAK,qBAAQ,CAAC,EAAE;oBACd,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;oBACjG,MAAK;gBACP,KAAK,qBAAQ,CAAC,EAAE;oBACd,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;oBACjG,MAAK;gBACP,KAAK,qBAAQ,CAAC,EAAE;oBACd,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;oBACjG,MAAK;gBACP,KAAK,qBAAQ,CAAC,KAAK;oBACjB,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAA;oBACpG,MAAK;gBACP;oBACE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;aAChD;SACF;QAED,IAAI,gBAAgB,GAAc,kBAAS,CAAC,IAAI,CAC9C,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAChF,CAAA;QACD,8FAA8F;QAC9F,IAAI,iBAAiB,EAAE;YACrB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAA;YAC7C,MAAM,yBAAyB,GAAG,IAAA,uCAAkB,EAClD,IAAA,8BAAe,EAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAC3E,CAAA;YAED,kEAAkE;YAClE,2FAA2F;YAC3F,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;gBACtB,MAAM,OAAO,GAAG,IAAA,uBAAa,EAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;gBACnD,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,WAAW,EAAE,CAAC,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAA;gBAE7G,kHAAkH;gBAClH,4EAA4E;gBAC5E,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,oBAAS,CAAC,YAAY,EAAE;oBACnD,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;iBAClF;aACF;YAED,4EAA4E;YAC5E,2FAA2F;YAC3F,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;gBAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAA;gBAC7C,IAAI,gBAAgB,CAAC,EAAE,CAAC,SAAS,CAAC;oBAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAA;gBAEpG,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,QAAQ,EAAE,CAAC,yBAAyB,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAA;gBAEhH,kHAAkH;gBAClH,4EAA4E;gBAC5E,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,oBAAS,CAAC,YAAY,EAAE;oBACnD,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;iBACnD;aACF;YAED,8FAA8F;YAC9F,0BAA0B;YAC1B,IAAI,IAAI,CAAC,oBAAoB,EAAE;gBAC7B,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAA;aACxF;iBAAM,IAAI,IAAI,CAAC,kBAAkB,EAAE;gBAClC,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,4BAAgB,CAAC,CAAC,CAAA;aACrF;iBAAM;gBACL,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,KAAK,EAAE;oBACpC,IAAA,uCAAkB,EAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC;oBACpD,IAAI,CAAC,OAAO,CAAC,SAAS;oBACtB,gBAAgB;iBACjB,CAAC,CAAA;aACH;SACF;QAED,oGAAoG;QACpG,8CAA8C;QAC9C,IAAI,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,oBAAS,CAAC,YAAY,IAAI,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACpF,IAAI,IAAI,CAAC,iBAAiB,EAAE;gBAC1B,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,WAAW,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;aACzE;iBAAM,IAAI,IAAI,CAAC,mBAAmB,EAAE;gBACnC,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,4BAAgB,CAAC,CAAC,CAAA;aACrF;iBAAM,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBACnD,0FAA0F;gBAC1F,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,KAAK,EAAE,CAAC,uBAAW,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;aAChF;SACF;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ;YAAE,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,KAAK,EAAE,CAAC,uBAAW,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;IAC5G,CAAC;CACF;AAxLD,oCAwLC;AAED,2BAA2B;AAC3B,SAAS,SAAS,CAChB,OAAqB,EACrB,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAyB,EAC3D,SAAoB,EACpB,OAAoB,EACpB,WAAoB,EACpB,iBAA0B;IAE1B,MAAM,KAAK,GAAG,IAAI,cAAO,CACvB,KAAiC,EACjC,SAAS,IAAI,oBAAS,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,EAC/D,SAAS,CACV,CAAA;IAED,IAAI,SAAS,IAAI,oBAAS,CAAC,WAAW,EAAE;QACtC,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,gBAAgB,EAAE;YAC/C,6DAA6D;YAC7D,iBAAiB,CAAC,CAAC,CAAC,+BAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS;YAC3D,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACpE,4EAA4E;YAC5E,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC7F,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAChD,WAAW;SACZ,CAAC,CAAA;KACH;SAAM,IAAI,SAAS,IAAI,oBAAS,CAAC,YAAY,EAAE;QAC9C,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,iBAAiB,EAAE;YAChD,iBAAiB,CAAC,CAAC,CAAC,+BAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS;YAC3D,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACrE,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACpE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YAChD,WAAW;SACZ,CAAC,CAAA;KACH;AACH,CAAC;AAED,2BAA2B;AAC3B,SAAS,SAAS,CAChB,OAAqB,EACrB,EAAE,KAAK,EAAE,WAAW,EAAE,YAAY,EAAyB,EAC3D,SAAoB,EACpB,OAAoB,EACpB,WAAoB,EACpB,iBAA0B;IAE1B,MAAM,KAAK,GAAG,cAAO,CAAC,oBAAoB,CAAC;QACzC,KAAK,EAAE,KAAiC;QACxC,WAAW;QACX,YAAY;QACZ,SAAS;KACV,CAAC,CAAA;IAEF,MAAM,IAAI,GAAG,IAAA,0BAAiB,EAAC,KAAiC,EAAE,KAAK,CAAC,SAAS,KAAK,oBAAS,CAAC,YAAY,CAAC,CAAA;IAC7G,IAAI,SAAS,IAAI,oBAAS,CAAC,WAAW,EAAE;QACtC,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,gBAAgB,EAAE;YAC/C,iBAAiB,CAAC,CAAC,CAAC,+BAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS;YAC3D,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACpE,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YAC7F,IAAI;YACJ,WAAW;SACZ,CAAC,CAAA;KACH;SAAM,IAAI,SAAS,IAAI,oBAAS,CAAC,YAAY,EAAE;QAC9C,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,iBAAiB,EAAE;YAChD,iBAAiB,CAAC,CAAC,CAAC,+BAAmB,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS;YAC3D,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACrE,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACpE,IAAI;YACJ,WAAW;SACZ,CAAC,CAAA;KACH;AACH,CAAC;AAED,SAAS,SAAS,CAChB,OAAqB,EACrB,EAAE,WAAW,EAAE,YAAY,EAAE,KAAK,EAAyB,EAC3D,SAAoB,EACpB,OAAoB,EACpB,WAAoB,EACpB,iBAA0B;;IAE1B,0EAA0E;IAC1E,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAa,CAAA;IACnD,MAAM,OAAO,GAAG,IAAI,cAAO,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAA;IAC/E,MAAM,KAAK,GAAG,cAAO,CAAC,oBAAoB,CAAC;QACzC,KAAK,EAAE,OAAO;QACd,WAAW;QACX,YAAY;QACZ,SAAS;KACV,CAAC,CAAA;IAEF,MAAM,uBAAuB,GAC3B,iBAAiB,IAAI,SAAS,IAAI,oBAAS,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAA;IAEjG,MAAM,SAAS,GAAG,IAAI,kBAAS,EAAE,CAAA;IACjC,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAA;IAClD,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,EAAE,WAAW,CAAC,CAAA;IACvD,SAAS,CAAC,OAAO,CACf,KAAK,CAAC,KAAK,CAAC,UAAU,EACtB,iBAAiB,CAAC,CAAC,CAAC,+BAAmB,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,SAAS,mCAAI,+BAAmB,CACnF,CAAA;IACD,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AACjE,CAAC;AAED,iEAAiE;AACjE,SAAS,YAAY,CACnB,OAAqB,EACrB,IAA2B,EAC3B,SAAoB,EACpB,OAAoB,EACpB,WAAoB,EACpB,iBAA0B;;IAE1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAoC,CAAA;IACvD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAA;IACpC,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAA;IACtC,MAAM,cAAc,GAAG,iBAAiB,CAAC,CAAC,CAAC,+BAAmB,CAAC,CAAC,CAAC,MAAA,OAAO,CAAC,SAAS,mCAAI,+BAAmB,CAAA;IAEzG,gFAAgF;IAChF,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;QAC5B,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,aAAM,EAAE;YACpC,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAA;SACpF;aAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,aAAM,EAAE;YAC3C,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAA;SACpF;aAAM,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,aAAI,EAAE;YACzC,OAAO,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAA;SACpF;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAA;SACtC;KACF;IAED,MAAM,KAAK,GAAG,4BAAe,CAAC,oBAAoB,CAAC;QACjD,KAAK,EAAE,KAAoC;QAC3C,WAAW;QACX,YAAY;QACZ,SAAS;KACV,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAG,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAA;IAClG,MAAM,SAAS,GAAG,iBAAiB;QACjC,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,iBAAiB,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAA;IAEvF,aAAa;IACb,6GAA6G;IAC7G,MAAM,QAAQ,GAAG,IAAA,0CAA6B,EAAC,KAAoC,CAAC,CAAA;IACpF,MAAM,oBAAoB,GAAG,CAAC,CAAS,EAAE,EAAE;QACzC,OAAO,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;IAClC,CAAC,CAAA;IAED,IAAI,UAAU,GAAG,KAAK,CAAC,SAAS,CAAA;IAEhC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAA;QAC3B,MAAM,SAAS,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;QAC5B,MAAM,WAAW,GAAG,IAAA,6BAAgB,EAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QACzD,MAAM,QAAQ,GAAG,IAAI,uBAAU,CAAC,IAAI,0BAAa,CAAC,CAAC,GAAG,OAAO,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC,CAAA;QAEzF,IAAI,cAAc,CAAA;QAClB,IAAI,aAAa,CAAA;QAEjB,IAAI,oBAAoB,CAAC,CAAC,CAAC,EAAE;YAC3B,cAAc,GAAG,WAAW,CAAA;YAC5B,aAAa,GAAG,cAAc,CAAA;SAC/B;aAAM;YACL,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YACnC,cAAc,GAAG,IAAA,8BAAe,EAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;YAEvD,MAAM,qBAAqB,GAAG,QAAQ,YAAY,aAAI,IAAI,WAAW,CAAC,MAAM,CAAC,cAAc,CAAC,CAAA;YAC5F,aAAa,GAAG,qBAAqB,CAAC,CAAC,CAAE,QAAiB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,+BAAmB,CAAA;SACxG;QAED,IAAI,SAAS,YAAY,aAAM,EAAE;YAC/B,MAAM,SAAS,GAAG,IAAI,kBAAS,EAAE,CAAA;YACjC,MAAM,UAAU,GAAG,IAAI,cAAO,CAAC,OAAmB,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAA;YAEpF,SAAS,CAAC,SAAS,CAAC,UAAU,EAAE,WAAW,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,4BAAgB,CAAc,CAAC,CAAA;YAC5G,SAAS,CAAC,SAAS,CAAC,gBAAO,CAAC,aAAa,EAAE;gBACzC;oBACE,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,uBAAW,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO;oBAClE,IAAI,EAAE,IAAA,0BAAmB,EAAC,UAAU,CAAC;oBACrC,QAAQ,EAAE,CAAC;oBACX,gBAAgB,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;iBAC3D;aACF,CAAC,CAAA;YACF,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAA;YAE7C,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,OAAO,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;SAChE;aAAM,IAAI,SAAS,YAAY,aAAM,EAAE;YACtC,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,gBAAgB,EAAE;gBAC/C,aAAa;gBACb,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,4BAAgB;gBACpC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;gBACxC,IAAA,mCAAsB,EAAC,QAAQ,CAAC;gBAChC,WAAW,IAAI,CAAC,KAAK,CAAC,EAAE,cAAc;aACvC,CAAC,CAAA;SACH;aAAM,IAAI,SAAS,YAAY,aAAI,EAAE;YACpC,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,gBAAgB,EAAE;gBAC/C,aAAa;gBACb,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,4BAAgB;gBACrC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;gBACxC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;gBACnD,WAAW,IAAI,CAAC,KAAK,CAAC;aACvB,CAAC,CAAA;SACH;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAA;SACxC;QAED,wDAAwD;QACxD,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE;YAC5B,IAAI,WAAW,CAAC,QAAQ,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;gBACpD,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,QAAQ,EAAE,CAAC,+BAAmB,EAAE,4BAAgB,CAAC,CAAC,CAAA;aAClF;iBAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,IAAI,cAAc,CAAC,QAAQ,EAAE;gBAC3D,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,WAAW,EAAE,CAAC,+BAAmB,EAAE,CAAC,CAAC,CAAC,CAAA;aACtE;SACF;QAED,UAAU,GAAG,cAAc,CAAA;KAC5B;AACH,CAAC;AAED,mHAAmH;AACnH,SAAS,iBAAiB,CAAC,KAAiD;IAC1E,OAAO,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,iCAAiC,CAAC,CAAA;AACzE,CAAC;AAED,SAAS,YAAY,CAAC,WAAwB;IAC5C,OAAO,CAAC,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,CAAA;AACnD,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { BigNumberish } from 'ethers';
|
|
2
|
-
import { RoutePlanner } from '../../utils/routerCommands';
|
|
3
|
-
import { Permit2Permit } from '../../utils/inputTokens';
|
|
4
|
-
import { Command, RouterActionType, TradeConfig } from '../Command';
|
|
5
|
-
export declare class UnwrapWETH implements Command {
|
|
6
|
-
readonly tradeType: RouterActionType;
|
|
7
|
-
readonly permit2Data?: Permit2Permit;
|
|
8
|
-
readonly wethAddress: string;
|
|
9
|
-
readonly amount: BigNumberish;
|
|
10
|
-
constructor(amount: BigNumberish, chainId: number, permit2?: Permit2Permit);
|
|
11
|
-
encode(planner: RoutePlanner, _: TradeConfig): void;
|
|
12
|
-
}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UnwrapWETH = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
const tiny_invariant_1 = tslib_1.__importDefault(require("tiny-invariant"));
|
|
6
|
-
const routerCommands_1 = require("../../utils/routerCommands");
|
|
7
|
-
const inputTokens_1 = require("../../utils/inputTokens");
|
|
8
|
-
const Command_1 = require("../Command");
|
|
9
|
-
const constants_1 = require("../../utils/constants");
|
|
10
|
-
class UnwrapWETH {
|
|
11
|
-
constructor(amount, chainId, permit2) {
|
|
12
|
-
this.tradeType = Command_1.RouterActionType.UnwrapWETH;
|
|
13
|
-
this.wethAddress = (0, constants_1.WETH_ADDRESS)(chainId);
|
|
14
|
-
this.amount = amount;
|
|
15
|
-
if (!!permit2) {
|
|
16
|
-
(0, tiny_invariant_1.default)(permit2.details.token.toLowerCase() === this.wethAddress.toLowerCase(), `must be permitting WETH address: ${this.wethAddress}`);
|
|
17
|
-
(0, tiny_invariant_1.default)(permit2.details.amount >= amount, `Did not permit enough WETH for unwrapWETH transaction`);
|
|
18
|
-
this.permit2Data = permit2;
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
encode(planner, _) {
|
|
22
|
-
(0, inputTokens_1.encodeInputTokenOptions)(planner, {
|
|
23
|
-
permit2Permit: this.permit2Data,
|
|
24
|
-
permit2TransferFrom: {
|
|
25
|
-
token: this.wethAddress,
|
|
26
|
-
amount: this.amount.toString(),
|
|
27
|
-
},
|
|
28
|
-
});
|
|
29
|
-
planner.addCommand(routerCommands_1.CommandType.UNWRAP_WETH, [constants_1.ROUTER_AS_RECIPIENT, this.amount]);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
exports.UnwrapWETH = UnwrapWETH;
|
|
33
|
-
//# sourceMappingURL=unwrapWETH.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"unwrapWETH.js","sourceRoot":"","sources":["../../../../../src/entities/actions/unwrapWETH.ts"],"names":[],"mappings":";;;;AAAA,4EAAsC;AAEtC,+DAAsE;AACtE,yDAAgF;AAChF,wCAAmE;AACnE,qDAAyE;AAEzE,MAAa,UAAU;IAMrB,YAAY,MAAoB,EAAE,OAAe,EAAE,OAAuB;QALjE,cAAS,GAAqB,0BAAgB,CAAC,UAAU,CAAA;QAMhE,IAAI,CAAC,WAAW,GAAG,IAAA,wBAAY,EAAC,OAAO,CAAC,CAAA;QACxC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QAEpB,IAAI,CAAC,CAAC,OAAO,EAAE;YACb,IAAA,wBAAS,EACP,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EACtE,oCAAoC,IAAI,CAAC,WAAW,EAAE,CACvD,CAAA;YACD,IAAA,wBAAS,EAAC,OAAO,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,EAAE,uDAAuD,CAAC,CAAA;YACpG,IAAI,CAAC,WAAW,GAAG,OAAO,CAAA;SAC3B;IACH,CAAC;IAED,MAAM,CAAC,OAAqB,EAAE,CAAc;QAC1C,IAAA,qCAAuB,EAAC,OAAO,EAAE;YAC/B,aAAa,EAAE,IAAI,CAAC,WAAW;YAC/B,mBAAmB,EAAE;gBACnB,KAAK,EAAE,IAAI,CAAC,WAAW;gBACvB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;aAC/B;SACF,CAAC,CAAA;QACF,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,WAAW,EAAE,CAAC,+BAAmB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA;IACjF,CAAC;CACF;AA9BD,gCA8BC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/entities/index.ts"],"names":[],"mappings":";;;AAAA,oDAAyB;AACzB,oDAAyB"}
|
package/dist/cjs/src/index.d.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
export { SwapRouter } from './swapRouter';
|
|
2
|
-
export type { MigrateV3ToV4Options } from './swapRouter';
|
|
3
|
-
export * from './entities';
|
|
4
|
-
export * from './utils/routerTradeAdapter';
|
|
5
|
-
export { RoutePlanner, CommandType, COMMAND_DEFINITION, Parser, Subparser } from './utils/routerCommands';
|
|
6
|
-
export type { CommandDefinition, ParamType } from './utils/routerCommands';
|
|
7
|
-
export { UNIVERSAL_ROUTER_CREATION_BLOCK, UNIVERSAL_ROUTER_ADDRESS, ROUTER_AS_RECIPIENT, WETH_ADDRESS, UniversalRouterVersion, } from './utils/constants';
|
|
8
|
-
export { CommandParser, GenericCommandParser } from './utils/commandParser';
|
|
9
|
-
export type { UniversalRouterCommand, UniversalRouterCall, Param, CommandsDefinition } from './utils/commandParser';
|
package/dist/cjs/src/index.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.GenericCommandParser = exports.CommandParser = exports.UniversalRouterVersion = exports.WETH_ADDRESS = exports.ROUTER_AS_RECIPIENT = exports.UNIVERSAL_ROUTER_ADDRESS = exports.UNIVERSAL_ROUTER_CREATION_BLOCK = exports.Subparser = exports.Parser = exports.COMMAND_DEFINITION = exports.CommandType = exports.RoutePlanner = exports.SwapRouter = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
|
-
var swapRouter_1 = require("./swapRouter");
|
|
6
|
-
Object.defineProperty(exports, "SwapRouter", { enumerable: true, get: function () { return swapRouter_1.SwapRouter; } });
|
|
7
|
-
tslib_1.__exportStar(require("./entities"), exports);
|
|
8
|
-
tslib_1.__exportStar(require("./utils/routerTradeAdapter"), exports);
|
|
9
|
-
var routerCommands_1 = require("./utils/routerCommands");
|
|
10
|
-
Object.defineProperty(exports, "RoutePlanner", { enumerable: true, get: function () { return routerCommands_1.RoutePlanner; } });
|
|
11
|
-
Object.defineProperty(exports, "CommandType", { enumerable: true, get: function () { return routerCommands_1.CommandType; } });
|
|
12
|
-
Object.defineProperty(exports, "COMMAND_DEFINITION", { enumerable: true, get: function () { return routerCommands_1.COMMAND_DEFINITION; } });
|
|
13
|
-
Object.defineProperty(exports, "Parser", { enumerable: true, get: function () { return routerCommands_1.Parser; } });
|
|
14
|
-
Object.defineProperty(exports, "Subparser", { enumerable: true, get: function () { return routerCommands_1.Subparser; } });
|
|
15
|
-
var constants_1 = require("./utils/constants");
|
|
16
|
-
Object.defineProperty(exports, "UNIVERSAL_ROUTER_CREATION_BLOCK", { enumerable: true, get: function () { return constants_1.UNIVERSAL_ROUTER_CREATION_BLOCK; } });
|
|
17
|
-
Object.defineProperty(exports, "UNIVERSAL_ROUTER_ADDRESS", { enumerable: true, get: function () { return constants_1.UNIVERSAL_ROUTER_ADDRESS; } });
|
|
18
|
-
Object.defineProperty(exports, "ROUTER_AS_RECIPIENT", { enumerable: true, get: function () { return constants_1.ROUTER_AS_RECIPIENT; } });
|
|
19
|
-
Object.defineProperty(exports, "WETH_ADDRESS", { enumerable: true, get: function () { return constants_1.WETH_ADDRESS; } });
|
|
20
|
-
Object.defineProperty(exports, "UniversalRouterVersion", { enumerable: true, get: function () { return constants_1.UniversalRouterVersion; } });
|
|
21
|
-
var commandParser_1 = require("./utils/commandParser");
|
|
22
|
-
Object.defineProperty(exports, "CommandParser", { enumerable: true, get: function () { return commandParser_1.CommandParser; } });
|
|
23
|
-
Object.defineProperty(exports, "GenericCommandParser", { enumerable: true, get: function () { return commandParser_1.GenericCommandParser; } });
|
|
24
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":";;;;AAAA,2CAAyC;AAAhC,wGAAA,UAAU,OAAA;AAEnB,qDAA0B;AAC1B,qEAA0C;AAC1C,yDAAyG;AAAhG,8GAAA,YAAY,OAAA;AAAE,6GAAA,WAAW,OAAA;AAAE,oHAAA,kBAAkB,OAAA;AAAE,wGAAA,MAAM,OAAA;AAAE,2GAAA,SAAS,OAAA;AAEzE,+CAM0B;AALxB,4HAAA,+BAA+B,OAAA;AAC/B,qHAAA,wBAAwB,OAAA;AACxB,gHAAA,mBAAmB,OAAA;AACnB,yGAAA,YAAY,OAAA;AACZ,mHAAA,sBAAsB,OAAA;AAExB,uDAA2E;AAAlE,8GAAA,aAAa,OAAA;AAAE,qHAAA,oBAAoB,OAAA"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Interface } from '@ethersproject/abi';
|
|
2
|
-
import { BigNumberish } from 'ethers';
|
|
3
|
-
import { MethodParameters, Position as V3Position, RemoveLiquidityOptions as V3RemoveLiquidityOptions } from '@uniswap/v3-sdk';
|
|
4
|
-
import { Position as V4Position, AddLiquidityOptions as V4AddLiquidityOptions } from '@uniswap/v4-sdk';
|
|
5
|
-
import { Trade as RouterTrade } from '@uniswap/router-sdk';
|
|
6
|
-
import { Currency, TradeType } from '@uniswap/sdk-core';
|
|
7
|
-
import { SwapOptions } from './entities/actions/uniswap';
|
|
8
|
-
export type SwapRouterConfig = {
|
|
9
|
-
sender?: string;
|
|
10
|
-
deadline?: BigNumberish;
|
|
11
|
-
};
|
|
12
|
-
export interface MigrateV3ToV4Options {
|
|
13
|
-
inputPosition: V3Position;
|
|
14
|
-
outputPosition: V4Position;
|
|
15
|
-
v3RemoveLiquidityOptions: V3RemoveLiquidityOptions;
|
|
16
|
-
v4AddLiquidityOptions: V4AddLiquidityOptions;
|
|
17
|
-
}
|
|
18
|
-
export declare abstract class SwapRouter {
|
|
19
|
-
static INTERFACE: Interface;
|
|
20
|
-
static swapCallParameters(trades: RouterTrade<Currency, Currency, TradeType>, options: SwapOptions): MethodParameters;
|
|
21
|
-
/**
|
|
22
|
-
* Builds the call parameters for a migration from a V3 position to a V4 position.
|
|
23
|
-
* Some requirements of the parameters:
|
|
24
|
-
* - v3RemoveLiquidityOptions.collectOptions.recipient must equal v4PositionManager
|
|
25
|
-
* - v3RemoveLiquidityOptions.liquidityPercentage must be 100%
|
|
26
|
-
* - input pool and output pool must have the same tokens
|
|
27
|
-
* - V3 NFT must be approved, or valid inputV3NFTPermit must be provided with UR as spender
|
|
28
|
-
*/
|
|
29
|
-
static migrateV3ToV4CallParameters(options: MigrateV3ToV4Options, positionManagerOverride?: string): MethodParameters;
|
|
30
|
-
/**
|
|
31
|
-
* Encodes a planned route into a method name and parameters for the Router contract.
|
|
32
|
-
* @param planner the planned route
|
|
33
|
-
* @param nativeCurrencyValue the native currency value of the planned route
|
|
34
|
-
* @param config the router config
|
|
35
|
-
*/
|
|
36
|
-
private static encodePlan;
|
|
37
|
-
}
|