@paraswap/dex-lib 2.42.28 → 2.42.30-quickswap-null-state.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 (112) hide show
  1. package/.vscode/launch.json +55 -0
  2. package/.vscode/settings.json +2 -0
  3. package/.vscode/tasks.json +15 -0
  4. package/build/abi/{algebra/AlgebraPool.abi.json → solidly-v3/SolidlyV3Pool.abi.json} +293 -282
  5. package/build/abi/solidly-v3/SolidlyV3StateMulticall.abi.json +375 -0
  6. package/build/config.js +2 -2
  7. package/build/dex/index.js +2 -0
  8. package/build/dex/index.js.map +1 -1
  9. package/build/dex/solidly-v3/config.d.ts +9 -0
  10. package/build/dex/solidly-v3/config.js +58 -0
  11. package/build/dex/solidly-v3/config.js.map +1 -0
  12. package/build/dex/solidly-v3/constants.d.ts +27 -0
  13. package/build/dex/solidly-v3/constants.js +34 -0
  14. package/build/dex/solidly-v3/constants.js.map +1 -0
  15. package/build/dex/solidly-v3/contract-math/BitMath.d.ts +4 -0
  16. package/build/dex/solidly-v3/contract-math/BitMath.js +93 -0
  17. package/build/dex/solidly-v3/contract-math/BitMath.js.map +1 -0
  18. package/build/dex/solidly-v3/contract-math/FixedPoint128.d.ts +3 -0
  19. package/build/dex/solidly-v3/contract-math/FixedPoint128.js +8 -0
  20. package/build/dex/solidly-v3/contract-math/FixedPoint128.js.map +1 -0
  21. package/build/dex/solidly-v3/contract-math/FixedPoint96.d.ts +4 -0
  22. package/build/dex/solidly-v3/contract-math/FixedPoint96.js +9 -0
  23. package/build/dex/solidly-v3/contract-math/FixedPoint96.js.map +1 -0
  24. package/build/dex/solidly-v3/contract-math/FullMath.d.ts +4 -0
  25. package/build/dex/solidly-v3/contract-math/FullMath.js +19 -0
  26. package/build/dex/solidly-v3/contract-math/FullMath.js.map +1 -0
  27. package/build/dex/solidly-v3/contract-math/LiquidityMath.d.ts +3 -0
  28. package/build/dex/solidly-v3/contract-math/LiquidityMath.js +22 -0
  29. package/build/dex/solidly-v3/contract-math/LiquidityMath.js.map +1 -0
  30. package/build/dex/solidly-v3/contract-math/SqrtPriceMath.d.ts +10 -0
  31. package/build/dex/solidly-v3/contract-math/SqrtPriceMath.js +91 -0
  32. package/build/dex/solidly-v3/contract-math/SqrtPriceMath.js.map +1 -0
  33. package/build/dex/solidly-v3/contract-math/SwapMath.d.ts +8 -0
  34. package/build/dex/solidly-v3/contract-math/SwapMath.js +70 -0
  35. package/build/dex/solidly-v3/contract-math/SwapMath.js.map +1 -0
  36. package/build/dex/solidly-v3/contract-math/Tick.d.ts +7 -0
  37. package/build/dex/solidly-v3/contract-math/Tick.js +36 -0
  38. package/build/dex/solidly-v3/contract-math/Tick.js.map +1 -0
  39. package/build/dex/solidly-v3/contract-math/TickBitMap.d.ts +7 -0
  40. package/build/dex/solidly-v3/contract-math/TickBitMap.js +84 -0
  41. package/build/dex/solidly-v3/contract-math/TickBitMap.js.map +1 -0
  42. package/build/dex/solidly-v3/contract-math/TickMath.d.ts +8 -0
  43. package/build/dex/solidly-v3/contract-math/TickMath.js +162 -0
  44. package/build/dex/solidly-v3/contract-math/TickMath.js.map +1 -0
  45. package/build/dex/solidly-v3/contract-math/UnsafeMath.d.ts +3 -0
  46. package/build/dex/solidly-v3/contract-math/UnsafeMath.js +10 -0
  47. package/build/dex/solidly-v3/contract-math/UnsafeMath.js.map +1 -0
  48. package/build/dex/solidly-v3/contract-math/uniswap-v3-math.d.ts +31 -0
  49. package/build/dex/solidly-v3/contract-math/uniswap-v3-math.js +363 -0
  50. package/build/dex/solidly-v3/contract-math/uniswap-v3-math.js.map +1 -0
  51. package/build/dex/solidly-v3/contract-math/utils.d.ts +7 -0
  52. package/build/dex/solidly-v3/contract-math/utils.js +39 -0
  53. package/build/dex/solidly-v3/contract-math/utils.js.map +1 -0
  54. package/build/dex/solidly-v3/scripts/check-event-pool-event.d.ts +1 -0
  55. package/build/dex/solidly-v3/scripts/check-event-pool-event.js +53 -0
  56. package/build/dex/solidly-v3/scripts/check-event-pool-event.js.map +1 -0
  57. package/build/dex/solidly-v3/solidly-v3-factory.d.ts +26 -0
  58. package/build/dex/solidly-v3/solidly-v3-factory.js +44 -0
  59. package/build/dex/solidly-v3/solidly-v3-factory.js.map +1 -0
  60. package/build/dex/{algebra/algebra-pool.d.ts → solidly-v3/solidly-v3-pool.d.ts} +14 -16
  61. package/build/dex/{algebra/algebra-pool.js → solidly-v3/solidly-v3-pool.js} +127 -165
  62. package/build/dex/solidly-v3/solidly-v3-pool.js.map +1 -0
  63. package/build/dex/solidly-v3/solidly-v3.d.ts +67 -0
  64. package/build/dex/solidly-v3/solidly-v3.js +590 -0
  65. package/build/dex/solidly-v3/solidly-v3.js.map +1 -0
  66. package/build/dex/solidly-v3/types.d.ts +132 -0
  67. package/build/dex/solidly-v3/types.js +9 -0
  68. package/build/dex/solidly-v3/types.js.map +1 -0
  69. package/build/dex/solidly-v3/utils.d.ts +6 -0
  70. package/build/dex/solidly-v3/utils.js +53 -0
  71. package/build/dex/solidly-v3/utils.js.map +1 -0
  72. package/build/stateful-event-subscriber.js +3 -0
  73. package/build/stateful-event-subscriber.js.map +1 -1
  74. package/package.json +1 -1
  75. package/src/abi/solidly-v3/SolidlyV3Pool.abi.json +738 -0
  76. package/src/abi/solidly-v3/SolidlyV3StateMulticall.abi.json +375 -0
  77. package/src/config.ts +2 -2
  78. package/src/dex/index.ts +2 -0
  79. package/src/dex/solidly-v3/config.ts +64 -0
  80. package/src/dex/solidly-v3/constants.ts +42 -0
  81. package/src/dex/solidly-v3/contract-math/BitMath.ts +90 -0
  82. package/src/dex/solidly-v3/contract-math/FixedPoint128.ts +3 -0
  83. package/src/dex/solidly-v3/contract-math/FixedPoint96.ts +4 -0
  84. package/src/dex/solidly-v3/contract-math/FullMath.ts +30 -0
  85. package/src/dex/solidly-v3/contract-math/LiquidityMath.ts +17 -0
  86. package/src/dex/solidly-v3/contract-math/SqrtPriceMath.ts +226 -0
  87. package/src/dex/solidly-v3/contract-math/SwapMath.ts +139 -0
  88. package/src/dex/solidly-v3/contract-math/Tick.ts +66 -0
  89. package/src/dex/solidly-v3/contract-math/TickBitMap.ts +123 -0
  90. package/src/dex/solidly-v3/contract-math/TickMath.ts +211 -0
  91. package/src/dex/solidly-v3/contract-math/UnsafeMath.ts +5 -0
  92. package/src/dex/solidly-v3/contract-math/uniswap-v3-math.ts +570 -0
  93. package/src/dex/solidly-v3/contract-math/utils.ts +50 -0
  94. package/src/dex/solidly-v3/solidly-v3-e2e.test.ts +124 -0
  95. package/src/dex/solidly-v3/solidly-v3-events.test.ts +144 -0
  96. package/src/dex/solidly-v3/solidly-v3-factory.ts +73 -0
  97. package/src/dex/solidly-v3/solidly-v3-integration.test.ts +358 -0
  98. package/src/dex/solidly-v3/solidly-v3-pool.ts +494 -0
  99. package/src/dex/solidly-v3/solidly-v3.ts +988 -0
  100. package/src/dex/solidly-v3/types.ts +158 -0
  101. package/src/dex/solidly-v3/utils.ts +71 -0
  102. package/src/dex/uniswap-v3/uniswap-v3-events.test.ts +3 -0
  103. package/src/stateful-event-subscriber.ts +7 -0
  104. package/build/abi/uniswap-v3/UniswapV3Quoter.abi.json +0 -193
  105. package/build/dex/algebra/algebra-pool.js.map +0 -1
  106. package/build/dex/quickswap/camelot-v3.d.ts +0 -6
  107. package/build/dex/quickswap/camelot-v3.js +0 -19
  108. package/build/dex/quickswap/camelot-v3.js.map +0 -1
  109. package/build/dex/quickswap/zyberswap-v3.d.ts +0 -6
  110. package/build/dex/quickswap/zyberswap-v3.js +0 -19
  111. package/build/dex/quickswap/zyberswap-v3.js.map +0 -1
  112. package/build/dex/uniswap-v2/rebase-tokens.json +0 -7
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports._reduceTicks = exports._reduceTickBitmap = exports._gt = exports._lt = exports._mulmod = void 0;
4
+ const utils_1 = require("../../../utils");
5
+ function _mulmod(x, y, m) {
6
+ return m === 0n ? 0n : (x * y) % m;
7
+ }
8
+ exports._mulmod = _mulmod;
9
+ function _lt(x, y) {
10
+ return x < y ? 1n : 0n;
11
+ }
12
+ exports._lt = _lt;
13
+ function _gt(x, y) {
14
+ return x > y ? 1n : 0n;
15
+ }
16
+ exports._gt = _gt;
17
+ function _reduceTickBitmap(tickBitmap, tickBitmapToReduce) {
18
+ return tickBitmapToReduce.reduce((acc, curr) => {
19
+ const { index, value } = curr;
20
+ acc[index] = (0, utils_1.bigIntify)(value);
21
+ return acc;
22
+ }, tickBitmap);
23
+ }
24
+ exports._reduceTickBitmap = _reduceTickBitmap;
25
+ function _reduceTicks(ticks, ticksToReduce) {
26
+ return ticksToReduce.reduce((acc, curr) => {
27
+ const { index, value } = curr;
28
+ if (value.initialized) {
29
+ acc[index] = {
30
+ liquidityGross: (0, utils_1.bigIntify)(value.liquidityGross),
31
+ liquidityNet: (0, utils_1.bigIntify)(value.liquidityNet),
32
+ initialized: value.initialized,
33
+ };
34
+ }
35
+ return acc;
36
+ }, ticks);
37
+ }
38
+ exports._reduceTicks = _reduceTicks;
39
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/dex/solidly-v3/contract-math/utils.ts"],"names":[],"mappings":";;;AAMA,0CAA2C;AAE3C,SAAgB,OAAO,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS;IACrD,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC;AAFD,0BAEC;AAED,SAAgB,GAAG,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACzB,CAAC;AAFD,kBAEC;AAED,SAAgB,GAAG,CAAC,CAAS,EAAE,CAAS;IACtC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;AACzB,CAAC;AAFD,kBAEC;AAED,SAAgB,iBAAiB,CAC/B,UAA0C,EAC1C,kBAAqD;IAErD,OAAO,kBAAkB,CAAC,MAAM,CAC9B,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACZ,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC9B,GAAG,CAAC,KAAK,CAAC,GAAG,IAAA,iBAAS,EAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC;IACb,CAAC,EACD,UAAU,CACX,CAAC;AACJ,CAAC;AAZD,8CAYC;AAED,SAAgB,YAAY,CAC1B,KAAuC,EACvC,aAA8C;IAE9C,OAAO,aAAa,CAAC,MAAM,CAA2B,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QAClE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAC9B,IAAI,KAAK,CAAC,WAAW,EAAE;YACrB,GAAG,CAAC,KAAK,CAAC,GAAG;gBACX,cAAc,EAAE,IAAA,iBAAS,EAAC,KAAK,CAAC,cAAc,CAAC;gBAC/C,YAAY,EAAE,IAAA,iBAAS,EAAC,KAAK,CAAC,YAAY,CAAC;gBAC3C,WAAW,EAAE,KAAK,CAAC,WAAW;aAC/B,CAAC;SACH;QACD,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,KAAK,CAAC,CAAC;AACZ,CAAC;AAfD,oCAeC"}
@@ -0,0 +1,53 @@
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
+ /* eslint-disable no-console */
7
+ const dotenv_1 = __importDefault(require("dotenv"));
8
+ dotenv_1.default.config();
9
+ const constants_1 = require("../../../constants");
10
+ const dex_helper_1 = require("../../../dex-helper");
11
+ const config_1 = require("./../config");
12
+ const solidly_v3_1 = require("../solidly-v3");
13
+ const dex = 'SolidlyV3';
14
+ const factory = config_1.SolidlyV3Config[dex][constants_1.Network.MAINNET].factory;
15
+ const blockHeaders = {};
16
+ async function checkForPoolEvents(startBlockNumber, endBlockNumber) {
17
+ const network = constants_1.Network.MAINNET;
18
+ const dexHelper = new dex_helper_1.DummyDexHelper(network);
19
+ const solidlyV3 = new solidly_v3_1.SolidlyV3(network, dex, dexHelper);
20
+ await solidlyV3.initializePricing(startBlockNumber);
21
+ const logsToDispatch = await dexHelper.provider.getLogs({
22
+ fromBlock: startBlockNumber,
23
+ toBlock: endBlockNumber,
24
+ address: factory,
25
+ });
26
+ const logsByBlockNumber = {};
27
+ for (let log of logsToDispatch) {
28
+ if (!logsByBlockNumber[log.blockNumber]) {
29
+ logsByBlockNumber[log.blockNumber] = [];
30
+ }
31
+ logsByBlockNumber[log.blockNumber].push(log);
32
+ }
33
+ const sortedBlocks = Object.keys(logsByBlockNumber)
34
+ .map(Number)
35
+ .sort((a, b) => Number(a) - Number(b));
36
+ for (let blockNumber of sortedBlocks) {
37
+ if (!blockHeaders[blockNumber]) {
38
+ blockHeaders[blockNumber] = await dexHelper.web3Provider.eth.getBlock(blockNumber);
39
+ }
40
+ await solidlyV3.factory?.update(logsByBlockNumber[blockNumber], {
41
+ [blockNumber]: blockHeaders[blockNumber],
42
+ });
43
+ }
44
+ return true;
45
+ }
46
+ async function main() {
47
+ // event for https://etherscan.io/tx/0x2bef7c17f3f775525f076aeb20567ee25eb820e92aa8422fbfe4bed652fd2bd3
48
+ checkForPoolEvents(18758010, 18758019);
49
+ }
50
+ main()
51
+ .then(() => console.log('Done'))
52
+ .catch(e => console.error(e));
53
+ //# sourceMappingURL=check-event-pool-event.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-event-pool-event.js","sourceRoot":"","sources":["../../../../src/dex/solidly-v3/scripts/check-event-pool-event.ts"],"names":[],"mappings":";;;;;AAAA,+BAA+B;AAC/B,oDAA4B;AAC5B,gBAAM,CAAC,MAAM,EAAE,CAAC;AAIhB,kDAA6C;AAC7C,oDAAqD;AACrD,wCAA8C;AAC9C,8CAA0C;AAE1C,MAAM,GAAG,GAAG,WAAW,CAAC;AACxB,MAAM,OAAO,GAAG,wBAAe,CAAC,GAAG,CAAC,CAAC,mBAAO,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;AAC9D,MAAM,YAAY,GAAgC,EAAE,CAAC;AAErD,KAAK,UAAU,kBAAkB,CAC/B,gBAAwB,EACxB,cAAsB;IAEtB,MAAM,OAAO,GAAG,mBAAO,CAAC,OAAO,CAAC;IAChC,MAAM,SAAS,GAAG,IAAI,2BAAc,CAAC,OAAO,CAAC,CAAC;IAE9C,MAAM,SAAS,GAAG,IAAI,sBAAS,CAAC,OAAO,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IACzD,MAAM,SAAS,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAEpD,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC;QACtD,SAAS,EAAE,gBAAgB;QAC3B,OAAO,EAAE,cAAc;QACvB,OAAO,EAAE,OAAO;KACjB,CAAC,CAAC;IAEH,MAAM,iBAAiB,GAA0B,EAAE,CAAC;IACpD,KAAK,IAAI,GAAG,IAAI,cAAc,EAAE;QAC9B,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YACvC,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;SACzC;QACD,iBAAiB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC9C;IAED,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;SAChD,GAAG,CAAC,MAAM,CAAC;SACX,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzC,KAAK,IAAI,WAAW,IAAI,YAAY,EAAE;QACpC,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,EAAE;YAC9B,YAAY,CAAC,WAAW,CAAC,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CACnE,WAAW,CACZ,CAAC;SACH;QAED,MAAM,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,iBAAiB,CAAC,WAAW,CAAC,EAAE;YAC9D,CAAC,WAAW,CAAC,EAAE,YAAY,CAAC,WAAW,CAAC;SACzC,CAAC,CAAC;KACJ;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,uGAAuG;IACvG,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED,IAAI,EAAE;KACH,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;KAC/B,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { Interface } from '@ethersproject/abi';
2
+ import { DeepReadonly } from 'ts-essentials';
3
+ import { IDexHelper } from '../../dex-helper/idex-helper';
4
+ import { StatefulEventSubscriber } from '../../stateful-event-subscriber';
5
+ import { Address, Log, Logger } from '../../types';
6
+ import { LogDescription } from 'ethers/lib/utils';
7
+ import { FactoryState } from './types';
8
+ export declare type OnPoolCreatedCallback = ({ token0, token1, tickSpacing, }: {
9
+ token0: string;
10
+ token1: string;
11
+ tickSpacing: bigint;
12
+ }) => Promise<void>;
13
+ export declare class SolidlyV3Factory extends StatefulEventSubscriber<FactoryState> {
14
+ readonly dexHelper: IDexHelper;
15
+ protected readonly factoryAddress: Address;
16
+ protected readonly onPoolCreated: OnPoolCreatedCallback;
17
+ handlers: {
18
+ [event: string]: (event: any) => Promise<void>;
19
+ };
20
+ logDecoder: (log: Log) => any;
21
+ readonly factoryIface: Interface;
22
+ constructor(dexHelper: IDexHelper, parentName: string, factoryAddress: Address, logger: Logger, onPoolCreated: OnPoolCreatedCallback, mapKey?: string);
23
+ generateState(): FactoryState;
24
+ protected processLog(_: DeepReadonly<FactoryState>, log: Readonly<Log>): Promise<FactoryState>;
25
+ handleNewPool(event: LogDescription): Promise<void>;
26
+ }
@@ -0,0 +1,44 @@
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.SolidlyV3Factory = void 0;
7
+ const abi_1 = require("@ethersproject/abi");
8
+ const UniswapV3Factory_abi_json_1 = __importDefault(require("../../abi/uniswap-v3/UniswapV3Factory.abi.json"));
9
+ const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
10
+ /*
11
+ * "Stateless" event subscriber in order to capture "PoolCreated" event on new pools created.
12
+ * State is present, but it's a placeholder to actually make the events reach handlers (if there's no previous state - `processBlockLogs` is not called)
13
+ */
14
+ class SolidlyV3Factory extends stateful_event_subscriber_1.StatefulEventSubscriber {
15
+ constructor(dexHelper, parentName, factoryAddress, logger, onPoolCreated, mapKey = '') {
16
+ super(parentName, `${parentName} Factory`, dexHelper, logger, true, mapKey);
17
+ this.dexHelper = dexHelper;
18
+ this.factoryAddress = factoryAddress;
19
+ this.onPoolCreated = onPoolCreated;
20
+ this.handlers = {};
21
+ this.factoryIface = new abi_1.Interface(UniswapV3Factory_abi_json_1.default);
22
+ this.addressesSubscribed = [factoryAddress];
23
+ this.logDecoder = (log) => this.factoryIface.parseLog(log);
24
+ this.handlers['PoolCreated'] = this.handleNewPool.bind(this);
25
+ }
26
+ generateState() {
27
+ return {};
28
+ }
29
+ async processLog(_, log) {
30
+ const event = this.logDecoder(log);
31
+ if (event.name in this.handlers) {
32
+ await this.handlers[event.name](event);
33
+ }
34
+ return {};
35
+ }
36
+ async handleNewPool(event) {
37
+ const token0 = event.args.token0.toLowerCase();
38
+ const token1 = event.args.token1.toLowerCase();
39
+ const tickSpacing = BigInt(event.args.tickSpacing);
40
+ await this.onPoolCreated({ token0, token1, tickSpacing });
41
+ }
42
+ }
43
+ exports.SolidlyV3Factory = SolidlyV3Factory;
44
+ //# sourceMappingURL=solidly-v3-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solidly-v3-factory.js","sourceRoot":"","sources":["../../../src/dex/solidly-v3/solidly-v3-factory.ts"],"names":[],"mappings":";;;;;;AAAA,4CAA+C;AAE/C,+GAAwE;AAExE,+EAA0E;AAe1E;;;GAGG;AACH,MAAa,gBAAiB,SAAQ,mDAAqC;IASzE,YACW,SAAqB,EAC9B,UAAkB,EACC,cAAuB,EAC1C,MAAc,EACK,aAAoC,EACvD,SAAiB,EAAE;QAEnB,KAAK,CAAC,UAAU,EAAE,GAAG,UAAU,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;QAPnE,cAAS,GAAT,SAAS,CAAY;QAEX,mBAAc,GAAd,cAAc,CAAS;QAEvB,kBAAa,GAAb,aAAa,CAAuB;QAbzD,aAAQ,GAEJ,EAAE,CAAC;QAIS,iBAAY,GAAG,IAAI,eAAS,CAAC,mCAAU,CAAC,CAAC;QAYvD,IAAI,CAAC,mBAAmB,GAAG,CAAC,cAAc,CAAC,CAAC;QAE5C,IAAI,CAAC,UAAU,GAAG,CAAC,GAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAEhE,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,aAAa;QACX,OAAO,EAAE,CAAC;IACZ,CAAC;IAES,KAAK,CAAC,UAAU,CACxB,CAA6B,EAC7B,GAAkB;QAElB,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE;YAC/B,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;SACxC;QAED,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,KAAqB;QACvC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEnD,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;IAC5D,CAAC;CACF;AAjDD,4CAiDC"}
@@ -1,46 +1,44 @@
1
+ import { Contract } from 'web3-eth-contract';
1
2
  import { Interface } from '@ethersproject/abi';
