@centurion_project/universal-router-sdk 5.1.2 → 5.9.2
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 +63 -64
- package/dist/cjs/src/entities/actions/uniswap.d.ts +9 -0
- package/dist/cjs/src/entities/actions/uniswap.js +45 -38
- package/dist/cjs/src/entities/actions/uniswap.js.map +1 -1
- package/dist/cjs/src/index.d.ts +3 -0
- package/dist/cjs/src/index.js +6 -1
- package/dist/cjs/src/index.js.map +1 -1
- package/dist/cjs/src/swapRouter.d.ts +17 -1
- package/dist/cjs/src/swapRouter.js +112 -12
- package/dist/cjs/src/swapRouter.js.map +1 -1
- package/dist/cjs/src/types/encodeSwaps.d.ts +157 -0
- package/dist/cjs/src/types/encodeSwaps.js +3 -0
- package/dist/cjs/src/types/encodeSwaps.js.map +1 -0
- package/dist/cjs/src/utils/commandParser.d.ts +4 -2
- package/dist/cjs/src/utils/commandParser.js +13 -5
- package/dist/cjs/src/utils/commandParser.js.map +1 -1
- package/dist/cjs/src/utils/computeEncodeSwapsAmounts.d.ts +8 -0
- package/dist/cjs/src/utils/computeEncodeSwapsAmounts.js +47 -0
- package/dist/cjs/src/utils/computeEncodeSwapsAmounts.js.map +1 -0
- package/dist/cjs/src/utils/constants.d.ts +2 -1
- package/dist/cjs/src/utils/constants.js +100 -7
- package/dist/cjs/src/utils/constants.js.map +1 -1
- package/dist/cjs/src/utils/encodeSwapStep.d.ts +4 -0
- package/dist/cjs/src/utils/encodeSwapStep.js +62 -0
- package/dist/cjs/src/utils/encodeSwapStep.js.map +1 -0
- package/dist/cjs/src/utils/encodeV4Action.d.ts +7 -0
- package/dist/cjs/src/utils/encodeV4Action.js +84 -0
- package/dist/cjs/src/utils/encodeV4Action.js.map +1 -0
- package/dist/cjs/src/utils/normalizeEncodeSwapsSpec.d.ts +2 -0
- package/dist/cjs/src/utils/normalizeEncodeSwapsSpec.js +18 -0
- package/dist/cjs/src/utils/normalizeEncodeSwapsSpec.js.map +1 -0
- package/dist/cjs/src/utils/routerCommands.js +6 -6
- package/dist/cjs/src/utils/routerCommands.js.map +1 -1
- package/dist/cjs/src/utils/toV4URVersion.d.ts +3 -0
- package/dist/cjs/src/utils/toV4URVersion.js +17 -0
- package/dist/cjs/src/utils/toV4URVersion.js.map +1 -0
- package/dist/cjs/src/utils/validateEncodeSwaps.d.ts +2 -0
- package/dist/cjs/src/utils/validateEncodeSwaps.js +142 -0
- package/dist/cjs/src/utils/validateEncodeSwaps.js.map +1 -0
- package/dist/esm/src/entities/actions/uniswap.d.ts +9 -0
- package/dist/esm/src/entities/actions/uniswap.js +47 -40
- package/dist/esm/src/entities/actions/uniswap.js.map +1 -1
- package/dist/esm/src/index.d.ts +3 -0
- package/dist/esm/src/index.js +3 -0
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/swapRouter.d.ts +17 -1
- package/dist/esm/src/swapRouter.js +114 -14
- package/dist/esm/src/swapRouter.js.map +1 -1
- package/dist/esm/src/types/encodeSwaps.d.ts +157 -0
- package/dist/esm/src/types/encodeSwaps.js +2 -0
- package/dist/esm/src/types/encodeSwaps.js.map +1 -0
- package/dist/esm/src/utils/commandParser.d.ts +4 -2
- package/dist/esm/src/utils/commandParser.js +14 -6
- package/dist/esm/src/utils/commandParser.js.map +1 -1
- package/dist/esm/src/utils/computeEncodeSwapsAmounts.d.ts +8 -0
- package/dist/esm/src/utils/computeEncodeSwapsAmounts.js +43 -0
- package/dist/esm/src/utils/computeEncodeSwapsAmounts.js.map +1 -0
- package/dist/esm/src/utils/constants.d.ts +2 -1
- package/dist/esm/src/utils/constants.js +100 -7
- package/dist/esm/src/utils/constants.js.map +1 -1
- package/dist/esm/src/utils/encodeSwapStep.d.ts +4 -0
- package/dist/esm/src/utils/encodeSwapStep.js +58 -0
- package/dist/esm/src/utils/encodeSwapStep.js.map +1 -0
- package/dist/esm/src/utils/encodeV4Action.d.ts +7 -0
- package/dist/esm/src/utils/encodeV4Action.js +80 -0
- package/dist/esm/src/utils/encodeV4Action.js.map +1 -0
- package/dist/esm/src/utils/normalizeEncodeSwapsSpec.d.ts +2 -0
- package/dist/esm/src/utils/normalizeEncodeSwapsSpec.js +14 -0
- package/dist/esm/src/utils/normalizeEncodeSwapsSpec.js.map +1 -0
- package/dist/esm/src/utils/routerCommands.js +6 -6
- package/dist/esm/src/utils/routerCommands.js.map +1 -1
- package/dist/esm/src/utils/toV4URVersion.d.ts +3 -0
- package/dist/esm/src/utils/toV4URVersion.js +13 -0
- package/dist/esm/src/utils/toV4URVersion.js.map +1 -0
- package/dist/esm/src/utils/validateEncodeSwaps.d.ts +2 -0
- package/dist/esm/src/utils/validateEncodeSwaps.js +137 -0
- package/dist/esm/src/utils/validateEncodeSwaps.js.map +1 -0
- package/dist/types/src/entities/actions/uniswap.d.ts +9 -0
- package/dist/types/src/index.d.ts +3 -0
- package/dist/types/src/swapRouter.d.ts +17 -1
- package/dist/types/src/types/encodeSwaps.d.ts +157 -0
- package/dist/types/src/utils/commandParser.d.ts +4 -2
- package/dist/types/src/utils/computeEncodeSwapsAmounts.d.ts +8 -0
- package/dist/types/src/utils/constants.d.ts +2 -1
- package/dist/types/src/utils/encodeSwapStep.d.ts +4 -0
- package/dist/types/src/utils/encodeV4Action.d.ts +7 -0
- package/dist/types/src/utils/normalizeEncodeSwapsSpec.d.ts +2 -0
- package/dist/types/src/utils/toV4URVersion.d.ts +3 -0
- package/dist/types/src/utils/validateEncodeSwaps.d.ts +2 -0
- package/package.json +12 -10
- package/dist/cjs/src/abis/UniversalRouter.json +0 -747
- package/dist/esm/src/abis/UniversalRouter.json +0 -747
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SwapRouter = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const tiny_invariant_1 = tslib_1.__importDefault(require("tiny-invariant"));
|
|
6
|
-
const UniversalRouter_json_1 = tslib_1.__importDefault(require("
|
|
6
|
+
const UniversalRouter_json_1 = tslib_1.__importDefault(require("@uniswap/universal-router/artifacts/contracts/UniversalRouter.sol/UniversalRouter.json"));
|
|
7
7
|
const abi_1 = require("@ethersproject/abi");
|
|
8
8
|
const ethers_1 = require("ethers");
|
|
9
9
|
const v3_sdk_1 = require("@centurion_project/v3-sdk");
|
|
@@ -13,7 +13,14 @@ const uniswap_1 = require("./entities/actions/uniswap");
|
|
|
13
13
|
const routerCommands_1 = require("./utils/routerCommands");
|
|
14
14
|
const inputTokens_1 = require("./utils/inputTokens");
|
|
15
15
|
const constants_1 = require("./utils/constants");
|
|
16
|
+
const getCurrencyAddress_1 = require("./utils/getCurrencyAddress");
|
|
17
|
+
const numbers_1 = require("./utils/numbers");
|
|
18
|
+
const encodeSwapStep_1 = require("./utils/encodeSwapStep");
|
|
19
|
+
const computeEncodeSwapsAmounts_1 = require("./utils/computeEncodeSwapsAmounts");
|
|
20
|
+
const normalizeEncodeSwapsSpec_1 = require("./utils/normalizeEncodeSwapsSpec");
|
|
21
|
+
const validateEncodeSwaps_1 = require("./utils/validateEncodeSwaps");
|
|
16
22
|
const eip712_1 = require("./utils/eip712");
|
|
23
|
+
const DEFAULT_PROXY_DEADLINE_BUFFER_SECONDS = 30 * 60;
|
|
17
24
|
function isMint(options) {
|
|
18
25
|
return Object.keys(options).some((k) => k === 'recipient');
|
|
19
26
|
}
|
|
@@ -35,9 +42,19 @@ class SwapRouter {
|
|
|
35
42
|
(0, inputTokens_1.encodePermit)(planner, options.inputTokenPermit);
|
|
36
43
|
}
|
|
37
44
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
45
|
+
let nativeCurrencyValue;
|
|
46
|
+
if (inputCurrency.isNative) {
|
|
47
|
+
nativeCurrencyValue = ethers_1.BigNumber.from(trade.trade.maximumAmountIn(options.slippageTolerance).quotient.toString());
|
|
48
|
+
}
|
|
49
|
+
else if (options.nativeErc20Input) {
|
|
50
|
+
// input token is the chain's native-ERC20 gas token (e.g. Arc USDC predeploy):
|
|
51
|
+
// fund the router via msg.value, scaled from token decimals to 18-decimal native units
|
|
52
|
+
(0, tiny_invariant_1.default)(inputCurrency.decimals <= 18, 'NATIVE_ERC20_INPUT_DECIMALS');
|
|
53
|
+
nativeCurrencyValue = ethers_1.BigNumber.from(trade.trade.maximumAmountIn(options.slippageTolerance).quotient.toString()).mul(ethers_1.BigNumber.from(10).pow(18 - inputCurrency.decimals));
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
nativeCurrencyValue = ethers_1.BigNumber.from(0);
|
|
57
|
+
}
|
|
41
58
|
trade.encode(planner, { allowRevert: false });
|
|
42
59
|
// Add bridge commands if provided
|
|
43
60
|
if (bridgeOptions) {
|
|
@@ -52,6 +69,88 @@ class SwapRouter {
|
|
|
52
69
|
deadline: options.deadlineOrPreviousBlockhash ? ethers_1.BigNumber.from(options.deadlineOrPreviousBlockhash) : undefined,
|
|
53
70
|
});
|
|
54
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Encodes router-provided swap steps inside the SDK safety envelope.
|
|
74
|
+
*
|
|
75
|
+
* Routers own `swapSteps` (V2/V3/V4 swaps, plus any `WRAP_ETH` / `UNWRAP_WETH` required by the route).
|
|
76
|
+
* The SDK owns ingress, fees, final settlement, exact-output refund, and optional `safeMode`.
|
|
77
|
+
*
|
|
78
|
+
* Router contract: end with final output in `spec.routing.outputToken`; for `EXACT_OUTPUT`, unused input
|
|
79
|
+
* must end in `spec.routing.inputToken`. Don't include a top-level `SWEEP` — the SDK appends settlement,
|
|
80
|
+
* refund, and safeMode sweeps itself.
|
|
81
|
+
*
|
|
82
|
+
* Router custody with `payerIsUser = false` is deliberate for safety, even if it costs an extra command
|
|
83
|
+
* or transfer; the SDK does not infer route topology on behalf of routers.
|
|
84
|
+
*/
|
|
85
|
+
static encodeSwaps(spec, swapSteps) {
|
|
86
|
+
var _a, _b;
|
|
87
|
+
const normalizedSpec = (0, normalizeEncodeSwapsSpec_1.normalizeEncodeSwapsSpec)(spec);
|
|
88
|
+
const planner = new routerCommands_1.RoutePlanner();
|
|
89
|
+
(0, validateEncodeSwaps_1.validateEncodeSwaps)(normalizedSpec, swapSteps);
|
|
90
|
+
const { exactOrMaxAmountIn, netMinOrExactAmountOut } = (0, computeEncodeSwapsAmounts_1.computeEncodeSwapsAmounts)(normalizedSpec);
|
|
91
|
+
const { routing: { inputToken, outputToken }, } = normalizedSpec;
|
|
92
|
+
// Ingress: pull funds into the router. Native input is paid as msg.value at the bottom
|
|
93
|
+
// instead of via Permit2 — as is a native-ERC20 gas-token input (nativeErc20Input);
|
|
94
|
+
// ApproveProxy ingress is handled by the outer wrapper at the end.
|
|
95
|
+
if (normalizedSpec.tokenTransferMode === uniswap_1.TokenTransferMode.Permit2) {
|
|
96
|
+
if (normalizedSpec.permit) {
|
|
97
|
+
(0, inputTokens_1.encodePermit)(planner, normalizedSpec.permit);
|
|
98
|
+
}
|
|
99
|
+
if (!inputToken.isNative && !normalizedSpec.nativeErc20Input) {
|
|
100
|
+
planner.addCommand(routerCommands_1.CommandType.PERMIT2_TRANSFER_FROM, [(0, getCurrencyAddress_1.getCurrencyAddress)(inputToken), constants_1.ROUTER_AS_RECIPIENT, exactOrMaxAmountIn], false, normalizedSpec.urVersion);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
for (const step of swapSteps) {
|
|
104
|
+
(0, encodeSwapStep_1.encodeSwapStep)(planner, step, normalizedSpec.urVersion);
|
|
105
|
+
}
|
|
106
|
+
// Fee deducted from gross output before final settlement.
|
|
107
|
+
// Portion uses 1e18 precision on >=v2.1.1 and bps on v2.0; flat is a plain TRANSFER.
|
|
108
|
+
if (((_a = normalizedSpec.fee) === null || _a === void 0 ? void 0 : _a.kind) === 'portion') {
|
|
109
|
+
const feeCommandType = (0, constants_1.isAtLeastV2_1_1)(normalizedSpec.urVersion)
|
|
110
|
+
? routerCommands_1.CommandType.PAY_PORTION_FULL_PRECISION
|
|
111
|
+
: routerCommands_1.CommandType.PAY_PORTION;
|
|
112
|
+
const encodedFee = (0, constants_1.isAtLeastV2_1_1)(normalizedSpec.urVersion)
|
|
113
|
+
? (0, numbers_1.encodeFee1e18)(normalizedSpec.fee.fee)
|
|
114
|
+
: (0, numbers_1.encodeFeeBips)(normalizedSpec.fee.fee);
|
|
115
|
+
planner.addCommand(feeCommandType, [(0, getCurrencyAddress_1.getCurrencyAddress)(outputToken), normalizedSpec.fee.recipient, encodedFee], false, normalizedSpec.urVersion);
|
|
116
|
+
}
|
|
117
|
+
else if (((_b = normalizedSpec.fee) === null || _b === void 0 ? void 0 : _b.kind) === 'flat') {
|
|
118
|
+
planner.addCommand(routerCommands_1.CommandType.TRANSFER, [(0, getCurrencyAddress_1.getCurrencyAddress)(outputToken), normalizedSpec.fee.recipient, normalizedSpec.fee.amount], false, normalizedSpec.urVersion);
|
|
119
|
+
}
|
|
120
|
+
// Assumes routers already normalized final gross output into `routing.outputToken`.
|
|
121
|
+
planner.addCommand(routerCommands_1.CommandType.SWEEP, [(0, getCurrencyAddress_1.getCurrencyAddress)(outputToken), normalizedSpec.recipient, netMinOrExactAmountOut], false, normalizedSpec.urVersion);
|
|
122
|
+
// Assumes routers already normalized unused input into `routing.inputToken`.
|
|
123
|
+
// Exact-output uses max input, so any unused slippage padding is refunded to the recipient.
|
|
124
|
+
// For nativeErc20Input the leftover lives in the router's native balance (18 decimals), so
|
|
125
|
+
// sweep it as native: an ERC20 sweep would floor to the token's decimals and strand dust.
|
|
126
|
+
if (normalizedSpec.tradeType === sdk_core_1.TradeType.EXACT_OUTPUT) {
|
|
127
|
+
planner.addCommand(routerCommands_1.CommandType.SWEEP, [normalizedSpec.nativeErc20Input ? constants_1.ETH_ADDRESS : (0, getCurrencyAddress_1.getCurrencyAddress)(inputToken), normalizedSpec.recipient, 0], false, normalizedSpec.urVersion);
|
|
128
|
+
}
|
|
129
|
+
// safeMode: zero-min ETH sweep recovers any native funds left on the router (dust or unintended msg.value)
|
|
130
|
+
if (normalizedSpec.safeMode) {
|
|
131
|
+
planner.addCommand(routerCommands_1.CommandType.SWEEP, [constants_1.ETH_ADDRESS, normalizedSpec.recipient, 0], false, normalizedSpec.urVersion);
|
|
132
|
+
}
|
|
133
|
+
// ApproveProxy wraps the inner UR plan in an outer proxy.execute() that handles ingress upstream.
|
|
134
|
+
if (normalizedSpec.tokenTransferMode === uniswap_1.TokenTransferMode.ApproveProxy) {
|
|
135
|
+
return SwapRouter.encodeProxyCall(planner, (0, getCurrencyAddress_1.getCurrencyAddress)(inputToken), exactOrMaxAmountIn, normalizedSpec.chainId, normalizedSpec.urVersion, normalizedSpec.deadline);
|
|
136
|
+
}
|
|
137
|
+
// Native input pays via msg.value; ERC20 input is already in the router via Permit2.
|
|
138
|
+
// A native-ERC20 gas-token input (e.g. Arc USDC predeploy) also pays via msg.value,
|
|
139
|
+
// scaled from token decimals to 18-decimal native units.
|
|
140
|
+
let nativeCurrencyValue;
|
|
141
|
+
if (inputToken.isNative) {
|
|
142
|
+
nativeCurrencyValue = exactOrMaxAmountIn;
|
|
143
|
+
}
|
|
144
|
+
else if (normalizedSpec.nativeErc20Input) {
|
|
145
|
+
nativeCurrencyValue = exactOrMaxAmountIn.mul(ethers_1.BigNumber.from(10).pow(18 - inputToken.decimals));
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
nativeCurrencyValue = ethers_1.BigNumber.from(0);
|
|
149
|
+
}
|
|
150
|
+
return SwapRouter.encodePlan(planner, nativeCurrencyValue, {
|
|
151
|
+
deadline: normalizedSpec.deadline ? ethers_1.BigNumber.from(normalizedSpec.deadline) : undefined,
|
|
152
|
+
});
|
|
153
|
+
}
|
|
55
154
|
/**
|
|
56
155
|
* Generate EIP712 payload for signed execution (no signing performed)
|
|
57
156
|
* Decodes existing execute() calldata and prepares it for signing
|
|
@@ -232,25 +331,26 @@ class SwapRouter {
|
|
|
232
331
|
return { calldata, value: nativeCurrencyValue.toHexString() };
|
|
233
332
|
}
|
|
234
333
|
/**
|
|
235
|
-
*
|
|
334
|
+
* Wraps an inner UR plan in calldata targeting the SwapProxy contract.
|
|
236
335
|
* The proxy pulls ERC20 tokens from the user into the UR, then executes commands.
|
|
237
336
|
*/
|
|
238
337
|
static encodeProxyPlan(planner, trade, options) {
|
|
239
338
|
var _a;
|
|
339
|
+
return SwapRouter.encodeProxyCall(planner, trade.trade.inputAmount.currency.address, ethers_1.BigNumber.from(trade.trade.maximumAmountIn(options.slippageTolerance).quotient.toString()), options.chainId, (_a = options.urVersion) !== null && _a !== void 0 ? _a : constants_1.UniversalRouterVersion.V2_0, options.deadlineOrPreviousBlockhash ? ethers_1.BigNumber.from(options.deadlineOrPreviousBlockhash) : undefined);
|
|
340
|
+
}
|
|
341
|
+
static encodeProxyCall(planner, inputToken, inputAmount, chainId, urVersion, deadline) {
|
|
240
342
|
const { commands, inputs } = planner;
|
|
241
|
-
const routerAddress = (0, constants_1.UNIVERSAL_ROUTER_ADDRESS)(
|
|
242
|
-
const
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
? ethers_1.BigNumber.from(options.deadlineOrPreviousBlockhash)
|
|
246
|
-
: ethers_1.BigNumber.from(Math.floor(Date.now() / 1000) + 1800); // 30 min default
|
|
343
|
+
const routerAddress = (0, constants_1.UNIVERSAL_ROUTER_ADDRESS)(urVersion, chainId);
|
|
344
|
+
const resolvedDeadline = deadline
|
|
345
|
+
? ethers_1.BigNumber.from(deadline)
|
|
346
|
+
: ethers_1.BigNumber.from(Math.floor(Date.now() / 1000) + DEFAULT_PROXY_DEADLINE_BUFFER_SECONDS); // 30 min default
|
|
247
347
|
const calldata = SwapRouter.PROXY_INTERFACE.encodeFunctionData('execute', [
|
|
248
348
|
routerAddress,
|
|
249
349
|
inputToken,
|
|
250
350
|
inputAmount,
|
|
251
351
|
commands,
|
|
252
352
|
inputs,
|
|
253
|
-
|
|
353
|
+
resolvedDeadline,
|
|
254
354
|
]);
|
|
255
355
|
return { calldata, value: ethers_1.BigNumber.from(0).toHexString() };
|
|
256
356
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"swapRouter.js","sourceRoot":"","sources":["../../../src/swapRouter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"swapRouter.js","sourceRoot":"","sources":["../../../src/swapRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { BigNumberish } from 'ethers';
|
|
2
|
+
import { Currency, CurrencyAmount, Percent, TradeType } from '@centurion_project/sdk-core';
|
|
3
|
+
import { type PathKey, type PoolKey } from '@centurion_project/v4-sdk';
|
|
4
|
+
import { TokenTransferMode } from '../entities/actions/uniswap';
|
|
5
|
+
import { Permit2Permit } from '../utils/inputTokens';
|
|
6
|
+
import { UniversalRouterVersion } from '../utils/constants';
|
|
7
|
+
export type { PathKey, PoolKey };
|
|
8
|
+
export type Fee = {
|
|
9
|
+
kind: 'portion';
|
|
10
|
+
recipient: string;
|
|
11
|
+
fee: Percent;
|
|
12
|
+
} | {
|
|
13
|
+
kind: 'flat';
|
|
14
|
+
recipient: string;
|
|
15
|
+
amount: BigNumberish;
|
|
16
|
+
};
|
|
17
|
+
export type SwapSpecification = {
|
|
18
|
+
tradeType: TradeType;
|
|
19
|
+
routing: {
|
|
20
|
+
inputToken: Currency;
|
|
21
|
+
outputToken: Currency;
|
|
22
|
+
amount: CurrencyAmount<Currency>;
|
|
23
|
+
quote: CurrencyAmount<Currency>;
|
|
24
|
+
};
|
|
25
|
+
slippageTolerance: Percent;
|
|
26
|
+
recipient?: string;
|
|
27
|
+
fee?: Fee;
|
|
28
|
+
tokenTransferMode?: TokenTransferMode;
|
|
29
|
+
permit?: Permit2Permit;
|
|
30
|
+
chainId?: number;
|
|
31
|
+
deadline?: BigNumberish;
|
|
32
|
+
urVersion?: UniversalRouterVersion;
|
|
33
|
+
safeMode?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* The input Token is the chain's native gas token exposed via an ERC20 predeploy whose balance
|
|
36
|
+
* mirrors the native balance (e.g. USDC on Arc). The swap is funded by attaching
|
|
37
|
+
* msg.value = exactOrMaxAmountIn * 10^(18 - token.decimals) instead of pulling via Permit2:
|
|
38
|
+
* the PERMIT2_TRANSFER_FROM ingress is skipped and no ERC20 approval or permit is ever needed.
|
|
39
|
+
* Incompatible with native input, permit, and TokenTransferMode.ApproveProxy.
|
|
40
|
+
*/
|
|
41
|
+
nativeErc20Input?: boolean;
|
|
42
|
+
};
|
|
43
|
+
export type NormalizedSwapSpecification = Omit<SwapSpecification, 'recipient' | 'tokenTransferMode' | 'urVersion' | 'safeMode'> & {
|
|
44
|
+
recipient: string;
|
|
45
|
+
tokenTransferMode: TokenTransferMode;
|
|
46
|
+
urVersion: UniversalRouterVersion;
|
|
47
|
+
safeMode: boolean;
|
|
48
|
+
};
|
|
49
|
+
export type V2SwapExactIn = {
|
|
50
|
+
type: 'V2_SWAP_EXACT_IN';
|
|
51
|
+
recipient: string;
|
|
52
|
+
amountIn: BigNumberish;
|
|
53
|
+
amountOutMin: BigNumberish;
|
|
54
|
+
path: string[];
|
|
55
|
+
minHopPriceX36?: BigNumberish[];
|
|
56
|
+
};
|
|
57
|
+
export type V2SwapExactOut = {
|
|
58
|
+
type: 'V2_SWAP_EXACT_OUT';
|
|
59
|
+
recipient: string;
|
|
60
|
+
amountOut: BigNumberish;
|
|
61
|
+
amountInMax: BigNumberish;
|
|
62
|
+
path: string[];
|
|
63
|
+
minHopPriceX36?: BigNumberish[];
|
|
64
|
+
};
|
|
65
|
+
export type V3SwapExactIn = {
|
|
66
|
+
type: 'V3_SWAP_EXACT_IN';
|
|
67
|
+
recipient: string;
|
|
68
|
+
amountIn: BigNumberish;
|
|
69
|
+
amountOutMin: BigNumberish;
|
|
70
|
+
path: string;
|
|
71
|
+
minHopPriceX36?: BigNumberish[];
|
|
72
|
+
};
|
|
73
|
+
export type V3SwapExactOut = {
|
|
74
|
+
type: 'V3_SWAP_EXACT_OUT';
|
|
75
|
+
recipient: string;
|
|
76
|
+
amountOut: BigNumberish;
|
|
77
|
+
amountInMax: BigNumberish;
|
|
78
|
+
path: string;
|
|
79
|
+
minHopPriceX36?: BigNumberish[];
|
|
80
|
+
};
|
|
81
|
+
export type V4Swap = {
|
|
82
|
+
type: 'V4_SWAP';
|
|
83
|
+
v4Actions: V4Action[];
|
|
84
|
+
};
|
|
85
|
+
export type WrapEth = {
|
|
86
|
+
type: 'WRAP_ETH';
|
|
87
|
+
recipient: string;
|
|
88
|
+
amount: BigNumberish;
|
|
89
|
+
};
|
|
90
|
+
export type UnwrapWeth = {
|
|
91
|
+
type: 'UNWRAP_WETH';
|
|
92
|
+
recipient: string;
|
|
93
|
+
amountMin: BigNumberish;
|
|
94
|
+
};
|
|
95
|
+
export type SwapStep = V2SwapExactIn | V2SwapExactOut | V3SwapExactIn | V3SwapExactOut | V4Swap | WrapEth | UnwrapWeth;
|
|
96
|
+
export type V4SwapExactIn = {
|
|
97
|
+
action: 'SWAP_EXACT_IN';
|
|
98
|
+
currencyIn: string;
|
|
99
|
+
path: PathKey[];
|
|
100
|
+
amountIn: BigNumberish;
|
|
101
|
+
amountOutMinimum: BigNumberish;
|
|
102
|
+
minHopPriceX36?: BigNumberish[];
|
|
103
|
+
};
|
|
104
|
+
export type V4SwapExactInSingle = {
|
|
105
|
+
action: 'SWAP_EXACT_IN_SINGLE';
|
|
106
|
+
poolKey: PoolKey;
|
|
107
|
+
zeroForOne: boolean;
|
|
108
|
+
amountIn: BigNumberish;
|
|
109
|
+
amountOutMinimum: BigNumberish;
|
|
110
|
+
minHopPriceX36?: BigNumberish;
|
|
111
|
+
hookData: string;
|
|
112
|
+
};
|
|
113
|
+
export type V4SwapExactOut = {
|
|
114
|
+
action: 'SWAP_EXACT_OUT';
|
|
115
|
+
currencyOut: string;
|
|
116
|
+
path: PathKey[];
|
|
117
|
+
amountOut: BigNumberish;
|
|
118
|
+
amountInMaximum: BigNumberish;
|
|
119
|
+
minHopPriceX36?: BigNumberish[];
|
|
120
|
+
};
|
|
121
|
+
export type V4SwapExactOutSingle = {
|
|
122
|
+
action: 'SWAP_EXACT_OUT_SINGLE';
|
|
123
|
+
poolKey: PoolKey;
|
|
124
|
+
zeroForOne: boolean;
|
|
125
|
+
amountOut: BigNumberish;
|
|
126
|
+
amountInMaximum: BigNumberish;
|
|
127
|
+
minHopPriceX36?: BigNumberish;
|
|
128
|
+
hookData: string;
|
|
129
|
+
};
|
|
130
|
+
export type V4Settle = {
|
|
131
|
+
action: 'SETTLE';
|
|
132
|
+
currency: string;
|
|
133
|
+
amount: BigNumberish;
|
|
134
|
+
};
|
|
135
|
+
export type V4SettleAll = {
|
|
136
|
+
action: 'SETTLE_ALL';
|
|
137
|
+
currency: string;
|
|
138
|
+
maxAmount: BigNumberish;
|
|
139
|
+
};
|
|
140
|
+
export type V4Take = {
|
|
141
|
+
action: 'TAKE';
|
|
142
|
+
currency: string;
|
|
143
|
+
recipient: string;
|
|
144
|
+
amount: BigNumberish;
|
|
145
|
+
};
|
|
146
|
+
export type V4TakeAll = {
|
|
147
|
+
action: 'TAKE_ALL';
|
|
148
|
+
currency: string;
|
|
149
|
+
minAmount: BigNumberish;
|
|
150
|
+
};
|
|
151
|
+
export type V4TakePortion = {
|
|
152
|
+
action: 'TAKE_PORTION';
|
|
153
|
+
currency: string;
|
|
154
|
+
recipient: string;
|
|
155
|
+
bips: BigNumberish;
|
|
156
|
+
};
|
|
157
|
+
export type V4Action = V4SwapExactIn | V4SwapExactInSingle | V4SwapExactOut | V4SwapExactOutSingle | V4Settle | V4SettleAll | V4Take | V4TakeAll | V4TakePortion;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encodeSwaps.js","sourceRoot":"","sources":["../../../../src/types/encodeSwaps.ts"],"names":[],"mappings":""}
|
|
@@ -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
|
}
|
|
@@ -3,14 +3,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.parseV3PathExactOut = exports.parseV3PathExactIn = exports.GenericCommandParser = exports.CommandParser = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const ethers_1 = require("ethers");
|
|
6
|
-
const UniversalRouter_json_1 = tslib_1.__importDefault(require("
|
|
6
|
+
const UniversalRouter_json_1 = tslib_1.__importDefault(require("@uniswap/universal-router/artifacts/contracts/UniversalRouter.sol/UniversalRouter.json"));
|
|
7
7
|
const abi_1 = require("@ethersproject/abi");
|
|
8
8
|
const v4_sdk_1 = require("@centurion_project/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,
|
|
1
|
+
{"version":3,"file":"commandParser.js","sourceRoot":"","sources":["../../../../src/utils/commandParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BigNumber } from 'ethers';
|
|
2
|
+
import { NormalizedSwapSpecification } from '../types/encodeSwaps';
|
|
3
|
+
export type EncodeSwapsAmounts = {
|
|
4
|
+
exactOrMaxAmountIn: BigNumber;
|
|
5
|
+
grossMinOrExactAmountOut: BigNumber;
|
|
6
|
+
netMinOrExactAmountOut: BigNumber;
|
|
7
|
+
};
|
|
8
|
+
export declare function computeEncodeSwapsAmounts(spec: NormalizedSwapSpecification): EncodeSwapsAmounts;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.computeEncodeSwapsAmounts = void 0;
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
5
|
+
const sdk_core_1 = require("@centurion_project/sdk-core");
|
|
6
|
+
const constants_1 = require("./constants");
|
|
7
|
+
const numbers_1 = require("./numbers");
|
|
8
|
+
// Slippage is applied to the quote: scaled down to a floor for exact-input output,
|
|
9
|
+
// scaled up to a ceiling for exact-output input. The unscaled side is the user's exact value.
|
|
10
|
+
// Portion fees pair with exact-input (1e18 precision on >=v2.1.1, bps on v2.0); flat fees pair with exact-output.
|
|
11
|
+
function computeEncodeSwapsAmounts(spec) {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
const routingAmount = ethers_1.BigNumber.from(spec.routing.amount.quotient.toString());
|
|
14
|
+
const routingQuote = ethers_1.BigNumber.from(spec.routing.quote.quotient.toString());
|
|
15
|
+
const slippageNumerator = ethers_1.BigNumber.from(spec.slippageTolerance.numerator.toString());
|
|
16
|
+
const slippageDenominator = ethers_1.BigNumber.from(spec.slippageTolerance.denominator.toString());
|
|
17
|
+
if (spec.tradeType === sdk_core_1.TradeType.EXACT_INPUT) {
|
|
18
|
+
const grossMinOrExactAmountOut = routingQuote
|
|
19
|
+
.mul(slippageDenominator.sub(slippageNumerator))
|
|
20
|
+
.div(slippageDenominator);
|
|
21
|
+
if (((_a = spec.fee) === null || _a === void 0 ? void 0 : _a.kind) === 'portion') {
|
|
22
|
+
const feeAmount = (0, constants_1.isAtLeastV2_1_1)(spec.urVersion)
|
|
23
|
+
? grossMinOrExactAmountOut.mul(ethers_1.BigNumber.from((0, numbers_1.encodeFee1e18)(spec.fee.fee))).div(ethers_1.BigNumber.from(10).pow(18))
|
|
24
|
+
: grossMinOrExactAmountOut.mul(ethers_1.BigNumber.from((0, numbers_1.encodeFeeBips)(spec.fee.fee))).div(10000);
|
|
25
|
+
return {
|
|
26
|
+
exactOrMaxAmountIn: routingAmount,
|
|
27
|
+
grossMinOrExactAmountOut,
|
|
28
|
+
netMinOrExactAmountOut: grossMinOrExactAmountOut.sub(feeAmount),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
exactOrMaxAmountIn: routingAmount,
|
|
33
|
+
grossMinOrExactAmountOut,
|
|
34
|
+
netMinOrExactAmountOut: grossMinOrExactAmountOut,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
const exactOrMaxAmountIn = routingQuote.mul(slippageDenominator.add(slippageNumerator)).div(slippageDenominator);
|
|
38
|
+
const grossMinOrExactAmountOut = routingAmount;
|
|
39
|
+
const netMinOrExactAmountOut = ((_b = spec.fee) === null || _b === void 0 ? void 0 : _b.kind) === 'flat' ? grossMinOrExactAmountOut.sub(ethers_1.BigNumber.from(spec.fee.amount)) : grossMinOrExactAmountOut;
|
|
40
|
+
return {
|
|
41
|
+
exactOrMaxAmountIn,
|
|
42
|
+
grossMinOrExactAmountOut,
|
|
43
|
+
netMinOrExactAmountOut,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
exports.computeEncodeSwapsAmounts = computeEncodeSwapsAmounts;
|
|
47
|
+
//# sourceMappingURL=computeEncodeSwapsAmounts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeEncodeSwapsAmounts.js","sourceRoot":"","sources":["../../../../src/utils/computeEncodeSwapsAmounts.ts"],"names":[],"mappings":";;;AAAA,mCAAkC;AAClC,0DAAuD;AACvD,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"}
|