@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.
- package/build/dex/index.js +2 -2
- package/build/dex/index.js.map +1 -1
- package/build/dex/smardex/config.js +0 -7
- package/build/dex/smardex/config.js.map +1 -1
- package/build/dex/smardex/constants.d.ts +1 -1
- package/build/dex/smardex/constants.js +2 -2
- package/build/dex/smardex/constants.js.map +1 -1
- package/build/dex/smardex/sdk/utils.js.map +1 -1
- package/build/dex/smardex/smardex-event-pool.d.ts +2 -2
- package/build/dex/smardex/smardex-event-pool.js +9 -11
- package/build/dex/smardex/smardex-event-pool.js.map +1 -1
- package/build/dex/smardex/smardex.d.ts +1 -6
- package/build/dex/smardex/smardex.js +95 -52
- package/build/dex/smardex/smardex.js.map +1 -1
- package/build/dex/smardex/types.d.ts +1 -12
- package/build/dex/wombat/utils.d.ts +1 -0
- package/build/dex/wombat/utils.js +14 -1
- package/build/dex/wombat/utils.js.map +1 -1
- package/build/dex/wombat/wombat-bmw.d.ts +2 -2
- package/build/dex/wombat/wombat-bmw.js +8 -25
- package/build/dex/wombat/wombat-bmw.js.map +1 -1
- package/build/dex/wombat/wombat-pool.d.ts +51 -17
- package/build/dex/wombat/wombat-pool.js +398 -112
- package/build/dex/wombat/wombat-pool.js.map +1 -1
- package/build/dex/wombat/wombat.d.ts +1 -1
- package/build/dex/wombat/wombat.js +12 -18
- package/build/dex/wombat/wombat.js.map +1 -1
- package/package.json +1 -1
- package/src/abi/smardex/layer-1/smardex-factory.json +242 -0
- package/src/abi/smardex/layer-1/smardex-pool.json +506 -0
- package/src/abi/wombat/pool-v3.json +2013 -0
- package/src/dex/index.ts +2 -2
- package/src/dex/smardex/config.ts +0 -8
- package/src/dex/smardex/constants.ts +1 -1
- package/src/dex/smardex/sdk/utils.ts +2 -0
- package/src/dex/smardex/smardex-e2e.test.ts +21 -22
- package/src/dex/smardex/smardex-event-pool.ts +9 -11
- package/src/dex/smardex/smardex-events.test.ts +15 -27
- package/src/dex/smardex/smardex-integration.test.ts +1 -7
- package/src/dex/smardex/smardex.ts +118 -70
- package/src/dex/smardex/types.ts +1 -11
- package/src/dex/wombat/utils.ts +20 -0
- package/src/dex/wombat/wombat-bmw.ts +8 -31
- package/src/dex/wombat/wombat-e2e.test.ts +13 -1
- package/src/dex/wombat/wombat-events.test.ts +147 -0
- package/src/dex/wombat/wombat-integration.test.ts +70 -111
- package/src/dex/wombat/wombat-pool.ts +623 -171
- package/src/dex/wombat/wombat.ts +13 -23
- package/tests/constants-e2e.ts +11 -7
- package/src/dex/smardex/subgraph-queries.ts +0 -16
- package/src/dex/smardex/usd-reserves.ts +0 -137
- /package/src/abi/smardex/{smardex-router.json → all/smardex-router.json} +0 -0
- /package/src/abi/smardex/{smardex-factory.json → layer-2/smardex-factory.json} +0 -0
- /package/src/abi/smardex/{smardex-pool.json → layer-2/smardex-pool.json} +0 -0
- /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,
|
|
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,
|
|
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
|
|
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}
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
93
|
+
poolAddressSet.forEach(pool => {
|
|
104
94
|
bmwState.pools.push(pool);
|
|
105
|
-
promises.push(this.onAssetAdded(pool,
|
|
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
|
-
|
|
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(
|
|
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":";;;;;;AAAA,4CAA+C;AAM/C,uCAAiD;AACjD,+EAA0E;AAG1E,yEAA+C;AAC/C,6EAAmD;AACnD,
|
|
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 {
|
|
3
|
-
import {
|
|
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 {
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
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
|
-
|
|
11
|
-
static readonly
|
|
12
|
+
static readonly poolV2Interface: Interface;
|
|
13
|
+
static readonly poolV3Interface: Interface;
|
|
12
14
|
static readonly assetInterface: Interface;
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
],
|
|
21
|
-
|
|
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
|
}
|