@paraswap/dex-lib 4.7.16 → 4.7.17-uniswap-v4-hooks-support.1

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 (35) hide show
  1. package/build/dex/uniswap-v4/config.js +2 -0
  2. package/build/dex/uniswap-v4/config.js.map +1 -1
  3. package/build/dex/uniswap-v4/contract-math/uniswap-v4-pool-math.d.ts +2 -1
  4. package/build/dex/uniswap-v4/contract-math/uniswap-v4-pool-math.js +32 -13
  5. package/build/dex/uniswap-v4/contract-math/uniswap-v4-pool-math.js.map +1 -1
  6. package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.d.ts +36 -0
  7. package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.js +124 -0
  8. package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.js.map +1 -0
  9. package/build/dex/uniswap-v4/hooks/arena/arena-hook.d.ts +18 -14
  10. package/build/dex/uniswap-v4/hooks/arena/arena-hook.js +52 -62
  11. package/build/dex/uniswap-v4/hooks/arena/arena-hook.js.map +1 -1
  12. package/build/dex/uniswap-v4/hooks/arena/config.d.ts +3 -0
  13. package/build/dex/uniswap-v4/hooks/arena/config.js +11 -0
  14. package/build/dex/uniswap-v4/hooks/arena/config.js.map +1 -0
  15. package/build/dex/uniswap-v4/hooks/arena/types.d.ts +5 -0
  16. package/build/dex/uniswap-v4/hooks/arena/types.js +3 -0
  17. package/build/dex/uniswap-v4/hooks/arena/types.js.map +1 -0
  18. package/build/dex/uniswap-v4/hooks/types.d.ts +13 -3
  19. package/build/dex/uniswap-v4/subgraph.d.ts +4 -4
  20. package/build/dex/uniswap-v4/subgraph.js +68 -41
  21. package/build/dex/uniswap-v4/subgraph.js.map +1 -1
  22. package/build/dex/uniswap-v4/types.d.ts +2 -0
  23. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.d.ts +7 -1
  24. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js +53 -7
  25. package/build/dex/uniswap-v4/uniswap-v4-pool-manager.js.map +1 -1
  26. package/build/dex/uniswap-v4/uniswap-v4-pool.d.ts +3 -1
  27. package/build/dex/uniswap-v4/uniswap-v4-pool.js +3 -1
  28. package/build/dex/uniswap-v4/uniswap-v4-pool.js.map +1 -1
  29. package/build/dex/uniswap-v4/uniswap-v4.d.ts +3 -1
  30. package/build/dex/uniswap-v4/uniswap-v4.js +15 -5
  31. package/build/dex/uniswap-v4/uniswap-v4.js.map +1 -1
  32. package/build/dex/uniswap-v4/utils.d.ts +2 -1
  33. package/build/dex/uniswap-v4/utils.js +11 -0
  34. package/build/dex/uniswap-v4/utils.js.map +1 -1
  35. package/package.json +1 -1
@@ -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): Promise<bigint[]>;
14
15
  _swap(poolState: PoolState, params: SwapParams): [bigint, bigint];
15
16
  tickSpacingToMaxLiquidityPerTick(tickSpacing: bigint): bigint;
16
17
  checkPoolInitialized(poolState: PoolState): void;
