@paraswap/dex-lib 2.42.30-smardex → 2.42.31

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 (55) hide show
  1. package/build/dex/index.js +2 -2
  2. package/build/dex/index.js.map +1 -1
  3. package/build/dex/smardex/config.js +0 -7
  4. package/build/dex/smardex/config.js.map +1 -1
  5. package/build/dex/smardex/constants.d.ts +1 -1
  6. package/build/dex/smardex/constants.js +2 -2
  7. package/build/dex/smardex/constants.js.map +1 -1
  8. package/build/dex/smardex/sdk/utils.js.map +1 -1
  9. package/build/dex/smardex/smardex-event-pool.d.ts +2 -2
  10. package/build/dex/smardex/smardex-event-pool.js +9 -11
  11. package/build/dex/smardex/smardex-event-pool.js.map +1 -1
  12. package/build/dex/smardex/smardex.d.ts +1 -6
  13. package/build/dex/smardex/smardex.js +95 -52
  14. package/build/dex/smardex/smardex.js.map +1 -1
  15. package/build/dex/smardex/types.d.ts +1 -12
  16. package/build/dex/wombat/utils.d.ts +1 -0
  17. package/build/dex/wombat/utils.js +14 -1
  18. package/build/dex/wombat/utils.js.map +1 -1
  19. package/build/dex/wombat/wombat-bmw.d.ts +2 -2
  20. package/build/dex/wombat/wombat-bmw.js +8 -25
  21. package/build/dex/wombat/wombat-bmw.js.map +1 -1
  22. package/build/dex/wombat/wombat-pool.d.ts +51 -17
  23. package/build/dex/wombat/wombat-pool.js +398 -112
  24. package/build/dex/wombat/wombat-pool.js.map +1 -1
  25. package/build/dex/wombat/wombat.d.ts +1 -1
  26. package/build/dex/wombat/wombat.js +12 -18
  27. package/build/dex/wombat/wombat.js.map +1 -1
  28. package/package.json +1 -1
  29. package/src/abi/smardex/layer-1/smardex-factory.json +242 -0
  30. package/src/abi/smardex/layer-1/smardex-pool.json +506 -0
  31. package/src/abi/wombat/pool-v3.json +2013 -0
  32. package/src/dex/index.ts +2 -2
  33. package/src/dex/smardex/config.ts +0 -8
  34. package/src/dex/smardex/constants.ts +1 -1
  35. package/src/dex/smardex/sdk/utils.ts +2 -0
  36. package/src/dex/smardex/smardex-e2e.test.ts +21 -22
  37. package/src/dex/smardex/smardex-event-pool.ts +9 -11
  38. package/src/dex/smardex/smardex-events.test.ts +15 -27
  39. package/src/dex/smardex/smardex-integration.test.ts +1 -7
  40. package/src/dex/smardex/smardex.ts +118 -70
  41. package/src/dex/smardex/types.ts +1 -11
  42. package/src/dex/wombat/utils.ts +20 -0
  43. package/src/dex/wombat/wombat-bmw.ts +8 -31
  44. package/src/dex/wombat/wombat-e2e.test.ts +13 -1
  45. package/src/dex/wombat/wombat-events.test.ts +147 -0
  46. package/src/dex/wombat/wombat-integration.test.ts +70 -111
  47. package/src/dex/wombat/wombat-pool.ts +623 -171
  48. package/src/dex/wombat/wombat.ts +13 -23
  49. package/tests/constants-e2e.ts +11 -7
  50. package/src/dex/smardex/subgraph-queries.ts +0 -16
  51. package/src/dex/smardex/usd-reserves.ts +0 -137
  52. /package/src/abi/smardex/{smardex-router.json → all/smardex-router.json} +0 -0
  53. /package/src/abi/smardex/{smardex-factory.json → layer-2/smardex-factory.json} +0 -0
  54. /package/src/abi/smardex/{smardex-pool.json → layer-2/smardex-pool.json} +0 -0
  55. /package/src/abi/wombat/{pool.json → pool-v2.json} +0 -0
