@paraswap/dex-lib 4.8.34-pancake-infinity.2 → 4.8.34-pancake-infinity.4
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/build/dex/aave-gsm/config.js +2 -2
- package/build/dex/idex.d.ts +1 -1
- package/build/dex/pancakeswap-infinity/encoder.js +45 -32
- package/build/dex/pancakeswap-infinity/encoder.js.map +1 -1
- package/build/dex/pancakeswap-infinity/types.d.ts +13 -5
- package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.d.ts +2 -0
- package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.js +5 -0
- package/build/dex/pancakeswap-v3/pancakeswap-v3-pool.js.map +1 -1
- package/build/dex/pancakeswap-v3/pancakeswap-v3.d.ts +6 -3
- package/build/dex/pancakeswap-v3/pancakeswap-v3.js +85 -9
- package/build/dex/pancakeswap-v3/pancakeswap-v3.js.map +1 -1
- package/build/dex/solidly-v3/solidly-v3-pool.d.ts +3 -0
- package/build/dex/solidly-v3/solidly-v3-pool.js +8 -0
- package/build/dex/solidly-v3/solidly-v3-pool.js.map +1 -1
- package/build/dex/solidly-v3/solidly-v3.d.ts +5 -2
- package/build/dex/solidly-v3/solidly-v3.js +84 -8
- package/build/dex/solidly-v3/solidly-v3.js.map +1 -1
- package/build/dex/uniswap-v3/scripts/measure-calc-time.js +222 -110
- package/build/dex/uniswap-v3/scripts/measure-calc-time.js.map +1 -1
- package/build/dex/uniswap-v3/types.d.ts +1 -0
- package/build/dex/uniswap-v3/types.js.map +1 -1
- package/build/dex/uniswap-v3/uniswap-v3-pool.d.ts +2 -0
- package/build/dex/uniswap-v3/uniswap-v3-pool.js +5 -0
- package/build/dex/uniswap-v3/uniswap-v3-pool.js.map +1 -1
- package/build/dex/uniswap-v3/uniswap-v3.d.ts +11 -3
- package/build/dex/uniswap-v3/uniswap-v3.js +86 -9
- package/build/dex/uniswap-v3/uniswap-v3.js.map +1 -1
- package/build/dex/uniswap-v4/types.d.ts +1 -0
- package/build/dex/uniswap-v4/uniswap-v4-pool-manager.d.ts +2 -0
- package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js +3 -0
- package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js.map +1 -1
- package/build/dex/uniswap-v4/uniswap-v4-pool.d.ts +3 -0
- package/build/dex/uniswap-v4/uniswap-v4-pool.js +18 -0
- package/build/dex/uniswap-v4/uniswap-v4-pool.js.map +1 -1
- package/build/dex/uniswap-v4/uniswap-v4.d.ts +3 -1
- package/build/dex/uniswap-v4/uniswap-v4.js +74 -14
- package/build/dex/uniswap-v4/uniswap-v4.js.map +1 -1
- package/build/pricing-helper.d.ts +1 -1
- package/build/pricing-helper.js +2 -2
- package/build/pricing-helper.js.map +1 -1
- package/native/Cargo.lock +331 -0
- package/native/Cargo.toml +22 -0
- package/native/build.rs +5 -0
- package/native/package-lock.json +32 -0
- package/native/package.json +20 -0
- package/native/src/config.rs +73 -0
- package/native/src/lib.rs +528 -0
- package/native/src/math/bit_math.rs +177 -0
- package/native/src/math/full_math.rs +217 -0
- package/native/src/math/liquidity_math.rs +72 -0
- package/native/src/math/mod.rs +10 -0
- package/native/src/math/oracle.rs +493 -0
- package/native/src/math/sqrt_price_math.rs +272 -0
- package/native/src/math/swap_math.rs +306 -0
- package/native/src/math/tick.rs +239 -0
- package/native/src/math/tick_bitmap.rs +312 -0
- package/native/src/math/tick_math.rs +321 -0
- package/native/src/math/unsafe_math.rs +67 -0
- package/native/src/pool_state.rs +41 -0
- package/native/src/query_outputs.rs +379 -0
- package/native/src/v4_query_outputs.rs +255 -0
- package/package.json +4 -2
|
@@ -7,8 +7,8 @@ exports.AaveGsmConfig = {
|
|
|
7
7
|
AaveGsm: {
|
|
8
8
|
[constants_1.Network.MAINNET]: {
|
|
9
9
|
POOL: aave_address_book_1.AaveV3Ethereum.POOL.toLowerCase(),
|
|
10
|
-
GSM_USDT: '
|
|
11
|
-
GSM_USDC: '
|
|
10
|
+
GSM_USDT: '0x882285E62656b9623AF136Ce3078c6BdCc33F5E3'.toLowerCase(),
|
|
11
|
+
GSM_USDC: '0x3A3868898305f04beC7FEa77BecFf04C13444112'.toLowerCase(),
|
|
12
12
|
waEthUSDT: aave_address_book_1.AaveV3Ethereum.ASSETS.USDT.STATA_TOKEN.toLowerCase(),
|
|
13
13
|
waEthUSDC: aave_address_book_1.AaveV3Ethereum.ASSETS.USDC.STATA_TOKEN.toLowerCase(),
|
|
14
14
|
GHO: aave_address_book_1.AaveV3Ethereum.ASSETS.GHO.UNDERLYING.toLowerCase(),
|
package/build/dex/idex.d.ts
CHANGED
|
@@ -46,7 +46,7 @@ export interface IDexPricing<ExchangeData> {
|
|
|
46
46
|
readonly cacheStateKey: string;
|
|
47
47
|
readonly isStatePollingDex?: boolean;
|
|
48
48
|
getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
|
|
49
|
-
getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[], transferFees?: TransferFeeParams, isFirstSwap?: boolean): Promise<ExchangePrices<ExchangeData> | null>;
|
|
49
|
+
getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[], transferFees?: TransferFeeParams, isFirstSwap?: boolean, useRust?: boolean): Promise<ExchangePrices<ExchangeData> | null>;
|
|
50
50
|
getCalldataGasCost(poolPrices: PoolPrices<ExchangeData>): number | number[];
|
|
51
51
|
initializePricing?(blockNumber: number): AsyncOrSync<void>;
|
|
52
52
|
getAdapters(side: SwapSide): {
|
|
@@ -46,23 +46,34 @@ function encodeActions(actions) {
|
|
|
46
46
|
const types = actions.map(() => 'uint8');
|
|
47
47
|
return ethers_1.ethers.utils.solidityPack(types, actions);
|
|
48
48
|
}
|
|
49
|
-
function
|
|
49
|
+
function getFirstStep(data) {
|
|
50
|
+
const step = data.path[0];
|
|
51
|
+
if (!step) {
|
|
52
|
+
throw new Error('PancakeSwapInfinityData.path must have at least one step');
|
|
53
|
+
}
|
|
54
|
+
return step;
|
|
55
|
+
}
|
|
56
|
+
// CL pool parameters bytes32 layout: [tickSpacing << 16] | hooksRegistrationBitmap.
|
|
57
|
+
// Hooks registration bitmap is omitted here (assumed 0) since the new data shape
|
|
58
|
+
// doesn't carry it — pools with registered hook callbacks need it supplied separately.
|
|
59
|
+
function encodeParameters(tickSpacing) {
|
|
60
|
+
return ethers_1.ethers.utils.hexZeroPad(ethers_1.ethers.utils.hexlify(BigInt(tickSpacing) << 16n), 32);
|
|
61
|
+
}
|
|
62
|
+
function encodePoolKeyTuple(step) {
|
|
63
|
+
const { key } = step.pool;
|
|
50
64
|
return [
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
65
|
+
key.currency0,
|
|
66
|
+
key.currency1,
|
|
67
|
+
key.hooks,
|
|
68
|
+
key.poolManager,
|
|
69
|
+
key.fee,
|
|
70
|
+
encodeParameters(key.tickSpacing),
|
|
57
71
|
];
|
|
58
72
|
}
|
|
59
|
-
function getPoolCurrencies(
|
|
60
|
-
const
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const destCurrency = data.zeroForOne
|
|
64
|
-
? data.poolKey.currency1
|
|
65
|
-
: data.poolKey.currency0;
|
|
73
|
+
function getPoolCurrencies(step) {
|
|
74
|
+
const { key } = step.pool;
|
|
75
|
+
const srcCurrency = step.zeroForOne ? key.currency0 : key.currency1;
|
|
76
|
+
const destCurrency = step.zeroForOne ? key.currency1 : key.currency0;
|
|
66
77
|
return { srcCurrency, destCurrency };
|
|
67
78
|
}
|
|
68
79
|
function isNativeCurrency(currency) {
|
|
@@ -71,10 +82,10 @@ function isNativeCurrency(currency) {
|
|
|
71
82
|
function isWethCurrency(currency, wethAddr) {
|
|
72
83
|
return currency.toLowerCase() === wethAddr;
|
|
73
84
|
}
|
|
74
|
-
function encodeSettle(srcToken,
|
|
85
|
+
function encodeSettle(srcToken, step, wethAddr) {
|
|
75
86
|
const isEthSrc = (0, utils_1.isETHAddress)(srcToken);
|
|
76
87
|
const isWethSrc = srcToken.toLowerCase() === wethAddr;
|
|
77
|
-
const { srcCurrency } = getPoolCurrencies(
|
|
88
|
+
const { srcCurrency } = getPoolCurrencies(step);
|
|
78
89
|
const isWethPool = isWethCurrency(srcCurrency, wethAddr);
|
|
79
90
|
const isEthPool = isNativeCurrency(srcCurrency);
|
|
80
91
|
const settleToken = isEthSrc && isWethPool
|
|
@@ -84,10 +95,10 @@ function encodeSettle(srcToken, data, wethAddr) {
|
|
|
84
95
|
: srcToken;
|
|
85
96
|
return ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'uint256', 'bool'], [settleToken, ActionConstants.OPEN_DELTA, false]);
|
|
86
97
|
}
|
|
87
|
-
function encodeTake(destToken,
|
|
98
|
+
function encodeTake(destToken, step, recipient, wethAddr) {
|
|
88
99
|
const isEthDest = (0, utils_1.isETHAddress)(destToken);
|
|
89
100
|
const isWethDest = destToken.toLowerCase() === wethAddr;
|
|
90
|
-
const { destCurrency } = getPoolCurrencies(
|
|
101
|
+
const { destCurrency } = getPoolCurrencies(step);
|
|
91
102
|
const isWethPool = isWethCurrency(destCurrency, wethAddr);
|
|
92
103
|
const isEthPool = isNativeCurrency(destCurrency);
|
|
93
104
|
const takeToken = isEthDest && isWethPool
|
|
@@ -100,12 +111,12 @@ function encodeTake(destToken, data, recipient, wethAddr) {
|
|
|
100
111
|
: recipient;
|
|
101
112
|
return ethers_1.ethers.utils.defaultAbiCoder.encode(['address', 'address', 'uint256'], [takeToken, takeRecipient, ActionConstants.OPEN_DELTA]);
|
|
102
113
|
}
|
|
103
|
-
function encodeInputForExecute(srcToken, destToken,
|
|
114
|
+
function encodeInputForExecute(srcToken, destToken, step, side, recipient, encodedActions, encodedActionValues, wethAddr) {
|
|
104
115
|
const isEthSrc = (0, utils_1.isETHAddress)(srcToken);
|
|
105
116
|
const isEthDest = (0, utils_1.isETHAddress)(destToken);
|
|
106
117
|
const isWethSrc = srcToken.toLowerCase() === wethAddr;
|
|
107
118
|
const isWethDest = destToken.toLowerCase() === wethAddr;
|
|
108
|
-
const { srcCurrency, destCurrency } = getPoolCurrencies(
|
|
119
|
+
const { srcCurrency, destCurrency } = getPoolCurrencies(step);
|
|
109
120
|
const isWethPoolForSrc = isWethCurrency(srcCurrency, wethAddr);
|
|
110
121
|
const isEthPoolForSrc = isNativeCurrency(srcCurrency);
|
|
111
122
|
const isWethPoolForDest = isWethCurrency(destCurrency, wethAddr);
|
|
@@ -161,6 +172,7 @@ function encodeInputForExecute(srcToken, destToken, data, side, recipient, encod
|
|
|
161
172
|
]);
|
|
162
173
|
}
|
|
163
174
|
function swapExactInputSingleCalldata(srcToken, destToken, data, amountIn, amountOutMinimum, recipient, weth) {
|
|
175
|
+
const step = getFirstStep(data);
|
|
164
176
|
const actions = encodeActions([
|
|
165
177
|
Actions.SWAP_EXACT_IN_SINGLE,
|
|
166
178
|
Actions.SETTLE,
|
|
@@ -170,18 +182,19 @@ function swapExactInputSingleCalldata(srcToken, destToken, data, amountIn, amoun
|
|
|
170
182
|
`tuple(${POOL_KEY_TUPLE} poolKey, bool zeroForOne, uint128 amountIn, uint128 amountOutMinimum, bytes hookData)`,
|
|
171
183
|
], [
|
|
172
184
|
[
|
|
173
|
-
encodePoolKeyTuple(
|
|
174
|
-
|
|
185
|
+
encodePoolKeyTuple(step),
|
|
186
|
+
step.zeroForOne,
|
|
175
187
|
amountIn,
|
|
176
188
|
amountOutMinimum,
|
|
177
|
-
|
|
189
|
+
'0x',
|
|
178
190
|
],
|
|
179
191
|
]);
|
|
180
|
-
const settle = encodeSettle(srcToken,
|
|
181
|
-
const take = encodeTake(destToken,
|
|
182
|
-
return encodeInputForExecute(srcToken, destToken,
|
|
192
|
+
const settle = encodeSettle(srcToken, step, weth);
|
|
193
|
+
const take = encodeTake(destToken, step, recipient, weth);
|
|
194
|
+
return encodeInputForExecute(srcToken, destToken, step, constants_1.SwapSide.SELL, recipient, actions, [swap, settle, take], weth);
|
|
183
195
|
}
|
|
184
196
|
function swapExactOutputSingleCalldata(srcToken, destToken, data, _amountInMaximum, amountOut, recipient, weth) {
|
|
197
|
+
const step = getFirstStep(data);
|
|
185
198
|
const actions = encodeActions([
|
|
186
199
|
Actions.SWAP_EXACT_OUT_SINGLE,
|
|
187
200
|
Actions.SETTLE,
|
|
@@ -191,15 +204,15 @@ function swapExactOutputSingleCalldata(srcToken, destToken, data, _amountInMaxim
|
|
|
191
204
|
`tuple(${POOL_KEY_TUPLE} poolKey, bool zeroForOne, uint128 amountOut, uint128 amountInMaximum, bytes hookData)`,
|
|
192
205
|
], [
|
|
193
206
|
[
|
|
194
|
-
encodePoolKeyTuple(
|
|
195
|
-
|
|
207
|
+
encodePoolKeyTuple(step),
|
|
208
|
+
step.zeroForOne,
|
|
196
209
|
amountOut,
|
|
197
210
|
bigint_constants_1.BI_MAX_UINT128,
|
|
198
|
-
|
|
211
|
+
'0x',
|
|
199
212
|
],
|
|
200
213
|
]);
|
|
201
|
-
const settle = encodeSettle(srcToken,
|
|
202
|
-
const take = encodeTake(destToken,
|
|
203
|
-
return encodeInputForExecute(srcToken, destToken,
|
|
214
|
+
const settle = encodeSettle(srcToken, step, weth);
|
|
215
|
+
const take = encodeTake(destToken, step, recipient, weth);
|
|
216
|
+
return encodeInputForExecute(srcToken, destToken, step, constants_1.SwapSide.BUY, recipient, actions, [swap, settle, take], weth);
|
|
204
217
|
}
|
|
205
218
|
//# sourceMappingURL=encoder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../../src/dex/pancakeswap-infinity/encoder.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"encoder.js","sourceRoot":"","sources":["../../../src/dex/pancakeswap-infinity/encoder.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,11 +21,19 @@ export type PoolKey = {
|
|
|
21
21
|
currency1: string;
|
|
22
22
|
hooks: string;
|
|
23
23
|
poolManager: string;
|
|
24
|
-
fee:
|
|
25
|
-
|
|
24
|
+
fee: string;
|
|
25
|
+
tickSpacing: number;
|
|
26
26
|
};
|
|
27
|
-
export type
|
|
28
|
-
|
|
27
|
+
export type Pool = {
|
|
28
|
+
id: string;
|
|
29
|
+
key: PoolKey;
|
|
30
|
+
};
|
|
31
|
+
export type PathStep = {
|
|
32
|
+
pool: Pool;
|
|
33
|
+
tokenIn: string;
|
|
34
|
+
tokenOut: string;
|
|
29
35
|
zeroForOne: boolean;
|
|
30
|
-
|
|
36
|
+
};
|
|
37
|
+
export type PancakeSwapInfinityData = {
|
|
38
|
+
path: PathStep[];
|
|
31
39
|
};
|
|
@@ -5,6 +5,7 @@ import { Log, Logger, BlockHeader, Address } from '../../types';
|
|
|
5
5
|
import { InitializeStateOptions, StatefulEventSubscriber } from '../../stateful-event-subscriber';
|
|
6
6
|
import { IDexHelper } from '../../dex-helper/idex-helper';
|
|
7
7
|
import { DecodedStateMultiCallResultWithRelativeBitmaps, PoolState } from '../uniswap-v3/types';
|
|
8
|
+
import { RustPoolRegistryType } from '../uniswap-v3/contract-math/native-bridge';
|
|
8
9
|
export declare class PancakeSwapV3EventPool extends StatefulEventSubscriber<PoolState> {
|
|
9
10
|
readonly dexHelper: IDexHelper;
|
|
10
11
|
readonly stateMultiContract: Contract;
|
|
@@ -24,6 +25,7 @@ export declare class PancakeSwapV3EventPool extends StatefulEventSubscriber<Pool
|
|
|
24
25
|
readonly poolIface: Interface;
|
|
25
26
|
initFailed: boolean;
|
|
26
27
|
initRetryAttemptCount: number;
|
|
28
|
+
registry: RustPoolRegistryType | null;
|
|
27
29
|
readonly feeCodeAsString: string;
|
|
28
30
|
constructor(dexHelper: IDexHelper, parentName: string, stateMultiContract: Contract, erc20Interface: Interface, factoryAddress: Address, feeCode: bigint, token0: Address, token1: Address, logger: Logger, mapKey: string | undefined, poolInitCodeHash: string, poolDeployer?: string | undefined);
|
|
29
31
|
get poolAddress(): Address;
|
|
@@ -18,6 +18,7 @@ const decoders_1 = require("../../lib/decoders");
|
|
|
18
18
|
const utils_2 = require("./utils");
|
|
19
19
|
const utils_3 = require("../uniswap-v3/contract-math/utils");
|
|
20
20
|
const constants_2 = require("./constants");
|
|
21
|
+
const native_bridge_1 = require("../uniswap-v3/contract-math/native-bridge");
|
|
21
22
|
class PancakeSwapV3EventPool extends stateful_event_subscriber_1.StatefulEventSubscriber {
|
|
22
23
|
dexHelper;
|
|
23
24
|
stateMultiContract;
|
|
@@ -35,6 +36,7 @@ class PancakeSwapV3EventPool extends stateful_event_subscriber_1.StatefulEventSu
|
|
|
35
36
|
poolIface = new abi_1.Interface(PancakeswapV3Pool_abi_json_1.default);
|
|
36
37
|
initFailed = false;
|
|
37
38
|
initRetryAttemptCount = 0;
|
|
39
|
+
registry = null;
|
|
38
40
|
feeCodeAsString;
|
|
39
41
|
constructor(dexHelper, parentName, stateMultiContract, erc20Interface, factoryAddress, feeCode, token0, token1, logger, mapKey = '', poolInitCodeHash, poolDeployer) {
|
|
40
42
|
super(parentName, `${token0}_${token1}_${feeCode}`, dexHelper, logger, true, mapKey);
|
|
@@ -178,6 +180,9 @@ class PancakeSwapV3EventPool extends stateful_event_subscriber_1.StatefulEventSu
|
|
|
178
180
|
// );
|
|
179
181
|
// }
|
|
180
182
|
super._setState(state, blockNumber);
|
|
183
|
+
if (this.registry && state) {
|
|
184
|
+
(0, native_bridge_1.registrySetPool)(this.registry, this.name, state, 'pancakeswap_v3', 12);
|
|
185
|
+
}
|
|
181
186
|
}
|
|
182
187
|
async generateState(blockNumber) {
|
|
183
188
|
const callData = this._getStateRequestCallData();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pancakeswap-v3-pool.js","sourceRoot":"","sources":["../../../src/dex/pancakeswap-v3/pancakeswap-v3-pool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pancakeswap-v3-pool.js","sourceRoot":"","sources":["../../../src/dex/pancakeswap-v3/pancakeswap-v3-pool.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Interface } from '@ethersproject/abi';
|
|
2
|
-
import { Token, Address, ExchangePrices, AdapterExchangeParam, SimpleExchangeParam, PoolLiquidity, Logger, NumberAsString, PoolPrices, DexExchangeParam } from '../../types';
|
|
2
|
+
import { Token, Address, ExchangePrices, AdapterExchangeParam, SimpleExchangeParam, PoolLiquidity, Logger, NumberAsString, PoolPrices, DexExchangeParam, TransferFeeParams } from '../../types';
|
|
3
3
|
import { SwapSide, Network } from '../../constants';
|
|
4
4
|
import { IDex } from '../../dex/idex';
|
|
5
5
|
import { IDexHelper } from '../../dex-helper/idex-helper';
|
|
6
|
-
import { DexParams, UniswapV3Data } from '../uniswap-v3/types';
|
|
6
|
+
import { DexParams, OutputResult, UniswapV3Data } from '../uniswap-v3/types';
|
|
7
7
|
import { SimpleExchange } from '../simple-exchange';
|
|
8
8
|
import { PancakeSwapV3EventPool } from './pancakeswap-v3-pool';
|
|
9
|
+
import { RustPoolRegistryType } from '../uniswap-v3/contract-math/native-bridge';
|
|
9
10
|
import { OnPoolCreatedCallback } from './pancakeswap-v3-factory';
|
|
10
11
|
export declare class PancakeswapV3 extends SimpleExchange implements IDex<UniswapV3Data> {
|
|
11
12
|
protected network: Network;
|
|
@@ -22,6 +23,7 @@ export declare class PancakeswapV3 extends SimpleExchange implements IDex<Uniswa
|
|
|
22
23
|
protected nonNullPoolsCount: number;
|
|
23
24
|
readonly hasConstantPriceLargeAmounts = false;
|
|
24
25
|
readonly needWrapNative = true;
|
|
26
|
+
readonly registry: RustPoolRegistryType | null;
|
|
25
27
|
intervalTask?: NodeJS.Timeout;
|
|
26
28
|
static dexKeysWithNetwork: {
|
|
27
29
|
key: string;
|
|
@@ -45,7 +47,7 @@ export declare class PancakeswapV3 extends SimpleExchange implements IDex<Uniswa
|
|
|
45
47
|
addMasterPool(poolKey: string, blockNumber: number): Promise<boolean>;
|
|
46
48
|
getPoolIdentifiers(srcToken: Token, destToken: Token, side: SwapSide, blockNumber: number): Promise<string[]>;
|
|
47
49
|
getPricingFromRpc(from: Token, to: Token, amounts: bigint[], side: SwapSide, pools: PancakeSwapV3EventPool[]): Promise<ExchangePrices<UniswapV3Data> | null>;
|
|
48
|
-
getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[]): Promise<null | ExchangePrices<UniswapV3Data>>;
|
|
50
|
+
getPricesVolume(srcToken: Token, destToken: Token, amounts: bigint[], side: SwapSide, blockNumber: number, limitPools?: string[], transferFees?: TransferFeeParams, isFirstSwap?: boolean, useRust?: boolean): Promise<null | ExchangePrices<UniswapV3Data>>;
|
|
49
51
|
getAdapterParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: UniswapV3Data, side: SwapSide): AdapterExchangeParam;
|
|
50
52
|
getCalldataGasCost(poolPrices: PoolPrices<UniswapV3Data>): number | number[];
|
|
51
53
|
getSimpleParam(srcToken: string, destToken: string, srcAmount: string, destAmount: string, data: UniswapV3Data, side: SwapSide): Promise<SimpleExchangeParam>;
|
|
@@ -55,6 +57,7 @@ export declare class PancakeswapV3 extends SimpleExchange implements IDex<Uniswa
|
|
|
55
57
|
private _getLoweredAddresses;
|
|
56
58
|
private _sortTokens;
|
|
57
59
|
private _toLowerForAllConfigAddresses;
|
|
60
|
+
protected _applyBalanceCap(result: OutputResult, amounts: bigint[], side: SwapSide, destTokenBalance: bigint): OutputResult | null;
|
|
58
61
|
private _getOutputs;
|
|
59
62
|
private _querySubgraph;
|
|
60
63
|
private _encodePath;
|
|
@@ -52,6 +52,7 @@ const PancakeswapV3Quoter_abi_json_1 = __importDefault(require("../../abi/pancak
|
|
|
52
52
|
const UniswapMulti_abi_json_1 = __importDefault(require("../../abi/uniswap-v3/UniswapMulti.abi.json"));
|
|
53
53
|
const PancakeV3StateMulticall_abi_json_1 = __importDefault(require("../../abi/pancakeswap-v3/PancakeV3StateMulticall.abi.json"));
|
|
54
54
|
const constants_2 = require("./constants");
|
|
55
|
+
const native_bridge_1 = require("../uniswap-v3/contract-math/native-bridge");
|
|
55
56
|
const pancakeswap_v3_math_1 = require("./contract-math/pancakeswap-v3-math");
|
|
56
57
|
const balancer_fetcher_1 = require("../../lib/tokens/balancer-fetcher");
|
|
57
58
|
const types_2 = require("../../lib/tokens/types");
|
|
@@ -80,6 +81,7 @@ class PancakeswapV3 extends simple_exchange_1.SimpleExchange {
|
|
|
80
81
|
nonNullPoolsCount = 0;
|
|
81
82
|
hasConstantPriceLargeAmounts = false;
|
|
82
83
|
needWrapNative = true;
|
|
84
|
+
registry = (0, native_bridge_1.createRegistry)();
|
|
83
85
|
intervalTask;
|
|
84
86
|
static dexKeysWithNetwork = (0, utils_1.getDexKeysWithNetwork)(lodash_1.default.pick(config_1.PancakeswapV3Config, [
|
|
85
87
|
'PancakeswapV3',
|
|
@@ -108,6 +110,7 @@ class PancakeswapV3 extends simple_exchange_1.SimpleExchange {
|
|
|
108
110
|
this.notExistingPoolSetKey =
|
|
109
111
|
`${constants_1.CACHE_PREFIX}_${network}_${dexKey}_not_existings_pool_set`.toLowerCase();
|
|
110
112
|
this.factory = new pancakeswap_v3_factory_1.PancakeswapV3Factory(dexHelper, dexKey, this.config.factory, this.logger, this.onPoolCreatedDeleteFromNonExistingSet);
|
|
113
|
+
this.logger.info(`${dexKey}: native Rust math ${this.registry ? 'enabled' : 'not available'}`);
|
|
111
114
|
}
|
|
112
115
|
get supportedFees() {
|
|
113
116
|
return this.config.supportedFees;
|
|
@@ -205,6 +208,7 @@ class PancakeswapV3 extends simple_exchange_1.SimpleExchange {
|
|
|
205
208
|
this.logger.trace(`starting to listen to new pool: ${key}`);
|
|
206
209
|
const pool = existingPool ||
|
|
207
210
|
new pancakeswap_v3_pool_1.PancakeSwapV3EventPool(this.dexHelper, this.dexKey, this.stateMultiContract, this.erc20Interface, this.config.factory, fee, token0, token1, this.logger, this.cacheStateKey, this.config.initHash, this.config.deployer);
|
|
211
|
+
pool.registry = this.registry;
|
|
208
212
|
let result = pool;
|
|
209
213
|
try {
|
|
210
214
|
await pool.initialize(blockNumber, {
|
|
@@ -366,7 +370,7 @@ class PancakeswapV3 extends simple_exchange_1.SimpleExchange {
|
|
|
366
370
|
});
|
|
367
371
|
return result;
|
|
368
372
|
}
|
|
369
|
-
async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools) {
|
|
373
|
+
async getPricesVolume(srcToken, destToken, amounts, side, blockNumber, limitPools, transferFees, isFirstSwap, useRust) {
|
|
370
374
|
try {
|
|
371
375
|
const _srcToken = this.dexHelper.config.wrapETH(srcToken);
|
|
372
376
|
const _destToken = this.dexHelper.config.wrapETH(destToken);
|
|
@@ -421,19 +425,59 @@ class PancakeswapV3 extends simple_exchange_1.SimpleExchange {
|
|
|
421
425
|
const _amounts = [...amounts.slice(1)];
|
|
422
426
|
const [token0] = this._sortTokens(_srcAddress, _destAddress);
|
|
423
427
|
const zeroForOne = token0 === _srcAddress ? true : false;
|
|
424
|
-
|
|
428
|
+
// Filter eligible pools (positive liquidity)
|
|
429
|
+
const eligible = [];
|
|
430
|
+
for (let i = 0; i < poolsToUse.poolWithState.length; i++) {
|
|
431
|
+
const pool = poolsToUse.poolWithState[i];
|
|
425
432
|
const state = states[i];
|
|
426
433
|
if (state.liquidity <= 0n) {
|
|
427
434
|
if (state.liquidity < 0) {
|
|
428
435
|
this.logger.error(`${this.dexKey}-${this.network}: ${pool.poolAddress} pool has negative liquidity: ${state.liquidity}. Find with key: ${pool.mapKey}`);
|
|
429
436
|
}
|
|
430
437
|
this.logger.trace(`pool have 0 liquidity`);
|
|
431
|
-
|
|
438
|
+
continue;
|
|
439
|
+
}
|
|
440
|
+
eligible.push({ pool, state, idx: i });
|
|
441
|
+
}
|
|
442
|
+
// Batch query via registry (parallel Rust) or fallback to per-pool
|
|
443
|
+
const useBatchRust = useRust !== false && this.registry && eligible.length > 1;
|
|
444
|
+
let batchUnitResults = null;
|
|
445
|
+
let batchPriceResults = null;
|
|
446
|
+
if (useBatchRust) {
|
|
447
|
+
const poolKeys = eligible.map(e => e.pool.name);
|
|
448
|
+
const sideNum = side === constants_1.SwapSide.SELL ? 0 : 1;
|
|
449
|
+
try {
|
|
450
|
+
const unitRaw = this.registry.queryMany(poolKeys, [unitAmount], zeroForOne, sideNum);
|
|
451
|
+
const priceRaw = this.registry.queryMany(poolKeys, _amounts, zeroForOne, sideNum);
|
|
452
|
+
batchUnitResults = new Map(unitRaw.map(r => [r.key, r]));
|
|
453
|
+
batchPriceResults = new Map(priceRaw.map(r => [r.key, r]));
|
|
432
454
|
}
|
|
455
|
+
catch (e) {
|
|
456
|
+
this.logger.debug('Batch Rust query failed, falling back to per-pool', e);
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
const result = eligible.map(({ pool, state }) => {
|
|
433
460
|
const balanceDestToken = _destAddress === pool.token0 ? state.balance0 : state.balance1;
|
|
434
|
-
const
|
|
435
|
-
|
|
436
|
-
|
|
461
|
+
const poolKey = pool.name;
|
|
462
|
+
let unitResult = null;
|
|
463
|
+
let pricesResult = null;
|
|
464
|
+
let usedRust = false;
|
|
465
|
+
// Try batch results first
|
|
466
|
+
if (batchUnitResults && batchPriceResults) {
|
|
467
|
+
const ur = batchUnitResults.get(poolKey);
|
|
468
|
+
const pr = batchPriceResults.get(poolKey);
|
|
469
|
+
if (ur && ur.outputs.length > 0 && pr && pr.outputs.length > 0) {
|
|
470
|
+
unitResult = this._applyBalanceCap(ur, [unitAmount], side, balanceDestToken);
|
|
471
|
+
pricesResult = this._applyBalanceCap(pr, _amounts, side, balanceDestToken);
|
|
472
|
+
usedRust = true;
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
// Fallback to per-pool JS math
|
|
476
|
+
if (!unitResult || !pricesResult) {
|
|
477
|
+
unitResult = this._getOutputs(state, [unitAmount], zeroForOne, side, balanceDestToken);
|
|
478
|
+
pricesResult = this._getOutputs(state, _amounts, zeroForOne, side, balanceDestToken);
|
|
479
|
+
}
|
|
480
|
+
if (!unitResult || !pricesResult) {
|
|
437
481
|
this.logger.debug('Prices or unit is not calculated');
|
|
438
482
|
return null;
|
|
439
483
|
}
|
|
@@ -462,6 +506,7 @@ class PancakeswapV3 extends simple_exchange_1.SimpleExchange {
|
|
|
462
506
|
fee: pool.feeCode.toString(),
|
|
463
507
|
},
|
|
464
508
|
],
|
|
509
|
+
useRust: usedRust,
|
|
465
510
|
},
|
|
466
511
|
poolIdentifiers: [
|
|
467
512
|
this.getPoolIdentifier(pool.token0, pool.token1, pool.feeCode),
|
|
@@ -470,7 +515,7 @@ class PancakeswapV3 extends simple_exchange_1.SimpleExchange {
|
|
|
470
515
|
gasCost: gasCost,
|
|
471
516
|
poolAddresses: [pool.poolAddress],
|
|
472
517
|
};
|
|
473
|
-
})
|
|
518
|
+
});
|
|
474
519
|
const rpcResults = await rpcResultsPromise;
|
|
475
520
|
const notNullResult = result.filter(res => res !== null);
|
|
476
521
|
if (rpcResults) {
|
|
@@ -751,9 +796,40 @@ class PancakeswapV3 extends simple_exchange_1.SimpleExchange {
|
|
|
751
796
|
};
|
|
752
797
|
return newConfig;
|
|
753
798
|
}
|
|
754
|
-
|
|
799
|
+
_applyBalanceCap(result, amounts, side, destTokenBalance) {
|
|
800
|
+
const outputsResult = {
|
|
801
|
+
outputs: [...result.outputs],
|
|
802
|
+
tickCounts: [...result.tickCounts],
|
|
803
|
+
};
|
|
804
|
+
if (side === constants_1.SwapSide.SELL) {
|
|
805
|
+
if (outputsResult.outputs[0] > destTokenBalance) {
|
|
806
|
+
return null;
|
|
807
|
+
}
|
|
808
|
+
for (let i = 0; i < outputsResult.outputs.length; i++) {
|
|
809
|
+
if (outputsResult.outputs[i] > destTokenBalance) {
|
|
810
|
+
outputsResult.outputs[i] = 0n;
|
|
811
|
+
outputsResult.tickCounts[i] = 0;
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
}
|
|
815
|
+
else {
|
|
816
|
+
if (amounts[0] > destTokenBalance) {
|
|
817
|
+
return null;
|
|
818
|
+
}
|
|
819
|
+
for (let i = 0; i < amounts.length; i++) {
|
|
820
|
+
if (amounts[i] > destTokenBalance) {
|
|
821
|
+
outputsResult.outputs[i] = 0n;
|
|
822
|
+
outputsResult.tickCounts[i] = 0;
|
|
823
|
+
}
|
|
824
|
+
}
|
|
825
|
+
}
|
|
826
|
+
return outputsResult;
|
|
827
|
+
}
|
|
828
|
+
_getOutputs(state, amounts, zeroForOne, side, destTokenBalance, rustHandle) {
|
|
755
829
|
try {
|
|
756
|
-
const outputsResult =
|
|
830
|
+
const outputsResult = rustHandle
|
|
831
|
+
? rustHandle.queryOutputs(amounts, zeroForOne, side === constants_1.SwapSide.SELL ? 0 : 1)
|
|
832
|
+
: pancakeswap_v3_math_1.pancakeswapV3Math.queryOutputs(state, amounts, zeroForOne, side);
|
|
757
833
|
if (side === constants_1.SwapSide.SELL) {
|
|
758
834
|
if (outputsResult.outputs[0] > destTokenBalance) {
|
|
759
835
|
return null;
|