@@ -15,52 +15,71 @@ 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
+ async queryOutputs(pool, poolState, amounts, zeroForOne, side, hook) {
20
21
  const isSell = side === core_1.SwapSide.SELL;
21
22
  if (isSell) {
22
- return amounts.map(amount => {
23
+ return Promise.all(amounts.map(async (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;
41
- });
42
+ let output = zeroForOne ? amount1 : amount0;
43
+ if (hook?.getHookPermissions().afterSwap) {
44
+ output = await 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;
51
+ }));
42
52
  }
43
53
  else {
44
- return amounts.map(amount => {
54
+ return Promise.all(amounts.map(async (amount) => {
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;
63
- });
73
+ let output = zeroForOne ? -amount0 : -amount1;
74
+ if (hook?.getHookPermissions().afterSwap) {
75
+ output = await 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;
82
+ }));
64
83
  }
65
84
  }
66
85
  _swap(poolState, params) {
@@ -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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"}
@@ -0,0 +1,36 @@
1
+ import { Interface } from 'ethers/lib/utils';
2
+ import { InitializeStateOptions, StatefulEventSubscriber } from '../../../../stateful-event-subscriber';
3
+ import { IDexHelper } from '../../../../dex-helper';
4
+ import { Logger, Log, Address } from '../../../../types';
5
+ import { DeepReadonly } from 'ts-essentials';
6
+ type ProtocolFeeSettings = {
7
+ recipient: Address;
8
+ protocolFeePpm: number;
9
+ referralFeePpm: number;
10
+ };
11
+ export type ArenaFeeHelperState = {
12
+ protocolFeePpm: ProtocolFeeSettings['protocolFeePpm'];
13
+ poolIdToTotalFeePpm: Record<string, bigint>;
14
+ };
15
+ export declare class ArenaFeeHelper extends StatefulEventSubscriber<ArenaFeeHelperState> {
16
+ readonly parentName: string;
17
+ protected network: number;
18
+ protected dexHelper: IDexHelper;
19
+ protected ArenaFeeHelperIface: Interface;
20
+ handlers: {
21
+ [event: string]: (event: any, state: DeepReadonly<ArenaFeeHelperState>, log: Readonly<Log>) => DeepReadonly<ArenaFeeHelperState> | null;
22
+ };
23
+ logDecoder: (log: Log) => any;
24
+ private readonly feeHelperAddress;
25
+ private readonly feeHelper;
26
+ protected poolIds: string[];
27
+ constructor(parentName: string, network: number, dexHelper: IDexHelper, logger: Logger, ArenaFeeHelperIface?: Interface);
28
+ initialize(blockNumber: number, options?: InitializeStateOptions<ArenaFeeHelperState>): Promise<void>;
29
+ protected processLog(state: DeepReadonly<ArenaFeeHelperState>, log: Readonly<Log>): DeepReadonly<ArenaFeeHelperState> | null;
30
+ generateState(blockNumber?: number | 'latest'): Promise<DeepReadonly<ArenaFeeHelperState>>;
31
+ addPoolIds(poolIds: string[]): void;
32
+ getOrGenerateState(blockNumber: number): Promise<ArenaFeeHelperState>;
33
+ handleFeeArraySet(event: any, state: DeepReadonly<ArenaFeeHelperState>, log: Readonly<Log>): DeepReadonly<ArenaFeeHelperState> | null;
34
+ handleProtocolFeeSettingsSet(event: any, state: DeepReadonly<ArenaFeeHelperState>, log: Readonly<Log>): DeepReadonly<ArenaFeeHelperState> | null;
35
+ }
36
+ export {};
@@ -0,0 +1,124 @@
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.ArenaFeeHelper = void 0;
7
+ const ethers_1 = require("ethers");
8
+ const utils_1 = require("ethers/lib/utils");
9
+ const stateful_event_subscriber_1 = require("../../../../stateful-event-subscriber");
10
+ const arena_fee_helper_abi_json_1 = __importDefault(require("../../../../abi/uniswap-v4/hooks/arena/arena-fee-helper.abi.json"));
11
+ const config_1 = require("./config");
12
+ const utils_2 = require("../../../../utils");
13
+ const decoders_1 = require("../../../../lib/decoders");
14
+ class ArenaFeeHelper extends stateful_event_subscriber_1.StatefulEventSubscriber {
15
+ parentName;
16
+ network;
17
+ dexHelper;
18
+ ArenaFeeHelperIface;
19
+ handlers = {};
20
+ logDecoder;
21
+ feeHelperAddress;
22
+ feeHelper;
23
+ poolIds = [];
24
+ constructor(parentName, network, dexHelper, logger, ArenaFeeHelperIface = new utils_1.Interface(arena_fee_helper_abi_json_1.default)) {
25
+ super(parentName, 'ArenaFeeHelper', dexHelper, logger, false);
26
+ this.parentName = parentName;
27
+ this.network = network;
28
+ this.dexHelper = dexHelper;
29
+ this.ArenaFeeHelperIface = ArenaFeeHelperIface;
30
+ this.feeHelperAddress =
31
+ config_1.ArenaHookConfig[this.network].feeHelperAddress.toLowerCase();
32
+ this.feeHelper = new ethers_1.Contract(this.feeHelperAddress, arena_fee_helper_abi_json_1.default, dexHelper.provider);
33
+ this.logDecoder = (log) => this.ArenaFeeHelperIface.parseLog(log);
34
+ this.addressesSubscribed = [this.feeHelperAddress];
35
+ this.handlers['FeeArraySet'] = this.handleFeeArraySet.bind(this);
36
+ this.handlers['ProtocolFeeSettingsSet'] =
37
+ this.handleProtocolFeeSettingsSet.bind(this);
38
+ }
39
+ async initialize(blockNumber, options) {
40
+ return super.initialize(blockNumber, options);
41
+ }
42
+ processLog(state, log) {
43
+ try {
44
+ const event = this.logDecoder(log);
45
+ if (event.name in this.handlers) {
46
+ return this.handlers[event.name](event, state, log);
47
+ }
48
+ }
49
+ catch (e) {
50
+ (0, utils_2.catchParseLogError)(e, this.logger);
51
+ }
52
+ return null;
53
+ }
54
+ async generateState(blockNumber) {
55
+ const protocolFeeSettings = await this.feeHelper.protocolFeeSettings();
56
+ const poolIdToTotalFeePpm = {};
57
+ const calls = [];
58
+ for (const poolId of this.poolIds) {
59
+ calls.push({
60
+ target: this.feeHelperAddress,
61
+ callData: this.feeHelper.interface.encodeFunctionData('getTotalFeePpm', [poolId]),
62
+ decodeFunction: decoders_1.uint256ToBigInt,
63
+ });
64
+ }
65
+ const data = await this.dexHelper.multiWrapper.tryAggregate(false, calls);
66
+ data.forEach((result, index) => {
67
+ poolIdToTotalFeePpm[this.poolIds[index]] = result.success
68
+ ? result.returnData
69
+ : 0n;
70
+ });
71
+ return {
72
+ protocolFeePpm: protocolFeeSettings.protocolFeePpm,
73
+ poolIdToTotalFeePpm,
74
+ };
75
+ }
76
+ addPoolIds(poolIds) {
77
+ this.poolIds.push(...poolIds);
78
+ const state = this.getStaleState();
79
+ if (state) {
80
+ const poolIdToTotalFeePpm = { ...state.poolIdToTotalFeePpm };
81
+ [...poolIds].forEach(poolId => {
82
+ if (!(poolId in poolIdToTotalFeePpm)) {
83
+ poolIdToTotalFeePpm[poolId] = 0n;
84
+ }
85
+ });
86
+ this.setState({
87
+ ...state,
88
+ poolIdToTotalFeePpm,
89
+ }, this.stateBlockNumber);
90
+ }
91
+ }
92
+ async getOrGenerateState(blockNumber) {
93
+ let state = this.getState(blockNumber);
94
+ if (!state) {
95
+ state = await this.generateState(blockNumber);
96
+ this.setState(state, blockNumber);
97
+ }
98
+ return state;
99
+ }
100
+ handleFeeArraySet(event, state, log) {
101
+ const poolId = event.args.poolId.toLowerCase();
102
+ const fees = event.args.fees;
103
+ let total = 0n;
104
+ for (const fee of fees) {
105
+ total += BigInt(fee.feePpm.toString());
106
+ }
107
+ return {
108
+ protocolFeePpm: state.protocolFeePpm,
109
+ poolIdToTotalFeePpm: {
110
+ ...state.poolIdToTotalFeePpm,
111
+ [poolId]: total,
112
+ },
113
+ };
114
+ }
115
+ handleProtocolFeeSettingsSet(event, state, log) {
116
+ const settings = event.args.settings;
117
+ return {
118
+ protocolFeePpm: Number(settings.protocolFeePpm),
119
+ poolIdToTotalFeePpm: { ...state.poolIdToTotalFeePpm },
120
+ };
121
+ }
122
+ }
123
+ exports.ArenaFeeHelper = ArenaFeeHelper;
124
+ //# sourceMappingURL=arena-fee-helper.js.map
@@ -0,0 +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,17 +1,21 @@
1
- import { BaseHook } from '..';
2
- import { SwapParams, BalanceDelta, HooksPermissions } from '../types';
3
- import { PoolKey } from '../../types';
4
- import { Address } from '@paraswap/core';
5
- import { Contract } from 'ethers';
6
1
  import { IDexHelper } from '../../../../dex-helper';
7
- export declare class ArenaHook extends BaseHook {
2
+ import { Network } from '../../../../constants';
3
+ import { Logger } from '../../../../types';
4
+ import { PoolKey } from '../../types';
5
+ import { SwapParams, BalanceDelta, HooksPermissions, IBaseHook } from '../types';
6
+ import { ArenaFeeHelper } from './arena-fee-helper';
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 name: string;
13
+ readonly address: string;
14
+ readonly arenaFeeHelper: ArenaFeeHelper;
15
+ constructor(dexHelper: IDexHelper, network: Network, logger: Logger, feeHelperAddress?: string);
16
+ registerPool(poolId: string, _poolKey: PoolKey): void;
17
+ initialize(blockNumber: number): Promise<void>;
18
+ getHookPermissions(): HooksPermissions;
19
+ afterSwap(_sender: string, key: PoolKey, params: SwapParams, delta: BalanceDelta, _hookData: string): Promise<bigint>;
20
+ private getTotalFeePpm;
17
21
  }
@@ -1,33 +1,38 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.ArenaHook = void 0;
7
- const __1 = require("..");
8
- 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"));
4
+ const config_1 = require("./config");
10
5
  const utils_1 = require("../../utils");
11
- const ARENA_FEE_HELPER_ADDRESS = '0x537505DA49b4249b576fc8d00028bfDdf6189077';
12
- class ArenaHook extends __1.BaseHook {
6
+ const utils_2 = require("../../../../utils");
7
+ const arena_fee_helper_1 = require("./arena-fee-helper");
8
+ const MAX_HOOK_FEE = 1000000n; // 100%
9
+ const UINT128_MAX = (1n << 128n) - 1n;
10
+ const INT128_MAX = (1n << 127n) - 1n;
11
+ class ArenaHook {
13
12
  dexHelper;
13
+ network;
14
+ logger;
15
+ feeHelperAddress;
16
+ name = this.constructor.name;
17
+ address;
14
18
  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();
19
+ constructor(dexHelper, network, logger, feeHelperAddress = config_1.ArenaHookConfig[network].feeHelperAddress.toLowerCase()) {
18
20
  this.dexHelper = dexHelper;
19
- this.arenaFeeHelper = arenaFeeHelper;
21
+ this.network = network;
22
+ this.logger = logger;
23
+ this.feeHelperAddress = feeHelperAddress;
24
+ this.address = config_1.ArenaHookConfig[network].hookAddress.toLowerCase();
25
+ this.arenaFeeHelper = new arena_fee_helper_1.ArenaFeeHelper(this.name, network, dexHelper, logger);
20
26
  }
21
- name() {
22
- return 'ArenaHook';
27
+ registerPool(poolId, _poolKey) {
28
+ this.arenaFeeHelper.addPoolIds([poolId]);
23
29
  }
24
- setDeployer(address, enabled) {
25
- if (enabled)
26
- this.deployers.add(address.toLowerCase());
27
- else
28
- this.deployers.delete(address.toLowerCase());
30
+ async initialize(blockNumber) {
31
+ if (!this.arenaFeeHelper.isInitialized) {
32
+ await this.arenaFeeHelper.initialize(blockNumber);
33
+ }
29
34
  }
30
- async getHookPermissions() {
35
+ getHookPermissions() {
31
36
  return {
32
37
  beforeInitialize: true,
33
38
  afterInitialize: false,
@@ -45,52 +50,37 @@ class ArenaHook extends __1.BaseHook {
45
50
  afterRemoveLiquidityReturnDelta: false,
46
51
  };
47
52
  }
48
- async beforeInitialize(sender, key, sqrtPriceX96) {
49
- if (!this.deployers.has(sender.toLowerCase())) {
50
- throw new Error('Only deployer can call this function');
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;
59
+ if (unspecifiedDelta === 0n) {
60
+ return 0n;
51
61
  }
52
- return '0x00000000'; // matches Solidity returning the selector
62
+ const output = unspecifiedDelta < 0n ? -unspecifiedDelta : unspecifiedDelta;
63
+ (0, utils_2._require)(output <= UINT128_MAX, 'Unspecified output exceeds uint128', { output }, 'output <= UINT128_MAX');
64
+ const totalFeePpm = this.getTotalFeePpm((0, utils_1.toId)(key));
65
+ if (totalFeePpm === 0n) {
66
+ return 0n;
67
+ }
68
+ (0, utils_2._require)(totalFeePpm <= MAX_HOOK_FEE, 'Hook fee too large', { totalFeePpm }, 'totalFeePpm <= MAX_HOOK_FEE');
69
+ const feeAmount = (output * totalFeePpm) / MAX_HOOK_FEE;
70
+ (0, utils_2._require)(feeAmount <= INT128_MAX, 'Hook fee exceeds int128', { feeAmount }, 'feeAmount <= INT128_MAX');
71
+ const netOutput = isExactInput ? output - feeAmount : output + feeAmount;
72
+ return netOutput;
53
73
  }
54
- async afterSwap(sender, key, params, delta, hookData) {
55
- // Determine unspecified output (same logic as Solidity)
56
- const zeroForOne = params.zeroForOne;
57
- 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];
74
+ getTotalFeePpm(poolId) {
75
+ if (!this.arenaFeeHelper?.isInitialized) {
76
+ return 0n;
69
77
  }
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
- });
78
+ const state = this.arenaFeeHelper.getStaleState();
79
+ if (!state) {
80
+ return 0n;
89
81
  }
90
- return [
91
- '0xb47b2fb1', // selector for `super(BaseFeeHook).afterSwap`
92
- feeAmount, // returned as int128 in Solidity
93
- ];
82
+ const poolFee = state.poolIdToTotalFeePpm[poolId] ?? 0n;
83
+ return poolFee + BigInt(state.protocolFeePpm);
94
84
  }
95
85
  }
96
86
  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":";;;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,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3C,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,KAAK,CAAC,SAAS,CACb,OAAe,EACf,GAAY,EACZ,MAAkB,EAClB,KAAmB,EACnB,SAAiB;QAEjB,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QACvD,MAAM,YAAY,GAAG,eAAe,GAAG,EAAE,CAAC;QAC1C,MAAM,gBAAgB,GACpB,eAAe,GAAG,EAAE,KAAK,MAAM,CAAC,UAAU;YACxC,CAAC,CAAC,KAAK,CAAC,OAAO;YACf,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QAEpB,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,EAAE,EAAE,CAAC;YACvB,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,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,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;QAClD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;QACZ,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;AAxHD,8BAwHC"}
@@ -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