@@ -7,3 +7,4 @@ export declare function toWad(x: bigint, d: bigint): bigint;
7
7
  export declare function fromWad(x: bigint, d: bigint): bigint;
8
8
  export declare function sqrt(y: bigint, guess: bigint): bigint;
9
9
  export declare const uint120ToBigInt: (result: MultiResult<BytesLike> | BytesLike) => bigint;
10
+ export declare function convertUint256ToInt256(uint256Value: bigint): bigint;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.uint120ToBigInt = exports.sqrt = exports.fromWad = exports.toWad = exports.wdiv = exports.wmul = exports.WAD = void 0;
3
+ exports.convertUint256ToInt256 = exports.uint120ToBigInt = exports.sqrt = exports.fromWad = exports.toWad = exports.wdiv = exports.wmul = exports.WAD = void 0;
4
4
  const bigint_constants_1 = require("../../bigint-constants");
5
5
  const decoders_1 = require("../../lib/decoders");
6
6
  exports.WAD = bigint_constants_1.BI_POWS[18];
@@ -63,4 +63,17 @@ const uint120ToBigInt = (result) => {
63
63
  return (0, decoders_1.generalDecoder)(result, ['uint120'], 0n, value => value[0].toBigInt());
64
64
  };
65
65
  exports.uint120ToBigInt = uint120ToBigInt;
