@paraswap/dex-lib 4.7.17 → 4.7.18

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 (32) hide show
  1. package/build/abi/pharaoh-v3/PharaohV3Factory.abi.json +101 -0
  2. package/build/dex/uniswap-v2/constants.js +2 -0
  3. package/build/dex/uniswap-v2/constants.js.map +1 -1
  4. package/build/dex/uniswap-v4/config.js +2 -0
  5. package/build/dex/uniswap-v4/config.js.map +1 -1
  6. package/build/dex/uniswap-v4/contract-math/uniswap-v4-pool-math.d.ts +2 -1
  7. package/build/dex/uniswap-v4/contract-math/uniswap-v4-pool-math.js +28 -9
  8. package/build/dex/uniswap-v4/contract-math/uniswap-v4-pool-math.js.map +1 -1
  9. package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.d.ts +2 -2
  10. package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.js +11 -10
  11. package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.js.map +1 -1
  12. package/build/dex/uniswap-v4/hooks/arena/arena-hook.d.ts +1 -1
  13. package/build/dex/uniswap-v4/hooks/arena/arena-hook.js +16 -10
  14. package/build/dex/uniswap-v4/hooks/arena/arena-hook.js.map +1 -1
  15. package/build/dex/uniswap-v4/hooks/types.d.ts +14 -10
  16. package/build/dex/uniswap-v4/subgraph.d.ts +4 -4
  17. package/build/dex/uniswap-v4/subgraph.js +24 -21
  18. package/build/dex/uniswap-v4/subgraph.js.map +1 -1
  19. package/build/dex/uniswap-v4/types.d.ts +2 -0
  20. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.d.ts +7 -1
  21. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js +54 -9
  22. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js.map +1 -1
  23. package/build/dex/uniswap-v4/uniswap-v4-pool.d.ts +3 -1
  24. package/build/dex/uniswap-v4/uniswap-v4-pool.js +3 -1
  25. package/build/dex/uniswap-v4/uniswap-v4-pool.js.map +1 -1
  26. package/build/dex/uniswap-v4/uniswap-v4.d.ts +3 -1
  27. package/build/dex/uniswap-v4/uniswap-v4.js +15 -5
  28. package/build/dex/uniswap-v4/uniswap-v4.js.map +1 -1
  29. package/build/dex/uniswap-v4/utils.d.ts +2 -1
  30. package/build/dex/uniswap-v4/utils.js +11 -0
  31. package/build/dex/uniswap-v4/utils.js.map +1 -1
  32. package/package.json +3 -2
@@ -1,4 +1,42 @@
1
1
  [
2
+ {
3
+ "anonymous": false,
4
+ "inputs": [
5
+ {
6
+ "indexed": false,
7
+ "internalType": "address",
8
+ "name": "pool",
9
+ "type": "address"
10
+ },
11
+ {
12
+ "indexed": false,
13
+ "internalType": "uint24",
14
+ "name": "newFee",
15
+ "type": "uint24"
16
+ }
17
+ ],
18
+ "name": "FeeAdjustment",
19
+ "type": "event"
20
+ },
21
+ {
22
+ "anonymous": false,
23
+ "inputs": [
24
+ {
25
+ "indexed": true,
26
+ "internalType": "address",
27
+ "name": "oldFeeCollector",
28
+ "type": "address"
29
+ },
30
+ {
31
+ "indexed": true,
32
+ "internalType": "address",
33
+ "name": "newFeeCollector",
34
+ "type": "address"
35
+ }
36
+ ],
37
+ "name": "FeeCollectorChanged",
38
+ "type": "event"
39
+ },
2
40
  {
3
41
  "anonymous": false,
4
42
  "inputs": [
@@ -35,5 +73,68 @@
35
73
  ],
36
74
  "name": "PoolCreated",
37
75
  "type": "event"
76
+ },
77
+ {
78
+ "anonymous": false,
79
+ "inputs": [
80
+ {
81
+ "indexed": false,
82
+ "internalType": "uint24",
83
+ "name": "feeProtocolOld",
84
+ "type": "uint24"
85
+ },
86
+ {
87
+ "indexed": false,
88
+ "internalType": "uint24",
89
+ "name": "feeProtocolNew",
90
+ "type": "uint24"
91
+ }
92
+ ],
93
+ "name": "SetFeeProtocol",
94
+ "type": "event"
95
+ },
96
+ {
97
+ "anonymous": false,
98
+ "inputs": [
99
+ {
100
+ "indexed": false,
101
+ "internalType": "address",
102
+ "name": "pool",
103
+ "type": "address"
104
+ },
105
+ {
106
+ "indexed": false,
107
+ "internalType": "uint24",
108
+ "name": "feeProtocolOld",
109
+ "type": "uint24"
110
+ },
111
+ {
112
+ "indexed": false,
113
+ "internalType": "uint24",
114
+ "name": "feeProtocolNew",
115
+ "type": "uint24"
116
+ }
117
+ ],
118
+ "name": "SetPoolFeeProtocol",
119
+ "type": "event"
120
+ },
121
+ {
122
+ "anonymous": false,
123
+ "inputs": [
124
+ {
125
+ "indexed": true,
126
+ "internalType": "int24",
127
+ "name": "tickSpacing",
128
+ "type": "int24"
129
+ },
130
+ {
131
+ "indexed": true,
132
+ "internalType": "uint24",
133
+ "name": "fee",
134
+ "type": "uint24"
135
+ }
136
+ ],
137
+ "name": "TickSpacingEnabled",
138
+ "type": "event"
38
139
  }
39
140
  ]
