@uniswap/universal-router-sdk 5.8.0 → 5.9.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/cjs/src/utils/commandParser.d.ts +4 -2
- package/dist/cjs/src/utils/commandParser.js +12 -4
- package/dist/cjs/src/utils/commandParser.js.map +1 -1
- package/dist/cjs/src/utils/computeEncodeSwapsAmounts.js +2 -2
- package/dist/cjs/src/utils/computeEncodeSwapsAmounts.js.map +1 -1
- package/dist/esm/src/utils/commandParser.d.ts +4 -2
- package/dist/esm/src/utils/commandParser.js +13 -5
- package/dist/esm/src/utils/commandParser.js.map +1 -1
- package/dist/esm/src/utils/computeEncodeSwapsAmounts.js +2 -2
- package/dist/esm/src/utils/computeEncodeSwapsAmounts.js.map +1 -1
- package/dist/types/src/utils/commandParser.d.ts +4 -2
- package/package.json +5 -5
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Interface } from '@ethersproject/abi';
|
|
2
2
|
import { CommandType, CommandDefinition } from '../utils/routerCommands';
|
|
3
|
+
import { UniversalRouterVersion } from '../utils/constants';
|
|
3
4
|
export type Param = {
|
|
4
5
|
readonly name: string;
|
|
5
6
|
readonly value: any;
|
|
@@ -22,11 +23,12 @@ export interface CommandsDefinition {
|
|
|
22
23
|
}
|
|
23
24
|
export declare abstract class CommandParser {
|
|
24
25
|
static INTERFACE: Interface;
|
|
25
|
-
static parseCalldata(calldata: string): UniversalRouterCall;
|
|
26
|
+
static parseCalldata(calldata: string, urVersion?: UniversalRouterVersion): UniversalRouterCall;
|
|
26
27
|
}
|
|
27
28
|
export declare class GenericCommandParser {
|
|
28
29
|
private readonly commandDefinition;
|
|
29
|
-
|
|
30
|
+
private readonly urVersion;
|
|
31
|
+
constructor(commandDefinition: CommandsDefinition, urVersion?: UniversalRouterVersion);
|
|
30
32
|
parse(commands: string, inputs: string[]): UniversalRouterCall;
|
|
31
33
|
private static getCommands;
|
|
32
34
|
}
|
|
@@ -7,10 +7,16 @@ const UniversalRouter_json_1 = tslib_1.__importDefault(require("@uniswap/univers
|
|
|
7
7
|
const abi_1 = require("@ethersproject/abi");
|
|
8
8
|
const v4_sdk_1 = require("@uniswap/v4-sdk");
|
|
9
9
|
const routerCommands_1 = require("../utils/routerCommands");
|
|
10
|
+
const constants_1 = require("../utils/constants");
|
|
10
11
|
// Parses UniversalRouter V2 commands
|
|
11
12
|
class CommandParser {
|
|
12
|
-
static parseCalldata(calldata) {
|
|
13
|
-
|
|
13
|
+
static parseCalldata(calldata, urVersion = constants_1.UniversalRouterVersion.V2_0) {
|
|
14
|
+
// From V2.1.1 onwards the V2/V3 swap commands carry an extra minHopPriceX36 array,
|
|
15
|
+
// so the matching command definitions must be used to decode them correctly.
|
|
16
|
+
const commandDefinition = (0, constants_1.isAtLeastV2_1_1)(urVersion)
|
|
17
|
+
? { ...routerCommands_1.COMMAND_DEFINITION, ...routerCommands_1.V2V3_SWAP_COMMANDS_V2_1_1 }
|
|
18
|
+
: routerCommands_1.COMMAND_DEFINITION;
|
|
19
|
+
const genericParser = new GenericCommandParser(commandDefinition, urVersion);
|
|
14
20
|
const txDescription = CommandParser.INTERFACE.parseTransaction({ data: calldata });
|
|
15
21
|
const { commands, inputs } = txDescription.args;
|
|
16
22
|
return genericParser.parse(commands, inputs);
|
|
@@ -20,8 +26,9 @@ exports.CommandParser = CommandParser;
|
|
|
20
26
|
CommandParser.INTERFACE = new abi_1.Interface(UniversalRouter_json_1.default.abi);
|
|
21
27
|
// Parses commands based on given command definition
|
|
22
28
|
class GenericCommandParser {
|
|
23
|
-
constructor(commandDefinition) {
|
|
29
|
+
constructor(commandDefinition, urVersion = constants_1.UniversalRouterVersion.V2_0) {
|
|
24
30
|
this.commandDefinition = commandDefinition;
|
|
31
|
+
this.urVersion = urVersion;
|
|
25
32
|
}
|
|
26
33
|
parse(commands, inputs) {
|
|
27
34
|
const commandTypes = GenericCommandParser.getCommands(commands);
|
|
@@ -29,7 +36,8 @@ class GenericCommandParser {
|
|
|
29
36
|
commands: commandTypes.map((commandType, i) => {
|
|
30
37
|
const commandDef = this.commandDefinition[commandType];
|
|
31
38
|
if (commandDef.parser === routerCommands_1.Parser.V4Actions) {
|
|
32
|
-
|
|
39
|
+
// UniversalRouterVersion and URVersion share identical string values; cast across the SDK boundary
|
|
40
|
+
const { actions } = v4_sdk_1.V4BaseActionsParser.parseCalldata(inputs[i], this.urVersion);
|
|
33
41
|
return {
|
|
34
42
|
commandName: routerCommands_1.CommandType[commandType],
|
|
35
43
|
commandType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandParser.js","sourceRoot":"","sources":["../../../../src/utils/commandParser.ts"],"names":[],"mappings":";;;;AAAA,mCAA+B;AAC/B,0JAAoH;AACpH,4CAA8C;AAC9C,
|
|
1
|
+
{"version":3,"file":"commandParser.js","sourceRoot":"","sources":["../../../../src/utils/commandParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,8 +16,8 @@ function computeEncodeSwapsAmounts(spec) {
|
|
|
16
16
|
const slippageDenominator = ethers_1.BigNumber.from(spec.slippageTolerance.denominator.toString());
|
|
17
17
|
if (spec.tradeType === sdk_core_1.TradeType.EXACT_INPUT) {
|
|
18
18
|
const grossMinOrExactAmountOut = routingQuote
|
|
19
|
-
.mul(slippageDenominator)
|
|
20
|
-
.div(slippageDenominator
|
|
19
|
+
.mul(slippageDenominator.sub(slippageNumerator))
|
|
20
|
+
.div(slippageDenominator);
|
|
21
21
|
if (((_a = spec.fee) === null || _a === void 0 ? void 0 : _a.kind) === 'portion') {
|
|
22
22
|
const feeAmount = (0, constants_1.isAtLeastV2_1_1)(spec.urVersion)
|
|
23
23
|
? grossMinOrExactAmountOut.mul(ethers_1.BigNumber.from((0, numbers_1.encodeFee1e18)(spec.fee.fee))).div(ethers_1.BigNumber.from(10).pow(18))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeEncodeSwapsAmounts.js","sourceRoot":"","sources":["../../../../src/utils/computeEncodeSwapsAmounts.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAClC,gDAA6C;AAC7C,2CAA6C;AAC7C,uCAAwD;AAWxD,mFAAmF;AACnF,8FAA8F;AAC9F,kHAAkH;AAClH,SAAgB,yBAAyB,CAAC,IAAiC;;IACzE,MAAM,aAAa,GAAG,kBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC7E,MAAM,YAAY,GAAG,kBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC3E,MAAM,iBAAiB,GAAG,kBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;IACrF,MAAM,mBAAmB,GAAG,kBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAA;IAEzF,IAAI,IAAI,CAAC,SAAS,KAAK,oBAAS,CAAC,WAAW,EAAE;QAC5C,MAAM,wBAAwB,GAAG,YAAY;aAC1C,GAAG,CAAC,mBAAmB,CAAC
|
|
1
|
+
{"version":3,"file":"computeEncodeSwapsAmounts.js","sourceRoot":"","sources":["../../../../src/utils/computeEncodeSwapsAmounts.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAClC,gDAA6C;AAC7C,2CAA6C;AAC7C,uCAAwD;AAWxD,mFAAmF;AACnF,8FAA8F;AAC9F,kHAAkH;AAClH,SAAgB,yBAAyB,CAAC,IAAiC;;IACzE,MAAM,aAAa,GAAG,kBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC7E,MAAM,YAAY,GAAG,kBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC3E,MAAM,iBAAiB,GAAG,kBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;IACrF,MAAM,mBAAmB,GAAG,kBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAA;IAEzF,IAAI,IAAI,CAAC,SAAS,KAAK,oBAAS,CAAC,WAAW,EAAE;QAC5C,MAAM,wBAAwB,GAAG,YAAY;aAC1C,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;aAC/C,GAAG,CAAC,mBAAmB,CAAC,CAAA;QAE3B,IAAI,CAAA,MAAA,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,SAAS,EAAE;YAChC,MAAM,SAAS,GAAG,IAAA,2BAAe,EAAC,IAAI,CAAC,SAAS,CAAC;gBAC/C,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,kBAAS,CAAC,IAAI,CAAC,IAAA,uBAAa,EAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC3G,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,kBAAS,CAAC,IAAI,CAAC,IAAA,uBAAa,EAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAM,CAAC,CAAA;YAEzF,OAAO;gBACL,kBAAkB,EAAE,aAAa;gBACjC,wBAAwB;gBACxB,sBAAsB,EAAE,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC;aAChE,CAAA;SACF;QAED,OAAO;YACL,kBAAkB,EAAE,aAAa;YACjC,wBAAwB;YACxB,sBAAsB,EAAE,wBAAwB;SACjD,CAAA;KACF;IAED,MAAM,kBAAkB,GAAG,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;IAChH,MAAM,wBAAwB,GAAG,aAAa,CAAA;IAC9C,MAAM,sBAAsB,GAC1B,CAAA,MAAA,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,kBAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAA;IAEtH,OAAO;QACL,kBAAkB;QAClB,wBAAwB;QACxB,sBAAsB;KACvB,CAAA;AACH,CAAC;AAxCD,8DAwCC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Interface } from '@ethersproject/abi';
|
|
2
2
|
import { CommandType, CommandDefinition } from '../utils/routerCommands';
|
|
3
|
+
import { UniversalRouterVersion } from '../utils/constants';
|
|
3
4
|
export type Param = {
|
|
4
5
|
readonly name: string;
|
|
5
6
|
readonly value: any;
|
|
@@ -22,11 +23,12 @@ export interface CommandsDefinition {
|
|
|
22
23
|
}
|
|
23
24
|
export declare abstract class CommandParser {
|
|
24
25
|
static INTERFACE: Interface;
|
|
25
|
-
static parseCalldata(calldata: string): UniversalRouterCall;
|
|
26
|
+
static parseCalldata(calldata: string, urVersion?: UniversalRouterVersion): UniversalRouterCall;
|
|
26
27
|
}
|
|
27
28
|
export declare class GenericCommandParser {
|
|
28
29
|
private readonly commandDefinition;
|
|
29
|
-
|
|
30
|
+
private readonly urVersion;
|
|
31
|
+
constructor(commandDefinition: CommandsDefinition, urVersion?: UniversalRouterVersion);
|
|
30
32
|
parse(commands: string, inputs: string[]): UniversalRouterCall;
|
|
31
33
|
private static getCommands;
|
|
32
34
|
}
|
|
@@ -2,11 +2,17 @@ import { ethers } from 'ethers';
|
|
|
2
2
|
import UniversalRouter from '@uniswap/universal-router/artifacts/contracts/UniversalRouter.sol/UniversalRouter.json';
|
|
3
3
|
import { Interface } from '@ethersproject/abi';
|
|
4
4
|
import { V4BaseActionsParser } from '@uniswap/v4-sdk';
|
|
5
|
-
import { CommandType, COMMAND_DEFINITION, Subparser, Parser } from '../utils/routerCommands';
|
|
5
|
+
import { CommandType, COMMAND_DEFINITION, V2V3_SWAP_COMMANDS_V2_1_1, Subparser, Parser, } from '../utils/routerCommands';
|
|
6
|
+
import { UniversalRouterVersion, isAtLeastV2_1_1 } from '../utils/constants';
|
|
6
7
|
// Parses UniversalRouter V2 commands
|
|
7
8
|
export class CommandParser {
|
|
8
|
-
static parseCalldata(calldata) {
|
|
9
|
-
|
|
9
|
+
static parseCalldata(calldata, urVersion = UniversalRouterVersion.V2_0) {
|
|
10
|
+
// From V2.1.1 onwards the V2/V3 swap commands carry an extra minHopPriceX36 array,
|
|
11
|
+
// so the matching command definitions must be used to decode them correctly.
|
|
12
|
+
const commandDefinition = isAtLeastV2_1_1(urVersion)
|
|
13
|
+
? { ...COMMAND_DEFINITION, ...V2V3_SWAP_COMMANDS_V2_1_1 }
|
|
14
|
+
: COMMAND_DEFINITION;
|
|
15
|
+
const genericParser = new GenericCommandParser(commandDefinition, urVersion);
|
|
10
16
|
const txDescription = CommandParser.INTERFACE.parseTransaction({ data: calldata });
|
|
11
17
|
const { commands, inputs } = txDescription.args;
|
|
12
18
|
return genericParser.parse(commands, inputs);
|
|
@@ -15,8 +21,9 @@ export class CommandParser {
|
|
|
15
21
|
CommandParser.INTERFACE = new Interface(UniversalRouter.abi);
|
|
16
22
|
// Parses commands based on given command definition
|
|
17
23
|
export class GenericCommandParser {
|
|
18
|
-
constructor(commandDefinition) {
|
|
24
|
+
constructor(commandDefinition, urVersion = UniversalRouterVersion.V2_0) {
|
|
19
25
|
this.commandDefinition = commandDefinition;
|
|
26
|
+
this.urVersion = urVersion;
|
|
20
27
|
}
|
|
21
28
|
parse(commands, inputs) {
|
|
22
29
|
const commandTypes = GenericCommandParser.getCommands(commands);
|
|
@@ -24,7 +31,8 @@ export class GenericCommandParser {
|
|
|
24
31
|
commands: commandTypes.map((commandType, i) => {
|
|
25
32
|
const commandDef = this.commandDefinition[commandType];
|
|
26
33
|
if (commandDef.parser === Parser.V4Actions) {
|
|
27
|
-
|
|
34
|
+
// UniversalRouterVersion and URVersion share identical string values; cast across the SDK boundary
|
|
35
|
+
const { actions } = V4BaseActionsParser.parseCalldata(inputs[i], this.urVersion);
|
|
28
36
|
return {
|
|
29
37
|
commandName: CommandType[commandType],
|
|
30
38
|
commandType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandParser.js","sourceRoot":"","sources":["../../../../src/utils/commandParser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,eAAe,MAAM,wFAAwF,CAAA;AACpH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAC9C,OAAO,
|
|
1
|
+
{"version":3,"file":"commandParser.js","sourceRoot":"","sources":["../../../../src/utils/commandParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,8 +13,8 @@ export function computeEncodeSwapsAmounts(spec) {
|
|
|
13
13
|
const slippageDenominator = BigNumber.from(spec.slippageTolerance.denominator.toString());
|
|
14
14
|
if (spec.tradeType === TradeType.EXACT_INPUT) {
|
|
15
15
|
const grossMinOrExactAmountOut = routingQuote
|
|
16
|
-
.mul(slippageDenominator)
|
|
17
|
-
.div(slippageDenominator
|
|
16
|
+
.mul(slippageDenominator.sub(slippageNumerator))
|
|
17
|
+
.div(slippageDenominator);
|
|
18
18
|
if (((_a = spec.fee) === null || _a === void 0 ? void 0 : _a.kind) === 'portion') {
|
|
19
19
|
const feeAmount = isAtLeastV2_1_1(spec.urVersion)
|
|
20
20
|
? grossMinOrExactAmountOut.mul(BigNumber.from(encodeFee1e18(spec.fee.fee))).div(BigNumber.from(10).pow(18))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeEncodeSwapsAmounts.js","sourceRoot":"","sources":["../../../../src/utils/computeEncodeSwapsAmounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAWxD,mFAAmF;AACnF,8FAA8F;AAC9F,kHAAkH;AAClH,MAAM,UAAU,yBAAyB,CAAC,IAAiC;;IACzE,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC7E,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC3E,MAAM,iBAAiB,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;IACrF,MAAM,mBAAmB,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAA;IAEzF,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,WAAW,EAAE;QAC5C,MAAM,wBAAwB,GAAG,YAAY;aAC1C,GAAG,CAAC,mBAAmB,CAAC
|
|
1
|
+
{"version":3,"file":"computeEncodeSwapsAmounts.js","sourceRoot":"","sources":["../../../../src/utils/computeEncodeSwapsAmounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAWxD,mFAAmF;AACnF,8FAA8F;AAC9F,kHAAkH;AAClH,MAAM,UAAU,yBAAyB,CAAC,IAAiC;;IACzE,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC7E,MAAM,YAAY,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC3E,MAAM,iBAAiB,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;IACrF,MAAM,mBAAmB,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAA;IAEzF,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,WAAW,EAAE;QAC5C,MAAM,wBAAwB,GAAG,YAAY;aAC1C,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;aAC/C,GAAG,CAAC,mBAAmB,CAAC,CAAA;QAE3B,IAAI,CAAA,MAAA,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,SAAS,EAAE;YAChC,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;gBAC/C,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBAC3G,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAM,CAAC,CAAA;YAEzF,OAAO;gBACL,kBAAkB,EAAE,aAAa;gBACjC,wBAAwB;gBACxB,sBAAsB,EAAE,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC;aAChE,CAAA;SACF;QAED,OAAO;YACL,kBAAkB,EAAE,aAAa;YACjC,wBAAwB;YACxB,sBAAsB,EAAE,wBAAwB;SACjD,CAAA;KACF;IAED,MAAM,kBAAkB,GAAG,YAAY,CAAC,GAAG,CAAC,mBAAmB,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;IAChH,MAAM,wBAAwB,GAAG,aAAa,CAAA;IAC9C,MAAM,sBAAsB,GAC1B,CAAA,MAAA,IAAI,CAAC,GAAG,0CAAE,IAAI,MAAK,MAAM,CAAC,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAA;IAEtH,OAAO;QACL,kBAAkB;QAClB,wBAAwB;QACxB,sBAAsB;KACvB,CAAA;AACH,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Interface } from '@ethersproject/abi';
|
|
2
2
|
import { CommandType, CommandDefinition } from '../utils/routerCommands';
|
|
3
|
+
import { UniversalRouterVersion } from '../utils/constants';
|
|
3
4
|
export type Param = {
|
|
4
5
|
readonly name: string;
|
|
5
6
|
readonly value: any;
|
|
@@ -22,11 +23,12 @@ export interface CommandsDefinition {
|
|
|
22
23
|
}
|
|
23
24
|
export declare abstract class CommandParser {
|
|
24
25
|
static INTERFACE: Interface;
|
|
25
|
-
static parseCalldata(calldata: string): UniversalRouterCall;
|
|
26
|
+
static parseCalldata(calldata: string, urVersion?: UniversalRouterVersion): UniversalRouterCall;
|
|
26
27
|
}
|
|
27
28
|
export declare class GenericCommandParser {
|
|
28
29
|
private readonly commandDefinition;
|
|
29
|
-
|
|
30
|
+
private readonly urVersion;
|
|
31
|
+
constructor(commandDefinition: CommandsDefinition, urVersion?: UniversalRouterVersion);
|
|
30
32
|
parse(commands: string, inputs: string[]): UniversalRouterCall;
|
|
31
33
|
private static getCommands;
|
|
32
34
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uniswap/universal-router-sdk",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.9.0",
|
|
4
4
|
"description": "sdk for integrating with the Universal Router contracts",
|
|
5
5
|
"repository": "https://github.com/Uniswap/sdks.git",
|
|
6
6
|
"keywords": [
|
|
@@ -44,14 +44,14 @@
|
|
|
44
44
|
"@ethersproject/abstract-signer": "^5.7.0",
|
|
45
45
|
"@openzeppelin/contracts": "4.7.0",
|
|
46
46
|
"@uniswap/permit2-sdk": "^1.4.0",
|
|
47
|
-
"@uniswap/router-sdk": "^2.
|
|
47
|
+
"@uniswap/router-sdk": "^2.11.0",
|
|
48
48
|
"@uniswap/sdk-core": "^7.18.0",
|
|
49
49
|
"@uniswap/universal-router": "2.1.0",
|
|
50
50
|
"@uniswap/v2-core": "^1.0.1",
|
|
51
|
-
"@uniswap/v2-sdk": "^4.
|
|
51
|
+
"@uniswap/v2-sdk": "^4.21.0",
|
|
52
52
|
"@uniswap/v3-core": "1.0.0",
|
|
53
|
-
"@uniswap/v3-sdk": "^3.
|
|
54
|
-
"@uniswap/v4-sdk": "^2.
|
|
53
|
+
"@uniswap/v3-sdk": "^3.31.0",
|
|
54
|
+
"@uniswap/v4-sdk": "^2.3.0",
|
|
55
55
|
"bignumber.js": "^9.0.2",
|
|
56
56
|
"ethers": "^5.7.0",
|
|
57
57
|
"jsbi": "^3.1.4",
|