66
+ function convertUint256ToInt256(uint256Value) {
67
+ const isNegative = (uint256Value &
68
+ BigInt('0x8000000000000000000000000000000000000000000000000000000000000000')) !==
69
+ BigInt(0);
70
+ if (isNegative) {
71
+ return (uint256Value -
72
+ BigInt('0x10000000000000000000000000000000000000000000000000000000000000000'));
73
+ }
74
+ else {
75
+ return uint256Value;
76
+ }
77
+ }
78
+ exports.convertUint256ToInt256 = convertUint256ToInt256;
66
79
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/dex/wombat/utils.ts"],"names":[],"mappings":";;;AAAA,6DAAiD;AAGjD,iDAAoD;AAEvC,QAAA,GAAG,GAAG,0BAAO,CAAC,EAAE,CAAC,CAAC;AAE/B,SAAgB,IAAI,CAAC,CAAS,EAAE,CAAS;IACvC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,WAAG,GAAG,EAAE,CAAC,GAAG,WAAG,CAAC;AAClC,CAAC;AAFD,oBAEC;AAED,SAAgB,IAAI,CAAC,CAAS,EAAE,CAAS;IACvC,OAAO,CAAC,CAAC,GAAG,WAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAFD,oBAEC;AAED,kDAAkD;AAClD,SAAgB,KAAK,CAAC,CAAS,EAAE,CAAS;IACxC,IAAI,CAAC,GAAG,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;KAC7B;SAAM,IAAI,CAAC,GAAG,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;KAC7B;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAPD,sBAOC;AACD,kDAAkD;AAClD,SAAgB,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,IAAI,CAAC,GAAG,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;KAC7B;SAAM,IAAI,CAAC,GAAG,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;KAC7B;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAPD,0BAOC;AAED,yDAAyD;AACzD,SAAgB,IAAI,CAAC,CAAS,EAAE,KAAa;IAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,IAAI,CAAC,GAAG,CAAC,EAAE;QACT,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;YAC3B,CAAC,GAAG,KAAK,CAAC;SACX;aAAM,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;YACnC,CAAC,GAAG,CAAC,KAAK,CAAC;SACZ;aAAM;YACL,CAAC,GAAG,CAAC,CAAC;SACP;QACD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,EAAE;YACb,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;SACtB;KACF;SAAM,IAAI,CAAC,IAAI,EAAE,EAAE;QAClB,CAAC,GAAG,EAAE,CAAC;KACR;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AApBD,oBAoBC;AAEM,MAAM,eAAe,GAAG,CAC7B,MAA0C,EAClC,EAAE;IACV,OAAO,IAAA,yBAAc,EAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/E,CAAC,CAAC;AAJW,QAAA,eAAe,mBAI1B"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/dex/wombat/utils.ts"],"names":[],"mappings":";;;AAAA,6DAAiD;AAGjD,iDAAoD;AAEvC,QAAA,GAAG,GAAG,0BAAO,CAAC,EAAE,CAAC,CAAC;AAE/B,SAAgB,IAAI,CAAC,CAAS,EAAE,CAAS;IACvC,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,WAAG,GAAG,EAAE,CAAC,GAAG,WAAG,CAAC;AAClC,CAAC;AAFD,oBAEC;AAED,SAAgB,IAAI,CAAC,CAAS,EAAE,CAAS;IACvC,OAAO,CAAC,CAAC,GAAG,WAAG,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC;AAChC,CAAC;AAFD,oBAEC;AAED,kDAAkD;AAClD,SAAgB,KAAK,CAAC,CAAS,EAAE,CAAS;IACxC,IAAI,CAAC,GAAG,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;KAC7B;SAAM,IAAI,CAAC,GAAG,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;KAC7B;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAPD,sBAOC;AACD,kDAAkD;AAClD,SAAgB,OAAO,CAAC,CAAS,EAAE,CAAS;IAC1C,IAAI,CAAC,GAAG,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;KAC7B;SAAM,IAAI,CAAC,GAAG,GAAG,EAAE;QAClB,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;KAC7B;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAPD,0BAOC;AAED,yDAAyD;AACzD,SAAgB,IAAI,CAAC,CAAS,EAAE,KAAa;IAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,IAAI,CAAC,GAAG,CAAC,EAAE;QACT,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE;YAC3B,CAAC,GAAG,KAAK,CAAC;SACX;aAAM,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,EAAE;YACnC,CAAC,GAAG,CAAC,KAAK,CAAC;SACZ;aAAM;YACL,CAAC,GAAG,CAAC,CAAC;SACP;QACD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACzB,OAAO,CAAC,IAAI,CAAC,EAAE;YACb,CAAC,GAAG,CAAC,CAAC;YACN,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;SACtB;KACF;SAAM,IAAI,CAAC,IAAI,EAAE,EAAE;QAClB,CAAC,GAAG,EAAE,CAAC;KACR;IAED,OAAO,CAAC,CAAC;AACX,CAAC;AApBD,oBAoBC;AAEM,MAAM,eAAe,GAAG,CAC7B,MAA0C,EAClC,EAAE;IACV,OAAO,IAAA,yBAAc,EAAC,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC/E,CAAC,CAAC;AAJW,QAAA,eAAe,mBAI1B;AAEF,SAAgB,sBAAsB,CAAC,YAAoB;IACzD,MAAM,UAAU,GACd,CAAC,YAAY;QACX,MAAM,CACJ,oEAAoE,CACrE,CAAC;QACJ,MAAM,CAAC,CAAC,CAAC,CAAC;IAEZ,IAAI,UAAU,EAAE;QACd,OAAO,CACL,YAAY;YACZ,MAAM,CACJ,qEAAqE,CACtE,CACF,CAAC;KACH;SAAM;QACL,OAAO,YAAY,CAAC;KACrB;AACH,CAAC;AAlBD,wDAkBC"}
@@ -9,14 +9,14 @@ export declare class WombatBmw extends StatefulEventSubscriber<BmwState> {
9
9
  protected network: number;
10
10
  protected dexHelper: IDexHelper;
11
11
  protected bmwAddress: Address;
12
- protected onAssetAdded: (pool: Address, asset2TokenMap: Map<Address, Address>, blockNumber: number) => Promise<void>;
12
+ protected onAssetAdded: (pool: Address, blockNumber: number) => Promise<void>;
13
13
  static readonly bmwInterface: Interface;
14
14
  static readonly assetInterface: Interface;
15
15
  static readonly poolInterface: Interface;
16
16
  private readonly logDecoder;
17
17
  private bmwContract;
18
18
  private handlers;
19
- constructor(dexKey: string, name: string, network: number, dexHelper: IDexHelper, logger: Logger, bmwAddress: Address, onAssetAdded: (pool: Address, asset2TokenMap: Map<Address, Address>, blockNumber: number) => Promise<void>);
19
+ constructor(dexKey: string, name: string, network: number, dexHelper: IDexHelper, logger: Logger, bmwAddress: Address, onAssetAdded: (pool: Address, blockNumber: number) => Promise<void>);
20
20
  /**
21
21
  * The function is called every time any of the subscribed
22
22
  * addresses release log. The function accepts the current
@@ -9,10 +9,10 @@ const utils_1 = require("../../utils");
9
9
  const stateful_event_subscriber_1 = require("../../stateful-event-subscriber");
10
10
  const bmw_json_1 = __importDefault(require("../../abi/wombat/bmw.json"));
11
11
  const asset_json_1 = __importDefault(require("../../abi/wombat/asset.json"));
12
- const pool_json_1 = __importDefault(require("../../abi/wombat/pool.json"));
12
+ const pool_v2_json_1 = __importDefault(require("../../abi/wombat/pool-v2.json"));
13
13
  class WombatBmw extends stateful_event_subscriber_1.StatefulEventSubscriber {
14
14
  constructor(dexKey, name, network, dexHelper, logger, bmwAddress, onAssetAdded) {
15
- super(`${dexKey} ${name}`, `${dexKey}-${network} ${name}`, dexHelper, logger);
15
+ super(`${dexKey}-${name}`, `${dexKey}-${network}-${name}`, dexHelper, logger);
16
16
  this.network = network;
17
17
  this.dexHelper = dexHelper;
18
18
  this.bmwAddress = bmwAddress;
@@ -73,10 +73,6 @@ class WombatBmw extends stateful_event_subscriber_1.StatefulEventSubscriber {
73
73
  .toLowerCase());
74
74
  inputs = [];
75
75
  for (const lpToken of lpTokens) {
76
- inputs.push({
77
- target: lpToken,
78
- callData: WombatBmw.assetInterface.encodeFunctionData('underlyingToken'),
79
- });
80
76
  inputs.push({
81
77
  target: lpToken,
82
78
  callData: WombatBmw.assetInterface.encodeFunctionData('pool'),
@@ -85,24 +81,18 @@ class WombatBmw extends stateful_event_subscriber_1.StatefulEventSubscriber {
85
81
  returnData = (await this.dexHelper.multiContract.methods
86
82
  .aggregate(inputs)
87
83
  .call({}, blockNumber)).returnData;
88
- const pool2AssetInfo = new Map();
84
+ const poolAddressSet = new Set();
89
85
  let i = 0;
90
86
  for (const lpToken of lpTokens) {
91
- const underlyingToken = WombatBmw.assetInterface
92
- .decodeFunctionResult('underlyingToken', returnData[i++])[0]
93
- .toLowerCase();
94
87
  const pool = WombatBmw.assetInterface
95
88
  .decodeFunctionResult('pool', returnData[i++])[0]
96
89
  .toLowerCase();
97
- if (!pool2AssetInfo.has(pool)) {
98
- pool2AssetInfo.set(pool, new Map());
99
- }
100
- pool2AssetInfo.get(pool).set(lpToken, underlyingToken);
90
+ poolAddressSet.add(pool);
101
91
  }
102
92
  const promises = [];
103
- pool2AssetInfo.forEach((asset2TokenMap, pool) => {
93
+ poolAddressSet.forEach(pool => {
104
94
  bmwState.pools.push(pool);
105
- promises.push(this.onAssetAdded(pool, asset2TokenMap, blockNumber));
95
+ promises.push(this.onAssetAdded(pool, blockNumber));
106
96
  });
107
97
  await Promise.all(promises);
108
98
  return bmwState;
@@ -114,20 +104,13 @@ class WombatBmw extends stateful_event_subscriber_1.StatefulEventSubscriber {
114
104
  target: lpToken,
115
105
  callData: WombatBmw.assetInterface.encodeFunctionData('pool'),
116
106
  });
117
- multiCallInputs.push({
118
- target: lpToken,
119
- callData: WombatBmw.assetInterface.encodeFunctionData('underlyingToken'),
120
- });
121
107
  const returnData = (await this.dexHelper.multiContract.methods
122
108
  .aggregate(multiCallInputs)
123
109
  .call({}, log.blockNumber)).returnData;
124
110
  const pool = WombatBmw.assetInterface
125
111
  .decodeFunctionResult('pool', returnData[0])[0]
126
112
  .toLowerCase();
127
- const underlyingToken = WombatBmw.assetInterface
128
- .decodeFunctionResult('underlyingToken', returnData[1])[0]
129
- .toLowerCase();
130
- await this.onAssetAdded(pool, new Map().set(lpToken, underlyingToken), log.blockNumber);
113
+ await this.onAssetAdded(pool, log.blockNumber);
131
114
  if (!state.pools.includes(pool)) {
132
115
  return {
133
116
  pools: [...state.pools, pool],
@@ -143,5 +126,5 @@ class WombatBmw extends stateful_event_subscriber_1.StatefulEventSubscriber {
143
126
  exports.WombatBmw = WombatBmw;
144
127
  WombatBmw.bmwInterface = new abi_1.Interface(bmw_json_1.default);
145
128
  WombatBmw.assetInterface = new abi_1.Interface(asset_json_1.default);
146
- WombatBmw.poolInterface = new abi_1.Interface(pool_json_1.default);
129
+ WombatBmw.poolInterface = new abi_1.Interface(pool_v2_json_1.default);
147
130
  //# sourceMappingURL=wombat-bmw.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"wombat-bmw.js","sourceRoot":"","sources":["../../../src/dex/wombat/wombat-bmw.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wombat-bmw.js","sourceRoot":"","sources":["../../../src/dex/wombat/wombat-bmw.ts"],"names":[],"mappings":"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"}
@@ -1,22 +1,56 @@
1
1
  import { Interface } from '@ethersproject/abi';
2
- import { Address } from '@paraswap/core';
3
- import { MultiCallParams, MultiResult } from '../../lib/multi-wrapper';
2
+ import { AsyncOrSync, DeepReadonly } from 'ts-essentials';
3
+ import { Address, Log, Logger } from '../../types';
4
+ import { InitializeStateOptions, StatefulEventSubscriber } from '../../stateful-event-subscriber';
4
5
  import { IDexHelper } from '../../dex-helper';
5
- import { StatefulRpcPoller } from '../../lib/stateful-rpc-poller/stateful-rpc-poller';
6
- import { ObjWithUpdateInfo } from '../../lib/stateful-rpc-poller/types';
7
- import { MulticallResultOutputs, PoolState } from './types';
8
- export declare class WombatPool extends StatefulRpcPoller<PoolState, MulticallResultOutputs> {
6
+ import { BlockHeader } from 'web3-eth';
7
+ import { PoolState } from './types';
8
+ export declare class WombatPool extends StatefulEventSubscriber<PoolState> {
9
+ protected network: number;
10
+ protected dexHelper: IDexHelper;
9
11
  protected poolAddress: Address;
10
- protected asset2TokenMap: Map<Address, Address>;
11
- static readonly poolInterface: Interface;
12
+ static readonly poolV2Interface: Interface;
13
+ static readonly poolV3Interface: Interface;
12
14
  static readonly assetInterface: Interface;
13
- constructor(dexKey: string, poolIdentifier: string, dexHelper: IDexHelper, poolAddress: Address, asset2TokenMap: Map<Address, Address>);
14
- protected _getFetchStateMultiCalls(): MultiCallParams<MulticallResultOutputs>[];
15
- protected _parseStateFromMultiResults(multiOutputs: MulticallResultOutputs[]): PoolState;
16
- fetchLatestStateFromRpc(): Promise<ObjWithUpdateInfo<PoolState> | null>;
17
- parseStateFromMultiResultsWithBlockInfo(multiOutputs: [
18
- MultiResult<number>,
19
- ...MultiResult<MulticallResultOutputs>[]
20
- ], lastUpdatedAtMs: number): ObjWithUpdateInfo<PoolState>;
21
- addAssets(asset2TokenMap: Map<Address, Address>): void;
15
+ private rpcCallCount;
16
+ private handlers;
17
+ private poolInterface;
18
+ private eventRefetched;
19
+ blankState: PoolState;
20
+ constructor(dexKey: string, name: string, network: number, dexHelper: IDexHelper, logger: Logger, poolAddress: Address);
21
+ initialize(blockNumber: number, options?: InitializeStateOptions<PoolState>): Promise<void>;
22
+ protected processBlockLogs(state: DeepReadonly<PoolState>, logs: Readonly<Log>[], blockHeader: Readonly<BlockHeader>): Promise<DeepReadonly<PoolState> | null>;
23
+ /**
24
+ * The function is called every time any of the subscribed
25
+ * addresses release log. The function accepts the current
26
+ * state, updates the state according to the log, and returns
27
+ * the updated state.
28
+ * @param state - Current state of event subscriber
29
+ * @param log - Log released by one of the subscribed addresses
30
+ * @param blockHeader
31
+ * @returns Updates state of the event subscriber after the log
32
+ */
33
+ protected processLog(state: DeepReadonly<PoolState>, log: Readonly<Log>, blockHeader: Readonly<BlockHeader>): Promise<DeepReadonly<PoolState> | null>;
34
+ /**
35
+ * The function generates state using on-chain calls. This
36
+ * function is called to regenerate state if the event based
37
+ * system fails to fetch events and the local state is no
38
+ * more correct.
39
+ * @param blockNumber - Blocknumber for which the state should
40
+ * should be generated
41
+ * @returns state of the event subscriber at blocknumber
42
+ */
43
+ generateState(blockNumber: number): Promise<DeepReadonly<PoolState>>;
44
+ handleSwap(event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>): AsyncOrSync<DeepReadonly<PoolState> | null>;
45
+ handleSwapV2(event: any, state: DeepReadonly<PoolState>, _log: Readonly<Log>): AsyncOrSync<DeepReadonly<PoolState> | null>;
46
+ handleSetAmpFactor(event: any, state: DeepReadonly<PoolState>, _log: Readonly<Log>): AsyncOrSync<DeepReadonly<PoolState> | null>;
47
+ handleSetHaircutRate(event: any, state: DeepReadonly<PoolState>, _log: Readonly<Log>): AsyncOrSync<DeepReadonly<PoolState> | null>;
48
+ handleAssetAdded(event: any, state: DeepReadonly<PoolState>, log: Readonly<Log>): Promise<DeepReadonly<PoolState> | null>;
49
+ handleAssetRemoved(event: any, state: DeepReadonly<PoolState>, _log: Readonly<Log>): Promise<DeepReadonly<PoolState> | null>;
50
+ handleFillPool(event: any, state: DeepReadonly<PoolState>, _log: Readonly<Log>): Promise<DeepReadonly<PoolState> | null>;
51
+ handlePaused(event: any, state: DeepReadonly<PoolState>, _log: Readonly<Log>): Promise<DeepReadonly<PoolState> | null>;
52
+ handleUnpaused(event: any, state: DeepReadonly<PoolState>, _log: Readonly<Log>): Promise<DeepReadonly<PoolState> | null>;
53
+ handlePausedAsset(event: any, state: DeepReadonly<PoolState>, _log: Readonly<Log>): Promise<DeepReadonly<PoolState> | null>;
54
+ handleUnpausedAsset(event: any, state: DeepReadonly<PoolState>, _log: Readonly<Log>): Promise<DeepReadonly<PoolState> | null>;
55
+ private getAssetState;
22
56
  }