@uniswap/universal-router-sdk 4.1.1 → 4.3.0
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/index.d.ts +1 -1
- package/dist/universal-router-sdk.cjs.development.js +284 -194
- package/dist/universal-router-sdk.cjs.development.js.map +1 -1
- package/dist/universal-router-sdk.cjs.production.min.js +1 -1
- package/dist/universal-router-sdk.cjs.production.min.js.map +1 -1
- package/dist/universal-router-sdk.esm.js +285 -195
- package/dist/universal-router-sdk.esm.js.map +1 -1
- package/dist/utils/routerCommands.d.ts +15 -2
- package/package.json +2 -2
|
@@ -3,7 +3,7 @@ import { abi } from '@uniswap/universal-router/artifacts/contracts/UniversalRout
|
|
|
3
3
|
import { Interface } from '@ethersproject/abi';
|
|
4
4
|
import { BigNumber, ethers } from 'ethers';
|
|
5
5
|
import { toHex, Trade as Trade$1, encodeRouteToPath, Pool, NonfungiblePositionManager, Route } from '@uniswap/v3-sdk';
|
|
6
|
-
import { Trade as Trade$2, V4Planner, V4PositionManager } from '@uniswap/v4-sdk';
|
|
6
|
+
import { Trade as Trade$2, V4Planner, V4PositionManager, V4BaseActionsParser } from '@uniswap/v4-sdk';
|
|
7
7
|
import { TradeType, Percent, validateAndParseAddress, CHAIN_TO_ADDRESSES_MAP, CurrencyAmount, Ether, Token } from '@uniswap/sdk-core';
|
|
8
8
|
import { defaultAbiCoder } from 'ethers/lib/utils';
|
|
9
9
|
import { Trade, Pair, Route as Route$1 } from '@uniswap/v2-sdk';
|
|
@@ -74,7 +74,7 @@ function _createForOfIteratorHelperLoose(o, allowArrayLike) {
|
|
|
74
74
|
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
var
|
|
77
|
+
var _COMMAND_DEFINITION;
|
|
78
78
|
/**
|
|
79
79
|
* CommandTypes
|
|
80
80
|
* @description Flags that modify a command's execution
|
|
@@ -107,165 +107,212 @@ var Subparser;
|
|
|
107
107
|
Subparser[Subparser["V3PathExactIn"] = 0] = "V3PathExactIn";
|
|
108
108
|
Subparser[Subparser["V3PathExactOut"] = 1] = "V3PathExactOut";
|
|
109
109
|
})(Subparser || (Subparser = {}));
|
|
110
|
+
var Parser;
|
|
111
|
+
(function (Parser) {
|
|
112
|
+
Parser[Parser["Abi"] = 0] = "Abi";
|
|
113
|
+
Parser[Parser["V4Actions"] = 1] = "V4Actions";
|
|
114
|
+
Parser[Parser["V3Actions"] = 2] = "V3Actions";
|
|
115
|
+
})(Parser || (Parser = {}));
|
|
110
116
|
var ALLOW_REVERT_FLAG = 0x80;
|
|
111
117
|
var REVERTIBLE_COMMANDS = /*#__PURE__*/new Set([CommandType.EXECUTE_SUB_PLAN]);
|
|
112
118
|
var PERMIT_STRUCT = '((address token,uint160 amount,uint48 expiration,uint48 nonce) details,address spender,uint256 sigDeadline)';
|
|
113
119
|
var PERMIT_BATCH_STRUCT = '((address token,uint160 amount,uint48 expiration,uint48 nonce)[] details,address spender,uint256 sigDeadline)';
|
|
114
120
|
var PERMIT2_TRANSFER_FROM_STRUCT = '(address from,address to,uint160 amount,address token)';
|
|
115
121
|
var PERMIT2_TRANSFER_FROM_BATCH_STRUCT = PERMIT2_TRANSFER_FROM_STRUCT + '[]';
|
|
116
|
-
var
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
}, {
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
}, {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
}, {
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
}, {
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
122
|
+
var COMMAND_DEFINITION = (_COMMAND_DEFINITION = {}, _COMMAND_DEFINITION[CommandType.EXECUTE_SUB_PLAN] = {
|
|
123
|
+
parser: Parser.Abi,
|
|
124
|
+
params: [{
|
|
125
|
+
name: 'commands',
|
|
126
|
+
type: 'bytes'
|
|
127
|
+
}, {
|
|
128
|
+
name: 'inputs',
|
|
129
|
+
type: 'bytes[]'
|
|
130
|
+
}]
|
|
131
|
+
}, _COMMAND_DEFINITION[CommandType.PERMIT2_PERMIT] = {
|
|
132
|
+
parser: Parser.Abi,
|
|
133
|
+
params: [{
|
|
134
|
+
name: 'permit',
|
|
135
|
+
type: PERMIT_STRUCT
|
|
136
|
+
}, {
|
|
137
|
+
name: 'signature',
|
|
138
|
+
type: 'bytes'
|
|
139
|
+
}]
|
|
140
|
+
}, _COMMAND_DEFINITION[CommandType.PERMIT2_PERMIT_BATCH] = {
|
|
141
|
+
parser: Parser.Abi,
|
|
142
|
+
params: [{
|
|
143
|
+
name: 'permit',
|
|
144
|
+
type: PERMIT_BATCH_STRUCT
|
|
145
|
+
}, {
|
|
146
|
+
name: 'signature',
|
|
147
|
+
type: 'bytes'
|
|
148
|
+
}]
|
|
149
|
+
}, _COMMAND_DEFINITION[CommandType.PERMIT2_TRANSFER_FROM] = {
|
|
150
|
+
parser: Parser.Abi,
|
|
151
|
+
params: [{
|
|
152
|
+
name: 'token',
|
|
153
|
+
type: 'address'
|
|
154
|
+
}, {
|
|
155
|
+
name: 'recipient',
|
|
156
|
+
type: 'address'
|
|
157
|
+
}, {
|
|
158
|
+
name: 'amount',
|
|
159
|
+
type: 'uint160'
|
|
160
|
+
}]
|
|
161
|
+
}, _COMMAND_DEFINITION[CommandType.PERMIT2_TRANSFER_FROM_BATCH] = {
|
|
162
|
+
parser: Parser.Abi,
|
|
163
|
+
params: [{
|
|
164
|
+
name: 'transferFrom',
|
|
165
|
+
type: PERMIT2_TRANSFER_FROM_BATCH_STRUCT
|
|
166
|
+
}]
|
|
167
|
+
}, _COMMAND_DEFINITION[CommandType.V3_SWAP_EXACT_IN] = {
|
|
168
|
+
parser: Parser.Abi,
|
|
169
|
+
params: [{
|
|
170
|
+
name: 'recipient',
|
|
171
|
+
type: 'address'
|
|
172
|
+
}, {
|
|
173
|
+
name: 'amountIn',
|
|
174
|
+
type: 'uint256'
|
|
175
|
+
}, {
|
|
176
|
+
name: 'amountOutMin',
|
|
177
|
+
type: 'uint256'
|
|
178
|
+
}, {
|
|
179
|
+
name: 'path',
|
|
180
|
+
subparser: Subparser.V3PathExactIn,
|
|
181
|
+
type: 'bytes'
|
|
182
|
+
}, {
|
|
183
|
+
name: 'payerIsUser',
|
|
184
|
+
type: 'bool'
|
|
185
|
+
}]
|
|
186
|
+
}, _COMMAND_DEFINITION[CommandType.V3_SWAP_EXACT_OUT] = {
|
|
187
|
+
parser: Parser.Abi,
|
|
188
|
+
params: [{
|
|
189
|
+
name: 'recipient',
|
|
190
|
+
type: 'address'
|
|
191
|
+
}, {
|
|
192
|
+
name: 'amountOut',
|
|
193
|
+
type: 'uint256'
|
|
194
|
+
}, {
|
|
195
|
+
name: 'amountInMax',
|
|
196
|
+
type: 'uint256'
|
|
197
|
+
}, {
|
|
198
|
+
name: 'path',
|
|
199
|
+
subparser: Subparser.V3PathExactOut,
|
|
200
|
+
type: 'bytes'
|
|
201
|
+
}, {
|
|
202
|
+
name: 'payerIsUser',
|
|
203
|
+
type: 'bool'
|
|
204
|
+
}]
|
|
205
|
+
}, _COMMAND_DEFINITION[CommandType.V2_SWAP_EXACT_IN] = {
|
|
206
|
+
parser: Parser.Abi,
|
|
207
|
+
params: [{
|
|
208
|
+
name: 'recipient',
|
|
209
|
+
type: 'address'
|
|
210
|
+
}, {
|
|
211
|
+
name: 'amountIn',
|
|
212
|
+
type: 'uint256'
|
|
213
|
+
}, {
|
|
214
|
+
name: 'amountOutMin',
|
|
215
|
+
type: 'uint256'
|
|
216
|
+
}, {
|
|
217
|
+
name: 'path',
|
|
218
|
+
type: 'address[]'
|
|
219
|
+
}, {
|
|
220
|
+
name: 'payerIsUser',
|
|
221
|
+
type: 'bool'
|
|
222
|
+
}]
|
|
223
|
+
}, _COMMAND_DEFINITION[CommandType.V2_SWAP_EXACT_OUT] = {
|
|
224
|
+
parser: Parser.Abi,
|
|
225
|
+
params: [{
|
|
226
|
+
name: 'recipient',
|
|
227
|
+
type: 'address'
|
|
228
|
+
}, {
|
|
229
|
+
name: 'amountOut',
|
|
230
|
+
type: 'uint256'
|
|
231
|
+
}, {
|
|
232
|
+
name: 'amountInMax',
|
|
233
|
+
type: 'uint256'
|
|
234
|
+
}, {
|
|
235
|
+
name: 'path',
|
|
236
|
+
type: 'address[]'
|
|
237
|
+
}, {
|
|
238
|
+
name: 'payerIsUser',
|
|
239
|
+
type: 'bool'
|
|
240
|
+
}]
|
|
241
|
+
}, _COMMAND_DEFINITION[CommandType.V4_SWAP] = {
|
|
242
|
+
parser: Parser.V4Actions
|
|
243
|
+
}, _COMMAND_DEFINITION[CommandType.WRAP_ETH] = {
|
|
244
|
+
parser: Parser.Abi,
|
|
245
|
+
params: [{
|
|
246
|
+
name: 'recipient',
|
|
247
|
+
type: 'address'
|
|
248
|
+
}, {
|
|
249
|
+
name: 'amount',
|
|
250
|
+
type: 'uint256'
|
|
251
|
+
}]
|
|
252
|
+
}, _COMMAND_DEFINITION[CommandType.UNWRAP_WETH] = {
|
|
253
|
+
parser: Parser.Abi,
|
|
254
|
+
params: [{
|
|
255
|
+
name: 'recipient',
|
|
256
|
+
type: 'address'
|
|
257
|
+
}, {
|
|
258
|
+
name: 'amountMin',
|
|
259
|
+
type: 'uint256'
|
|
260
|
+
}]
|
|
261
|
+
}, _COMMAND_DEFINITION[CommandType.SWEEP] = {
|
|
262
|
+
parser: Parser.Abi,
|
|
263
|
+
params: [{
|
|
264
|
+
name: 'token',
|
|
265
|
+
type: 'address'
|
|
266
|
+
}, {
|
|
267
|
+
name: 'recipient',
|
|
268
|
+
type: 'address'
|
|
269
|
+
}, {
|
|
270
|
+
name: 'amountMin',
|
|
271
|
+
type: 'uint256'
|
|
272
|
+
}]
|
|
273
|
+
}, _COMMAND_DEFINITION[CommandType.TRANSFER] = {
|
|
274
|
+
parser: Parser.Abi,
|
|
275
|
+
params: [{
|
|
276
|
+
name: 'token',
|
|
277
|
+
type: 'address'
|
|
278
|
+
}, {
|
|
279
|
+
name: 'recipient',
|
|
280
|
+
type: 'address'
|
|
281
|
+
}, {
|
|
282
|
+
name: 'value',
|
|
283
|
+
type: 'uint256'
|
|
284
|
+
}]
|
|
285
|
+
}, _COMMAND_DEFINITION[CommandType.PAY_PORTION] = {
|
|
286
|
+
parser: Parser.Abi,
|
|
287
|
+
params: [{
|
|
288
|
+
name: 'token',
|
|
289
|
+
type: 'address'
|
|
290
|
+
}, {
|
|
291
|
+
name: 'recipient',
|
|
292
|
+
type: 'address'
|
|
293
|
+
}, {
|
|
294
|
+
name: 'bips',
|
|
295
|
+
type: 'uint256'
|
|
296
|
+
}]
|
|
297
|
+
}, _COMMAND_DEFINITION[CommandType.BALANCE_CHECK_ERC20] = {
|
|
298
|
+
parser: Parser.Abi,
|
|
299
|
+
params: [{
|
|
300
|
+
name: 'owner',
|
|
301
|
+
type: 'address'
|
|
302
|
+
}, {
|
|
303
|
+
name: 'token',
|
|
304
|
+
type: 'address'
|
|
305
|
+
}, {
|
|
306
|
+
name: 'minBalance',
|
|
307
|
+
type: 'uint256'
|
|
308
|
+
}]
|
|
309
|
+
}, _COMMAND_DEFINITION[CommandType.V3_POSITION_MANAGER_PERMIT] = {
|
|
310
|
+
parser: Parser.V3Actions
|
|
311
|
+
}, _COMMAND_DEFINITION[CommandType.V3_POSITION_MANAGER_CALL] = {
|
|
312
|
+
parser: Parser.V3Actions
|
|
313
|
+
}, _COMMAND_DEFINITION[CommandType.V4_POSITION_CALL] = {
|
|
314
|
+
parser: Parser.V4Actions
|
|
315
|
+
}, _COMMAND_DEFINITION);
|
|
269
316
|
var RoutePlanner = /*#__PURE__*/function () {
|
|
270
317
|
function RoutePlanner() {
|
|
271
318
|
this.commands = '0x';
|
|
@@ -294,19 +341,29 @@ var RoutePlanner = /*#__PURE__*/function () {
|
|
|
294
341
|
return RoutePlanner;
|
|
295
342
|
}();
|
|
296
343
|
function createCommand(type, parameters) {
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
encodedInput
|
|
301
|
-
|
|
344
|
+
var commandDef = COMMAND_DEFINITION[type];
|
|
345
|
+
switch (commandDef.parser) {
|
|
346
|
+
case Parser.Abi:
|
|
347
|
+
var encodedInput = defaultAbiCoder.encode(commandDef.params.map(function (abi) {
|
|
348
|
+
return abi.type;
|
|
349
|
+
}), parameters);
|
|
350
|
+
return {
|
|
351
|
+
type: type,
|
|
352
|
+
encodedInput: encodedInput
|
|
353
|
+
};
|
|
354
|
+
case Parser.V4Actions:
|
|
355
|
+
// v4 swap data comes pre-encoded at index 0
|
|
356
|
+
return {
|
|
357
|
+
type: type,
|
|
358
|
+
encodedInput: parameters[0]
|
|
359
|
+
};
|
|
360
|
+
case Parser.V3Actions:
|
|
361
|
+
// v4 swap data comes pre-encoded at index 0
|
|
362
|
+
return {
|
|
363
|
+
type: type,
|
|
364
|
+
encodedInput: parameters[0]
|
|
365
|
+
};
|
|
302
366
|
}
|
|
303
|
-
var encodedInput = defaultAbiCoder.encode(COMMAND_ABI_DEFINITION[type].map(function (abi) {
|
|
304
|
-
return abi.type;
|
|
305
|
-
}), parameters);
|
|
306
|
-
return {
|
|
307
|
-
type: type,
|
|
308
|
-
encodedInput: encodedInput
|
|
309
|
-
};
|
|
310
367
|
}
|
|
311
368
|
|
|
312
369
|
var RouterActionType;
|
|
@@ -1049,34 +1106,54 @@ var CommandParser = /*#__PURE__*/function () {
|
|
|
1049
1106
|
var commandTypes = CommandParser.getCommands(commands);
|
|
1050
1107
|
return {
|
|
1051
1108
|
commands: commandTypes.map(function (commandType, i) {
|
|
1052
|
-
var
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1056
|
-
|
|
1057
|
-
|
|
1058
|
-
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1109
|
+
var commandDef = COMMAND_DEFINITION[commandType];
|
|
1110
|
+
if (commandDef.parser === Parser.V4Actions) {
|
|
1111
|
+
var _V4BaseActionsParser$ = V4BaseActionsParser.parseCalldata(inputs[i]),
|
|
1112
|
+
actions = _V4BaseActionsParser$.actions;
|
|
1113
|
+
return {
|
|
1114
|
+
commandName: CommandType[commandType],
|
|
1115
|
+
commandType: commandType,
|
|
1116
|
+
params: v4RouterCallToParams(actions)
|
|
1117
|
+
};
|
|
1118
|
+
} else if (commandDef.parser === Parser.Abi) {
|
|
1119
|
+
var abiDef = commandDef.params;
|
|
1120
|
+
var rawParams = ethers.utils.defaultAbiCoder.decode(abiDef.map(function (command) {
|
|
1121
|
+
return command.type;
|
|
1122
|
+
}), inputs[i]);
|
|
1123
|
+
var params = rawParams.map(function (param, j) {
|
|
1124
|
+
switch (abiDef[j].subparser) {
|
|
1125
|
+
case Subparser.V3PathExactIn:
|
|
1126
|
+
return {
|
|
1127
|
+
name: abiDef[j].name,
|
|
1128
|
+
value: parseV3PathExactIn(param)
|
|
1129
|
+
};
|
|
1130
|
+
case Subparser.V3PathExactOut:
|
|
1131
|
+
return {
|
|
1132
|
+
name: abiDef[j].name,
|
|
1133
|
+
value: parseV3PathExactOut(param)
|
|
1134
|
+
};
|
|
1135
|
+
default:
|
|
1136
|
+
return {
|
|
1137
|
+
name: abiDef[j].name,
|
|
1138
|
+
value: param
|
|
1139
|
+
};
|
|
1140
|
+
}
|
|
1141
|
+
});
|
|
1142
|
+
return {
|
|
1143
|
+
commandName: CommandType[commandType],
|
|
1144
|
+
commandType: commandType,
|
|
1145
|
+
params: params
|
|
1146
|
+
};
|
|
1147
|
+
} else if (commandDef.parser === Parser.V3Actions) {
|
|
1148
|
+
// TODO: implement better parsing here
|
|
1149
|
+
return {
|
|
1150
|
+
commandName: CommandType[commandType],
|
|
1151
|
+
commandType: commandType,
|
|
1152
|
+
params: inputs
|
|
1153
|
+
};
|
|
1154
|
+
} else {
|
|
1155
|
+
throw new Error("Unsupported parser: " + commandDef);
|
|
1156
|
+
}
|
|
1080
1157
|
})
|
|
1081
1158
|
};
|
|
1082
1159
|
}
|
|
@@ -1131,6 +1208,19 @@ function parseV3PathExactOut(path) {
|
|
|
1131
1208
|
}
|
|
1132
1209
|
return res;
|
|
1133
1210
|
}
|
|
1211
|
+
function v4RouterCallToParams(actions) {
|
|
1212
|
+
return actions.map(function (action) {
|
|
1213
|
+
return {
|
|
1214
|
+
name: action.actionName,
|
|
1215
|
+
value: action.params.map(function (param) {
|
|
1216
|
+
return {
|
|
1217
|
+
name: param.name,
|
|
1218
|
+
value: param.value
|
|
1219
|
+
};
|
|
1220
|
+
})
|
|
1221
|
+
};
|
|
1222
|
+
});
|
|
1223
|
+
}
|
|
1134
1224
|
|
|
1135
1225
|
export { CommandParser, CommandType, PoolType, ROUTER_AS_RECIPIENT, RoutePlanner, RouterActionType, RouterTradeAdapter, SwapRouter, UNIVERSAL_ROUTER_ADDRESS, UNIVERSAL_ROUTER_CREATION_BLOCK, UniswapTrade, UniversalRouterVersion, UnwrapWETH, WETH_ADDRESS, isNativeCurrency };
|
|
1136
1226
|
//# sourceMappingURL=universal-router-sdk.esm.js.map
|