@paraswap/dex-lib 4.8.21 → 4.8.22

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.
Files changed (38) hide show
  1. package/build/abi/pancakeswap-infinity/cl-pool-manager.abi.json +136 -0
  2. package/build/abi/pancakeswap-infinity/cl-quoter.abi.json +66 -0
  3. package/build/abi/pancakeswap-infinity/router.abi.json +23 -0
  4. package/build/dex/pancakeswap-infinity/config.d.ts +4 -0
  5. package/build/dex/pancakeswap-infinity/config.js +30 -0
  6. package/build/dex/pancakeswap-infinity/config.js.map +1 -0
  7. package/build/dex/pancakeswap-infinity/constants.d.ts +11 -0
  8. package/build/dex/pancakeswap-infinity/constants.js +15 -0
  9. package/build/dex/pancakeswap-infinity/constants.js.map +1 -0
  10. package/build/dex/pancakeswap-infinity/encoder.d.ts +16 -0
  11. package/build/dex/pancakeswap-infinity/encoder.js +289 -0
  12. package/build/dex/pancakeswap-infinity/encoder.js.map +1 -0
  13. package/build/dex/pancakeswap-infinity/liquidity.d.ts +1 -0
  14. package/build/dex/pancakeswap-infinity/liquidity.js +7 -0
  15. package/build/dex/pancakeswap-infinity/liquidity.js.map +1 -0
  16. package/build/dex/pancakeswap-infinity/optimizer.d.ts +2 -0
  17. package/build/dex/pancakeswap-infinity/optimizer.js +48 -0
  18. package/build/dex/pancakeswap-infinity/optimizer.js.map +1 -0
  19. package/build/dex/pancakeswap-infinity/pancakeswap-infinity-pool-manager.d.ts +36 -0
  20. package/build/dex/pancakeswap-infinity/pancakeswap-infinity-pool-manager.js +393 -0
  21. package/build/dex/pancakeswap-infinity/pancakeswap-infinity-pool-manager.js.map +1 -0
  22. package/build/dex/pancakeswap-infinity/pancakeswap-infinity-pool.d.ts +37 -0
  23. package/build/dex/pancakeswap-infinity/pancakeswap-infinity-pool.js +289 -0
  24. package/build/dex/pancakeswap-infinity/pancakeswap-infinity-pool.js.map +1 -0
  25. package/build/dex/pancakeswap-infinity/pancakeswap-infinity.d.ts +42 -0
  26. package/build/dex/pancakeswap-infinity/pancakeswap-infinity.js +350 -0
  27. package/build/dex/pancakeswap-infinity/pancakeswap-infinity.js.map +1 -0
  28. package/build/dex/pancakeswap-infinity/subgraph.d.ts +8 -0
  29. package/build/dex/pancakeswap-infinity/subgraph.js +122 -0
  30. package/build/dex/pancakeswap-infinity/subgraph.js.map +1 -0
  31. package/build/dex/pancakeswap-infinity/types.d.ts +101 -0
  32. package/build/dex/pancakeswap-infinity/types.js +3 -0
  33. package/build/dex/pancakeswap-infinity/types.js.map +1 -0
  34. package/build/dex/pancakeswap-infinity/utils.d.ts +5 -0
  35. package/build/dex/pancakeswap-infinity/utils.js +45 -0
  36. package/build/dex/pancakeswap-infinity/utils.js.map +1 -0
  37. package/build/dex/uniswap-v3/config.js +1 -1
  38. package/package.json +1 -1
