@kittycorn-labs/universal-router-sdk 1.4.43 → 2.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 +312 -0
- package/dist/cjs/src/abis/UniversalRouter.json +740 -0
- 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/cjs/src/entities/actions/across.d.ts +21 -0
- 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 -2
- package/dist/cjs/src/entities/actions/index.js +7 -0
- package/dist/cjs/src/entities/actions/index.js.map +1 -0
- package/dist/cjs/src/entities/actions/uniswap.d.ts +94 -0
- package/dist/cjs/src/entities/actions/uniswap.js +740 -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/cjs/src/index.d.ts +19 -0
- package/dist/cjs/src/index.js +43 -0
- package/dist/cjs/src/index.js.map +1 -0
- package/dist/cjs/src/kittycorn.d.ts +9 -0
- package/dist/cjs/src/kittycorn.js +26 -0
- package/dist/cjs/src/kittycorn.js.map +1 -0
- package/dist/cjs/src/swapRouter.d.ts +123 -0
- package/dist/cjs/src/swapRouter.js +445 -0
- package/dist/cjs/src/swapRouter.js.map +1 -0
- package/dist/cjs/src/types/encodeSwaps.d.ts +197 -0
- package/dist/cjs/src/types/encodeSwaps.js +3 -0
- package/dist/cjs/src/types/encodeSwaps.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/commandParser.d.ts +36 -34
- package/dist/cjs/src/utils/commandParser.js +154 -0
- package/dist/cjs/src/utils/commandParser.js.map +1 -0
- package/dist/cjs/src/utils/computeEncodeSwapsAmounts.d.ts +8 -0
- package/dist/cjs/src/utils/computeEncodeSwapsAmounts.js +46 -0
- package/dist/cjs/src/utils/computeEncodeSwapsAmounts.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/constants.d.ts +46 -30
- package/dist/cjs/src/utils/constants.js +777 -0
- package/dist/cjs/src/utils/constants.js.map +1 -0
- package/dist/cjs/src/utils/directTransfers.d.ts +15 -0
- package/dist/cjs/src/utils/directTransfers.js +381 -0
- package/dist/cjs/src/utils/directTransfers.js.map +1 -0
- package/dist/cjs/src/utils/eip712.d.ts +17 -0
- package/dist/cjs/src/utils/eip712.js +44 -0
- package/dist/cjs/src/utils/eip712.js.map +1 -0
- 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/{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/cjs/src/utils/normalizeEncodeSwapsSpec.d.ts +6 -0
- package/dist/cjs/src/utils/normalizeEncodeSwapsSpec.js +34 -0
- package/dist/cjs/src/utils/normalizeEncodeSwapsSpec.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/cjs/src/utils/portionFees.d.ts +14 -0
- package/dist/cjs/src/utils/portionFees.js +40 -0
- package/dist/cjs/src/utils/portionFees.js.map +1 -0
- package/dist/cjs/src/utils/routerBalanceSteps.d.ts +31 -0
- package/dist/cjs/src/utils/routerBalanceSteps.js +293 -0
- package/dist/cjs/src/utils/routerBalanceSteps.js.map +1 -0
- package/dist/{utils → cjs/src/utils}/routerCommands.d.ts +77 -64
- package/dist/cjs/src/utils/routerCommands.js +331 -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/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 +344 -0
- package/dist/cjs/src/utils/validateEncodeSwaps.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/src/abis/UniversalRouter.json +740 -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 +94 -0
- package/dist/esm/src/entities/actions/uniswap.js +735 -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 +19 -0
- package/dist/esm/src/index.js +15 -0
- package/dist/esm/src/index.js.map +1 -0
- package/dist/esm/src/kittycorn.d.ts +9 -0
- package/dist/esm/src/kittycorn.js +22 -0
- package/dist/esm/src/kittycorn.js.map +1 -0
- package/dist/esm/src/swapRouter.d.ts +123 -0
- package/dist/esm/src/swapRouter.js +440 -0
- package/dist/esm/src/swapRouter.js.map +1 -0
- package/dist/esm/src/types/encodeSwaps.d.ts +197 -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 +36 -0
- package/dist/esm/src/utils/commandParser.js +146 -0
- package/dist/esm/src/utils/commandParser.js.map +1 -0
- package/dist/esm/src/utils/computeEncodeSwapsAmounts.d.ts +8 -0
- package/dist/esm/src/utils/computeEncodeSwapsAmounts.js +41 -0
- package/dist/esm/src/utils/computeEncodeSwapsAmounts.js.map +1 -0
- package/dist/esm/src/utils/constants.d.ts +46 -0
- package/dist/esm/src/utils/constants.js +768 -0
- package/dist/esm/src/utils/constants.js.map +1 -0
- package/dist/esm/src/utils/directTransfers.d.ts +15 -0
- package/dist/esm/src/utils/directTransfers.js +369 -0
- package/dist/esm/src/utils/directTransfers.js.map +1 -0
- package/dist/esm/src/utils/eip712.d.ts +17 -0
- package/dist/esm/src/utils/eip712.js +39 -0
- package/dist/esm/src/utils/eip712.js.map +1 -0
- 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/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/normalizeEncodeSwapsSpec.d.ts +6 -0
- package/dist/esm/src/utils/normalizeEncodeSwapsSpec.js +27 -0
- package/dist/esm/src/utils/normalizeEncodeSwapsSpec.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/portionFees.d.ts +14 -0
- package/dist/esm/src/utils/portionFees.js +35 -0
- package/dist/esm/src/utils/portionFees.js.map +1 -0
- package/dist/esm/src/utils/routerBalanceSteps.d.ts +31 -0
- package/dist/esm/src/utils/routerBalanceSteps.js +282 -0
- package/dist/esm/src/utils/routerBalanceSteps.js.map +1 -0
- package/dist/esm/src/utils/routerCommands.d.ts +77 -0
- package/dist/esm/src/utils/routerCommands.js +326 -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/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 +339 -0
- package/dist/esm/src/utils/validateEncodeSwaps.js.map +1 -0
- package/dist/types/src/entities/Command.d.ts +13 -0
- package/dist/types/src/entities/Command.d.ts.map +1 -0
- package/dist/types/src/entities/actions/across.d.ts +22 -0
- package/dist/types/src/entities/actions/across.d.ts.map +1 -0
- package/dist/types/src/entities/actions/index.d.ts +4 -0
- package/dist/types/src/entities/actions/index.d.ts.map +1 -0
- package/dist/types/src/entities/actions/uniswap.d.ts +95 -0
- package/dist/types/src/entities/actions/uniswap.d.ts.map +1 -0
- package/dist/types/src/entities/actions/unwrapWETH.d.ts +13 -0
- package/dist/types/src/entities/actions/unwrapWETH.d.ts.map +1 -0
- package/dist/types/src/entities/index.d.ts +3 -0
- package/dist/types/src/entities/index.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +20 -0
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/types/src/kittycorn.d.ts +10 -0
- package/dist/types/src/kittycorn.d.ts.map +1 -0
- package/dist/types/src/swapRouter.d.ts +124 -0
- package/dist/types/src/swapRouter.d.ts.map +1 -0
- package/dist/types/src/types/encodeSwaps.d.ts +198 -0
- package/dist/types/src/types/encodeSwaps.d.ts.map +1 -0
- package/dist/types/src/utils/commandParser.d.ts +37 -0
- package/dist/types/src/utils/commandParser.d.ts.map +1 -0
- package/dist/types/src/utils/computeEncodeSwapsAmounts.d.ts +9 -0
- package/dist/types/src/utils/computeEncodeSwapsAmounts.d.ts.map +1 -0
- package/dist/types/src/utils/constants.d.ts +47 -0
- package/dist/types/src/utils/constants.d.ts.map +1 -0
- package/dist/types/src/utils/directTransfers.d.ts +16 -0
- package/dist/types/src/utils/directTransfers.d.ts.map +1 -0
- package/dist/types/src/utils/eip712.d.ts +18 -0
- package/dist/types/src/utils/eip712.d.ts.map +1 -0
- package/dist/types/src/utils/encodeSwapStep.d.ts +5 -0
- package/dist/types/src/utils/encodeSwapStep.d.ts.map +1 -0
- package/dist/types/src/utils/encodeV4Action.d.ts +8 -0
- package/dist/types/src/utils/encodeV4Action.d.ts.map +1 -0
- package/dist/types/src/utils/getCurrencyAddress.d.ts +3 -0
- package/dist/types/src/utils/getCurrencyAddress.d.ts.map +1 -0
- package/dist/types/src/utils/inputTokens.d.ts +24 -0
- package/dist/types/src/utils/inputTokens.d.ts.map +1 -0
- package/dist/types/src/utils/normalizeEncodeSwapsSpec.d.ts +7 -0
- package/dist/types/src/utils/normalizeEncodeSwapsSpec.d.ts.map +1 -0
- package/dist/types/src/utils/numbers.d.ts +8 -0
- package/dist/types/src/utils/numbers.d.ts.map +1 -0
- package/dist/types/src/utils/pathCurrency.d.ts +4 -0
- package/dist/types/src/utils/pathCurrency.d.ts.map +1 -0
- package/dist/types/src/utils/portionFees.d.ts +15 -0
- package/dist/types/src/utils/portionFees.d.ts.map +1 -0
- package/dist/types/src/utils/routerBalanceSteps.d.ts +32 -0
- package/dist/types/src/utils/routerBalanceSteps.d.ts.map +1 -0
- package/dist/types/src/utils/routerCommands.d.ts +78 -0
- package/dist/types/src/utils/routerCommands.d.ts.map +1 -0
- package/dist/types/src/utils/routerTradeAdapter.d.ts +74 -0
- package/dist/types/src/utils/routerTradeAdapter.d.ts.map +1 -0
- package/dist/types/src/utils/toV4URVersion.d.ts +4 -0
- package/dist/types/src/utils/toV4URVersion.d.ts.map +1 -0
- package/dist/types/src/utils/validateEncodeSwaps.d.ts +3 -0
- package/dist/types/src/utils/validateEncodeSwaps.d.ts.map +1 -0
- package/package.json +33 -52
- package/dist/entities/actions/uniswap.d.ts +0 -30
- package/dist/index.d.ts +0 -10
- package/dist/index.js +0 -8
- package/dist/swapRouter.d.ts +0 -37
- 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 -25
- package/dist/universal-router-sdk.cjs.development.js +0 -1500
- 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 -1493
- package/dist/universal-router-sdk.esm.js.map +0 -1
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { Interface } from '@ethersproject/abi';
|
|
2
|
+
import { BigNumber, BigNumberish } from '@ethersproject/bignumber';
|
|
3
|
+
import { MethodParameters, Position as V3Position, RemoveLiquidityOptions as V3RemoveLiquidityOptions } from '@kittycorn-labs/v3-sdk';
|
|
4
|
+
import { Position as V4Position, AddLiquidityOptions as V4AddLiquidityOptions } from '@kittycorn-labs/v4-sdk';
|
|
5
|
+
import { Trade as RouterTrade } from '@kittycorn-labs/router-sdk';
|
|
6
|
+
import { Currency, TradeType } from '@kittycorn-labs/sdk-core';
|
|
7
|
+
import { SwapOptions } from './entities/actions/uniswap';
|
|
8
|
+
import { AcrossV4DepositV3Params } from './entities/actions/across';
|
|
9
|
+
import { SwapSpecification, SwapStep } from './types/encodeSwaps';
|
|
10
|
+
import { UniversalRouterVersion } from './utils/constants';
|
|
11
|
+
import { TypedDataDomain, TypedDataField } from '@ethersproject/abstract-signer';
|
|
12
|
+
export type SwapRouterConfig = {
|
|
13
|
+
sender?: string;
|
|
14
|
+
deadline?: BigNumberish;
|
|
15
|
+
};
|
|
16
|
+
export type SignedRouteOptions = {
|
|
17
|
+
intent: string;
|
|
18
|
+
data: string;
|
|
19
|
+
sender: string;
|
|
20
|
+
nonce?: string;
|
|
21
|
+
};
|
|
22
|
+
export type EIP712Payload = {
|
|
23
|
+
domain: TypedDataDomain;
|
|
24
|
+
types: Record<string, TypedDataField[]>;
|
|
25
|
+
value: {
|
|
26
|
+
commands: string;
|
|
27
|
+
inputs: string[];
|
|
28
|
+
intent: string;
|
|
29
|
+
data: string;
|
|
30
|
+
sender: string;
|
|
31
|
+
nonce: string;
|
|
32
|
+
deadline: string;
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export interface MigrateV3ToV4Options {
|
|
36
|
+
inputPosition: V3Position;
|
|
37
|
+
outputPosition: V4Position;
|
|
38
|
+
v3RemoveLiquidityOptions: V3RemoveLiquidityOptions;
|
|
39
|
+
v4AddLiquidityOptions: V4AddLiquidityOptions;
|
|
40
|
+
urVersion?: UniversalRouterVersion;
|
|
41
|
+
}
|
|
42
|
+
export declare abstract class SwapRouter {
|
|
43
|
+
static INTERFACE: Interface;
|
|
44
|
+
static PROXY_INTERFACE: Interface;
|
|
45
|
+
static swapCallParameters(trades: RouterTrade<Currency, Currency, TradeType>, options: SwapOptions, bridgeOptions?: AcrossV4DepositV3Params[]): MethodParameters;
|
|
46
|
+
/**
|
|
47
|
+
* Encodes router-provided swap steps inside the SDK safety envelope.
|
|
48
|
+
*
|
|
49
|
+
* Routers own `swapSteps` (V2/V3/V4 swaps, plus any `WRAP_ETH` / `UNWRAP_WETH` required by the route).
|
|
50
|
+
* The SDK owns ingress, fees, final settlement, exact-output refund, and optional `safeMode`.
|
|
51
|
+
*
|
|
52
|
+
* Two validation regimes:
|
|
53
|
+
* - Default (router custody): the single SDK ingress pull is the only user withdrawal and every step
|
|
54
|
+
* recipient must be the router; the final SWEEP floor enforces the minimum output.
|
|
55
|
+
* - `allowDirectTransfers`: steps may pull input straight from the user (`payerIsUser`,
|
|
56
|
+
* v4 SETTLE_ALL) and pay output straight to `recipient` (step recipients, v4 TAKE/TAKE_ALL,
|
|
57
|
+
* UNWRAP_WETH). Direct pulls may total at most exactOrMaxAmountIn — ingress pulls the
|
|
58
|
+
* remainder — and direct output minimums count toward the SWEEP floor. Portion fees still
|
|
59
|
+
* require output custody. Step amounts are never trusted, only counted or capped.
|
|
60
|
+
*
|
|
61
|
+
* Direct-transfer caveats:
|
|
62
|
+
* - Fee-on-transfer output: output minimums bind the amount each swap *produces* (pre-transfer), not the
|
|
63
|
+
* recipient's post-tax balance. A FoT token's own transfer tax reduces the final balance below the
|
|
64
|
+
* minimum — inherent to such tokens and expected when swapping into one, not a shortfall to guard.
|
|
65
|
+
* - A flat fee is a plain TRANSFER, so routing must keep at least the fee amount in router custody
|
|
66
|
+
* (not route 100% of output directly), or the fee TRANSFER reverts.
|
|
67
|
+
*
|
|
68
|
+
* Router contract: end with final output in `spec.routing.outputToken`; for `EXACT_OUTPUT`, unused input
|
|
69
|
+
* must end in `spec.routing.inputToken`. Don't include a top-level `SWEEP` — the SDK appends settlement,
|
|
70
|
+
* refund, and safeMode sweeps itself.
|
|
71
|
+
*
|
|
72
|
+
* Amount convention: on `EXACT_INPUT`, `spec.routing.quote` is the GROSS output (before fees).
|
|
73
|
+
* The fee cascade is deducted from it when sizing the sweep floor; passing a net
|
|
74
|
+
* (post-fee) quote double-counts the fees and floors the sweep below the real minimum.
|
|
75
|
+
*/
|
|
76
|
+
static encodeSwaps(spec: SwapSpecification, swapSteps: SwapStep[]): MethodParameters;
|
|
77
|
+
/**
|
|
78
|
+
* Generate EIP712 payload for signed execution (no signing performed)
|
|
79
|
+
* Decodes existing execute() calldata and prepares it for signing
|
|
80
|
+
*
|
|
81
|
+
* @param calldata The calldata from swapCallParameters() or similar
|
|
82
|
+
* @param signedOptions Options for signed execution (intent, data, sender, nonce)
|
|
83
|
+
* @param deadline The deadline timestamp
|
|
84
|
+
* @param chainId The chain ID
|
|
85
|
+
* @param routerAddress The Universal Router contract address
|
|
86
|
+
* @returns EIP712 payload ready to be signed externally
|
|
87
|
+
*/
|
|
88
|
+
static getExecuteSignedPayload(calldata: string, signedOptions: SignedRouteOptions, deadline: BigNumberish, chainId: number, routerAddress: string): EIP712Payload;
|
|
89
|
+
/**
|
|
90
|
+
* Encode executeSigned() call with signature
|
|
91
|
+
*
|
|
92
|
+
* @param calldata The original calldata from swapCallParameters()
|
|
93
|
+
* @param signature The signature obtained from external signing
|
|
94
|
+
* @param signedOptions The same options used in getExecuteSignedPayload()
|
|
95
|
+
* @param deadline The deadline timestamp
|
|
96
|
+
* @param nativeCurrencyValue The native currency value (ETH) to send
|
|
97
|
+
* @returns Method parameters for executeSigned()
|
|
98
|
+
*/
|
|
99
|
+
static encodeExecuteSigned(calldata: string, signature: string, signedOptions: SignedRouteOptions, deadline: BigNumberish, nativeCurrencyValue?: BigNumber): MethodParameters;
|
|
100
|
+
/**
|
|
101
|
+
* Builds the call parameters for a migration from a V3 position to a V4 position.
|
|
102
|
+
* Some requirements of the parameters:
|
|
103
|
+
* - v3RemoveLiquidityOptions.collectOptions.recipient must equal v4PositionManager
|
|
104
|
+
* - v3RemoveLiquidityOptions.liquidityPercentage must be 100%
|
|
105
|
+
* - input pool and output pool must have the same tokens
|
|
106
|
+
* - V3 NFT must be approved, or a valid v3RemoveLiquidityOptions.permit must be provided whose spender is the
|
|
107
|
+
* Universal Router for `urVersion` (defaults to V2_0)
|
|
108
|
+
*/
|
|
109
|
+
static migrateV3ToV4CallParameters(options: MigrateV3ToV4Options, positionManagerOverride?: string): MethodParameters;
|
|
110
|
+
/**
|
|
111
|
+
* Encodes a planned route into a method name and parameters for the Router contract.
|
|
112
|
+
* @param planner the planned route
|
|
113
|
+
* @param nativeCurrencyValue the native currency value of the planned route
|
|
114
|
+
* @param config the router config
|
|
115
|
+
*/
|
|
116
|
+
private static encodePlan;
|
|
117
|
+
/**
|
|
118
|
+
* Wraps an inner UR plan in calldata targeting the SwapProxy contract.
|
|
119
|
+
* The proxy pulls ERC20 tokens from the user into the UR, then executes commands.
|
|
120
|
+
*/
|
|
121
|
+
private static encodeProxyPlan;
|
|
122
|
+
private static encodeProxyCall;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=swapRouter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"swapRouter.d.ts","sourceRoot":"","sources":["../../../src/swapRouter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
import { BigNumberish } from '@ethersproject/bignumber';
|
|
2
|
+
import { Currency, CurrencyAmount, Percent, TradeType } from '@kittycorn-labs/sdk-core';
|
|
3
|
+
import { type PathKey, type PoolKey } from '@kittycorn-labs/v4-sdk';
|
|
4
|
+
import { RouterBalanceInput, 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 PortionFee = Extract<Fee, {
|
|
18
|
+
kind: 'portion';
|
|
19
|
+
}>;
|
|
20
|
+
export type FlatFee = Extract<Fee, {
|
|
21
|
+
kind: 'flat';
|
|
22
|
+
}>;
|
|
23
|
+
/** A bare `Fee` encodes as it always has; an array pays one recipient per entry (at most MAX_FEE_RECIPIENTS), each a fraction of GROSS output, all the same `kind`, and >1 portion needs urVersion >= 2.1.1. */
|
|
24
|
+
export type FeeSpecification = Fee | Fee[];
|
|
25
|
+
export type SwapSpecification = {
|
|
26
|
+
tradeType: TradeType;
|
|
27
|
+
routing: {
|
|
28
|
+
inputToken: Currency;
|
|
29
|
+
outputToken: Currency;
|
|
30
|
+
amount: CurrencyAmount<Currency>;
|
|
31
|
+
quote: CurrencyAmount<Currency>;
|
|
32
|
+
};
|
|
33
|
+
slippageTolerance: Percent;
|
|
34
|
+
recipient?: string;
|
|
35
|
+
fee?: FeeSpecification;
|
|
36
|
+
tokenTransferMode?: TokenTransferMode;
|
|
37
|
+
permit?: Permit2Permit;
|
|
38
|
+
chainId?: number;
|
|
39
|
+
deadline?: BigNumberish;
|
|
40
|
+
urVersion?: UniversalRouterVersion;
|
|
41
|
+
safeMode?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* The input Token is the chain's native gas token exposed via an ERC20 predeploy whose balance
|
|
44
|
+
* mirrors the native balance (e.g. USDC on Arc). The swap is funded by attaching
|
|
45
|
+
* msg.value = exactOrMaxAmountIn * 10^(18 - token.decimals) instead of pulling via Permit2:
|
|
46
|
+
* the PERMIT2_TRANSFER_FROM ingress is skipped and no ERC20 approval or permit is ever needed.
|
|
47
|
+
* Incompatible with native input, permit, and TokenTransferMode.ApproveProxy.
|
|
48
|
+
*/
|
|
49
|
+
nativeErc20Input?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Lets steps pull input straight from the user and pay output straight to `recipient`
|
|
52
|
+
* (instead of router custody), still validated so the user never pays more than
|
|
53
|
+
* `exactOrMaxAmountIn` or receives less than the minimum output. Default false.
|
|
54
|
+
* See `SwapRouter.encodeSwaps`.
|
|
55
|
+
*/
|
|
56
|
+
allowDirectTransfers?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* Omit the zero-floor settlement SWEEP when no step can leave the output token on the router.
|
|
59
|
+
* Default false. Needs `allowDirectTransfers`. Assumes the router starts with no output balance
|
|
60
|
+
* and token transfers do not credit it; see the README "Direct Transfers" section.
|
|
61
|
+
*/
|
|
62
|
+
omitRedundantSettlementSweep?: boolean;
|
|
63
|
+
/**
|
|
64
|
+
* Fund the swap from the Universal Router's own balance of the input token: no Permit2
|
|
65
|
+
* ingress is emitted, the first hop spends the CONTRACT_BALANCE sentinel, and an optional
|
|
66
|
+
* `minimumAmount` emits a BALANCE_CHECK_ERC20 (requires `chainId` to resolve the router
|
|
67
|
+
* address). A native input is funded by attaching msg.value to execute() (raw transfers
|
|
68
|
+
* to the router revert): the plan must lead with a WRAP_ETH, which is resized to wrap the
|
|
69
|
+
* whole balance, the floor is asserted post-wrap as WETH, ETH dust is always swept to the
|
|
70
|
+
* recipient, and the encoded value is 0. Same semantics and guards as
|
|
71
|
+
* `SwapOptions.routerBalanceInput`: explicit `recipient`, EXACT_INPUT, exactly one step
|
|
72
|
+
* spending the (wrapped) input token (no splits); incompatible with `permit`,
|
|
73
|
+
* `nativeErc20Input`, `allowDirectTransfers`, and ApproveProxy.
|
|
74
|
+
*/
|
|
75
|
+
routerBalanceInput?: RouterBalanceInput;
|
|
76
|
+
};
|
|
77
|
+
export type NormalizedSwapSpecification = Omit<SwapSpecification, 'recipient' | 'tokenTransferMode' | 'urVersion' | 'safeMode' | 'allowDirectTransfers'> & {
|
|
78
|
+
recipient: string;
|
|
79
|
+
tokenTransferMode: TokenTransferMode;
|
|
80
|
+
urVersion: UniversalRouterVersion;
|
|
81
|
+
safeMode: boolean;
|
|
82
|
+
allowDirectTransfers: boolean;
|
|
83
|
+
};
|
|
84
|
+
export type V2SwapExactIn = {
|
|
85
|
+
type: 'V2_SWAP_EXACT_IN';
|
|
86
|
+
recipient: string;
|
|
87
|
+
amountIn: BigNumberish;
|
|
88
|
+
amountOutMin: BigNumberish;
|
|
89
|
+
path: string[];
|
|
90
|
+
minHopPriceX36?: BigNumberish[];
|
|
91
|
+
payerIsUser?: boolean;
|
|
92
|
+
};
|
|
93
|
+
export type V2SwapExactOut = {
|
|
94
|
+
type: 'V2_SWAP_EXACT_OUT';
|
|
95
|
+
recipient: string;
|
|
96
|
+
amountOut: BigNumberish;
|
|
97
|
+
amountInMax: BigNumberish;
|
|
98
|
+
path: string[];
|
|
99
|
+
minHopPriceX36?: BigNumberish[];
|
|
100
|
+
payerIsUser?: boolean;
|
|
101
|
+
};
|
|
102
|
+
export type V3SwapExactIn = {
|
|
103
|
+
type: 'V3_SWAP_EXACT_IN';
|
|
104
|
+
recipient: string;
|
|
105
|
+
amountIn: BigNumberish;
|
|
106
|
+
amountOutMin: BigNumberish;
|
|
107
|
+
path: string;
|
|
108
|
+
minHopPriceX36?: BigNumberish[];
|
|
109
|
+
payerIsUser?: boolean;
|
|
110
|
+
};
|
|
111
|
+
export type V3SwapExactOut = {
|
|
112
|
+
type: 'V3_SWAP_EXACT_OUT';
|
|
113
|
+
recipient: string;
|
|
114
|
+
amountOut: BigNumberish;
|
|
115
|
+
amountInMax: BigNumberish;
|
|
116
|
+
path: string;
|
|
117
|
+
minHopPriceX36?: BigNumberish[];
|
|
118
|
+
payerIsUser?: boolean;
|
|
119
|
+
};
|
|
120
|
+
export type V4Swap = {
|
|
121
|
+
type: 'V4_SWAP';
|
|
122
|
+
v4Actions: V4Action[];
|
|
123
|
+
};
|
|
124
|
+
export type WrapEth = {
|
|
125
|
+
type: 'WRAP_ETH';
|
|
126
|
+
recipient: string;
|
|
127
|
+
amount: BigNumberish;
|
|
128
|
+
};
|
|
129
|
+
export type UnwrapWeth = {
|
|
130
|
+
type: 'UNWRAP_WETH';
|
|
131
|
+
recipient: string;
|
|
132
|
+
amountMin: BigNumberish;
|
|
133
|
+
};
|
|
134
|
+
export type SwapStep = V2SwapExactIn | V2SwapExactOut | V3SwapExactIn | V3SwapExactOut | V4Swap | WrapEth | UnwrapWeth;
|
|
135
|
+
export type V4SwapExactIn = {
|
|
136
|
+
action: 'SWAP_EXACT_IN';
|
|
137
|
+
currencyIn: string;
|
|
138
|
+
path: PathKey[];
|
|
139
|
+
amountIn: BigNumberish;
|
|
140
|
+
amountOutMinimum: BigNumberish;
|
|
141
|
+
minHopPriceX36?: BigNumberish[];
|
|
142
|
+
};
|
|
143
|
+
export type V4SwapExactInSingle = {
|
|
144
|
+
action: 'SWAP_EXACT_IN_SINGLE';
|
|
145
|
+
poolKey: PoolKey;
|
|
146
|
+
zeroForOne: boolean;
|
|
147
|
+
amountIn: BigNumberish;
|
|
148
|
+
amountOutMinimum: BigNumberish;
|
|
149
|
+
minHopPriceX36?: BigNumberish;
|
|
150
|
+
hookData: string;
|
|
151
|
+
};
|
|
152
|
+
export type V4SwapExactOut = {
|
|
153
|
+
action: 'SWAP_EXACT_OUT';
|
|
154
|
+
currencyOut: string;
|
|
155
|
+
path: PathKey[];
|
|
156
|
+
amountOut: BigNumberish;
|
|
157
|
+
amountInMaximum: BigNumberish;
|
|
158
|
+
minHopPriceX36?: BigNumberish[];
|
|
159
|
+
};
|
|
160
|
+
export type V4SwapExactOutSingle = {
|
|
161
|
+
action: 'SWAP_EXACT_OUT_SINGLE';
|
|
162
|
+
poolKey: PoolKey;
|
|
163
|
+
zeroForOne: boolean;
|
|
164
|
+
amountOut: BigNumberish;
|
|
165
|
+
amountInMaximum: BigNumberish;
|
|
166
|
+
minHopPriceX36?: BigNumberish;
|
|
167
|
+
hookData: string;
|
|
168
|
+
};
|
|
169
|
+
export type V4Settle = {
|
|
170
|
+
action: 'SETTLE';
|
|
171
|
+
currency: string;
|
|
172
|
+
amount: BigNumberish;
|
|
173
|
+
payerIsUser?: boolean;
|
|
174
|
+
};
|
|
175
|
+
export type V4SettleAll = {
|
|
176
|
+
action: 'SETTLE_ALL';
|
|
177
|
+
currency: string;
|
|
178
|
+
maxAmount: BigNumberish;
|
|
179
|
+
};
|
|
180
|
+
export type V4Take = {
|
|
181
|
+
action: 'TAKE';
|
|
182
|
+
currency: string;
|
|
183
|
+
recipient: string;
|
|
184
|
+
amount: BigNumberish;
|
|
185
|
+
};
|
|
186
|
+
export type V4TakeAll = {
|
|
187
|
+
action: 'TAKE_ALL';
|
|
188
|
+
currency: string;
|
|
189
|
+
minAmount: BigNumberish;
|
|
190
|
+
};
|
|
191
|
+
export type V4TakePortion = {
|
|
192
|
+
action: 'TAKE_PORTION';
|
|
193
|
+
currency: string;
|
|
194
|
+
recipient: string;
|
|
195
|
+
bips: BigNumberish;
|
|
196
|
+
};
|
|
197
|
+
export type V4Action = V4SwapExactIn | V4SwapExactInSingle | V4SwapExactOut | V4SwapExactOutSingle | V4Settle | V4SettleAll | V4Take | V4TakeAll | V4TakePortion;
|
|
198
|
+
//# sourceMappingURL=encodeSwaps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encodeSwaps.d.ts","sourceRoot":"","sources":["../../../../src/types/encodeSwaps.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Interface } from '@ethersproject/abi';
|
|
2
|
+
import { CommandType, CommandDefinition } from '../utils/routerCommands';
|
|
3
|
+
import { UniversalRouterVersion } from '../utils/constants';
|
|
4
|
+
export type Param = {
|
|
5
|
+
readonly name: string;
|
|
6
|
+
readonly value: any;
|
|
7
|
+
};
|
|
8
|
+
export type UniversalRouterCommand = {
|
|
9
|
+
readonly commandName: string;
|
|
10
|
+
readonly commandType: CommandType;
|
|
11
|
+
readonly params: readonly Param[];
|
|
12
|
+
};
|
|
13
|
+
export type UniversalRouterCall = {
|
|
14
|
+
readonly commands: readonly UniversalRouterCommand[];
|
|
15
|
+
};
|
|
16
|
+
export type V3PathItem = {
|
|
17
|
+
readonly tokenIn: string;
|
|
18
|
+
readonly tokenOut: string;
|
|
19
|
+
readonly fee: number;
|
|
20
|
+
};
|
|
21
|
+
export interface CommandsDefinition {
|
|
22
|
+
[key: number]: CommandDefinition;
|
|
23
|
+
}
|
|
24
|
+
export declare abstract class CommandParser {
|
|
25
|
+
static INTERFACE: Interface;
|
|
26
|
+
static parseCalldata(calldata: string, urVersion?: UniversalRouterVersion): UniversalRouterCall;
|
|
27
|
+
}
|
|
28
|
+
export declare class GenericCommandParser {
|
|
29
|
+
private readonly commandDefinition;
|
|
30
|
+
private readonly urVersion;
|
|
31
|
+
constructor(commandDefinition: CommandsDefinition, urVersion?: UniversalRouterVersion);
|
|
32
|
+
parse(commands: string, inputs: string[]): UniversalRouterCall;
|
|
33
|
+
private static getCommands;
|
|
34
|
+
}
|
|
35
|
+
export declare function parseV3PathExactIn(path: string): readonly V3PathItem[];
|
|
36
|
+
export declare function parseV3PathExactOut(path: string): readonly V3PathItem[];
|
|
37
|
+
//# sourceMappingURL=commandParser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"commandParser.d.ts","sourceRoot":"","sources":["../../../../src/utils/commandParser.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAA;AAE9C,OAAO,EACL,WAAW,EACX,iBAAiB,EAKlB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,sBAAsB,EAAmB,MAAM,oBAAoB,CAAA;AAE5E,MAAM,MAAM,KAAK,GAAG;IAClB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAA;CACpB,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAA;IACjC,QAAQ,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,CAAC,QAAQ,EAAE,SAAS,sBAAsB,EAAE,CAAA;CACrD,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;CACrB,CAAA;AAED,MAAM,WAAW,kBAAkB;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAA;CACjC;AAGD,8BAAsB,aAAa;IACjC,OAAc,SAAS,EAAE,SAAS,CAAqC;WAEzD,aAAa,CACzB,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,sBAAoD,GAC9D,mBAAmB;CAWvB;AAGD,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,iBAAiB,EAAE,kBAAkB,EACrC,SAAS,GAAE,sBAAoD;IAG3E,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,mBAAmB;IA6DrE,OAAO,CAAC,MAAM,CAAC,WAAW;CAU3B;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,UAAU,EAAE,CAoBtE;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,UAAU,EAAE,CAqBvE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BigNumber } from '@ethersproject/bignumber';
|
|
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;
|
|
9
|
+
//# sourceMappingURL=computeEncodeSwapsAmounts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeEncodeSwapsAmounts.d.ts","sourceRoot":"","sources":["../../../../src/utils/computeEncodeSwapsAmounts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAGpD,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAOlE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,kBAAkB,EAAE,SAAS,CAAA;IAC7B,wBAAwB,EAAE,SAAS,CAAA;IACnC,sBAAsB,EAAE,SAAS,CAAA;CAClC,CAAA;AAKD,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,2BAA2B,GAAG,kBAAkB,CAwC/F"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { BigNumber } from '@ethersproject/bignumber';
|
|
2
|
+
export declare enum UniversalRouterVersion {
|
|
3
|
+
V1_2 = "1.2",
|
|
4
|
+
V2_0 = "2.0",
|
|
5
|
+
V2_1_1 = "2.1.1",
|
|
6
|
+
V2_1_2 = "2.1.2",
|
|
7
|
+
V2_2_0 = "2.2.0"
|
|
8
|
+
}
|
|
9
|
+
/** Version assumed when a caller does not pass `urVersion`; kept at V2_0 for backward compatibility. */
|
|
10
|
+
export declare const DEFAULT_UR_VERSION = UniversalRouterVersion.V2_0;
|
|
11
|
+
/**
|
|
12
|
+
* Check if a UniversalRouterVersion is at least V2_1_1.
|
|
13
|
+
* Duplicated from @kittycorn-labs/v4-sdk's isAtLeastV2_1_1 (which operates on URVersion)
|
|
14
|
+
* to avoid coupling universal-router-sdk's version logic to v4-sdk.
|
|
15
|
+
*/
|
|
16
|
+
export declare function isAtLeastV2_1_1(version?: UniversalRouterVersion): boolean;
|
|
17
|
+
/** Check if a UniversalRouterVersion is at least V2_0, the first router with the position-manager commands. */
|
|
18
|
+
export declare function isAtLeastV2_0(version?: UniversalRouterVersion): boolean;
|
|
19
|
+
export type RouterConfig = {
|
|
20
|
+
address: string;
|
|
21
|
+
creationBlock: number;
|
|
22
|
+
};
|
|
23
|
+
type ChainConfig = {
|
|
24
|
+
weth: string;
|
|
25
|
+
nativeErc20BalanceAlias: boolean;
|
|
26
|
+
routerConfigs: {
|
|
27
|
+
[key in UniversalRouterVersion]?: RouterConfig;
|
|
28
|
+
};
|
|
29
|
+
swapProxy?: string;
|
|
30
|
+
};
|
|
31
|
+
export declare const CHAIN_CONFIGS: {
|
|
32
|
+
[key: number]: ChainConfig;
|
|
33
|
+
};
|
|
34
|
+
export declare const UNIVERSAL_ROUTER_ADDRESS: (version: UniversalRouterVersion, chainId: number) => string;
|
|
35
|
+
export declare const SWAP_PROXY_ADDRESS: (chainId: number) => string;
|
|
36
|
+
export declare const UNIVERSAL_ROUTER_CREATION_BLOCK: (version: UniversalRouterVersion, chainId: number) => number;
|
|
37
|
+
export declare const WETH_ADDRESS: (chainId: number) => string;
|
|
38
|
+
export declare const CONTRACT_BALANCE: BigNumber;
|
|
39
|
+
export declare const ETH_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
40
|
+
export declare const E_ETH_ADDRESS = "0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee";
|
|
41
|
+
export declare const ZERO_ADDRESS = "0x0000000000000000000000000000000000000000";
|
|
42
|
+
export declare const MAX_UINT256: BigNumber;
|
|
43
|
+
export declare const MAX_UINT160: BigNumber;
|
|
44
|
+
export declare const SENDER_AS_RECIPIENT = "0x0000000000000000000000000000000000000001";
|
|
45
|
+
export declare const ROUTER_AS_RECIPIENT = "0x0000000000000000000000000000000000000002";
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAIpD,oBAAY,sBAAsB;IAChC,IAAI,QAAQ;IACZ,IAAI,QAAQ;IACZ,MAAM,UAAU;IAChB,MAAM,UAAU;IAChB,MAAM,UAAU;CACjB;AAED,wGAAwG;AACxG,eAAO,MAAM,kBAAkB,8BAA8B,CAAA;AAS7D;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAEzE;AAED,+GAA+G;AAC/G,wBAAgB,aAAa,CAAC,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAEvE;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAED,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,uBAAuB,EAAE,OAAO,CAAA;IAChC,aAAa,EAAE;SAAG,GAAG,IAAI,sBAAsB,CAAC,CAAC,EAAE,YAAY;KAAE,CAAA;IACjE,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAMD,eAAO,MAAM,aAAa,EAAE;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAAA;CAsrBvD,CAAA;AAED,eAAO,MAAM,wBAAwB,YAAa,sBAAsB,WAAW,MAAM,KAAG,MAK3F,CAAA;AAED,eAAO,MAAM,kBAAkB,YAAa,MAAM,KAAG,MAKpD,CAAA;AAED,eAAO,MAAM,+BAA+B,YAAa,sBAAsB,WAAW,MAAM,KAAG,MAKlG,CAAA;AAED,eAAO,MAAM,YAAY,YAAa,MAAM,KAAG,MAM9C,CAAA;AAED,eAAO,MAAM,gBAAgB,WAA6B,CAAA;AAC1D,eAAO,MAAM,WAAW,+CAA+C,CAAA;AACvE,eAAO,MAAM,aAAa,+CAA+C,CAAA;AACzE,eAAO,MAAM,YAAY,+CAA+C,CAAA;AACxE,eAAO,MAAM,WAAW,WAAoC,CAAA;AAC5D,eAAO,MAAM,WAAW,WAAoC,CAAA;AAE5D,eAAO,MAAM,mBAAmB,+CAA+C,CAAA;AAC/E,eAAO,MAAM,mBAAmB,+CAA+C,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { BigNumber } from '@ethersproject/bignumber';
|
|
2
|
+
import { NormalizedSwapSpecification, SwapStep } from '../types/encodeSwaps';
|
|
3
|
+
export type UserPaidPull = {
|
|
4
|
+
token: string | undefined;
|
|
5
|
+
maxAmount: BigNumber;
|
|
6
|
+
};
|
|
7
|
+
export declare function getV3HopCount(path: string): number | undefined;
|
|
8
|
+
export declare function v3PathFirstToken(path: string): string | undefined;
|
|
9
|
+
export declare function v3PathLastToken(path: string): string | undefined;
|
|
10
|
+
export declare function isSettlementSweepRedundant(spec: NormalizedSwapSpecification, swapSteps: SwapStep[], sweepFloor: BigNumber): boolean;
|
|
11
|
+
export declare function hasUserPaidFlag(step: SwapStep): boolean;
|
|
12
|
+
export declare function stepUserPaidPulls(step: SwapStep): UserPaidPull[];
|
|
13
|
+
export declare function sumUserPaidMax(steps: SwapStep[]): BigNumber;
|
|
14
|
+
export declare function sumDirectOutputMin(steps: SwapStep[], recipient: string, outputTokenAddress: string): BigNumber;
|
|
15
|
+
export declare function directTransferSweepFloor(spec: NormalizedSwapSpecification, netMin: BigNumber, swapSteps: SwapStep[], outputTokenAddress: string): BigNumber;
|
|
16
|
+
//# sourceMappingURL=directTransfers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"directTransfers.d.ts","sourceRoot":"","sources":["../../../../src/utils/directTransfers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAY,MAAM,sBAAsB,CAAA;AActF,MAAM,MAAM,YAAY,GAAG;IAEzB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IAEzB,SAAS,EAAE,SAAS,CAAA;CACrB,CAAA;AAID,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAU9D;AAaD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEjE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGhE;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,2BAA2B,EACjC,SAAS,EAAE,QAAQ,EAAE,EACrB,UAAU,EAAE,SAAS,GACpB,OAAO,CA2FT;AAGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAYvD;AAeD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,YAAY,EAAE,CAoBhE;AAID,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,SAAS,CAE3D;AAoKD,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAE9G;AAOD,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,2BAA2B,EACjC,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,QAAQ,EAAE,EACrB,kBAAkB,EAAE,MAAM,GACzB,SAAS,CAsBX"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { TypedDataDomain, TypedDataField } from '@ethersproject/abstract-signer';
|
|
2
|
+
export declare const EIP712_DOMAIN_NAME = "UniversalRouter";
|
|
3
|
+
export declare const EIP712_DOMAIN_VERSION = "2";
|
|
4
|
+
export declare const EXECUTE_SIGNED_TYPES: Record<string, TypedDataField[]>;
|
|
5
|
+
/**
|
|
6
|
+
* Generate EIP712 domain for Universal Router
|
|
7
|
+
*/
|
|
8
|
+
export declare function getUniversalRouterDomain(chainId: number, verifyingContract: string): TypedDataDomain;
|
|
9
|
+
/**
|
|
10
|
+
* Generate a random nonce for signed execution
|
|
11
|
+
* Uses secureRandomBytes for secure randomness
|
|
12
|
+
*/
|
|
13
|
+
export declare function generateNonce(): string;
|
|
14
|
+
/**
|
|
15
|
+
* Sentinel value to skip nonce checking (allows signature replay)
|
|
16
|
+
*/
|
|
17
|
+
export declare const NONCE_SKIP_CHECK: string;
|
|
18
|
+
//# sourceMappingURL=eip712.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eip712.d.ts","sourceRoot":"","sources":["../../../../src/utils/eip712.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAA;AAIhF,eAAO,MAAM,kBAAkB,oBAAoB,CAAA;AACnD,eAAO,MAAM,qBAAqB,MAAM,CAAA;AAExC,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,CAUjE,CAAA;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,eAAe,CAOpG;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAGtC;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,QAAwB,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { UniversalRouterVersion } from './constants';
|
|
2
|
+
import { RoutePlanner } from './routerCommands';
|
|
3
|
+
import { SwapStep } from '../types/encodeSwaps';
|
|
4
|
+
export declare function encodeSwapStep(planner: RoutePlanner, step: SwapStep, urVersion?: UniversalRouterVersion): void;
|
|
5
|
+
//# sourceMappingURL=encodeSwapStep.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encodeSwapStep.d.ts","sourceRoot":"","sources":["../../../../src/utils/encodeSwapStep.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAmB,MAAM,aAAa,CAAA;AACrE,OAAO,EAAe,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAK/C,wBAAgB,cAAc,CAAC,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,sBAAsB,GAAG,IAAI,CAgD9G"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Actions } from '@kittycorn-labs/v4-sdk';
|
|
2
|
+
import { UniversalRouterVersion } from './constants';
|
|
3
|
+
import { V4Action } from '../types/encodeSwaps';
|
|
4
|
+
export declare function encodeV4Action(v4Action: V4Action, urVersion?: UniversalRouterVersion): {
|
|
5
|
+
action: Actions;
|
|
6
|
+
params: any[];
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=encodeV4Action.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"encodeV4Action.d.ts","sourceRoot":"","sources":["../../../../src/utils/encodeV4Action.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAChD,OAAO,EAAE,sBAAsB,EAAmB,MAAM,aAAa,CAAA;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAM/C,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,QAAQ,EAClB,SAAS,CAAC,EAAE,sBAAsB,GACjC;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,GAAG,EAAE,CAAA;CAAE,CA2EpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCurrencyAddress.d.ts","sourceRoot":"","sources":["../../../../src/utils/getCurrencyAddress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAA;AAGnD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAE7D"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { BigintIsh } from '@kittycorn-labs/sdk-core';
|
|
2
|
+
import { NFTPermitOptions } from '@kittycorn-labs/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;
|
|
24
|
+
//# sourceMappingURL=inputTokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inputTokens.d.ts","sourceRoot":"","sources":["../../../../src/utils/inputTokens.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAC7E,OAAO,EAAE,gBAAgB,EAA8B,MAAM,wBAAwB,CAAA;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,EAAe,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAG5D,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;CACjB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,mBAAmB,CAAC,EAAE,mBAAmB,CAAA;CAC1C,CAAA;AAKD,wBAAgB,YAAY,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAWhF;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI,CAWhH;AAOD,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,iBAAiB,QAiBxF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Fee, FlatFee, NormalizedSwapSpecification, PortionFee, SwapSpecification } from '../types/encodeSwaps';
|
|
2
|
+
export declare function normalizeEncodeSwapsSpec(spec: SwapSpecification): NormalizedSwapSpecification;
|
|
3
|
+
/** A lone `Fee` becomes a one-element list, so every read site handles multiple recipients by construction. */
|
|
4
|
+
export declare function toFeeList(fee: SwapSpecification['fee']): Fee[];
|
|
5
|
+
export declare function toPortionFeeList(fee: SwapSpecification['fee']): PortionFee[];
|
|
6
|
+
export declare function toFlatFeeList(fee: SwapSpecification['fee']): FlatFee[];
|
|
7
|
+
//# sourceMappingURL=normalizeEncodeSwapsSpec.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalizeEncodeSwapsSpec.d.ts","sourceRoot":"","sources":["../../../../src/utils/normalizeEncodeSwapsSpec.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,2BAA2B,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAA;AAI/G,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,iBAAiB,GAAG,2BAA2B,CAS7F;AAED,+GAA+G;AAC/G,wBAAgB,SAAS,CAAC,GAAG,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,GAAG,EAAE,CAG9D;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,UAAU,EAAE,CAE5E;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,iBAAiB,CAAC,KAAK,CAAC,GAAG,OAAO,EAAE,CAEtE"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BigNumber } from '@ethersproject/bignumber';
|
|
2
|
+
import JSBI from 'jsbi';
|
|
3
|
+
import { Percent } from '@kittycorn-labs/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;
|
|
8
|
+
//# sourceMappingURL=numbers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numbers.d.ts","sourceRoot":"","sources":["../../../../src/utils/numbers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAGlD,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,CAGzD;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAElD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAElD;AAID,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAElD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pathCurrency.d.ts","sourceRoot":"","sources":["../../../../src/utils/pathCurrency.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAS,MAAM,0BAA0B,CAAA;AAE1D,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAA;AAElD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,GAAG,QAAQ,CAmBzE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BigNumber } from '@ethersproject/bignumber';
|
|
2
|
+
import { Percent } from '@kittycorn-labs/sdk-core';
|
|
3
|
+
import { FeeOptions } from '@kittycorn-labs/v3-sdk';
|
|
4
|
+
export interface ScaledPortionFee {
|
|
5
|
+
recipient: string;
|
|
6
|
+
/** The caller-supplied fee, read as a fraction of the gross swap output. */
|
|
7
|
+
grossFee: Percent;
|
|
8
|
+
/** Rescaled against the balance remaining when its PAY_PORTION executes, so the recipient still gets `grossFee` of gross. */
|
|
9
|
+
scaledFee: Percent;
|
|
10
|
+
}
|
|
11
|
+
/** Gross fractions to remaining-balance fractions: scaled_i = f_i / (1 - sum(f_0..f_{i-1})), in exact Fraction arithmetic; throws at or past 100%, since a 100% total encodes a swap that pays the swapper nothing. */
|
|
12
|
+
export declare function scalePortionFees(fees: FeeOptions[]): ScaledPortionFee[];
|
|
13
|
+
/** Replays the cascade with the ENCODED portions, which is exact where sum(floor(gross * f_i)) is off by dust either way; reduces to the legacy quantized deduction for a single fee, never exceeds grossAmount, and holds for larger fills. */
|
|
14
|
+
export declare function simulatePortionFeeDeduction(grossAmount: BigNumber, scaledFees: ScaledPortionFee[], useFullPrecision: boolean): BigNumber;
|
|
15
|
+
//# sourceMappingURL=portionFees.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portionFees.d.ts","sourceRoot":"","sources":["../../../../src/utils/portionFees.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAY,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AAGnD,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAA;IACjB,4EAA4E;IAC5E,QAAQ,EAAE,OAAO,CAAA;IACjB,6HAA6H;IAC7H,SAAS,EAAE,OAAO,CAAA;CACnB;AAID,uNAAuN;AACvN,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,gBAAgB,EAAE,CAcvE;AAKD,gPAAgP;AAChP,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,SAAS,EACtB,UAAU,EAAE,gBAAgB,EAAE,EAC9B,gBAAgB,EAAE,OAAO,GACxB,SAAS,CAQX"}
|