@@ -40,5 +40,7 @@ exports.UniswapV2Alias = {
40
40
  [constants_1.Network.ARBITRUM]: 'uniswapv2',
41
41
  [constants_1.Network.OPTIMISM]: 'uniswapv2',
42
42
  [constants_1.Network.BASE]: 'uniswapv2',
43
+ [constants_1.Network.GNOSIS]: 'uniswapv2',
44
+ [constants_1.Network.UNICHAIN]: 'uniswapv2',
43
45
  };
44
46
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/uniswap-v2/constants.ts"],"names":[],"mappings":";;;AAAA,+CAA0C;AAC1C,qCAA2C;AAC3C,iCAAoC;AACpC,qCAAwC;AACxC,iCAAoC;AAEpC,wFAAwF;AACxF,4EAA4E;AAC5E,4BAA4B;AAEf,QAAA,eAAe,GAAG;IAC7B,GAAG,MAAM,CAAC,IAAI,CAAC,wBAAe,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,YAAY,CAAC;IACzE,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAU,CAAC;IAC1B,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAY,CAAC;IAC5B,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAU,CAAC;CAC3B,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,MAE9B,EAAE,EAAE,CACH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAC3B,CACE,GAAoC,EACpC,CAAC,MAAM,EAAE,aAAa,CAA4C,EAClE,EAAE;IACF,IAAI,MAAM,KAAK,YAAY;QAAE,OAAO,GAAG,CAAC;IACxC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,EAAU,EAAE,EAAE;QAChD,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvB,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAC7B,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC,EACD,EAAE,CACH,CAAC;AAES,QAAA,uBAAuB,GAAG,qBAAqB,CAAC;IAC3D,GAAG,wBAAe;IAClB,GAAG,iBAAU;IACb,GAAG,qBAAY;IACf,GAAG,iBAAU;CACd,CAAC,CAAC;AAEU,QAAA,cAAc,GAAkC;IAC3D,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE,WAAW;IAC9B,CAAC,mBAAO,CAAC,GAAG,CAAC,EAAE,WAAW;IAC1B,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE,WAAW;IAC9B,CAAC,mBAAO,CAAC,SAAS,CAAC,EAAE,WAAW;IAChC,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE,WAAW;IAC/B,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE,WAAW;IAC/B,CAAC,mBAAO,CAAC,IAAI,CAAC,EAAE,WAAW;CAC5B,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/dex/uniswap-v2/constants.ts"],"names":[],"mappings":";;;AAAA,+CAA0C;AAC1C,qCAA2C;AAC3C,iCAAoC;AACpC,qCAAwC;AACxC,iCAAoC;AAEpC,wFAAwF;AACxF,4EAA4E;AAC5E,4BAA4B;AAEf,QAAA,eAAe,GAAG;IAC7B,GAAG,MAAM,CAAC,IAAI,CAAC,wBAAe,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,KAAK,YAAY,CAAC;IACzE,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAU,CAAC;IAC1B,GAAG,MAAM,CAAC,IAAI,CAAC,qBAAY,CAAC;IAC5B,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAU,CAAC;CAC3B,CAAC;AAEF,MAAM,qBAAqB,GAAG,CAAC,MAE9B,EAAE,EAAE,CACH,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAC3B,CACE,GAAoC,EACpC,CAAC,MAAM,EAAE,aAAa,CAA4C,EAClE,EAAE;IACF,IAAI,MAAM,KAAK,YAAY;QAAE,OAAO,GAAG,CAAC;IACxC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,EAAU,EAAE,EAAE;QAChD,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvB,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC;YAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;QAC7B,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IACH,OAAO,GAAG,CAAC;AACb,CAAC,EACD,EAAE,CACH,CAAC;AAES,QAAA,uBAAuB,GAAG,qBAAqB,CAAC;IAC3D,GAAG,wBAAe;IAClB,GAAG,iBAAU;IACb,GAAG,qBAAY;IACf,GAAG,iBAAU;CACd,CAAC,CAAC;AAEU,QAAA,cAAc,GAAkC;IAC3D,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE,WAAW;IAC9B,CAAC,mBAAO,CAAC,GAAG,CAAC,EAAE,WAAW;IAC1B,CAAC,mBAAO,CAAC,OAAO,CAAC,EAAE,WAAW;IAC9B,CAAC,mBAAO,CAAC,SAAS,CAAC,EAAE,WAAW;IAChC,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE,WAAW;IAC/B,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE,WAAW;IAC/B,CAAC,mBAAO,CAAC,IAAI,CAAC,EAAE,WAAW;IAC3B,CAAC,mBAAO,CAAC,MAAM,CAAC,EAAE,WAAW;IAC7B,CAAC,mBAAO,CAAC,QAAQ,CAAC,EAAE,WAAW;CAChC,CAAC"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.UniswapV4PoolsList = exports.UniswapV4Config = void 0;
4
4
  const constants_1 = require("../../constants");