@@ -0,0 +1,136 @@
1
+ [
2
+ {
3
+ "anonymous": false,
4
+ "inputs": [
5
+ { "indexed": true, "name": "id", "type": "bytes32" },
6
+ { "indexed": true, "name": "currency0", "type": "address" },
7
+ { "indexed": true, "name": "currency1", "type": "address" },
8
+ { "indexed": false, "name": "hooks", "type": "address" },
9
+ { "indexed": false, "name": "fee", "type": "uint24" },
10
+ { "indexed": false, "name": "parameters", "type": "bytes32" },
11
+ { "indexed": false, "name": "sqrtPriceX96", "type": "uint160" },
12
+ { "indexed": false, "name": "tick", "type": "int24" }
13
+ ],
14
+ "name": "Initialize",
15
+ "type": "event"
16
+ },
17
+ {
18
+ "anonymous": false,
19
+ "inputs": [
20
+ { "indexed": true, "name": "id", "type": "bytes32" },
21
+ { "indexed": true, "name": "sender", "type": "address" },
22
+ { "indexed": false, "name": "amount0", "type": "int128" },
23
+ { "indexed": false, "name": "amount1", "type": "int128" },
24
+ { "indexed": false, "name": "sqrtPriceX96", "type": "uint160" },
25
+ { "indexed": false, "name": "liquidity", "type": "uint128" },
26
+ { "indexed": false, "name": "tick", "type": "int24" },
27
+ { "indexed": false, "name": "fee", "type": "uint24" },
28
+ { "indexed": false, "name": "protocolFee", "type": "uint16" }
29
+ ],
30
+ "name": "Swap",
31
+ "type": "event"
32
+ },
33
+ {
34
+ "anonymous": false,
35
+ "inputs": [
36
+ { "indexed": true, "name": "id", "type": "bytes32" },
37
+ { "indexed": true, "name": "sender", "type": "address" },
38
+ { "indexed": false, "name": "tickLower", "type": "int24" },
39
+ { "indexed": false, "name": "tickUpper", "type": "int24" },
40
+ { "indexed": false, "name": "liquidityDelta", "type": "int256" },
41
+ { "indexed": false, "name": "salt", "type": "bytes32" }
42
+ ],
43
+ "name": "ModifyLiquidity",
44
+ "type": "event"
45
+ },
46
+ {
47
+ "anonymous": false,
48
+ "inputs": [
49
+ { "indexed": true, "name": "id", "type": "bytes32" },
50
+ { "indexed": true, "name": "sender", "type": "address" },
51
+ { "indexed": false, "name": "amount0", "type": "uint256" },
52
+ { "indexed": false, "name": "amount1", "type": "uint256" },
53
+ { "indexed": false, "name": "tick", "type": "int24" }
54
+ ],
55
+ "name": "Donate",
56
+ "type": "event"
57
+ },
58
+ {
59
+ "anonymous": false,
60
+ "inputs": [
61
+ { "indexed": true, "name": "id", "type": "bytes32" },
62
+ { "indexed": false, "name": "dynamicLPFee", "type": "uint24" }
63
+ ],
64
+ "name": "DynamicLPFeeUpdated",
65
+ "type": "event"
66
+ },
67
+ {
68
+ "anonymous": false,
69
+ "inputs": [
70
+ { "indexed": true, "name": "id", "type": "bytes32" },
71
+ { "indexed": false, "name": "protocolFee", "type": "uint24" }
72
+ ],
73
+ "name": "ProtocolFeeUpdated",
74
+ "type": "event"
75
+ },
76
+ {
77
+ "inputs": [{ "name": "id", "type": "bytes32" }],
78
+ "name": "getSlot0",
79
+ "outputs": [
80
+ { "name": "sqrtPriceX96", "type": "uint160" },
81
+ { "name": "tick", "type": "int24" },
82
+ { "name": "protocolFee", "type": "uint24" },
83
+ { "name": "lpFee", "type": "uint24" }
84
+ ],
85
+ "stateMutability": "view",
86
+ "type": "function"
87
+ },
88
+ {
89
+ "inputs": [{ "name": "id", "type": "bytes32" }],
90
+ "name": "getLiquidity",
91
+ "outputs": [{ "name": "liquidity", "type": "uint128" }],
92
+ "stateMutability": "view",
93
+ "type": "function"
94
+ },
95
+ {
96
+ "inputs": [{ "name": "id", "type": "bytes32" }],
97
+ "name": "getFeeGrowthGlobals",
98
+ "outputs": [
99
+ { "name": "feeGrowthGlobal0x128", "type": "uint256" },
100
+ { "name": "feeGrowthGlobal1x128", "type": "uint256" }
101
+ ],
102
+ "stateMutability": "view",
103
+ "type": "function"
104
+ },
105
+ {
106
+ "inputs": [
107
+ { "name": "id", "type": "bytes32" },
108
+ { "name": "word", "type": "int16" }
109
+ ],
110
+ "name": "getPoolBitmapInfo",
111
+ "outputs": [{ "name": "tickBitmap", "type": "uint256" }],
112
+ "stateMutability": "view",
113
+ "type": "function"
114
+ },
115
+ {
116
+ "inputs": [
117
+ { "name": "id", "type": "bytes32" },
118
+ { "name": "tick", "type": "int24" }
119
+ ],
120
+ "name": "getPoolTickInfo",
121
+ "outputs": [
122
+ {
123
+ "components": [
124
+ { "name": "liquidityGross", "type": "uint128" },
125
+ { "name": "liquidityNet", "type": "int128" },
126
+ { "name": "feeGrowthOutside0X128", "type": "uint256" },
127
+ { "name": "feeGrowthOutside1X128", "type": "uint256" }
128
+ ],
129
+ "name": "info",
130
+ "type": "tuple"
131
+ }
132
+ ],
133
+ "stateMutability": "view",
134
+ "type": "function"
135
+ }
136
+ ]
@@ -0,0 +1,66 @@
1
+ [
2
+ {
3
+ "inputs": [
4
+ {
5
+ "components": [
6
+ {
7
+ "components": [
8
+ { "name": "currency0", "type": "address" },
9
+ { "name": "currency1", "type": "address" },
10
+ { "name": "hooks", "type": "address" },
11
+ { "name": "poolManager", "type": "address" },
12
+ { "name": "fee", "type": "uint24" },
13
+ { "name": "parameters", "type": "bytes32" }
14
+ ],
15
+ "name": "poolKey",
16
+ "type": "tuple"
17
+ },
18
+ { "name": "zeroForOne", "type": "bool" },
19
+ { "name": "exactAmount", "type": "uint128" },
20
+ { "name": "hookData", "type": "bytes" }
21
+ ],
22
+ "name": "params",
23
+ "type": "tuple"
24
+ }
25
+ ],
26
+ "name": "quoteExactInputSingle",
27
+ "outputs": [
28
+ { "name": "amountOut", "type": "uint256" },
29
+ { "name": "gasEstimate", "type": "uint256" }
30
+ ],
31
+ "stateMutability": "nonpayable",
32
+ "type": "function"
33
+ },
34
+ {
35
+ "inputs": [
36
+ {
37
+ "components": [
38
+ {
39
+ "components": [
40
+ { "name": "currency0", "type": "address" },
41
+ { "name": "currency1", "type": "address" },
42
+ { "name": "hooks", "type": "address" },
43
+ { "name": "poolManager", "type": "address" },
44
+ { "name": "fee", "type": "uint24" },
45
+ { "name": "parameters", "type": "bytes32" }
46
+ ],
47
+ "name": "poolKey",
48
+ "type": "tuple"
49
+ },
50
+ { "name": "zeroForOne", "type": "bool" },
51
+ { "name": "exactAmount", "type": "uint128" },
52
+ { "name": "hookData", "type": "bytes" }
53
+ ],
54
+ "name": "params",
55
+ "type": "tuple"
56
+ }
57
+ ],
58
+ "name": "quoteExactOutputSingle",
59
+ "outputs": [
60
+ { "name": "amountIn", "type": "uint256" },
61
+ { "name": "gasEstimate", "type": "uint256" }
62
+ ],
63
+ "stateMutability": "nonpayable",
64
+ "type": "function"
65
+ }
66
+ ]
@@ -0,0 +1,23 @@
1
+ [
2
+ {
3
+ "inputs": [
4
+ { "name": "commands", "type": "bytes" },
5
+ { "name": "inputs", "type": "bytes[]" }
6
+ ],
7
+ "name": "execute",
8
+ "outputs": [],
9
+ "stateMutability": "payable",
10
+ "type": "function"
11
+ },
12
+ {
13
+ "inputs": [
14
+ { "name": "commands", "type": "bytes" },
15
+ { "name": "inputs", "type": "bytes[]" },
16
+ { "name": "deadline", "type": "uint256" }
17
+ ],
18
+ "name": "execute",
19
+ "outputs": [],
20
+ "stateMutability": "payable",
21
+ "type": "function"
22
+ }
23
+ ]
@@ -0,0 +1,4 @@
1
+ import { DexConfigMap } from '../../types';
2
+ import { DexParams, SubgraphPool } from './types';
3
+ export declare const PancakeSwapInfinityConfig: DexConfigMap<DexParams>;
4
+ export declare const PancakeSwapInfinityPoolsList: Record<number, SubgraphPool[]>;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PancakeSwapInfinityPoolsList = exports.PancakeSwapInfinityConfig = void 0;
4
+ const constants_1 = require("../../constants");
5
+ // PancakeSwap Infinity uses CREATE3 so addresses are the same on BSC and Base
6
+ exports.PancakeSwapInfinityConfig = {
7
+ PancakeSwapInfinity: {
8
+ [constants_1.Network.BSC]: {
9
+ vault: '0x238a358808379702088667322f80aC48bAd5e6c4',
10
+ clPoolManager: '0xa0FfB9c1CE1Fe56963B0321B32E7A0302114058b',
11
+ quoter: '0xd0737C9762912dD34c3271197E362Aa736Df0926',
12
+ router: '0xd9C500DfF816a1Da21A48A732d3498Bf09dc9AEB',
13
+ subgraphURL: '8jFYxwKP8tNGSDisucpHRK1ojUchZd7ELd8zh2ugHGDN',
14
+ },
15
+ [constants_1.Network.BASE]: {
16
+ vault: '0x238a358808379702088667322f80aC48bAd5e6c4',
17
+ clPoolManager: '0xa0FfB9c1CE1Fe56963B0321B32E7A0302114058b',
18
+ quoter: '0xd0737C9762912dD34c3271197E362Aa736Df0926',
19
+ router: '0xd9C500DfF816a1Da21A48A732d3498Bf09dc9AEB',
20
+ subgraphURL: '', // No Infinity CL subgraph for Base yet; use static pools list
21
+ },
22
+ },
23
+ };
24
+ // Static pools list for chains without subgraph support
25
+ // On Base, PancakeSwap Infinity CL pools are populated here
26
+ exports.PancakeSwapInfinityPoolsList = {
27
+ // Base: Add popular Infinity CL pools as they are discovered
28
+ // [Network.BASE]: [],
29
+ };
30
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/pancakeswap-infinity/config.ts"],"names":[],"mappings":";;;AACA,+CAA0C;AAG1C,8EAA8E;AACjE,QAAA,yBAAyB,GAA4B;IAChE,mBAAmB,EAAE;QACnB,CAAC,mBAAO,CAAC,GAAG,CAAC,EAAE;YACb,KAAK,EAAE,4CAA4C;YACnD,aAAa,EAAE,4CAA4C;YAC3D,MAAM,EAAE,4CAA4C;YACpD,MAAM,EAAE,4CAA4C;YACpD,WAAW,EACT,8CAA8C;SACjD;QACD,CAAC,mBAAO,CAAC,IAAI,CAAC,EAAE;YACd,KAAK,EAAE,4CAA4C;YACnD,aAAa,EAAE,4CAA4C;YAC3D,MAAM,EAAE,4CAA4C;YACpD,MAAM,EAAE,4CAA4C;YACpD,WAAW,EAAE,EAAE,EAAE,8DAA8D;SAChF;KACF;CACF,CAAC;AAEF,wDAAwD;AACxD,4DAA4D;AAC/C,QAAA,4BAA4B,GAAmC;AAC1E,6DAA6D;AAC7D,sBAAsB;CACvB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare const TICK_BITMAP_TO_USE = 4n;
2
+ export declare const TICK_BITMAP_BUFFER = 8n;
3
+ export declare const TICK_BITMAP_TO_USE_BY_CHAIN: Record<number, bigint>;
4
+ export declare const TICK_BITMAP_BUFFER_BY_CHAIN: Record<number, bigint>;
5
+ export declare const SUBGRAPH_TIMEOUT: number;
6
+ export declare const POOL_CACHE_REFRESH_INTERVAL: number;
7
+ export declare const POOL_CACHE_STORE_INTERVAL: number;
8
+ export declare const SWAP_EVENT_MAX_CYCLES = 10000;
9
+ export declare const MAX_PRICING_COMPUTATION_STEPS_ALLOWED = 64;
10
+ export declare const PANCAKESWAP_INFINITY_EFFICIENCY_FACTOR = 3;
11
+ export declare const POOL_MIN_TVL_USD = 10000;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POOL_MIN_TVL_USD = exports.PANCAKESWAP_INFINITY_EFFICIENCY_FACTOR = exports.MAX_PRICING_COMPUTATION_STEPS_ALLOWED = exports.SWAP_EVENT_MAX_CYCLES = exports.POOL_CACHE_STORE_INTERVAL = exports.POOL_CACHE_REFRESH_INTERVAL = exports.SUBGRAPH_TIMEOUT = exports.TICK_BITMAP_BUFFER_BY_CHAIN = exports.TICK_BITMAP_TO_USE_BY_CHAIN = exports.TICK_BITMAP_BUFFER = exports.TICK_BITMAP_TO_USE = void 0;
4
+ exports.TICK_BITMAP_TO_USE = 4n;
5
+ exports.TICK_BITMAP_BUFFER = 8n;
6
+ exports.TICK_BITMAP_TO_USE_BY_CHAIN = {};
7
+ exports.TICK_BITMAP_BUFFER_BY_CHAIN = {};
8
+ exports.SUBGRAPH_TIMEOUT = 30 * 1000;
9
+ exports.POOL_CACHE_REFRESH_INTERVAL = 60 * 60 * 24; // 24 hours
10
+ exports.POOL_CACHE_STORE_INTERVAL = 60 * 60 * 24 * 7; // 7 days
11
+ exports.SWAP_EVENT_MAX_CYCLES = 10_000;
12
+ exports.MAX_PRICING_COMPUTATION_STEPS_ALLOWED = 64;
13
+ exports.PANCAKESWAP_INFINITY_EFFICIENCY_FACTOR = 3;
14
+ exports.POOL_MIN_TVL_USD = 10_000;
15
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/pancakeswap-infinity/constants.ts"],"names":[],"mappings":";;;AAEa,QAAA,kBAAkB,GAAG,EAAE,CAAC;AAExB,QAAA,kBAAkB,GAAG,EAAE,CAAC;AAExB,QAAA,2BAA2B,GAA2B,EAAE,CAAC;AAEzD,QAAA,2BAA2B,GAA2B,EAAE,CAAC;AAEzD,QAAA,gBAAgB,GAAG,EAAE,GAAG,IAAI,CAAC;AAE7B,QAAA,2BAA2B,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,WAAW;AAEvD,QAAA,yBAAyB,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,SAAS;AAEvD,QAAA,qBAAqB,GAAG,MAAM,CAAC;AAE/B,QAAA,qCAAqC,GAAG,EAAE,CAAC;AAE3C,QAAA,sCAAsC,GAAG,CAAC,CAAC;AAE3C,QAAA,gBAAgB,GAAG,MAAM,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { PancakeSwapInfinityData } from './types';
2
+ import { Address } from '../../types';
3
+ export declare enum Actions {
4
+ SWAP_EXACT_IN_SINGLE = 6,
5
+ SWAP_EXACT_IN = 7,
6
+ SWAP_EXACT_OUT_SINGLE = 8,
7
+ SWAP_EXACT_OUT = 9,
8
+ SETTLE = 11,
9
+ SETTLE_ALL = 12,
10
+ TAKE = 14,
11
+ TAKE_ALL = 15
12
+ }
13
+ export declare function swapExactInputSingleCalldata(srcToken: Address, destToken: Address, data: PancakeSwapInfinityData, amountIn: bigint, amountOutMinimum: bigint, recipient: Address, weth: Address): string;
14
+ export declare function swapExactInputCalldata(srcToken: Address, destToken: Address, data: PancakeSwapInfinityData, amountIn: bigint, amountOutMinimum: bigint, recipient: Address, weth: Address): string;
15
+ export declare function swapExactOutputSingleCalldata(srcToken: Address, destToken: Address, data: PancakeSwapInfinityData, amountIn: bigint, amountOut: bigint, recipient: Address, weth: Address): string;
16
+ export declare function swapExactOutputCalldata(srcToken: Address, destToken: Address, data: PancakeSwapInfinityData, amountIn: bigint, amountOut: bigint, recipient: Address, weth: string): string;
@@ -0,0 +1,289 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Actions = void 0;
7
+ exports.swapExactInputSingleCalldata = swapExactInputSingleCalldata;
8
+ exports.swapExactInputCalldata = swapExactInputCalldata;
9
+ exports.swapExactOutputSingleCalldata = swapExactOutputSingleCalldata;
10
+ exports.swapExactOutputCalldata = swapExactOutputCalldata;
11
+ const ethers_1 = require("ethers");
12
+ const router_abi_json_1 = __importDefault(require("../../abi/pancakeswap-infinity/router.abi.json"));
13
+ const abi_1 = require("@ethersproject/abi");
14
+ const utils_1 = require("../../utils");
15
+ const constants_1 = require("../../constants");
16
+ const constants_2 = require("@paraswap/core/build/constants");
17
+ const bigint_constants_1 = require("../../bigint-constants");
18
+ const routerIface = new abi_1.Interface(router_abi_json_1.default);
19
+ // PancakeSwap Infinity Universal Router commands
20
+ var Commands;
21
+ (function (Commands) {
22
+ Commands[Commands["SWEEP"] = 4] = "SWEEP";
23
+ Commands[Commands["WRAP_ETH"] = 11] = "WRAP_ETH";
24
+ Commands[Commands["UNWRAP_WETH"] = 12] = "UNWRAP_WETH";
25
+ Commands[Commands["V4_CL_SWAP"] = 16] = "V4_CL_SWAP";
26
+ })(Commands || (Commands = {}));
27
+ // CL swap action IDs (same as UniV4)
28
+ var Actions;
29
+ (function (Actions) {
30
+ Actions[Actions["SWAP_EXACT_IN_SINGLE"] = 6] = "SWAP_EXACT_IN_SINGLE";
31
+ Actions[Actions["SWAP_EXACT_IN"] = 7] = "SWAP_EXACT_IN";
32
+ Actions[Actions["SWAP_EXACT_OUT_SINGLE"] = 8] = "SWAP_EXACT_OUT_SINGLE";
33
+ Actions[Actions["SWAP_EXACT_OUT"] = 9] = "SWAP_EXACT_OUT";
34
+ Actions[Actions["SETTLE"] = 11] = "SETTLE";
35
+ Actions[Actions["SETTLE_ALL"] = 12] = "SETTLE_ALL";
36
+ Actions[Actions["TAKE"] = 14] = "TAKE";
37
+ Actions[Actions["TAKE_ALL"] = 15] = "TAKE_ALL";
38
+ })(Actions || (exports.Actions = Actions = {}));
39
+ var ActionConstants;
40
+ (function (ActionConstants) {
41
+ ActionConstants[ActionConstants["OPEN_DELTA"] = 0] = "OPEN_DELTA";
42
+ ActionConstants["CONTRACT_BALANCE"] = "57896044618658097711785492504343953926634992332820282019728792003956564819968";
43
+ ActionConstants["MSG_SENDER"] = "0x0000000000000000000000000000000000000001";
44
+ ActionConstants["ADDRESS_THIS"] = "0x0000000000000000000000000000000000000002";
45
+ })(ActionConstants || (ActionConstants = {}));
46
+ // ABI tuple for PancakeSwap Infinity PoolKey:
47
+ // (address currency0, address currency1, address hooks, address poolManager, uint24 fee, bytes32 parameters)
48
+ const POOL_KEY_TUPLE = '(address,address,address,address,uint24,bytes32)';
49
+ // ABI tuple for PancakeSwap Infinity PathKey
50
+ const PATH_KEY_TUPLE = '(address,uint24,address,address,bytes,bytes32)';
51
+ function encodePoolKeyValues(poolKey) {
52
+ return [
53
+ poolKey.currency0,
54
+ poolKey.currency1,
55
+ poolKey.hooks,
56
+ poolKey.poolManager,
57
+ poolKey.fee,
58
+ poolKey.parameters,
59
+ ];
60
+ }
61
+ function encodeActions(actions) {
62
+ const types = actions.map(() => 'uint8');
63
+ return ethers_1.ethers.utils.solidityPack(types, actions);
64
+ }
65
+ function encodeInputForExecute(srcToken, destToken, data, side, amountIn, amountOut, recipient, encodedActions, encodedActionValues, wethAddr) {
66
+ const isEthSrc = (0, utils_1.isETHAddress)(srcToken);
67
+ const isEthDest = (0, utils_1.isETHAddress)(destToken);
68
+ const isWethSrc = srcToken.toLowerCase() === wethAddr;
69
+ const isWethDest = destToken.toLowerCase() === wethAddr;
70
+ const firstPool = data.path[0];
71
+ const lastPool = data.path[data.path.length - 1];
72
+ const isWethPoolForSrc = firstPool.tokenIn.toLowerCase() === wethAddr ||
73
+ firstPool.tokenOut.toLowerCase() === wethAddr;
74
+ const isWethPoolForDest = lastPool.tokenOut.toLowerCase() === wethAddr ||
75
+ lastPool.tokenIn.toLowerCase() === wethAddr;
76
+ const isEthPoolForSrc = firstPool.tokenIn.toLowerCase() === constants_1.NULL_ADDRESS ||
77
+ firstPool.tokenOut.toLowerCase() === constants_1.NULL_ADDRESS;
78
+ const isEthPoolForDest = lastPool.tokenOut.toLowerCase() === constants_1.NULL_ADDRESS ||
79
+ lastPool.tokenIn.toLowerCase() === constants_1.NULL_ADDRESS;
80
+ const input = ethers_1.ethers.utils.defaultAbiCoder.encode(['bytes', 'bytes[]'], [encodedActions, encodedActionValues]);
81
+ let types = ['uint8'];
82
+ let commands = [Commands.V4_CL_SWAP];
83
+ let inputs = [input];
84
+ if (isEthSrc && isWethPoolForSrc) {
85
+ types.unshift('uint8');
86
+ commands.unshift(Commands.WRAP_ETH);
87
+ inputs.unshift(ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256'], [ActionConstants.ADDRESS_THIS, ActionConstants.CONTRACT_BALANCE]));
88
+ }
89
+ if (isWethSrc && isEthPoolForSrc) {
90
+ types.unshift('uint8');
91
+ commands.unshift(Commands.UNWRAP_WETH);
92
+ inputs.unshift(ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256'], [ActionConstants.ADDRESS_THIS, 0]));
93
+ }
94
+ if (isEthDest && isWethPoolForDest) {
95
+ types.push('uint8');
96
+ commands.push(Commands.UNWRAP_WETH);
97
+ inputs.push(ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256'], [recipient, 0]));
98
+ }
99
+ if (isWethDest && isEthPoolForDest) {
100
+ types.push('uint8');
101
+ commands.push(Commands.WRAP_ETH);
102
+ inputs.push(ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256'], [recipient, ActionConstants.CONTRACT_BALANCE]));
103
+ }
104
+ if (side === constants_2.SwapSide.BUY) {
105
+ if (isEthSrc && isWethPoolForSrc) {
106
+ types.push('uint8');
107
+ commands.push(Commands.UNWRAP_WETH);
108
+ inputs.push(ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256'], [ActionConstants.ADDRESS_THIS, 0]));
109
+ }
110
+ if (isWethSrc && isEthPoolForSrc) {
111
+ types.push('uint8');
112
+ commands.push(Commands.WRAP_ETH);
113
+ inputs.push(ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256'], [ActionConstants.ADDRESS_THIS, ActionConstants.CONTRACT_BALANCE]));
114
+ }
115
+ types.push('uint8');
116
+ commands.push(Commands.SWEEP);
117
+ inputs.push(ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'address', 'uint256'], [(0, utils_1.isETHAddress)(srcToken) ? constants_1.NULL_ADDRESS : srcToken, recipient, 0]));
118
+ }
119
+ const command = ethers_1.ethers.utils.solidityPack(types, commands);
120
+ return routerIface.encodeFunctionData('execute(bytes,bytes[])', [
121
+ command,
122
+ inputs,
123
+ ]);
124
+ }
125
+ function encodeSettle(srcToken, data, wethAddr) {
126
+ const isEthSrc = (0, utils_1.isETHAddress)(srcToken);
127
+ const isWethSrc = srcToken.toLowerCase() === wethAddr;
128
+ const firstPool = data.path[0];
129
+ const isWethPool = firstPool.tokenIn.toLowerCase() === wethAddr ||
130
+ firstPool.tokenOut.toLowerCase() === wethAddr;
131
+ const isEthPool = firstPool.tokenIn.toLowerCase() === constants_1.NULL_ADDRESS ||
132
+ firstPool.tokenOut.toLowerCase() === constants_1.NULL_ADDRESS;
133
+ return ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256', 'bool'], [
134
+ isEthSrc && isWethPool
135
+ ? wethAddr
136
+ : (isEthSrc && isEthPool) || (isWethSrc && isEthPool)
137
+ ? constants_1.NULL_ADDRESS
138
+ : srcToken,
139
+ ActionConstants.OPEN_DELTA,
140
+ false,
141
+ ]);
142
+ }
143
+ function encodeTake(destToken, data, recipient, wethAddr) {
144
+ const isEthDest = (0, utils_1.isETHAddress)(destToken);
145
+ const isWethDest = destToken.toLowerCase() === wethAddr;
146
+ const lastPool = data.path[data.path.length - 1];
147
+ const isWethPool = lastPool.tokenOut.toLowerCase() === wethAddr ||
148
+ lastPool.tokenIn.toLowerCase() === wethAddr;
149
+ const isEthPool = lastPool.tokenOut.toLowerCase() === constants_1.NULL_ADDRESS ||
150
+ lastPool.tokenIn.toLowerCase() === constants_1.NULL_ADDRESS;
151
+ return ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'address', 'uint256'], [
152
+ isEthDest && isWethPool
153
+ ? wethAddr
154
+ : (isWethDest && isEthPool) || (isEthDest && isEthPool)
155
+ ? constants_1.NULL_ADDRESS
156
+ : destToken,
157
+ (isEthDest && isWethPool) || (isWethDest && isEthPool)
158
+ ? ActionConstants.ADDRESS_THIS
159
+ : recipient,
160
+ ActionConstants.OPEN_DELTA,
161
+ ]);
162
+ }
163
+ function swapExactInputSingleCalldata(srcToken, destToken, data, amountIn, amountOutMinimum, recipient, weth) {
164
+ const path = data.path[0];
165
+ const poolKey = path.pool.key;
166
+ const actions = encodeActions([
167
+ Actions.SWAP_EXACT_IN_SINGLE,
168
+ Actions.SETTLE,
169
+ Actions.TAKE,
170
+ ]);
171
+ const swap = ethers_1.ethers.utils.defaultAbiCoder.encode([
172
+ `tuple(${POOL_KEY_TUPLE} poolKey, bool zeroForOne, uint128 amountIn, uint128 amountOutMinimum, bytes hookData)`,
173
+ ], [
174
+ [
175
+ encodePoolKeyValues(poolKey),
176
+ path.zeroForOne,
177
+ amountIn,
178
+ amountOutMinimum,
179
+ '0x',
180
+ ],
181
+ ]);
182
+ const settle = encodeSettle(srcToken, data, weth);
183
+ const take = encodeTake(destToken, data, recipient, weth);
184
+ return encodeInputForExecute(srcToken, destToken, data, constants_2.SwapSide.SELL, amountIn, amountOutMinimum, recipient, actions, [swap, settle, take], weth);
185
+ }
186
+ function swapExactInputCalldata(srcToken, destToken, data, amountIn, amountOutMinimum, recipient, weth) {
187
+ const actions = encodeActions([
188
+ Actions.SWAP_EXACT_IN,
189
+ Actions.SETTLE,
190
+ Actions.TAKE,
191
+ ]);
192
+ const pathKeys = data.path.map(p => ({
193
+ intermediateCurrency: (0, utils_1.isETHAddress)(p.tokenOut)
194
+ ? constants_1.NULL_ADDRESS
195
+ : p.tokenOut,
196
+ fee: BigInt(p.pool.key.fee),
197
+ hooks: p.pool.key.hooks,
198
+ poolManager: p.pool.key.poolManager,
199
+ hookData: '0x',
200
+ parameters: p.pool.key.parameters,
201
+ }));
202
+ const swap = ethers_1.ethers.utils.defaultAbiCoder.encode([
203
+ `tuple(address currencyIn, ${PATH_KEY_TUPLE}[] path, uint128 amountIn, uint128 amountOutMinimum)`,
204
+ ], [
205
+ {
206
+ currencyIn: (0, utils_1.isETHAddress)(data.path[0].tokenIn)
207
+ ? constants_1.NULL_ADDRESS
208
+ : data.path[0].tokenIn,
209
+ path: pathKeys.map(pk => [
210
+ pk.intermediateCurrency,
211
+ pk.fee,
212
+ pk.hooks,
213
+ pk.poolManager,
214
+ pk.hookData,
215
+ pk.parameters,
216
+ ]),
217
+ amountIn,
218
+ amountOutMinimum,
219
+ },
220
+ ]);
221
+ const settle = encodeSettle(srcToken, data, weth);
222
+ const take = encodeTake(destToken, data, recipient, weth);
223
+ return encodeInputForExecute(srcToken, destToken, data, constants_2.SwapSide.SELL, amountIn, amountOutMinimum, recipient, actions, [swap, settle, take], weth);
224
+ }
225
+ function swapExactOutputSingleCalldata(srcToken, destToken, data, amountIn, amountOut, recipient, weth) {
226
+ const path = data.path[0];
227
+ const poolKey = path.pool.key;
228
+ const amountInMaximum = bigint_constants_1.BI_MAX_UINT128;
229
+ const actions = encodeActions([
230
+ Actions.SWAP_EXACT_OUT_SINGLE,
231
+ Actions.SETTLE,
232
+ Actions.TAKE,
233
+ ]);
234
+ const swap = ethers_1.ethers.utils.defaultAbiCoder.encode([
235
+ `tuple(${POOL_KEY_TUPLE} poolKey, bool zeroForOne, uint128 amountOut, uint128 amountInMaximum, bytes hookData)`,
236
+ ], [
237
+ [
238
+ encodePoolKeyValues(poolKey),
239
+ path.zeroForOne,
240
+ amountOut,
241
+ amountInMaximum,
242
+ '0x',
243
+ ],
244
+ ]);
245
+ const settle = encodeSettle(srcToken, data, weth);
246
+ const take = encodeTake(destToken, data, recipient, weth);
247
+ return encodeInputForExecute(srcToken, destToken, data, constants_2.SwapSide.BUY, amountIn, amountOut, recipient, actions, [swap, settle, take], weth);
248
+ }
249
+ function swapExactOutputCalldata(srcToken, destToken, data, amountIn, amountOut, recipient, weth) {
250
+ const actions = encodeActions([
251
+ Actions.SWAP_EXACT_OUT,
252
+ Actions.SETTLE,
253
+ Actions.TAKE,
254
+ ]);
255
+ const amountInMaximum = bigint_constants_1.BI_MAX_UINT128;
256
+ const pathKeys = data.path.map(p => ({
257
+ intermediateCurrency: (0, utils_1.isETHAddress)(p.tokenIn)
258
+ ? constants_1.NULL_ADDRESS
259
+ : p.tokenIn,
260
+ fee: BigInt(p.pool.key.fee),
261
+ hooks: p.pool.key.hooks,
262
+ poolManager: p.pool.key.poolManager,
263
+ hookData: '0x',
264
+ parameters: p.pool.key.parameters,
265
+ }));
266
+ const swap = ethers_1.ethers.utils.defaultAbiCoder.encode([
267
+ `tuple(address currencyOut, ${PATH_KEY_TUPLE}[] path, uint128 amountOut, uint128 amountInMaximum)`,
268
+ ], [
269
+ {
270
+ currencyOut: (0, utils_1.isETHAddress)(data.path[data.path.length - 1].tokenOut)
271
+ ? constants_1.NULL_ADDRESS
272
+ : data.path[data.path.length - 1].tokenOut,
273
+ path: pathKeys.map(pk => [
274
+ pk.intermediateCurrency,
275
+ pk.fee,
276
+ pk.hooks,
277
+ pk.poolManager,
278
+ pk.hookData,
279
+ pk.parameters,
280
+ ]),
281
+ amountOut,
282
+ amountInMaximum,
283
+ },
284
+ ]);
285
+ const settle = encodeSettle(srcToken, data, weth);
286
+ const take = encodeTake(destToken, data, recipient, weth);
287
+ return encodeInputForExecute(srcToken, destToken, data, constants_2.SwapSide.BUY, amountIn, amountOut, recipient, actions, [swap, settle, take], weth);
288
+ }
289
+ //# sourceMappingURL=encoder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../../src/dex/pancakeswap-infinity/encoder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export { calculateTotalPoolLiquidity } from '../uniswap-v4/liquidity';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calculateTotalPoolLiquidity = void 0;
4
+ // Re-export from UniswapV4 since the CL liquidity math is identical
5
+ var liquidity_1 = require("../uniswap-v4/liquidity");
6
+ Object.defineProperty(exports, "calculateTotalPoolLiquidity", { enumerable: true, get: function () { return liquidity_1.calculateTotalPoolLiquidity; } });
7
+ //# sourceMappingURL=liquidity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"liquidity.js","sourceRoot":"","sources":["../../../src/dex/pancakeswap-infinity/liquidity.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AACpE,qDAAsE;AAA7D,wHAAA,2BAA2B,OAAA"}
@@ -0,0 +1,2 @@
1
+ import { UnoptimizedRate } from '../../types';
2
+ export declare function pancakeSwapInfinityMerge(or: UnoptimizedRate): UnoptimizedRate;