2
3
  import { DeepReadonly } from 'ts-essentials';
3
- import { Address, BlockHeader, Log, Logger } from '../../types';
4
+ import { Log, Logger, BlockHeader, Address } from '../../types';
4
5
  import { InitializeStateOptions, StatefulEventSubscriber } from '../../stateful-event-subscriber';
5
6
  import { IDexHelper } from '../../dex-helper/idex-helper';
6
- import { PoolState } from './types';
7
- import { Contract } from 'web3-eth-contract';
8
- import { DecodedStateMultiCallResultWithRelativeBitmaps } from './types';
9
- export declare class AlgebraEventPool extends StatefulEventSubscriber<PoolState> {
7
+ import { PoolState, DecodeStateMultiCallFunc } from './types';
8
+ export declare class SolidlyV3EventPool extends StatefulEventSubscriber<PoolState> {
10
9
  readonly dexHelper: IDexHelper;
11
10
  readonly stateMultiContract: Contract;
11
+ readonly decodeStateMultiCallResultWithRelativeBitmaps: DecodeStateMultiCallFunc | undefined;
12
12
  readonly erc20Interface: Interface;
13
13
  protected readonly factoryAddress: Address;
14
+ readonly tickSpacing: bigint;
14
15
  readonly poolInitCodeHash: string;
15
- readonly poolDeployer: string;
16
16
  handlers: {
17
- [event: string]: (event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>, blockHeader: BlockHeader) => DeepReadonly<PoolState> | null;
17
+ [event: string]: (event: any, pool: PoolState, log: Log, blockHeader: Readonly<BlockHeader>) => PoolState;
18
18
  };
19
19
  logDecoder: (log: Log) => any;
20
- addressesSubscribed: string[];
21
- private _poolAddress?;
22
20
  readonly token0: Address;
23
21
  readonly token1: Address;
22
+ _poolAddress?: Address;
23
+ private _stateRequestCallData?;
24
24
  readonly poolIface: Interface;
25
25
  initFailed: boolean;
26
26
  initRetryAttemptCount: number;
27
- constructor(dexHelper: IDexHelper, parentName: string, stateMultiContract: Contract, erc20Interface: Interface, factoryAddress: Address, token0: Address, token1: Address, logger: Logger, mapKey: string | undefined, poolInitCodeHash: string, poolDeployer: string);
27
+ readonly tickSpacingAsString: string;
28
+ constructor(dexHelper: IDexHelper, parentName: string, stateMultiContract: Contract, decodeStateMultiCallResultWithRelativeBitmaps: DecodeStateMultiCallFunc | undefined, erc20Interface: Interface, factoryAddress: Address, tickSpacing: bigint, token0: Address, token1: Address, logger: Logger, mapKey: string | undefined, poolInitCodeHash: string);
28
29
  get poolAddress(): Address;
29
30
  set poolAddress(address: Address);
30
31
  initialize(blockNumber: number, options?: InitializeStateOptions<PoolState>): Promise<void>;
31
32
  protected processBlockLogs(state: DeepReadonly<PoolState>, logs: Readonly<Log>[], blockHeader: Readonly<BlockHeader>): Promise<DeepReadonly<PoolState> | null>;
32
33
  protected processLog(state: DeepReadonly<PoolState>, log: Readonly<Log>, blockHeader: Readonly<BlockHeader>): DeepReadonly<PoolState> | null;
34
+ private _getStateRequestCallData;
33
35
  getBitmapRangeToRequest(): bigint;
34
- private _fetchPoolStateSingleStep;
35
- private _fetchPoolStateMultiStep;
36
- _fetchInitStateMultiStrategies(blockNumber: number): Promise<[bigint, bigint, DecodedStateMultiCallResultWithRelativeBitmaps]>;
37
36
  generateState(blockNumber: number): Promise<Readonly<PoolState>>;
38
37
  handleSwapEvent(event: any, pool: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
39
- handleMintEvent(event: any, pool: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
40
38
  handleBurnEvent(event: any, pool: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
41
- handleNewFee(event: any, pool: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
39
+ handleMintEvent(event: any, pool: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
42
40
  handleCollectEvent(event: any, pool: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
43
41
  handleFlashEvent(event: any, pool: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
44
- handleCommunityFee(event: any, pool: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
42
+ handleSetFeeEvent(event: any, pool: PoolState, log: Log, blockHeader: BlockHeader): PoolState;
45
43
  private _computePoolAddress;
46
44
  }