@uniswap/universal-router-sdk 4.34.2 → 5.0.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/README.md +104 -96
- package/dist/{entities → cjs/src/entities}/Command.d.ts +12 -12
- package/dist/cjs/src/entities/Command.js +9 -0
- package/dist/cjs/src/entities/Command.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/actions/across.d.ts +21 -21
- package/dist/cjs/src/entities/actions/across.js +7 -0
- package/dist/cjs/src/entities/actions/across.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/actions/index.d.ts +3 -3
- package/dist/cjs/src/entities/actions/index.js +7 -0
- package/dist/cjs/src/entities/actions/index.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/actions/uniswap.d.ts +38 -39
- package/dist/cjs/src/entities/actions/uniswap.js +532 -0
- package/dist/cjs/src/entities/actions/uniswap.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/actions/unwrapWETH.d.ts +12 -12
- package/dist/cjs/src/entities/actions/unwrapWETH.js +33 -0
- package/dist/cjs/src/entities/actions/unwrapWETH.js.map +1 -0
- package/dist/{entities → cjs/src/entities}/index.d.ts +2 -2
- package/dist/cjs/src/entities/index.js +6 -0
- package/dist/cjs/src/entities/index.js.map +1 -0
- package/dist/{index.d.ts → cjs/src/index.d.ts} +12 -12
- package/dist/cjs/src/index.js +33 -0
- package/dist/cjs/src/index.js.map +1 -0
- package/dist/{swapRouter.d.ts → cjs/src/swapRouter.d.ts} +87 -87
- package/dist/cjs/src/swapRouter.js +276 -0
- package/dist/cjs/src/swapRouter.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/commandParser.d.ts +34 -34
- package/dist/cjs/src/utils/commandParser.js +145 -0
- package/dist/cjs/src/utils/commandParser.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/constants.d.ts +33 -33
- package/dist/cjs/src/utils/constants.js +541 -0
- package/dist/cjs/src/utils/constants.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/eip712.d.ts +17 -17
- package/dist/cjs/src/utils/eip712.js +43 -0
- package/dist/cjs/src/utils/eip712.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/getCurrencyAddress.d.ts +2 -2
- package/dist/cjs/src/utils/getCurrencyAddress.js +9 -0
- package/dist/cjs/src/utils/getCurrencyAddress.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/inputTokens.d.ts +23 -23
- package/dist/cjs/src/utils/inputTokens.js +58 -0
- package/dist/cjs/src/utils/inputTokens.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/numbers.d.ts +7 -6
- package/dist/cjs/src/utils/numbers.js +27 -0
- package/dist/cjs/src/utils/numbers.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/pathCurrency.d.ts +3 -3
- package/dist/cjs/src/utils/pathCurrency.js +27 -0
- package/dist/cjs/src/utils/pathCurrency.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/routerCommands.d.ts +77 -72
- package/dist/cjs/src/utils/routerCommands.js +334 -0
- package/dist/cjs/src/utils/routerCommands.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/routerTradeAdapter.d.ts +73 -73
- package/dist/cjs/src/utils/routerTradeAdapter.js +139 -0
- package/dist/cjs/src/utils/routerTradeAdapter.js.map +1 -0
- package/dist/esm/src/entities/Command.d.ts +12 -0
- package/dist/esm/src/entities/Command.js +6 -0
- package/dist/esm/src/entities/Command.js.map +1 -0
- package/dist/esm/src/entities/actions/across.d.ts +21 -0
- package/dist/esm/src/entities/actions/across.js +3 -0
- package/dist/esm/src/entities/actions/across.js.map +1 -0
- package/dist/esm/src/entities/actions/index.d.ts +3 -0
- package/dist/esm/src/entities/actions/index.js +4 -0
- package/dist/esm/src/entities/actions/index.js.map +1 -0
- package/dist/esm/src/entities/actions/uniswap.d.ts +38 -0
- package/dist/esm/src/entities/actions/uniswap.js +528 -0
- package/dist/esm/src/entities/actions/uniswap.js.map +1 -0
- package/dist/esm/src/entities/actions/unwrapWETH.d.ts +12 -0
- package/dist/esm/src/entities/actions/unwrapWETH.js +28 -0
- package/dist/esm/src/entities/actions/unwrapWETH.js.map +1 -0
- package/dist/esm/src/entities/index.d.ts +2 -0
- package/dist/esm/src/entities/index.js +3 -0
- package/dist/esm/src/entities/index.js.map +1 -0
- package/dist/esm/src/index.d.ts +12 -0
- package/dist/esm/src/index.js +9 -0
- package/dist/esm/src/index.js.map +1 -0
- package/dist/esm/src/swapRouter.d.ts +87 -0
- package/dist/esm/src/swapRouter.js +271 -0
- package/dist/esm/src/swapRouter.js.map +1 -0
- package/dist/esm/src/utils/commandParser.d.ts +34 -0
- package/dist/esm/src/utils/commandParser.js +137 -0
- package/dist/esm/src/utils/commandParser.js.map +1 -0
- package/dist/esm/src/utils/constants.d.ts +33 -0
- package/dist/esm/src/utils/constants.js +534 -0
- package/dist/esm/src/utils/constants.js.map +1 -0
- package/dist/esm/src/utils/eip712.d.ts +17 -0
- package/dist/esm/src/utils/eip712.js +38 -0
- package/dist/esm/src/utils/eip712.js.map +1 -0
- package/dist/esm/src/utils/getCurrencyAddress.d.ts +2 -0
- package/dist/esm/src/utils/getCurrencyAddress.js +5 -0
- package/dist/esm/src/utils/getCurrencyAddress.js.map +1 -0
- package/dist/esm/src/utils/inputTokens.d.ts +23 -0
- package/dist/esm/src/utils/inputTokens.js +51 -0
- package/dist/esm/src/utils/inputTokens.js.map +1 -0
- package/dist/esm/src/utils/numbers.d.ts +7 -0
- package/dist/esm/src/utils/numbers.js +19 -0
- package/dist/esm/src/utils/numbers.js.map +1 -0
- package/dist/esm/src/utils/pathCurrency.d.ts +3 -0
- package/dist/esm/src/utils/pathCurrency.js +23 -0
- package/dist/esm/src/utils/pathCurrency.js.map +1 -0
- package/dist/esm/src/utils/routerCommands.d.ts +77 -0
- package/dist/esm/src/utils/routerCommands.js +329 -0
- package/dist/esm/src/utils/routerCommands.js.map +1 -0
- package/dist/esm/src/utils/routerTradeAdapter.d.ts +73 -0
- package/dist/esm/src/utils/routerTradeAdapter.js +134 -0
- package/dist/esm/src/utils/routerTradeAdapter.js.map +1 -0
- package/dist/types/src/entities/Command.d.ts +12 -0
- package/dist/types/src/entities/actions/across.d.ts +21 -0
- package/dist/types/src/entities/actions/index.d.ts +3 -0
- package/dist/types/src/entities/actions/uniswap.d.ts +38 -0
- package/dist/types/src/entities/actions/unwrapWETH.d.ts +12 -0
- package/dist/types/src/entities/index.d.ts +2 -0
- package/dist/types/src/index.d.ts +12 -0
- package/dist/types/src/swapRouter.d.ts +87 -0
- package/dist/types/src/utils/commandParser.d.ts +34 -0
- package/dist/types/src/utils/constants.d.ts +33 -0
- package/dist/types/src/utils/eip712.d.ts +17 -0
- package/dist/types/src/utils/getCurrencyAddress.d.ts +2 -0
- package/dist/types/src/utils/inputTokens.d.ts +23 -0
- package/dist/types/src/utils/numbers.d.ts +7 -0
- package/dist/types/src/utils/pathCurrency.d.ts +3 -0
- package/dist/types/src/utils/routerCommands.d.ts +77 -0
- package/dist/types/src/utils/routerTradeAdapter.d.ts +73 -0
- package/package.json +31 -22
- package/dist/index.js +0 -8
- package/dist/test/forge/writeInterop.d.ts +0 -2
- package/dist/test/utils/addresses.d.ts +0 -5
- package/dist/test/utils/hexToDecimalString.d.ts +0 -2
- package/dist/test/utils/permit2.d.ts +0 -7
- package/dist/test/utils/uniswapData.d.ts +0 -24
- package/dist/universal-router-sdk.cjs.development.js +0 -1925
- package/dist/universal-router-sdk.cjs.development.js.map +0 -1
- package/dist/universal-router-sdk.cjs.production.min.js +0 -2
- package/dist/universal-router-sdk.cjs.production.min.js.map +0 -1
- package/dist/universal-router-sdk.esm.js +0 -1912
- package/dist/universal-router-sdk.esm.js.map +0 -1
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
import { BigintIsh } from '@uniswap/sdk-core';
|
|
2
|
-
import { NFTPermitOptions } from '@uniswap/v3-sdk';
|
|
3
|
-
import { PermitSingle } from '@uniswap/permit2-sdk';
|
|
4
|
-
import { RoutePlanner } from './routerCommands';
|
|
5
|
-
export interface Permit2Permit extends PermitSingle {
|
|
6
|
-
signature: string;
|
|
7
|
-
}
|
|
8
|
-
export
|
|
9
|
-
token: string;
|
|
10
|
-
protocol: string;
|
|
11
|
-
};
|
|
12
|
-
export
|
|
13
|
-
token: string;
|
|
14
|
-
amount: string;
|
|
15
|
-
recipient?: string;
|
|
16
|
-
};
|
|
17
|
-
export
|
|
18
|
-
permit2Permit?: Permit2Permit;
|
|
19
|
-
permit2TransferFrom?: Permit2TransferFrom;
|
|
20
|
-
};
|
|
21
|
-
export declare function encodePermit(planner: RoutePlanner, permit2: Permit2Permit): void;
|
|
22
|
-
export declare function encodeV3PositionPermit(planner: RoutePlanner, permit: NFTPermitOptions, tokenId: BigintIsh): void;
|
|
23
|
-
export declare function encodeInputTokenOptions(planner: RoutePlanner, options: InputTokenOptions): void;
|
|
1
|
+
import { BigintIsh } from '@uniswap/sdk-core';
|
|
2
|
+
import { NFTPermitOptions } from '@uniswap/v3-sdk';
|
|
3
|
+
import { PermitSingle } from '@uniswap/permit2-sdk';
|
|
4
|
+
import { RoutePlanner } from './routerCommands';
|
|
5
|
+
export interface Permit2Permit extends PermitSingle {
|
|
6
|
+
signature: string;
|
|
7
|
+
}
|
|
8
|
+
export type ApproveProtocol = {
|
|
9
|
+
token: string;
|
|
10
|
+
protocol: string;
|
|
11
|
+
};
|
|
12
|
+
export type Permit2TransferFrom = {
|
|
13
|
+
token: string;
|
|
14
|
+
amount: string;
|
|
15
|
+
recipient?: string;
|
|
16
|
+
};
|
|
17
|
+
export type InputTokenOptions = {
|
|
18
|
+
permit2Permit?: Permit2Permit;
|
|
19
|
+
permit2TransferFrom?: Permit2TransferFrom;
|
|
20
|
+
};
|
|
21
|
+
export declare function encodePermit(planner: RoutePlanner, permit2: Permit2Permit): void;
|
|
22
|
+
export declare function encodeV3PositionPermit(planner: RoutePlanner, permit: NFTPermitOptions, tokenId: BigintIsh): void;
|
|
23
|
+
export declare function encodeInputTokenOptions(planner: RoutePlanner, options: InputTokenOptions): void;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.encodeInputTokenOptions = exports.encodeV3PositionPermit = exports.encodePermit = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const tiny_invariant_1 = tslib_1.__importDefault(require("tiny-invariant"));
|
|
6
|
+
const ethers_1 = require("ethers");
|
|
7
|
+
const sdk_core_1 = require("@uniswap/sdk-core");
|
|
8
|
+
const v3_sdk_1 = require("@uniswap/v3-sdk");
|
|
9
|
+
const routerCommands_1 = require("./routerCommands");
|
|
10
|
+
const constants_1 = require("./constants");
|
|
11
|
+
const SIGNATURE_LENGTH = 65;
|
|
12
|
+
const EIP_2098_SIGNATURE_LENGTH = 64;
|
|
13
|
+
function encodePermit(planner, permit2) {
|
|
14
|
+
let signature = permit2.signature;
|
|
15
|
+
const length = ethers_1.ethers.utils.arrayify(permit2.signature).length;
|
|
16
|
+
// signature data provided for EIP-1271 may have length different from ECDSA signature
|
|
17
|
+
if (length === SIGNATURE_LENGTH || length === EIP_2098_SIGNATURE_LENGTH) {
|
|
18
|
+
// sanitizes signature to cover edge cases of malformed EIP-2098 sigs and v used as recovery id
|
|
19
|
+
signature = ethers_1.ethers.utils.joinSignature(ethers_1.ethers.utils.splitSignature(permit2.signature));
|
|
20
|
+
}
|
|
21
|
+
planner.addCommand(routerCommands_1.CommandType.PERMIT2_PERMIT, [permit2, signature]);
|
|
22
|
+
}
|
|
23
|
+
exports.encodePermit = encodePermit;
|
|
24
|
+
function encodeV3PositionPermit(planner, permit, tokenId) {
|
|
25
|
+
const calldata = v3_sdk_1.NonfungiblePositionManager.INTERFACE.encodeFunctionData('permit', [
|
|
26
|
+
(0, sdk_core_1.validateAndParseAddress)(permit.spender),
|
|
27
|
+
tokenId,
|
|
28
|
+
permit.deadline,
|
|
29
|
+
permit.v,
|
|
30
|
+
permit.r,
|
|
31
|
+
permit.s,
|
|
32
|
+
]);
|
|
33
|
+
planner.addCommand(routerCommands_1.CommandType.V3_POSITION_MANAGER_PERMIT, [calldata]);
|
|
34
|
+
}
|
|
35
|
+
exports.encodeV3PositionPermit = encodeV3PositionPermit;
|
|
36
|
+
// Handles the encoding of commands needed to gather input tokens for a trade
|
|
37
|
+
// Approval: The router approving another address to take tokens.
|
|
38
|
+
// note: Only seaport and sudoswap support this action. Approvals are left open.
|
|
39
|
+
// Permit: A Permit2 signature-based Permit to allow the router to access a user's tokens
|
|
40
|
+
// Transfer: A Permit2 TransferFrom of tokens from a user to either the router or another address
|
|
41
|
+
function encodeInputTokenOptions(planner, options) {
|
|
42
|
+
// first ensure that all tokens provided for encoding are the same
|
|
43
|
+
if (!!options.permit2TransferFrom && !!options.permit2Permit)
|
|
44
|
+
(0, tiny_invariant_1.default)(options.permit2TransferFrom.token === options.permit2Permit.details.token, `inconsistent token`);
|
|
45
|
+
// if this order has a options.permit2Permit, encode it
|
|
46
|
+
if (!!options.permit2Permit) {
|
|
47
|
+
encodePermit(planner, options.permit2Permit);
|
|
48
|
+
}
|
|
49
|
+
if (!!options.permit2TransferFrom) {
|
|
50
|
+
planner.addCommand(routerCommands_1.CommandType.PERMIT2_TRANSFER_FROM, [
|
|
51
|
+
options.permit2TransferFrom.token,
|
|
52
|
+
options.permit2TransferFrom.recipient ? options.permit2TransferFrom.recipient : constants_1.ROUTER_AS_RECIPIENT,
|
|
53
|
+
options.permit2TransferFrom.amount,
|
|
54
|
+
]);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.encodeInputTokenOptions = encodeInputTokenOptions;
|
|
58
|
+
//# sourceMappingURL=inputTokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputTokens.js","sourceRoot":"","sources":["../../../../src/utils/inputTokens.ts"],"names":[],"mappings":";;;;AAAA,4EAAsC;AACtC,mCAA+B;AAC/B,gDAAsE;AACtE,4CAA8E;AAE9E,qDAA4D;AAC5D,2CAAiD;AAsBjD,MAAM,gBAAgB,GAAG,EAAE,CAAA;AAC3B,MAAM,yBAAyB,GAAG,EAAE,CAAA;AAEpC,SAAgB,YAAY,CAAC,OAAqB,EAAE,OAAsB;IACxE,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAA;IAEjC,MAAM,MAAM,GAAG,eAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAA;IAC9D,sFAAsF;IACtF,IAAI,MAAM,KAAK,gBAAgB,IAAI,MAAM,KAAK,yBAAyB,EAAE;QACvE,+FAA+F;QAC/F,SAAS,GAAG,eAAM,CAAC,KAAK,CAAC,aAAa,CAAC,eAAM,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;KACvF;IAED,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;AACtE,CAAC;AAXD,oCAWC;AAED,SAAgB,sBAAsB,CAAC,OAAqB,EAAE,MAAwB,EAAE,OAAkB;IACxG,MAAM,QAAQ,GAAG,mCAA0B,CAAC,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE;QACjF,IAAA,kCAAuB,EAAC,MAAM,CAAC,OAAO,CAAC;QACvC,OAAO;QACP,MAAM,CAAC,QAAQ;QACf,MAAM,CAAC,CAAC;QACR,MAAM,CAAC,CAAC;QACR,MAAM,CAAC,CAAC;KACT,CAAC,CAAA;IAEF,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,0BAA0B,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;AACxE,CAAC;AAXD,wDAWC;AAED,6EAA6E;AAC7E,iEAAiE;AACjE,kFAAkF;AAClF,yFAAyF;AACzF,iGAAiG;AACjG,SAAgB,uBAAuB,CAAC,OAAqB,EAAE,OAA0B;IACvF,kEAAkE;IAClE,IAAI,CAAC,CAAC,OAAO,CAAC,mBAAmB,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa;QAC1D,IAAA,wBAAS,EAAC,OAAO,CAAC,mBAAmB,CAAC,KAAK,KAAK,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAA;IAE5G,uDAAuD;IACvD,IAAI,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE;QAC3B,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;KAC7C;IAED,IAAI,CAAC,CAAC,OAAO,CAAC,mBAAmB,EAAE;QACjC,OAAO,CAAC,UAAU,CAAC,4BAAW,CAAC,qBAAqB,EAAE;YACpD,OAAO,CAAC,mBAAmB,CAAC,KAAK;YACjC,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,CAAC,+BAAmB;YACnG,OAAO,CAAC,mBAAmB,CAAC,MAAM;SACnC,CAAC,CAAA;KACH;AACH,CAAC;AAjBD,0DAiBC"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { BigNumber } from 'ethers';
|
|
2
|
-
import JSBI from 'jsbi';
|
|
3
|
-
import { Percent } from '@uniswap/sdk-core';
|
|
4
|
-
export declare function expandTo18DecimalsBN(n: number): BigNumber;
|
|
5
|
-
export declare function expandTo18Decimals(n: number): JSBI;
|
|
6
|
-
export declare function encodeFeeBips(fee: Percent): string;
|
|
1
|
+
import { BigNumber } from 'ethers';
|
|
2
|
+
import JSBI from 'jsbi';
|
|
3
|
+
import { Percent } from '@uniswap/sdk-core';
|
|
4
|
+
export declare function expandTo18DecimalsBN(n: number): BigNumber;
|
|
5
|
+
export declare function expandTo18Decimals(n: number): JSBI;
|
|
6
|
+
export declare function encodeFeeBips(fee: Percent): string;
|
|
7
|
+
export declare function encodeFee1e18(fee: Percent): string;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.encodeFee1e18 = exports.encodeFeeBips = exports.expandTo18Decimals = exports.expandTo18DecimalsBN = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const ethers_1 = require("ethers");
|
|
6
|
+
const jsbi_1 = tslib_1.__importDefault(require("jsbi"));
|
|
7
|
+
const bignumber_js_1 = tslib_1.__importDefault(require("bignumber.js"));
|
|
8
|
+
const v3_sdk_1 = require("@uniswap/v3-sdk");
|
|
9
|
+
function expandTo18DecimalsBN(n) {
|
|
10
|
+
// use bn intermediately to allow decimals in intermediate calculations
|
|
11
|
+
return ethers_1.BigNumber.from(new bignumber_js_1.default(n).times(new bignumber_js_1.default(10).pow(18)).toFixed());
|
|
12
|
+
}
|
|
13
|
+
exports.expandTo18DecimalsBN = expandTo18DecimalsBN;
|
|
14
|
+
function expandTo18Decimals(n) {
|
|
15
|
+
return jsbi_1.default.BigInt(ethers_1.BigNumber.from(n).mul(ethers_1.BigNumber.from(10).pow(18)).toString());
|
|
16
|
+
}
|
|
17
|
+
exports.expandTo18Decimals = expandTo18Decimals;
|
|
18
|
+
function encodeFeeBips(fee) {
|
|
19
|
+
return (0, v3_sdk_1.toHex)(fee.multiply(10000).quotient);
|
|
20
|
+
}
|
|
21
|
+
exports.encodeFeeBips = encodeFeeBips;
|
|
22
|
+
const FULL_PORTION_PRECISION = jsbi_1.default.exponentiate(jsbi_1.default.BigInt(10), jsbi_1.default.BigInt(18));
|
|
23
|
+
function encodeFee1e18(fee) {
|
|
24
|
+
return (0, v3_sdk_1.toHex)(fee.multiply(FULL_PORTION_PRECISION).quotient);
|
|
25
|
+
}
|
|
26
|
+
exports.encodeFee1e18 = encodeFee1e18;
|
|
27
|
+
//# sourceMappingURL=numbers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numbers.js","sourceRoot":"","sources":["../../../../src/utils/numbers.ts"],"names":[],"mappings":";;;;AAAA,mCAAkC;AAClC,wDAAuB;AACvB,wEAA6B;AAE7B,4CAAuC;AAEvC,SAAgB,oBAAoB,CAAC,CAAS;IAC5C,uEAAuE;IACvE,OAAO,kBAAS,CAAC,IAAI,CAAC,IAAI,sBAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,sBAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAA;AACtE,CAAC;AAHD,oDAGC;AAED,SAAgB,kBAAkB,CAAC,CAAS;IAC1C,OAAO,cAAI,CAAC,MAAM,CAAC,kBAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,kBAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAA;AAClF,CAAC;AAFD,gDAEC;AAED,SAAgB,aAAa,CAAC,GAAY;IACxC,OAAO,IAAA,cAAK,EAAC,GAAG,CAAC,QAAQ,CAAC,KAAM,CAAC,CAAC,QAAQ,CAAC,CAAA;AAC7C,CAAC;AAFD,sCAEC;AAED,MAAM,sBAAsB,GAAG,cAAI,CAAC,YAAY,CAAC,cAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,cAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA;AAElF,SAAgB,aAAa,CAAC,GAAY;IACxC,OAAO,IAAA,cAAK,EAAC,GAAG,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC,QAAQ,CAAC,CAAA;AAC7D,CAAC;AAFD,sCAEC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { Currency } from '@uniswap/sdk-core';
|
|
2
|
-
import { TPool } from '@uniswap/router-sdk';
|
|
3
|
-
export declare function getPathCurrency(currency: Currency, pool: TPool): Currency;
|
|
1
|
+
import { Currency } from '@uniswap/sdk-core';
|
|
2
|
+
import { TPool } from '@uniswap/router-sdk';
|
|
3
|
+
export declare function getPathCurrency(currency: Currency, pool: TPool): Currency;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPathCurrency = void 0;
|
|
4
|
+
const v4_sdk_1 = require("@uniswap/v4-sdk");
|
|
5
|
+
function getPathCurrency(currency, pool) {
|
|
6
|
+
// return currency if the currency matches a currency of the pool
|
|
7
|
+
if (pool.involvesToken(currency)) {
|
|
8
|
+
return currency;
|
|
9
|
+
// return if currency.wrapped if pool involves wrapped currency
|
|
10
|
+
}
|
|
11
|
+
else if (pool.involvesToken(currency.wrapped)) {
|
|
12
|
+
return currency.wrapped;
|
|
13
|
+
// return native currency if pool involves native version of wrapped currency (only applies to V4)
|
|
14
|
+
}
|
|
15
|
+
else if (pool instanceof v4_sdk_1.Pool && pool.token0.wrapped.equals(currency)) {
|
|
16
|
+
return pool.token0;
|
|
17
|
+
}
|
|
18
|
+
else if (pool instanceof v4_sdk_1.Pool && pool.token1.wrapped.equals(currency)) {
|
|
19
|
+
return pool.token1;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
throw new Error(`Expected currency ${currency.symbol} to be either ${pool.token0.symbol} or ${pool.token1.symbol}`);
|
|
23
|
+
}
|
|
24
|
+
return currency; // this line needed for typescript to compile
|
|
25
|
+
}
|
|
26
|
+
exports.getPathCurrency = getPathCurrency;
|
|
27
|
+
//# sourceMappingURL=pathCurrency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathCurrency.js","sourceRoot":"","sources":["../../../../src/utils/pathCurrency.ts"],"names":[],"mappings":";;;AACA,4CAAgD;AAGhD,SAAgB,eAAe,CAAC,QAAkB,EAAE,IAAW;IAC7D,iEAAiE;IACjE,IAAI,IAAI,CAAC,aAAa,CAAC,QAAiB,CAAC,EAAE;QACzC,OAAO,QAAQ,CAAA;QAEf,+DAA+D;KAChE;SAAM,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAgB,CAAC,EAAE;QACxD,OAAO,QAAQ,CAAC,OAAO,CAAA;QAEvB,kGAAkG;KACnG;SAAM,IAAI,IAAI,YAAY,aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;QACzE,OAAO,IAAI,CAAC,MAAM,CAAA;KACnB;SAAM,IAAI,IAAI,YAAY,aAAM,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;QACzE,OAAO,IAAI,CAAC,MAAM,CAAA;KACnB;SAAM;QACL,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,MAAM,iBAAiB,IAAI,CAAC,MAAM,CAAC,MAAM,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAA;KACpH;IAED,OAAO,QAAQ,CAAA,CAAC,6CAA6C;AAC/D,CAAC;AAnBD,0CAmBC"}
|
|
@@ -1,72 +1,77 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*
|
|
5
|
-
* @
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
readonly
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
} | {
|
|
50
|
-
parser: Parser.
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
1
|
+
import { URVersion } from '@uniswap/v4-sdk';
|
|
2
|
+
import { AcrossV4DepositV3Params } from '../entities/actions/across';
|
|
3
|
+
/**
|
|
4
|
+
* CommandTypes
|
|
5
|
+
* @description Flags that modify a command's execution
|
|
6
|
+
* @enum {number}
|
|
7
|
+
*/
|
|
8
|
+
export declare enum CommandType {
|
|
9
|
+
V3_SWAP_EXACT_IN = 0,
|
|
10
|
+
V3_SWAP_EXACT_OUT = 1,
|
|
11
|
+
PERMIT2_TRANSFER_FROM = 2,
|
|
12
|
+
PERMIT2_PERMIT_BATCH = 3,
|
|
13
|
+
SWEEP = 4,
|
|
14
|
+
TRANSFER = 5,
|
|
15
|
+
PAY_PORTION = 6,
|
|
16
|
+
PAY_PORTION_FULL_PRECISION = 7,
|
|
17
|
+
V2_SWAP_EXACT_IN = 8,
|
|
18
|
+
V2_SWAP_EXACT_OUT = 9,
|
|
19
|
+
PERMIT2_PERMIT = 10,
|
|
20
|
+
WRAP_ETH = 11,
|
|
21
|
+
UNWRAP_WETH = 12,
|
|
22
|
+
PERMIT2_TRANSFER_FROM_BATCH = 13,
|
|
23
|
+
BALANCE_CHECK_ERC20 = 14,
|
|
24
|
+
V4_SWAP = 16,
|
|
25
|
+
V3_POSITION_MANAGER_PERMIT = 17,
|
|
26
|
+
V3_POSITION_MANAGER_CALL = 18,
|
|
27
|
+
V4_INITIALIZE_POOL = 19,
|
|
28
|
+
V4_POSITION_MANAGER_CALL = 20,
|
|
29
|
+
EXECUTE_SUB_PLAN = 33,
|
|
30
|
+
ACROSS_V4_DEPOSIT_V3 = 64
|
|
31
|
+
}
|
|
32
|
+
export declare enum Subparser {
|
|
33
|
+
V3PathExactIn = 0,
|
|
34
|
+
V3PathExactOut = 1
|
|
35
|
+
}
|
|
36
|
+
export declare enum Parser {
|
|
37
|
+
Abi = 0,
|
|
38
|
+
V4Actions = 1,
|
|
39
|
+
V3Actions = 2
|
|
40
|
+
}
|
|
41
|
+
export type ParamType = {
|
|
42
|
+
readonly name: string;
|
|
43
|
+
readonly type: string;
|
|
44
|
+
readonly subparser?: Subparser;
|
|
45
|
+
};
|
|
46
|
+
export type CommandDefinition = {
|
|
47
|
+
parser: Parser.Abi;
|
|
48
|
+
params: ParamType[];
|
|
49
|
+
} | {
|
|
50
|
+
parser: Parser.V4Actions;
|
|
51
|
+
} | {
|
|
52
|
+
parser: Parser.V3Actions;
|
|
53
|
+
};
|
|
54
|
+
export declare const COMMAND_DEFINITION: {
|
|
55
|
+
[key in CommandType]: CommandDefinition;
|
|
56
|
+
};
|
|
57
|
+
export declare const V2V3_SWAP_COMMANDS_V2_1_1: {
|
|
58
|
+
[key: number]: CommandDefinition;
|
|
59
|
+
};
|
|
60
|
+
export declare class RoutePlanner {
|
|
61
|
+
commands: string;
|
|
62
|
+
inputs: string[];
|
|
63
|
+
constructor();
|
|
64
|
+
addSubPlan(subplan: RoutePlanner): RoutePlanner;
|
|
65
|
+
addCommand(type: CommandType, parameters: any[], allowRevert?: boolean, urVersion?: URVersion): RoutePlanner;
|
|
66
|
+
/**
|
|
67
|
+
* Add Across bridge deposit command for cross-chain bridging
|
|
68
|
+
* @param params AcrossV4DepositV3Params containing bridge parameters
|
|
69
|
+
* @returns RoutePlanner instance for chaining
|
|
70
|
+
*/
|
|
71
|
+
addAcrossBridge(params: AcrossV4DepositV3Params): RoutePlanner;
|
|
72
|
+
}
|
|
73
|
+
export type RouterCommand = {
|
|
74
|
+
type: CommandType;
|
|
75
|
+
encodedInput: string;
|
|
76
|
+
};
|
|
77
|
+
export declare function createCommand(type: CommandType, parameters: any[], urVersion?: URVersion): RouterCommand;
|