@paraswap/dex-lib 4.7.16 → 4.7.17-uniswap-v4-hooks-support.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.
Files changed (33) hide show
  1. package/build/abi/uniswap-v4/hooks/arena/arena-fee-helper.abi.json +0 -465
  2. package/build/dex/uniswap-v4/config.js +2 -0
  3. package/build/dex/uniswap-v4/config.js.map +1 -1
  4. package/build/dex/uniswap-v4/contract-math/uniswap-v4-pool-math.d.ts +2 -1
  5. package/build/dex/uniswap-v4/contract-math/uniswap-v4-pool-math.js +32 -13
  6. package/build/dex/uniswap-v4/contract-math/uniswap-v4-pool-math.js.map +1 -1
  7. package/build/dex/uniswap-v4/hooks/arena/arena-hook.d.ts +14 -13
  8. package/build/dex/uniswap-v4/hooks/arena/arena-hook.js +35 -60
  9. package/build/dex/uniswap-v4/hooks/arena/arena-hook.js.map +1 -1
  10. package/build/dex/uniswap-v4/hooks/arena/config.d.ts +3 -0
  11. package/build/dex/uniswap-v4/hooks/arena/config.js +11 -0
  12. package/build/dex/uniswap-v4/hooks/arena/config.js.map +1 -0
  13. package/build/dex/uniswap-v4/hooks/arena/types.d.ts +5 -0
  14. package/build/dex/uniswap-v4/hooks/arena/types.js +3 -0
  15. package/build/dex/uniswap-v4/hooks/arena/types.js.map +1 -0
  16. package/build/dex/uniswap-v4/hooks/types.d.ts +11 -3
  17. package/build/dex/uniswap-v4/subgraph.d.ts +4 -4
  18. package/build/dex/uniswap-v4/subgraph.js +68 -41
  19. package/build/dex/uniswap-v4/subgraph.js.map +1 -1
  20. package/build/dex/uniswap-v4/types.d.ts +2 -0
  21. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.d.ts +6 -1
  22. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js +21 -7
  23. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js.map +1 -1
  24. package/build/dex/uniswap-v4/uniswap-v4-pool.d.ts +3 -1
  25. package/build/dex/uniswap-v4/uniswap-v4-pool.js +3 -1
  26. package/build/dex/uniswap-v4/uniswap-v4-pool.js.map +1 -1
  27. package/build/dex/uniswap-v4/uniswap-v4.d.ts +3 -1
  28. package/build/dex/uniswap-v4/uniswap-v4.js +12 -5
  29. package/build/dex/uniswap-v4/uniswap-v4.js.map +1 -1
  30. package/build/dex/uniswap-v4/utils.d.ts +2 -1
  31. package/build/dex/uniswap-v4/utils.js +11 -0
  32. package/build/dex/uniswap-v4/utils.js.map +1 -1
  33. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"uniswap-v4-pool-math.js","sourceRoot":"","sources":["../../../../src/dex/uniswap-v4/contract-math/uniswap-v4-pool-math.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uniswap-v4-pool-math.js","sourceRoot":"","sources":["../../../../src/dex/uniswap-v4/contract-math/uniswap-v4-pool-math.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,18 @@
1
- import { BaseHook } from '..';
2
- import { SwapParams, BalanceDelta, HooksPermissions } from '../types';
3
- import { PoolKey } from '../../types';
4
- import { Address } from '@paraswap/core';
5
1
  import { Contract } from 'ethers';
6
2
  import { IDexHelper } from '../../../../dex-helper';
7
- export declare class ArenaHook extends BaseHook {
3
+ import { Network } from '../../../../constants';
4
+ import { Logger } from '../../../../types';
5
+ import { PoolKey } from '../../types';
6
+ import { SwapParams, BalanceDelta, HooksPermissions, IBaseHook } from '../types';
7
+ export declare class ArenaHook implements IBaseHook {
8
8
  readonly dexHelper: IDexHelper;
9
- private readonly arenaFeeHelper;
10
- private readonly deployers;
11
- constructor(dexHelper: IDexHelper, arenaFeeHelper?: Contract);
12
- name(): string;
13
- setDeployer(address: Address, enabled: boolean): void;
14
- getHookPermissions(): Promise<HooksPermissions>;
15
- beforeInitialize(sender: string, key: PoolKey, sqrtPriceX96: string): Promise<string>;
16
- afterSwap(sender: string, key: PoolKey, params: SwapParams, delta: BalanceDelta, hookData: string): Promise<[string, bigint]>;
9
+ readonly network: Network;
10
+ readonly logger: Logger;
11
+ readonly feeHelperAddress: string;
12
+ readonly arenaFeeHelper: Contract;
13
+ readonly name: string;
14
+ readonly address: string;
15
+ constructor(dexHelper: IDexHelper, network: Network, logger: Logger, feeHelperAddress?: string, arenaFeeHelper?: Contract);
16
+ getHookPermissions(): HooksPermissions;
17
+ afterSwap(_sender: string, key: PoolKey, params: SwapParams, delta: BalanceDelta, _hookData: string): Promise<bigint>;
17
18
  }
@@ -4,30 +4,31 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.ArenaHook = void 0;
7
- const __1 = require("..");
8
7
  const ethers_1 = require("ethers");
9
- const arena_fee_helper_abi_json_1 = __importDefault(require("../../../../abi/uniswap-v4/hooks/arena/arena-fee-helper.abi.json"));
8
+ const config_1 = require("./config");
10
9
  const utils_1 = require("../../utils");
11
- const ARENA_FEE_HELPER_ADDRESS = '0x537505DA49b4249b576fc8d00028bfDdf6189077';
12
- class ArenaHook extends __1.BaseHook {
10
+ const arena_fee_helper_abi_json_1 = __importDefault(require("../../../../abi/uniswap-v4/hooks/arena/arena-fee-helper.abi.json"));
11
+ const utils_2 = require("../../../../utils");
12
+ const MAX_HOOK_FEE = 1000000n; // 100%
13
+ const UINT128_MAX = (1n << 128n) - 1n;
14
+ const INT128_MAX = (1n << 127n) - 1n;
15
+ class ArenaHook {
13
16
  dexHelper;
17
+ network;
18
+ logger;
19
+ feeHelperAddress;
14
20
  arenaFeeHelper;
15
- deployers = new Set();
16
- constructor(dexHelper, arenaFeeHelper = new ethers_1.Contract(ARENA_FEE_HELPER_ADDRESS, arena_fee_helper_abi_json_1.default, dexHelper.provider)) {
17
- super();
21
+ name = this.constructor.name;
22
+ address;
23
+ constructor(dexHelper, network, logger, feeHelperAddress = config_1.ArenaHookConfig[network].feeHelperAddress.toLowerCase(), arenaFeeHelper = new ethers_1.Contract(feeHelperAddress, arena_fee_helper_abi_json_1.default, dexHelper.provider)) {
18
24
  this.dexHelper = dexHelper;
25
+ this.network = network;
26
+ this.logger = logger;
27
+ this.feeHelperAddress = feeHelperAddress;
19
28
  this.arenaFeeHelper = arenaFeeHelper;
29
+ this.address = config_1.ArenaHookConfig[network].hookAddress.toLowerCase();
20
30
  }
21
- name() {
22
- return 'ArenaHook';
23
- }
24
- setDeployer(address, enabled) {
25
- if (enabled)
26
- this.deployers.add(address.toLowerCase());
27
- else
28
- this.deployers.delete(address.toLowerCase());
29
- }
30
- async getHookPermissions() {
31
+ getHookPermissions() {
31
32
  return {
32
33
  beforeInitialize: true,
33
34
  afterInitialize: false,
@@ -45,52 +46,26 @@ class ArenaHook extends __1.BaseHook {
45
46
  afterRemoveLiquidityReturnDelta: false,
46
47
  };
47
48
  }
48
- async beforeInitialize(sender, key, sqrtPriceX96) {
49
- if (!this.deployers.has(sender.toLowerCase())) {
50
- throw new Error('Only deployer can call this function');
51
- }
52
- return '0x00000000'; // matches Solidity returning the selector
53
- }
54
- async afterSwap(sender, key, params, delta, hookData) {
55
- // Determine unspecified output (same logic as Solidity)
56
- const zeroForOne = params.zeroForOne;
49
+ async afterSwap(_sender, key, params, delta, _hookData) {
57
50
  const amountSpecified = BigInt(params.amountSpecified);
58
- const isOutput0 = amountSpecified < 0n === zeroForOne;
59
- const unspecifiedDelta = isOutput0 ? delta.amount0 : delta.amount1;
60
- let output = unspecifiedDelta;
61
- if (output === 0n)
62
- return ['0x00000000', 0n];
63
- if (output < 0n)
64
- output = -output;
65
- // Retrieve total fee ppm for this pool
66
- const totalFeePpm = await this.arenaFeeHelper.getTotalFeePpm((0, utils_1.toId)(key));
67
- if (totalFeePpm === 0) {
68
- return ['0x00000000', 0n];
51
+ const isExactInput = amountSpecified < 0n;
52
+ const unspecifiedDelta = amountSpecified < 0n === params.zeroForOne
53
+ ? delta.amount1
54
+ : delta.amount0;
55
+ if (unspecifiedDelta === 0n) {
56
+ return 0n;
69
57
  }
70
- // MAX_HOOK_FEE = 1e6
71
- const MAX_HOOK_FEE = 1_000_000;
72
- const feeAmount = (output * BigInt(totalFeePpm)) / BigInt(MAX_HOOK_FEE);
73
- // Split fee exactly like `_takeFees()` in Solidity
74
- const feeParts = await this.arenaFeeHelper.getFeesForPool((0, utils_1.toId)(key));
75
- let consumed = 0n;
76
- const payouts = [];
77
- for (let i = 0; i < feeParts.length; i++) {
78
- const partPpm = BigInt(feeParts[i].feePpm);
79
- let partAmount = (output * partPpm) / BigInt(MAX_HOOK_FEE);
80
- // Apply remainder adjustment for the last recipient
81
- consumed += partAmount;
82
- if (i === feeParts.length - 1 && consumed < feeAmount) {
83
- partAmount += feeAmount - consumed;
84
- }
85
- payouts.push({
86
- recipient: feeParts[i].recipient,
87
- fee: partAmount,
88
- });
58
+ const output = unspecifiedDelta < 0n ? -unspecifiedDelta : unspecifiedDelta;
59
+ (0, utils_2._require)(output <= UINT128_MAX, 'Unspecified output exceeds uint128', { output }, 'output <= UINT128_MAX');
60
+ const totalFeePpm = BigInt((await this.arenaFeeHelper.getTotalFeePpm((0, utils_1.toId)(key))).toString());
61
+ if (totalFeePpm === 0n) {
62
+ return 0n;
89
63
  }
90
- return [
91
- '0xb47b2fb1', // selector for `super(BaseFeeHook).afterSwap`
92
- feeAmount, // returned as int128 in Solidity
93
- ];
64
+ (0, utils_2._require)(totalFeePpm <= MAX_HOOK_FEE, 'Hook fee too large', { totalFeePpm }, 'totalFeePpm <= MAX_HOOK_FEE');
65
+ const feeAmount = (output * totalFeePpm) / MAX_HOOK_FEE;
66
+ (0, utils_2._require)(feeAmount <= INT128_MAX, 'Hook fee exceeds int128', { feeAmount }, 'feeAmount <= INT128_MAX');
67
+ const netOutput = isExactInput ? output - feeAmount : output + feeAmount;
68
+ return netOutput;
94
69
  }
95
70
  }
96
71
  exports.ArenaHook = ArenaHook;
@@ -1 +1 @@
1
- {"version":3,"file":"arena-hook.js","sourceRoot":"","sources":["../../../../../src/dex/uniswap-v4/hooks/arena/arena-hook.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arena-hook.js","sourceRoot":"","sources":["../../../../../src/dex/uniswap-v4/hooks/arena/arena-hook.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { HookConfig } from '../types';
2
+ import { HookParams } from './types';
3
+ export declare const ArenaHookConfig: HookConfig<HookParams>;
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArenaHookConfig = void 0;
4
+ const constants_1 = require("../../../../constants");
5
+ exports.ArenaHookConfig = {
6
+ [constants_1.Network.AVALANCHE]: {
7
+ hookAddress: '0xe32a5d788c568fc5a671255d17b618e70552e044',
8
+ feeHelperAddress: '0x537505da49b4249b576fc8d00028bfddf6189077',
9
+ },
10
+ };
11
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../src/dex/uniswap-v4/hooks/arena/config.ts"],"names":[],"mappings":";;;AAEA,qDAAgD;AAEnC,QAAA,eAAe,GAA2B;IACrD,CAAC,mBAAO,CAAC,SAAS,CAAC,EAAE;QACnB,WAAW,EAAE,4CAA4C;QACzD,gBAAgB,EAAE,4CAA4C;KAC/D;CACF,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { Address } from '@paraswap/core';
2
+ export type HookParams = {
3
+ hookAddress: Address;
4
+ feeHelperAddress: Address;
5
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/dex/uniswap-v4/hooks/arena/types.ts"],"names":[],"mappings":""}
@@ -1,4 +1,10 @@
1
1
  import { PoolKey } from '../types';
2
+ import { IDexHelper } from '../../../dex-helper';
3
+ import { Network } from '../../../constants';
4
+ import { Logger } from '../../../types';
5
+ export type HookConfig<HookParams> = {
6
+ [network: number]: HookParams;
7
+ };
2
8
  export interface BalanceDelta {
3
9
  amount0: bigint;
4
10
  amount1: bigint;
@@ -35,7 +41,9 @@ export interface HooksPermissions {
35
41
  afterRemoveLiquidityReturnDelta: boolean;
36
42
  }
37
43
  export interface IBaseHook {
38
- name(): string;
44
+ readonly name: string;
45
+ readonly address: string;
46
+ getHookPermissions(): HooksPermissions;
39
47
  beforeInitialize?(sender: string, key: PoolKey, sqrtPriceX96: string): Promise<string>;
40
48
  afterInitialize?(sender: string, key: PoolKey, sqrtPriceX96: string, tick: number): Promise<string>;
41
49
  beforeAddLiquidity?(sender: string, key: PoolKey, params: ModifyLiquidityParams, hookData: string): Promise<string>;
@@ -43,8 +51,8 @@ export interface IBaseHook {
43
51
  afterAddLiquidity?(sender: string, key: PoolKey, params: ModifyLiquidityParams, delta0: BalanceDelta, delta1: BalanceDelta, hookData: string): Promise<[string, BalanceDelta]>;
44
52
  afterRemoveLiquidity?(sender: string, key: PoolKey, params: ModifyLiquidityParams, delta0: BalanceDelta, delta1: BalanceDelta, hookData: string): Promise<[string, BalanceDelta]>;
45
53
  beforeSwap?(sender: string, key: PoolKey, params: SwapParams, hookData: string): Promise<[string, BeforeSwapDelta, number]>;
46
- afterSwap?(sender: string, key: PoolKey, params: SwapParams, delta: BalanceDelta, hookData: string): Promise<[string, bigint]>;
54
+ afterSwap?(sender: string, key: PoolKey, params: SwapParams, delta: BalanceDelta, hookData: string): Promise<bigint>;
47
55
  beforeDonate?(sender: string, key: PoolKey, amount0: string, amount1: string, hookData: string): Promise<string>;
48
56
  afterDonate?(sender: string, key: PoolKey, amount0: string, amount1: string, hookData: string): Promise<string>;
49
- getHookPermissions(): Promise<HooksPermissions>;
50
57
  }
58
+ export type HookConstructor = new (dexHelper: IDexHelper, network: Network, logger: Logger) => IBaseHook;
@@ -3,10 +3,10 @@ import { IDexHelper } from '../../dex-helper';
3
3
  import { Logger } from 'log4js';
4
4
  import { Address } from '@paraswap/core';
5
5
  export declare function queryTicksForPool(dexHelper: IDexHelper, logger: Logger, dexKey: string, subgraphUrl: string, blockNumber: number, id: string, skip: number, limit: number, latestBlock?: boolean): Promise<SubgraphTick[]>;
6
- export declare function queryAvailablePoolsForToken(dexHelper: IDexHelper, logger: Logger, dexKey: string, subgraphUrl: string, tokenAddress: string, limit: number, staticPoolsList?: string[]): Promise<{
6
+ export declare function queryAvailablePoolsForToken(dexHelper: IDexHelper, logger: Logger, dexKey: string, subgraphUrl: string, tokenAddress: string, limit: number, staticPoolsList?: string[], hooks?: string[]): Promise<{
7
7
  pools0: SubgraphConnectorPool[];
8
8
  pools1: SubgraphConnectorPool[];
9
9
  }>;
10
- export declare function queryAvailablePoolsForPairFromSubgraph(dexHelper: IDexHelper, subgraphUrl: string, srcToken: Address, destToken: Address): Promise<SubgraphPool[]>;
11
- export declare function queryOnePageForAllAvailablePoolsFromSubgraph(dexHelper: IDexHelper, logger: Logger, dexKey: string, subgraphUrl: string, blockNumber: number, skip: number, limit: number, latestBlock?: boolean): Promise<SubgraphPool[]>;
12
- export declare function queryPoolsFromSubgraph(dexHelper: IDexHelper, subgraphUrl: string, poolIds: string[]): Promise<SubgraphPool[] | null>;
10
+ export declare function queryAvailablePoolsForPairFromSubgraph(dexHelper: IDexHelper, subgraphUrl: string, srcToken: Address, destToken: Address, hooks?: string): Promise<SubgraphPool[]>;
11
+ export declare function queryOnePageForAllAvailablePoolsFromSubgraph(dexHelper: IDexHelper, logger: Logger, dexKey: string, subgraphUrl: string, blockNumber: number, skip: number, limit: number, hooks?: string[], latestBlock?: boolean): Promise<SubgraphPool[]>;
12
+ export declare function queryPoolsFromSubgraph(dexHelper: IDexHelper, subgraphUrl: string, poolIds: string[], hooks?: string): Promise<SubgraphPool[] | null>;
@@ -37,15 +37,15 @@ async function queryTicksForPool(dexHelper, logger, dexKey, subgraphUrl, blockNu
37
37
  }
38
38
  return res.data.ticks || [];
39
39
  }
40
- async function queryAvailablePoolsForToken(dexHelper, logger, dexKey, subgraphUrl, tokenAddress, limit, staticPoolsList) {
40
+ async function queryAvailablePoolsForToken(dexHelper, logger, dexKey, subgraphUrl, tokenAddress, limit, staticPoolsList, hooks = [constants_2.NULL_ADDRESS]) {
41
41
  const list = staticPoolsList
42
42
  ? staticPoolsList.map(t => `"${t}"`).join(',')
43
43
  : '';
44
- const poolsQuery = `query ($token: Bytes!, $hooks: Bytes!, $minTVL: Int!, $count: Int) {
44
+ const poolsQuery = `query ($token: Bytes!, $hooks: [Bytes!], $minTVL: Int!, $count: Int) {
45
45
  pools0: pools(
46
46
  where: {
47
47
  token0: $token
48
- hooks: $hooks
48
+ hooks_in: $hooks
49
49
  liquidity_gt: 0
50
50
  totalValueLockedUSD_gte: $minTVL
51
51
  ${list ? `id_in: [${list}]` : ''}
@@ -71,7 +71,7 @@ async function queryAvailablePoolsForToken(dexHelper, logger, dexKey, subgraphUr
71
71
  pools1: pools(
72
72
  where: {
73
73
  token1: $token
74
- hooks: $hooks
74
+ hooks_in: $hooks
75
75
  liquidity_gt: 0
76
76
  totalValueLockedUSD_gte: $minTVL
77
77
  ${list ? `id_in: [${list}]` : ''}
@@ -96,21 +96,36 @@ async function queryAvailablePoolsForToken(dexHelper, logger, dexKey, subgraphUr
96
96
  }
97
97
  }
98
98
  `;
99
- const res = await dexHelper.httpRequest.querySubgraph(subgraphUrl, {
100
- query: poolsQuery,
101
- variables: {
102
- token: tokenAddress,
103
- count: limit,
104
- hooks: constants_2.NULL_ADDRESS,
105
- minTVL: constants_1.POOL_MIN_TVL_USD,
106
- },
107
- }, { timeout: constants_1.SUBGRAPH_TIMEOUT });
108
- if (res.errors && res.errors.length) {
109
- throw new Error(res.errors[0].message);
99
+ const fetchPools = async (hookList, minTVL) => {
100
+ const res = await dexHelper.httpRequest.querySubgraph(subgraphUrl, {
101
+ query: poolsQuery,
102
+ variables: {
103
+ token: tokenAddress,
104
+ count: limit,
105
+ hooks: hookList,
106
+ minTVL,
107
+ },
108
+ }, { timeout: constants_1.SUBGRAPH_TIMEOUT });
109
+ if (res.errors && res.errors.length) {
110
+ throw new Error(res.errors[0].message);
111
+ }
112
+ return res.data;
113
+ };
114
+ const hooksWithNoMinTvl = hooks.filter(h => h !== constants_2.NULL_ADDRESS);
115
+ const hooksWithMinTvl = hooks.includes(constants_2.NULL_ADDRESS) ? [constants_2.NULL_ADDRESS] : [];
116
+ const results = [];
117
+ if (hooksWithNoMinTvl.length) {
118
+ results.push(await fetchPools(hooksWithNoMinTvl, 0));
110
119
  }
111
- return { pools0: res.data.pools0, pools1: res.data.pools1 };
120
+ if (hooksWithMinTvl.length) {
121
+ results.push(await fetchPools(hooksWithMinTvl, constants_1.POOL_MIN_TVL_USD));
122
+ }
123
+ return {
124
+ pools0: results.flatMap(r => r.pools0),
125
+ pools1: results.flatMap(r => r.pools1),
126
+ };
112
127
  }
113
- async function queryAvailablePoolsForPairFromSubgraph(dexHelper, subgraphUrl, srcToken, destToken) {
128
+ async function queryAvailablePoolsForPairFromSubgraph(dexHelper, subgraphUrl, srcToken, destToken, hooks = constants_2.NULL_ADDRESS) {
114
129
  const ticksLimit = 300;
115
130
  const poolsQuery = `query ($token0: Bytes!, $token1: Bytes!, $minTVL: Int!, $hooks: Bytes!) {
116
131
  pools(
@@ -145,8 +160,8 @@ async function queryAvailablePoolsForPairFromSubgraph(dexHelper, subgraphUrl, sr
145
160
  variables: {
146
161
  token0,
147
162
  token1,
148
- minTVL: constants_1.POOL_MIN_TVL_USD,
149
- hooks: constants_2.NULL_ADDRESS,
163
+ minTVL: hooks === constants_2.NULL_ADDRESS ? constants_1.POOL_MIN_TVL_USD : 0,
164
+ hooks,
150
165
  },
151
166
  }, { timeout: constants_1.SUBGRAPH_TIMEOUT });
152
167
  if (res.errors && res.errors.length) {
@@ -154,10 +169,13 @@ async function queryAvailablePoolsForPairFromSubgraph(dexHelper, subgraphUrl, sr
154
169
  }
155
170
  return res.data.pools;
156
171
  }
157
- async function queryOnePageForAllAvailablePoolsFromSubgraph(dexHelper, logger, dexKey, subgraphUrl, blockNumber, skip, limit, latestBlock = false) {
158
- const poolsQuery = `query ($skip: Int!, $minTVL: Int!, $hooks: Bytes!) {
172
+ async function queryOnePageForAllAvailablePoolsFromSubgraph(dexHelper, logger, dexKey, subgraphUrl, blockNumber, skip, limit, hooks = [constants_2.NULL_ADDRESS], latestBlock = false) {
173
+ const hooksWithNoMinTvl = hooks.filter(h => h !== constants_2.NULL_ADDRESS);
174
+ const hooksWithMinTvl = hooks.includes(constants_2.NULL_ADDRESS) ? [constants_2.NULL_ADDRESS] : [];
175
+ const fetchPage = async (hookList, minTVL) => {
176
+ const poolsQuery = `query ($skip: Int!, $minTVL: Int!, $hooks: [Bytes!]) {
159
177
  pools(
160
- where: { hooks: $hooks, liquidity_gt: 0, totalValueLockedUSD_gte: $minTVL },
178
+ where: { hooks_in: $hooks, liquidity_gt: 0, totalValueLockedUSD_gte: $minTVL },
161
179
  ${latestBlock ? '' : `block: { number: ${blockNumber} }`}
162
180
  orderBy: totalValueLockedUSD
163
181
  orderDirection: desc
@@ -177,26 +195,35 @@ async function queryOnePageForAllAvailablePoolsFromSubgraph(dexHelper, logger, d
177
195
  hooks
178
196
  }
179
197
  }`;
180
- const res = await dexHelper.httpRequest.querySubgraph(subgraphUrl, {
181
- query: poolsQuery,
182
- variables: {
183
- skip: skip,
184
- hooks: constants_2.NULL_ADDRESS,
185
- minTVL: constants_1.POOL_MIN_TVL_USD,
186
- },
187
- }, { timeout: constants_1.SUBGRAPH_TIMEOUT });
188
- if (res.errors && res.errors.length) {
189
- if (res.errors[0].message.includes('missing block')) {
190
- logger.info(`${dexKey}: subgraph fallback to the latest block...`);
191
- return queryOnePageForAllAvailablePoolsFromSubgraph(dexHelper, logger, dexKey, subgraphUrl, blockNumber, skip, limit, true);
192
- }
193
- else {
194
- throw new Error(res.errors[0].message);
198
+ const res = await dexHelper.httpRequest.querySubgraph(subgraphUrl, {
199
+ query: poolsQuery,
200
+ variables: {
201
+ skip: skip,
202
+ hooks: hookList,
203
+ minTVL,
204
+ },
205
+ }, { timeout: constants_1.SUBGRAPH_TIMEOUT });
206
+ if (res.errors && res.errors.length) {
207
+ if (res.errors[0].message.includes('missing block')) {
208
+ logger.info(`${dexKey}: subgraph fallback to the latest block...`);
209
+ return queryOnePageForAllAvailablePoolsFromSubgraph(dexHelper, logger, dexKey, subgraphUrl, blockNumber, skip, limit, hookList, true);
210
+ }
211
+ else {
212
+ throw new Error(res.errors[0].message);
213
+ }
195
214
  }
215
+ return res.data.pools;
216
+ };
217
+ const pools = [];
218
+ if (hooksWithNoMinTvl.length) {
219
+ pools.push(...(await fetchPage(hooksWithNoMinTvl, 0)));
196
220
  }
197
- return res.data.pools;
221
+ if (hooksWithMinTvl.length) {
222
+ pools.push(...(await fetchPage(hooksWithMinTvl, constants_1.POOL_MIN_TVL_USD)));
223
+ }
224
+ return pools;
198
225
  }
199
- async function queryPoolsFromSubgraph(dexHelper, subgraphUrl, poolIds) {
226
+ async function queryPoolsFromSubgraph(dexHelper, subgraphUrl, poolIds, hooks = constants_2.NULL_ADDRESS) {
200
227
  const poolsQuery = `query ($minTVL: Int!, $hooks: Bytes!, $pools: [Bytes!]!) {
201
228
  pools(where: {liquidity_gt: 0, totalValueLockedUSD_gte: $minTVL, id_in: $pools}) {
202
229
  id
@@ -215,8 +242,8 @@ async function queryPoolsFromSubgraph(dexHelper, subgraphUrl, poolIds) {
215
242
  const res = await dexHelper.httpRequest.querySubgraph(subgraphUrl, {
216
243
  query: poolsQuery,
217
244
  variables: {
218
- hooks: constants_2.NULL_ADDRESS,
219
- minTVL: constants_1.POOL_MIN_TVL_USD,
245
+ hooks,
246
+ minTVL: hooks === constants_2.NULL_ADDRESS ? constants_1.POOL_MIN_TVL_USD : 0,
220
247
  pools: poolIds,
221
248
  },
222
249
  }, { timeout: constants_1.SUBGRAPH_TIMEOUT });
@@ -1 +1 @@
1
- {"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../../src/dex/uniswap-v4/subgraph.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"subgraph.js","sourceRoot":"","sources":["../../../src/dex/uniswap-v4/subgraph.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { Address, NumberAsString } from '../../types';
2
+ import { HookConstructor } from './hooks/types';
2
3
  export type ModifyLiquidityParams = {
3
4
  liquidityDelta: bigint;
4
5
  tickLower: bigint;
@@ -95,6 +96,7 @@ export type DexParams = {
95
96
  stateView: string;
96
97
  skipPoolsWithUnconventionalFees?: boolean;
97
98
  stateMulticall: string;
99
+ supportedHooks?: HookConstructor[];
98
100
  };
99
101
  export type PoolKey = {
100
102
  currency0: Address;
@@ -8,6 +8,7 @@ import { LogDescription } from '@ethersproject/abi/lib.esm';
8
8
  import { FactoryState } from '../uniswap-v3/types';
9
9
  import { UniswapV4Pool } from './uniswap-v4-pool';
10
10
  import { PoolState } from './types';
11
+ import { IBaseHook } from './hooks/types';
11
12
  export declare class UniswapV4PoolManager extends StatefulEventSubscriber<PoolManagerState> {
12
13
  readonly dexHelper: IDexHelper;
13
14
  private readonly network;
@@ -24,7 +25,9 @@ export declare class UniswapV4PoolManager extends StatefulEventSubscriber<PoolMa
24
25
  stateMulticallIface: Interface;
25
26
  private wethAddress;
26
27
  private poolsCacheKey;
27
- constructor(dexHelper: IDexHelper, parentName: string, network: number, config: DexParams, logger: Logger, mapKey?: string);
28
+ private supportedHookAddresses;
29
+ private hookInstancesByAddress;
30
+ constructor(dexHelper: IDexHelper, parentName: string, network: number, config: DexParams, supportedHooks: IBaseHook[], logger: Logger, mapKey?: string);
28
31
  initialize(blockNumber: number, options?: InitializeStateOptions<PoolManagerState>): Promise<void>;
29
32
  generateState(): FactoryState;
30
33
  protected processLog(_: DeepReadonly<FactoryState>, log: Readonly<Log>): Promise<FactoryState>;
@@ -33,6 +36,8 @@ export declare class UniswapV4PoolManager extends StatefulEventSubscriber<PoolMa
33
36
  private queryAllAvailablePools;
34
37
  handleInitializeEvent(event: LogDescription, log: Log): Promise<PoolManagerState>;
35
38
  private isPoolWithUnconventionalFees;
39
+ private getHook;
36
40
  private getBitmapRange;
37
41
  generateMultiplePoolStates(pools: SubgraphConnectorPool[], blockNumber: number): Promise<(PoolState | null)[]>;
42
+ private isHookSupported;
38
43
  }