5
+ const arena_hook_1 = require("./hooks/arena/arena-hook");
5
6
  exports.UniswapV4Config = {
6
7
  UniswapV4: {
7
8
  [constants_1.Network.MAINNET]: {
@@ -53,6 +54,7 @@ exports.UniswapV4Config = {
53
54
  router: '0x94b75331ae8d42c1b61065089b7d48fe14aa73b7',
54
55
  stateView: '0xc3c9e198c735a4b97e3e683f391ccbdd60b69286',
55
56
  stateMulticall: '0xf03feb5d6b26a68a773f1a77d7880fc5bdcc0581',
57
+ supportedHooks: [arena_hook_1.ArenaHook],
56
58
  },
57
59
  [constants_1.Network.BSC]: {
58
60
  poolManager: '0x28e2ea090877bf75740558f6bfb36a5ffee9e9df',
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/uniswap-v4/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/dex/uniswap-v4/config.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { PoolState, ModifyLiquidityParams, Pool } from '../types';
2
2
  import { DeepReadonly } from 'ts-essentials';
3
3
  import { SwapSide } from '@paraswap/core';
4
4
  import { Logger } from 'log4js';
5
+ import { IBaseHook } from '../hooks/types';
5
6
  type SwapParams = {
6
7
  amountSpecified: bigint;
7
8
  tickSpacing: bigint;
@@ -10,7 +11,7 @@ type SwapParams = {
10
11
  lpFeeOverride: bigint;
11
12
  };
12
13
  declare class UniswapV4PoolMath {
13
- queryOutputs(pool: Pool, poolState: DeepReadonly<PoolState>, amounts: bigint[], zeroForOne: boolean, side: SwapSide): bigint[] | null;
14
+ queryOutputs(pool: Pool, poolState: DeepReadonly<PoolState>, amounts: bigint[], zeroForOne: boolean, side: SwapSide, hook?: IBaseHook): bigint[];
14
15
  _swap(poolState: PoolState, params: SwapParams): [bigint, bigint];
15
16
  tickSpacingToMaxLiquidityPerTick(tickSpacing: bigint): bigint;
16
17
  checkPoolInitialized(poolState: PoolState): void;
@@ -15,29 +15,39 @@ const BalanceDelta_1 = require("./BalanceDelta");
15
15
  const core_1 = require("@paraswap/core");
16
16
  const constants_1 = require("../constants");
17
17
  const LPFeeLibrary_1 = require("./LPFeeLibrary");
18
+ const constants_2 = require("../../../constants");
18
19
  class UniswapV4PoolMath {
19
- queryOutputs(pool, poolState, amounts, zeroForOne, side) {
20
+ queryOutputs(pool, poolState, amounts, zeroForOne, side, hook) {
20
21
  const isSell = side === core_1.SwapSide.SELL;
21
22
  if (isSell) {
22
23
  return amounts.map(amount => {
23
24
  if (amount === 0n) {
24
25
  return 0n;
25
26
  }
27
+ const sqrtPriceLimitX96 = zeroForOne
28
+ ? TickMath_1.TickMath.MIN_SQRT_PRICE + 1n
29
+ : TickMath_1.TickMath.MAX_SQRT_PRICE - 1n;
26
30
  const amountSpecified = -amount;
27
31
  const [amount0, amount1] = this._swap(poolState, {
28
32
  zeroForOne,
29
33
  amountSpecified,
30
34
  tickSpacing: BigInt(pool.key.tickSpacing),
31
- sqrtPriceLimitX96: zeroForOne
32
- ? TickMath_1.TickMath.MIN_SQRT_PRICE + 1n
33
- : TickMath_1.TickMath.MAX_SQRT_PRICE - 1n,
35
+ sqrtPriceLimitX96,
34
36
  lpFeeOverride: 0n,
35
37
  });
36
38
  const amountSpecifiedActual = zeroForOne === amountSpecified < 0n ? amount0 : amount1;
37
39
  if (amountSpecifiedActual !== amountSpecified) {
38
40
  return 0n;
39
41
  }
40
- return zeroForOne ? amount1 : amount0;
42
+ let output = zeroForOne ? amount1 : amount0;
43
+ if (hook?.getHookPermissions().afterSwap) {
44
+ output = hook.afterSwap(constants_2.NULL_ADDRESS, pool.key, {
45
+ zeroForOne,
46
+ amountSpecified: amountSpecified.toString(),
47
+ sqrtPriceLimitX96: sqrtPriceLimitX96.toString(),
48
+ }, { amount0, amount1 }, '0x');
49
+ }
50
+ return output;
41
51
  });
42
52
  }
43
53
  else {
@@ -45,21 +55,30 @@ class UniswapV4PoolMath {
45
55
  if (amount === 0n) {
46
56
  return 0n;
47
57
  }
58
+ const sqrtPriceLimitX96 = zeroForOne
59
+ ? TickMath_1.TickMath.MIN_SQRT_PRICE + 1n
60
+ : TickMath_1.TickMath.MAX_SQRT_PRICE - 1n;
48
61
  const amountSpecified = amount;
49
62
  const [amount0, amount1] = this._swap(poolState, {
50
63
  zeroForOne,
51
64
  amountSpecified: amount,
52
65
  tickSpacing: BigInt(pool.key.tickSpacing),
53
- sqrtPriceLimitX96: zeroForOne
54
- ? TickMath_1.TickMath.MIN_SQRT_PRICE + 1n
55
- : TickMath_1.TickMath.MAX_SQRT_PRICE - 1n,
66
+ sqrtPriceLimitX96,
56
67
  lpFeeOverride: 0n,
57
68
  });
58
69
  const amountSpecifiedActual = zeroForOne === amountSpecified < 0n ? amount0 : amount1;
59
70
  if (amountSpecifiedActual !== amountSpecified) {
60
71
  return 0n;
61
72
  }
62
- return zeroForOne ? -amount0 : -amount1;
73
+ let output = zeroForOne ? -amount0 : -amount1;
74
+ if (hook?.getHookPermissions().afterSwap) {
75
+ output = hook.afterSwap(constants_2.NULL_ADDRESS, pool.key, {
76
+ zeroForOne,
77
+ amountSpecified: amountSpecified.toString(),
78
+ sqrtPriceLimitX96: sqrtPriceLimitX96.toString(),
79
+ }, { amount0, amount1 }, '0x');
80
+ }
81
+ return output;
63
82
  });
64
83
  }
65
84
  }
@@ -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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"}
@@ -23,12 +23,12 @@ export declare class ArenaFeeHelper extends StatefulEventSubscriber<ArenaFeeHelp
23
23
  logDecoder: (log: Log) => any;
24
24
  private readonly feeHelperAddress;
25
25
  private readonly feeHelper;
26
- protected poolIds: string[];
26
+ protected poolIds: Set<string>;
27
27
  constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, ArenaFeeHelperIface?: Interface);
28
28
  initialize(blockNumber: number, options?: InitializeStateOptions<ArenaFeeHelperState>): Promise<void>;
29
29
  protected processLog(state: DeepReadonly<ArenaFeeHelperState>, log: Readonly<Log>): DeepReadonly<ArenaFeeHelperState> | null;
30
30
  generateState(blockNumber?: number | 'latest'): Promise<DeepReadonly<ArenaFeeHelperState>>;
31
- addPoolIds(poolIds: string[]): void;
31
+ addPoolId(poolId: string): void;
32
32
  getOrGenerateState(blockNumber: number): Promise<ArenaFeeHelperState>;
33
33
  handleFeeArraySet(event: any, state: DeepReadonly<ArenaFeeHelperState>, log: Readonly<Log>): DeepReadonly<ArenaFeeHelperState> | null;
34
34
  handleProtocolFeeSettingsSet(event: any, state: DeepReadonly<ArenaFeeHelperState>, log: Readonly<Log>): DeepReadonly<ArenaFeeHelperState> | null;
@@ -20,7 +20,7 @@ class ArenaFeeHelper extends stateful_event_subscriber_1.StatefulEventSubscriber
20
20
  logDecoder;
21
21
  feeHelperAddress;
22
22
  feeHelper;
23
- poolIds = [];
23
+ poolIds = new Set();
24
24
  constructor(parentName, network, dexHelper, logger, ArenaFeeHelperIface = new utils_1.Interface(arena_fee_helper_abi_json_1.default)) {
25
25
  super(parentName, 'ArenaFeeHelper', dexHelper, logger, false);
26
26
  this.parentName = parentName;
@@ -55,7 +55,8 @@ class ArenaFeeHelper extends stateful_event_subscriber_1.StatefulEventSubscriber
55
55
  const protocolFeeSettings = await this.feeHelper.protocolFeeSettings();
56
56
  const poolIdToTotalFeePpm = {};
57
57
  const calls = [];
58
- for (const poolId of this.poolIds) {
58
+ const poolIds = Array.from(this.poolIds);
59
+ for (const poolId of poolIds) {
59
60
  calls.push({
60
61
  target: this.feeHelperAddress,
61
62
  callData: this.feeHelper.interface.encodeFunctionData('poolIdToTotalFeePpm', [poolId]),
@@ -64,7 +65,7 @@ class ArenaFeeHelper extends stateful_event_subscriber_1.StatefulEventSubscriber
64
65
  }
65
66
  const data = await this.dexHelper.multiWrapper.tryAggregate(false, calls);
66
67
  data.forEach((result, index) => {
67
- poolIdToTotalFeePpm[this.poolIds[index]] = result.success
68
+ poolIdToTotalFeePpm[poolIds[index]] = result.success
68
69
  ? result.returnData
69
70
  : 0n;
70
71
  });
@@ -73,16 +74,16 @@ class ArenaFeeHelper extends stateful_event_subscriber_1.StatefulEventSubscriber
73
74
  poolIdToTotalFeePpm,
74
75
  };
75
76
  }
76
- addPoolIds(poolIds) {
77
- this.poolIds.push(...poolIds);
77
+ addPoolId(poolId) {
78
+ if (this.poolIds.has(poolId))
79
+ return;
80
+ this.poolIds.add(poolId);
78
81
  const state = this.getStaleState();
79
82
  if (state) {
80
83
  const poolIdToTotalFeePpm = { ...state.poolIdToTotalFeePpm };
81
- [...poolIds].forEach(poolId => {
82
- if (!(poolId in poolIdToTotalFeePpm)) {
83
- poolIdToTotalFeePpm[poolId] = 0n;
84
- }
85
- });
84
+ if (!(poolId in poolIdToTotalFeePpm)) {
85
+ poolIdToTotalFeePpm[poolId] = 0n;
86
+ }
86
87
  this.setState({
87
88
  ...state,
88
89
  poolIdToTotalFeePpm,
@@ -1 +1 @@
1
- {"version":3,"file":"arena-fee-helper.js","sourceRoot":"","sources":["../../../../../src/dex/uniswap-v4/hooks/arena/arena-fee-helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"arena-fee-helper.js","sourceRoot":"","sources":["../../../../../src/dex/uniswap-v4/hooks/arena/arena-fee-helper.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,6 @@ export declare class ArenaHook implements IBaseHook {
16
16
  registerPool(poolId: string, _poolKey: PoolKey): void;
17
17
  initialize(blockNumber: number): Promise<void>;
18
18
  getHookPermissions(): HooksPermissions;
19
- afterSwap(_sender: string, key: PoolKey, params: SwapParams, delta: BalanceDelta, _hookData: string): Promise<bigint>;
19
+ afterSwap(_sender: string, key: PoolKey, params: SwapParams, delta: BalanceDelta, _hookData: string): bigint;
20
20
  private getTotalFeePpm;
21
21
  }
@@ -25,7 +25,7 @@ class ArenaHook {
25
25
  this.arenaFeeHelper = new arena_fee_helper_1.ArenaFeeHelper(this.name, network, dexHelper, logger);
26
26
  }
27
27
  registerPool(poolId, _poolKey) {
28
- this.arenaFeeHelper.addPoolIds([poolId]);
28
+ this.arenaFeeHelper.addPoolId(poolId.toLowerCase());
29
29
  }
30
30
  async initialize(blockNumber) {
31
31
  if (!this.arenaFeeHelper.isInitialized) {
@@ -50,34 +50,40 @@ class ArenaHook {
50
50
  afterRemoveLiquidityReturnDelta: false,
51
51
  };
52
52
  }
53
- async afterSwap(_sender, key, params, delta, _hookData) {
54
- const amountSpecified = BigInt(params.amountSpecified);
55
- const isExactInput = amountSpecified < 0n;
56
- const unspecifiedDelta = amountSpecified < 0n === params.zeroForOne
57
- ? delta.amount1
58
- : delta.amount0;
53
+ afterSwap(_sender, key, params, delta, _hookData) {
54
+ const { amountSpecified, zeroForOne } = params;
55
+ const isExactInput = BigInt(amountSpecified) < 0n;
56
+ // Determine the unspecified (output) delta based on swap direction and type:
57
+ // - ExactInput + zeroForOne: input is token0, output is token1 (amount1)
58
+ // - ExactInput + oneForZero: input is token1, output is token0 (amount0)
59
+ // - ExactOutput + zeroForOne: output is token1, input is token0 (amount0 is unspecified)
60
+ // - ExactOutput + oneForZero: output is token0, input is token1 (amount1 is unspecified)
61
+ const outputIsToken1 = isExactInput === zeroForOne;
62
+ const unspecifiedDelta = outputIsToken1 ? delta.amount1 : delta.amount0;
59
63
  if (unspecifiedDelta === 0n) {
60
64
  return 0n;
61
65
  }
62
66
  const output = unspecifiedDelta < 0n ? -unspecifiedDelta : unspecifiedDelta;
63
67
  (0, utils_2._require)(output <= UINT128_MAX, 'Unspecified output exceeds uint128', { output }, 'output <= UINT128_MAX');
64
68
  const totalFeePpm = this.getTotalFeePpm((0, utils_1.toId)(key));
65
- if (totalFeePpm === 0n) {
69
+ if (totalFeePpm === null || totalFeePpm === 0n) {
66
70
  return 0n;
67
71
  }
68
72
  (0, utils_2._require)(totalFeePpm <= MAX_HOOK_FEE, 'Hook fee too large', { totalFeePpm }, 'totalFeePpm <= MAX_HOOK_FEE');
69
73
  const feeAmount = (output * totalFeePpm) / MAX_HOOK_FEE;
70
74
  (0, utils_2._require)(feeAmount <= INT128_MAX, 'Hook fee exceeds int128', { feeAmount }, 'feeAmount <= INT128_MAX');
75
+ // For exact input: user receives output minus fee
76
+ // For exact output: user must provide more input to cover fee
71
77
  const netOutput = isExactInput ? output - feeAmount : output + feeAmount;
72
78
  return netOutput;
73
79
  }
74
80
  getTotalFeePpm(poolId) {
75
81
  if (!this.arenaFeeHelper?.isInitialized) {
76
- return 0n;
82
+ return null;
77
83
  }
78
84
  const state = this.arenaFeeHelper.getStaleState();
79
85
  if (!state) {
80
- return 0n;
86
+ return null;
81
87
  }
82
88
  const poolFee = state.poolIdToTotalFeePpm[poolId] ?? 0n;
83
89
  return poolFee + BigInt(state.protocolFeePpm);
@@ -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":";;;AACA,qCAA2C;AAU3C,uCAAmC;AACnC,6CAA6C;AAC7C,yDAAoD;AAEpD,MAAM,YAAY,GAAG,QAAU,CAAC,CAAC,OAAO;AACxC,MAAM,WAAW,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AACtC,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;AAErC,MAAa,SAAS;IAMT;IACA;IACA;IACA;IARF,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IAC7B,OAAO,CAAS;IAChB,cAAc,CAAiB;IAExC,YACW,SAAqB,EACrB,OAAgB,EAChB,MAAc,EACd,mBAAmB,wBAAe,CACzC,OAAO,CACR,CAAC,gBAAgB,CAAC,WAAW,EAAE;QALvB,cAAS,GAAT,SAAS,CAAY;QACrB,YAAO,GAAP,OAAO,CAAS;QAChB,WAAM,GAAN,MAAM,CAAQ;QACd,qBAAgB,GAAhB,gBAAgB,CAEO;QAEhC,IAAI,CAAC,OAAO,GAAG,wBAAe,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;QAElE,IAAI,CAAC,cAAc,GAAG,IAAI,iCAAc,CACtC,IAAI,CAAC,IAAI,EACT,OAAO,EACP,SAAS,EACT,MAAM,CACP,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,MAAc,EAAE,QAAiB;QAC5C,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,WAAmB;QAClC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACpD,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,OAAO;YACL,gBAAgB,EAAE,IAAI;YACtB,eAAe,EAAE,KAAK;YACtB,kBAAkB,EAAE,KAAK;YACzB,iBAAiB,EAAE,KAAK;YACxB,qBAAqB,EAAE,KAAK;YAC5B,oBAAoB,EAAE,KAAK;YAC3B,UAAU,EAAE,KAAK;YACjB,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,KAAK;YACnB,WAAW,EAAE,KAAK;YAClB,qBAAqB,EAAE,KAAK;YAC5B,oBAAoB,EAAE,IAAI;YAC1B,4BAA4B,EAAE,KAAK;YACnC,+BAA+B,EAAE,KAAK;SACvC,CAAC;IACJ,CAAC;IAED,SAAS,CACP,OAAe,EACf,GAAY,EACZ,MAAkB,EAClB,KAAmB,EACnB,SAAiB;QAEjB,MAAM,EAAE,eAAe,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC;QAE/C,MAAM,YAAY,GAAG,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC;QAElD,6EAA6E;QAC7E,yEAAyE;QACzE,yEAAyE;QACzE,yFAAyF;QACzF,yFAAyF;QACzF,MAAM,cAAc,GAAG,YAAY,KAAK,UAAU,CAAC;QACnD,MAAM,gBAAgB,GAAG,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QAExE,IAAI,gBAAgB,KAAK,EAAE,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,MAAM,GAAG,gBAAgB,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;QAE5E,IAAA,gBAAQ,EACN,MAAM,IAAI,WAAW,EACrB,oCAAoC,EACpC,EAAE,MAAM,EAAE,EACV,uBAAuB,CACxB,CAAC;QAEF,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,IAAA,YAAI,EAAC,GAAG,CAAC,CAAC,CAAC;QAEnD,IAAI,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,EAAE,EAAE,CAAC;YAC/C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAA,gBAAQ,EACN,WAAW,IAAI,YAAY,EAC3B,oBAAoB,EACpB,EAAE,WAAW,EAAE,EACf,6BAA6B,CAC9B,CAAC;QAEF,MAAM,SAAS,GAAG,CAAC,MAAM,GAAG,WAAW,CAAC,GAAG,YAAY,CAAC;QAExD,IAAA,gBAAQ,EACN,SAAS,IAAI,UAAU,EACvB,yBAAyB,EACzB,EAAE,SAAS,EAAE,EACb,yBAAyB,CAC1B,CAAC;QAEF,kDAAkD;QAClD,8DAA8D;QAC9D,MAAM,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;QAEzE,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,cAAc,CAAC,MAAc;QACnC,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,CAAC;YACxC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QAClD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAExD,OAAO,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAChD,CAAC;CACF;AA/HD,8BA+HC"}
@@ -46,15 +46,19 @@ export interface IBaseHook {
46
46
  getHookPermissions(): HooksPermissions;
47
47
  registerPool(poolId: string, poolKey: PoolKey): void;
48
48
  initialize(blockNumber: number): Promise<void>;
49
- beforeInitialize?(sender: string, key: PoolKey, sqrtPriceX96: string): Promise<string>;
50
- afterInitialize?(sender: string, key: PoolKey, sqrtPriceX96: string, tick: number): Promise<string>;
51
- beforeAddLiquidity?(sender: string, key: PoolKey, params: ModifyLiquidityParams, hookData: string): Promise<string>;
52
- beforeRemoveLiquidity?(sender: string, key: PoolKey, params: ModifyLiquidityParams, hookData: string): Promise<string>;
53
- afterAddLiquidity?(sender: string, key: PoolKey, params: ModifyLiquidityParams, delta0: BalanceDelta, delta1: BalanceDelta, hookData: string): Promise<[string, BalanceDelta]>;
54
- afterRemoveLiquidity?(sender: string, key: PoolKey, params: ModifyLiquidityParams, delta0: BalanceDelta, delta1: BalanceDelta, hookData: string): Promise<[string, BalanceDelta]>;
55
- beforeSwap?(sender: string, key: PoolKey, params: SwapParams, hookData: string): Promise<[string, BeforeSwapDelta, number]>;
56
- afterSwap?(sender: string, key: PoolKey, params: SwapParams, delta: BalanceDelta, hookData: string): Promise<bigint>;
57
- beforeDonate?(sender: string, key: PoolKey, amount0: string, amount1: string, hookData: string): Promise<string>;
58
- afterDonate?(sender: string, key: PoolKey, amount0: string, amount1: string, hookData: string): Promise<string>;
49
+ beforeInitialize?(sender: string, key: PoolKey, sqrtPriceX96: string): string;
50
+ afterInitialize?(sender: string, key: PoolKey, sqrtPriceX96: string, tick: number): string;
51
+ beforeAddLiquidity?(sender: string, key: PoolKey, params: ModifyLiquidityParams, hookData: string): string;
52
+ beforeRemoveLiquidity?(sender: string, key: PoolKey, params: ModifyLiquidityParams, hookData: string): string;
53
+ afterAddLiquidity?(sender: string, key: PoolKey, params: ModifyLiquidityParams, delta0: BalanceDelta, delta1: BalanceDelta, hookData: string): [string, BalanceDelta];
54
+ afterRemoveLiquidity?(sender: string, key: PoolKey, params: ModifyLiquidityParams, delta0: BalanceDelta, delta1: BalanceDelta, hookData: string): [string, BalanceDelta];
55
+ beforeSwap?(sender: string, key: PoolKey, params: SwapParams, hookData: string): [string, BeforeSwapDelta, number];
56
+ /**
57
+ * The hook implementing this method should return the final
58
+ * modified amount exactly as swapExactAmountIn/Out would return
59
+ */
60
+ afterSwap?(sender: string, key: PoolKey, params: SwapParams, delta: BalanceDelta, hookData: string): bigint;
61
+ beforeDonate?(sender: string, key: PoolKey, amount0: string, amount1: string, hookData: string): string;
62
+ afterDonate?(sender: string, key: PoolKey, amount0: string, amount1: string, hookData: string): string;
59
63
  }
60
64
  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[]>;