@xyo-network/xl1-providers 4.0.5 → 4.0.7
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/dist/browser/SimpleNetworkStakeViewer.d.ts +1 -1
- package/dist/browser/SimpleStepRewards/SimpleStepRewardsByPositionViewer.d.ts +2 -2
- package/dist/browser/SimpleStepRewards/SimpleStepRewardsByPositionViewer.d.ts.map +1 -1
- package/dist/browser/SimpleStepRewards/SimpleStepRewardsByStakerViewer.d.ts +2 -2
- package/dist/browser/SimpleStepRewards/SimpleStepRewardsByStakerViewer.d.ts.map +1 -1
- package/dist/browser/SimpleStepRewards/SimpleStepRewardsByStepViewer.d.ts +2 -2
- package/dist/browser/SimpleStepRewards/SimpleStepRewardsByStepViewer.d.ts.map +1 -1
- package/dist/browser/SimpleStepRewards/SimpleStepRewardsTotalViewer.d.ts +1 -1
- package/dist/browser/SimpleStepRewards/SimpleStepRewardsTotalViewer.d.ts.map +1 -1
- package/dist/browser/SimpleStepViewer.d.ts +2 -2
- package/dist/browser/SimpleStepViewer.d.ts.map +1 -1
- package/dist/browser/SimpleXyoViewer.d.ts +131 -131
- package/dist/browser/SimpleXyoViewer.d.ts.map +1 -1
- package/dist/browser/buildSimpleXyoSigner.d.ts +8 -0
- package/dist/browser/buildSimpleXyoSigner.d.ts.map +1 -0
- package/dist/browser/index.d.ts +1 -3
- package/dist/browser/index.d.ts.map +1 -1
- package/dist/browser/index.mjs +1010 -1128
- package/dist/browser/index.mjs.map +4 -4
- package/dist/browser/locators/index.d.ts +0 -2
- package/dist/browser/locators/index.d.ts.map +1 -1
- package/dist/browser/locators/providerCandidates.d.ts.map +1 -1
- package/dist/browser/locators/remoteLocatorFromConfig.d.ts +1 -1
- package/dist/browser/locators/remoteLocatorFromConfig.d.ts.map +1 -1
- package/dist/browser/registerHelpers.d.ts +3 -18
- package/dist/browser/registerHelpers.d.ts.map +1 -1
- package/dist/neutral/SimpleNetworkStakeViewer.d.ts +1 -1
- package/dist/neutral/SimpleStepRewards/SimpleStepRewardsByPositionViewer.d.ts +2 -2
- package/dist/neutral/SimpleStepRewards/SimpleStepRewardsByPositionViewer.d.ts.map +1 -1
- package/dist/neutral/SimpleStepRewards/SimpleStepRewardsByStakerViewer.d.ts +2 -2
- package/dist/neutral/SimpleStepRewards/SimpleStepRewardsByStakerViewer.d.ts.map +1 -1
- package/dist/neutral/SimpleStepRewards/SimpleStepRewardsByStepViewer.d.ts +2 -2
- package/dist/neutral/SimpleStepRewards/SimpleStepRewardsByStepViewer.d.ts.map +1 -1
- package/dist/neutral/SimpleStepRewards/SimpleStepRewardsTotalViewer.d.ts +1 -1
- package/dist/neutral/SimpleStepRewards/SimpleStepRewardsTotalViewer.d.ts.map +1 -1
- package/dist/neutral/SimpleStepViewer.d.ts +2 -2
- package/dist/neutral/SimpleStepViewer.d.ts.map +1 -1
- package/dist/neutral/SimpleXyoViewer.d.ts +131 -131
- package/dist/neutral/SimpleXyoViewer.d.ts.map +1 -1
- package/dist/neutral/buildSimpleXyoSigner.d.ts +8 -0
- package/dist/neutral/buildSimpleXyoSigner.d.ts.map +1 -0
- package/dist/neutral/index.d.ts +1 -3
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +1010 -1128
- package/dist/neutral/index.mjs.map +4 -4
- package/dist/neutral/locators/index.d.ts +0 -2
- package/dist/neutral/locators/index.d.ts.map +1 -1
- package/dist/neutral/locators/providerCandidates.d.ts.map +1 -1
- package/dist/neutral/locators/remoteLocatorFromConfig.d.ts +1 -1
- package/dist/neutral/locators/remoteLocatorFromConfig.d.ts.map +1 -1
- package/dist/neutral/registerHelpers.d.ts +3 -18
- package/dist/neutral/registerHelpers.d.ts.map +1 -1
- package/dist/node/SimpleNetworkStakeViewer.d.ts +1 -1
- package/dist/node/SimpleStepRewards/SimpleStepRewardsByPositionViewer.d.ts +2 -2
- package/dist/node/SimpleStepRewards/SimpleStepRewardsByPositionViewer.d.ts.map +1 -1
- package/dist/node/SimpleStepRewards/SimpleStepRewardsByStakerViewer.d.ts +2 -2
- package/dist/node/SimpleStepRewards/SimpleStepRewardsByStakerViewer.d.ts.map +1 -1
- package/dist/node/SimpleStepRewards/SimpleStepRewardsByStepViewer.d.ts +2 -2
- package/dist/node/SimpleStepRewards/SimpleStepRewardsByStepViewer.d.ts.map +1 -1
- package/dist/node/SimpleStepRewards/SimpleStepRewardsTotalViewer.d.ts +1 -1
- package/dist/node/SimpleStepRewards/SimpleStepRewardsTotalViewer.d.ts.map +1 -1
- package/dist/node/SimpleStepViewer.d.ts +2 -2
- package/dist/node/SimpleStepViewer.d.ts.map +1 -1
- package/dist/node/SimpleXyoViewer.d.ts +131 -131
- package/dist/node/SimpleXyoViewer.d.ts.map +1 -1
- package/dist/node/buildSimpleXyoSigner.d.ts +8 -0
- package/dist/node/buildSimpleXyoSigner.d.ts.map +1 -0
- package/dist/node/index.d.ts +1 -3
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.mjs +1010 -1128
- package/dist/node/index.mjs.map +4 -4
- package/dist/node/locators/index.d.ts +0 -2
- package/dist/node/locators/index.d.ts.map +1 -1
- package/dist/node/locators/providerCandidates.d.ts.map +1 -1
- package/dist/node/locators/remoteLocatorFromConfig.d.ts +1 -1
- package/dist/node/locators/remoteLocatorFromConfig.d.ts.map +1 -1
- package/dist/node/registerHelpers.d.ts +3 -18
- package/dist/node/registerHelpers.d.ts.map +1 -1
- package/package.json +14 -12
- package/dist/browser/NodeXyoRunner.d.ts +0 -33
- package/dist/browser/NodeXyoRunner.d.ts.map +0 -1
- package/dist/browser/NodeXyoViewer.d.ts +0 -16
- package/dist/browser/NodeXyoViewer.d.ts.map +0 -1
- package/dist/browser/buildSimpleXyoSignerV2.d.ts +0 -6
- package/dist/browser/buildSimpleXyoSignerV2.d.ts.map +0 -1
- package/dist/browser/locators/commonLocatorFromConfig.d.ts +0 -11
- package/dist/browser/locators/commonLocatorFromConfig.d.ts.map +0 -1
- package/dist/browser/locators/commonProvidersFromConfig.d.ts +0 -7
- package/dist/browser/locators/commonProvidersFromConfig.d.ts.map +0 -1
- package/dist/neutral/NodeXyoRunner.d.ts +0 -33
- package/dist/neutral/NodeXyoRunner.d.ts.map +0 -1
- package/dist/neutral/NodeXyoViewer.d.ts +0 -16
- package/dist/neutral/NodeXyoViewer.d.ts.map +0 -1
- package/dist/neutral/buildSimpleXyoSignerV2.d.ts +0 -6
- package/dist/neutral/buildSimpleXyoSignerV2.d.ts.map +0 -1
- package/dist/neutral/locators/commonLocatorFromConfig.d.ts +0 -11
- package/dist/neutral/locators/commonLocatorFromConfig.d.ts.map +0 -1
- package/dist/neutral/locators/commonProvidersFromConfig.d.ts +0 -7
- package/dist/neutral/locators/commonProvidersFromConfig.d.ts.map +0 -1
- package/dist/node/NodeXyoRunner.d.ts +0 -33
- package/dist/node/NodeXyoRunner.d.ts.map +0 -1
- package/dist/node/NodeXyoViewer.d.ts +0 -16
- package/dist/node/NodeXyoViewer.d.ts.map +0 -1
- package/dist/node/buildSimpleXyoSignerV2.d.ts +0 -6
- package/dist/node/buildSimpleXyoSignerV2.d.ts.map +0 -1
- package/dist/node/locators/commonLocatorFromConfig.d.ts +0 -11
- package/dist/node/locators/commonLocatorFromConfig.d.ts.map +0 -1
- package/dist/node/locators/commonProvidersFromConfig.d.ts +0 -7
- package/dist/node/locators/commonProvidersFromConfig.d.ts.map +0 -1
package/dist/browser/index.mjs
CHANGED
|
@@ -11,16 +11,17 @@ var __decorateClass = (decorators, target, key, kind) => {
|
|
|
11
11
|
};
|
|
12
12
|
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
13
13
|
|
|
14
|
-
// src/
|
|
14
|
+
// src/buildSimpleXyoSigner.ts
|
|
15
15
|
import { XyoSignerMoniker } from "@xyo-network/xl1-protocol-lib";
|
|
16
16
|
import { ProviderFactoryLocator, SimpleXyoSigner } from "@xyo-network/xl1-protocol-sdk";
|
|
17
|
-
async function
|
|
17
|
+
async function buildSimpleXyoSigner(context, account) {
|
|
18
18
|
const locator = new ProviderFactoryLocator(context);
|
|
19
19
|
locator.register(
|
|
20
20
|
SimpleXyoSigner.factory(SimpleXyoSigner.dependencies, { account })
|
|
21
21
|
);
|
|
22
22
|
return await locator.getInstance(XyoSignerMoniker);
|
|
23
23
|
}
|
|
24
|
+
var buildSimpleXyoSignerV2 = buildSimpleXyoSigner;
|
|
24
25
|
|
|
25
26
|
// src/creators/createRestDataLake.ts
|
|
26
27
|
import { RestDataLakeRunner as RestDataLakeRunner3, RestDataLakeViewer as RestDataLakeViewer4 } from "@xyo-network/xl1-protocol-sdk";
|
|
@@ -40,7 +41,7 @@ async function baseConfigFactoryLocator() {
|
|
|
40
41
|
}
|
|
41
42
|
|
|
42
43
|
// src/locators/basicRemoteRunnerLocator.ts
|
|
43
|
-
import { isDefined as isDefined3 } from "@
|
|
44
|
+
import { isDefined as isDefined3 } from "@ariestools/sdk";
|
|
44
45
|
import {
|
|
45
46
|
ProviderFactoryLocator as ProviderFactoryLocator4,
|
|
46
47
|
RestDataLakeRunner as RestDataLakeRunner2,
|
|
@@ -95,7 +96,7 @@ SimpleXyoConnectionRunner = __decorateClass([
|
|
|
95
96
|
], SimpleXyoConnectionRunner);
|
|
96
97
|
|
|
97
98
|
// src/locators/basicRemoteViewerLocator.ts
|
|
98
|
-
import { isDefined as isDefined2 } from "@
|
|
99
|
+
import { isDefined as isDefined2 } from "@ariestools/sdk";
|
|
99
100
|
import {
|
|
100
101
|
ActorConfigZod,
|
|
101
102
|
RestDataLakeViewer as RestDataLakeViewer2,
|
|
@@ -172,7 +173,7 @@ import {
|
|
|
172
173
|
SimpleChainContractViewer,
|
|
173
174
|
SimpleFinalizationRunner,
|
|
174
175
|
SimpleFinalizationViewer,
|
|
175
|
-
SimpleMempoolRunner
|
|
176
|
+
SimpleMempoolRunner,
|
|
176
177
|
SimpleMempoolViewer,
|
|
177
178
|
SimpleStakeEventsViewer,
|
|
178
179
|
SimpleStakeTotalsViewer,
|
|
@@ -201,1271 +202,1181 @@ import {
|
|
|
201
202
|
JsonRpcXyoViewer
|
|
202
203
|
} from "@xyo-network/xl1-rpc";
|
|
203
204
|
|
|
204
|
-
// src/
|
|
205
|
-
import { assertEx } from "@
|
|
206
|
-
import {
|
|
207
|
-
import { XyoRunnerMoniker as XyoRunnerMoniker2 } from "@xyo-network/xl1-protocol-lib";
|
|
205
|
+
// src/SimpleDeadLetterQueueRunner.ts
|
|
206
|
+
import { assertEx } from "@ariestools/sdk";
|
|
207
|
+
import { isHashMeta, PayloadBuilder } from "@xyo-network/sdk-js";
|
|
208
208
|
import {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
} from "@xyo-network/xl1-protocol-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
get mempool() {
|
|
219
|
-
return this._mempoolRunner;
|
|
220
|
-
}
|
|
221
|
-
get node() {
|
|
222
|
-
return this.params.node;
|
|
209
|
+
DeadLetterQueueRunnerMoniker,
|
|
210
|
+
isBlockRejection,
|
|
211
|
+
isTransactionRejection
|
|
212
|
+
} from "@xyo-network/xl1-protocol-lib";
|
|
213
|
+
import { AbstractCreatableProvider as AbstractCreatableProvider3, creatableProvider as creatableProvider3 } from "@xyo-network/xl1-protocol-sdk";
|
|
214
|
+
var SimpleDeadLetterQueueRunner = class extends AbstractCreatableProvider3 {
|
|
215
|
+
moniker = SimpleDeadLetterQueueRunner.defaultMoniker;
|
|
216
|
+
get rejectedBlocksArchivist() {
|
|
217
|
+
return this.params.rejectedBlocksArchivist;
|
|
223
218
|
}
|
|
224
|
-
get
|
|
225
|
-
return this.
|
|
219
|
+
get rejectedTransactionsArchivist() {
|
|
220
|
+
return this.params.rejectedTransactionsArchivist;
|
|
226
221
|
}
|
|
227
|
-
|
|
228
|
-
return
|
|
222
|
+
static async paramsHandler(params) {
|
|
223
|
+
return {
|
|
224
|
+
...await super.paramsHandler(params),
|
|
225
|
+
rejectedBlocksArchivist: assertEx(params?.rejectedBlocksArchivist, () => "rejectedBlocksArchivist is required"),
|
|
226
|
+
rejectedTransactionsArchivist: assertEx(params?.rejectedTransactionsArchivist, () => "rejectedTransactionsArchivist is required")
|
|
227
|
+
};
|
|
229
228
|
}
|
|
230
|
-
|
|
231
|
-
|
|
229
|
+
async pruneRejectedBlocks({
|
|
230
|
+
batchSize = 10,
|
|
231
|
+
maxPrune = 1e3,
|
|
232
|
+
maxCheck = 1e3
|
|
233
|
+
} = {}) {
|
|
234
|
+
let total = 0;
|
|
235
|
+
let pruned = 0;
|
|
236
|
+
let cursor;
|
|
237
|
+
let batch = await this.rejectedBlocksArchivist.next({
|
|
238
|
+
limit: batchSize,
|
|
239
|
+
cursor,
|
|
240
|
+
order: "desc"
|
|
241
|
+
});
|
|
242
|
+
while (batch.length > 0 && pruned < maxPrune && total < maxCheck) {
|
|
243
|
+
const pruneHashes = batch.filter(isHashMeta).filter((p) => !isBlockRejection(p)).map((p) => p._hash);
|
|
244
|
+
pruned += pruneHashes.length;
|
|
245
|
+
total += batch.length;
|
|
246
|
+
if (pruneHashes.length > 0) {
|
|
247
|
+
await this.rejectedBlocksArchivist.delete(pruneHashes);
|
|
248
|
+
}
|
|
249
|
+
const pruneSet = new Set(pruneHashes);
|
|
250
|
+
const lastSurvivor = batch.findLast((p) => isHashMeta(p) && !pruneSet.has(p._hash));
|
|
251
|
+
cursor = lastSurvivor?._sequence ?? cursor;
|
|
252
|
+
batch = await this.rejectedBlocksArchivist.next({
|
|
253
|
+
limit: batchSize,
|
|
254
|
+
cursor,
|
|
255
|
+
order: "desc"
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
return [pruned, total];
|
|
232
259
|
}
|
|
233
|
-
|
|
234
|
-
|
|
260
|
+
async pruneRejectedTransactions({
|
|
261
|
+
batchSize = 10,
|
|
262
|
+
maxPrune = 1e3,
|
|
263
|
+
maxCheck = 1e3
|
|
264
|
+
} = {}) {
|
|
265
|
+
let total = 0;
|
|
266
|
+
let pruned = 0;
|
|
267
|
+
let cursor;
|
|
268
|
+
let batch = await this.rejectedTransactionsArchivist.next({
|
|
269
|
+
limit: batchSize,
|
|
270
|
+
cursor,
|
|
271
|
+
order: "desc"
|
|
272
|
+
});
|
|
273
|
+
while (batch.length > 0 && pruned < maxPrune && total < maxCheck) {
|
|
274
|
+
const pruneHashes = batch.filter(isHashMeta).filter((p) => !isTransactionRejection(p)).map((p) => p._hash);
|
|
275
|
+
pruned += pruneHashes.length;
|
|
276
|
+
total += batch.length;
|
|
277
|
+
if (pruneHashes.length > 0) {
|
|
278
|
+
await this.rejectedTransactionsArchivist.delete(pruneHashes);
|
|
279
|
+
}
|
|
280
|
+
const pruneSet = new Set(pruneHashes);
|
|
281
|
+
const lastSurvivor = batch.findLast((p) => isHashMeta(p) && !pruneSet.has(p._hash));
|
|
282
|
+
cursor = lastSurvivor?._sequence ?? cursor;
|
|
283
|
+
batch = await this.rejectedTransactionsArchivist.next({
|
|
284
|
+
limit: batchSize,
|
|
285
|
+
cursor,
|
|
286
|
+
order: "desc"
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
return [pruned, total];
|
|
235
290
|
}
|
|
236
|
-
async
|
|
237
|
-
const
|
|
238
|
-
|
|
291
|
+
async rejectBlock(rejection) {
|
|
292
|
+
const withMeta = await PayloadBuilder.addHashMeta(rejection);
|
|
293
|
+
const inserted = await this.rejectedBlocksArchivist.insert([withMeta]);
|
|
294
|
+
return inserted.length > 0;
|
|
239
295
|
}
|
|
240
|
-
|
|
241
|
-
const
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
async startHandler() {
|
|
245
|
-
await super.startHandler();
|
|
246
|
-
this._pendingTransactionsArchivist = assertEx(
|
|
247
|
-
await this.getArchivist(this.pendingTransactionsArchivistPath),
|
|
248
|
-
() => `Could not resolve pending archivist at ${this.pendingTransactionsArchivistPath}`
|
|
249
|
-
);
|
|
250
|
-
this._pendingBlocksArchivist = assertEx(
|
|
251
|
-
await this.getArchivist(this.pendingBlocksArchivistPath),
|
|
252
|
-
() => `Could not resolve pending archivist at ${this.pendingBlocksArchivistPath}`
|
|
253
|
-
);
|
|
254
|
-
this._mempoolRunner = assertEx(await SimpleMempoolRunner.create({
|
|
255
|
-
context: this.context,
|
|
256
|
-
pendingTransactionsArchivist: this.pendingTransactionsArchivist,
|
|
257
|
-
pendingBlocksArchivist: this.pendingBlocksArchivist
|
|
258
|
-
}), () => "Failed to create SimpleMempoolRunner");
|
|
296
|
+
async rejectTransaction(rejection) {
|
|
297
|
+
const withMeta = await PayloadBuilder.addHashMeta(rejection);
|
|
298
|
+
const inserted = await this.rejectedTransactionsArchivist.insert([withMeta]);
|
|
299
|
+
return inserted.length > 0;
|
|
259
300
|
}
|
|
260
301
|
};
|
|
261
|
-
__publicField(
|
|
262
|
-
__publicField(
|
|
263
|
-
__publicField(
|
|
264
|
-
__publicField(
|
|
265
|
-
__publicField(
|
|
266
|
-
|
|
302
|
+
__publicField(SimpleDeadLetterQueueRunner, "connectionTypes", ["lmdb", "mongo", "memory"]);
|
|
303
|
+
__publicField(SimpleDeadLetterQueueRunner, "defaultMoniker", DeadLetterQueueRunnerMoniker);
|
|
304
|
+
__publicField(SimpleDeadLetterQueueRunner, "dependencies", []);
|
|
305
|
+
__publicField(SimpleDeadLetterQueueRunner, "monikers", [DeadLetterQueueRunnerMoniker]);
|
|
306
|
+
__publicField(SimpleDeadLetterQueueRunner, "surface", "node");
|
|
307
|
+
SimpleDeadLetterQueueRunner = __decorateClass([
|
|
267
308
|
creatableProvider3()
|
|
268
|
-
],
|
|
269
|
-
|
|
270
|
-
// src/NodeXyoViewer.ts
|
|
271
|
-
import { assertEx as assertEx3 } from "@xylabs/sdk";
|
|
272
|
-
import { asAttachableArchivistInstance } from "@xyo-network/sdk-js";
|
|
273
|
-
import { creatableProvider as creatableProvider5 } from "@xyo-network/xl1-protocol-sdk";
|
|
309
|
+
], SimpleDeadLetterQueueRunner);
|
|
274
310
|
|
|
275
|
-
// src/
|
|
311
|
+
// src/SimpleDeadLetterQueueViewer.ts
|
|
276
312
|
import {
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
313
|
+
exists,
|
|
314
|
+
isDefined,
|
|
315
|
+
isHash
|
|
316
|
+
} from "@ariestools/sdk";
|
|
317
|
+
import { isHashMeta as isHashMeta2 } from "@xyo-network/sdk-js";
|
|
318
|
+
import {
|
|
319
|
+
DeadLetterQueueViewerMoniker,
|
|
320
|
+
isBlockRejection as isBlockRejection2,
|
|
321
|
+
isTransactionRejection as isTransactionRejection2
|
|
322
|
+
} from "@xyo-network/xl1-protocol-lib";
|
|
323
|
+
import { AbstractCreatableProvider as AbstractCreatableProvider4, creatableProvider as creatableProvider4 } from "@xyo-network/xl1-protocol-sdk";
|
|
324
|
+
var SimpleDeadLetterQueueViewer = class extends AbstractCreatableProvider4 {
|
|
325
|
+
moniker = SimpleDeadLetterQueueViewer.defaultMoniker;
|
|
326
|
+
get rejectedBlocksArchivist() {
|
|
327
|
+
return this.params.rejectedBlocksArchivist;
|
|
328
|
+
}
|
|
329
|
+
get rejectedTransactionsArchivist() {
|
|
330
|
+
return this.params.rejectedTransactionsArchivist;
|
|
331
|
+
}
|
|
332
|
+
async rejectedBlocks({
|
|
333
|
+
cursor: providedCursor,
|
|
334
|
+
limit = 100,
|
|
335
|
+
rejector
|
|
336
|
+
} = {}) {
|
|
337
|
+
let cursor;
|
|
338
|
+
if (isHash(providedCursor)) {
|
|
339
|
+
const [p] = await this.rejectedBlocksArchivist.get([providedCursor]);
|
|
340
|
+
if (isDefined(p)) {
|
|
341
|
+
cursor = p._sequence;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
const payloads = await this.rejectedBlocksArchivist.next({
|
|
345
|
+
order: "desc",
|
|
346
|
+
limit,
|
|
347
|
+
cursor
|
|
348
|
+
});
|
|
349
|
+
const rejections = payloads.filter(isHashMeta2).map((p) => isBlockRejection2(p) ? p : void 0).filter(exists);
|
|
350
|
+
if (rejector !== void 0) {
|
|
351
|
+
return rejections.filter((r) => r.rejector === rejector);
|
|
352
|
+
}
|
|
353
|
+
return rejections;
|
|
354
|
+
}
|
|
355
|
+
async rejectedTransactions({
|
|
356
|
+
cursor: providedCursor,
|
|
357
|
+
limit = 100,
|
|
358
|
+
rejector
|
|
359
|
+
} = {}) {
|
|
360
|
+
let cursor;
|
|
361
|
+
if (isHash(providedCursor)) {
|
|
362
|
+
const [p] = await this.rejectedTransactionsArchivist.get([providedCursor]);
|
|
363
|
+
if (isDefined(p)) {
|
|
364
|
+
cursor = p._sequence;
|
|
365
|
+
}
|
|
366
|
+
}
|
|
367
|
+
const payloads = await this.rejectedTransactionsArchivist.next({
|
|
368
|
+
order: "desc",
|
|
369
|
+
limit,
|
|
370
|
+
cursor
|
|
371
|
+
});
|
|
372
|
+
const rejections = payloads.filter(isHashMeta2).map((p) => isTransactionRejection2(p) ? p : void 0).filter(exists);
|
|
373
|
+
if (rejector !== void 0) {
|
|
374
|
+
return rejections.filter((r) => r.rejector === rejector);
|
|
375
|
+
}
|
|
376
|
+
return rejections;
|
|
377
|
+
}
|
|
378
|
+
};
|
|
379
|
+
__publicField(SimpleDeadLetterQueueViewer, "connectionTypes", ["lmdb", "mongo", "memory"]);
|
|
380
|
+
__publicField(SimpleDeadLetterQueueViewer, "defaultMoniker", DeadLetterQueueViewerMoniker);
|
|
381
|
+
__publicField(SimpleDeadLetterQueueViewer, "dependencies", []);
|
|
382
|
+
__publicField(SimpleDeadLetterQueueViewer, "monikers", [DeadLetterQueueViewerMoniker]);
|
|
383
|
+
__publicField(SimpleDeadLetterQueueViewer, "surface", "node");
|
|
384
|
+
SimpleDeadLetterQueueViewer = __decorateClass([
|
|
385
|
+
creatableProvider4()
|
|
386
|
+
], SimpleDeadLetterQueueViewer);
|
|
387
|
+
|
|
388
|
+
// src/SimpleNetworkStakeViewer.ts
|
|
389
|
+
import { assertEx as assertEx2 } from "@ariestools/sdk";
|
|
280
390
|
import {
|
|
281
|
-
AccountBalanceViewerMoniker,
|
|
282
|
-
asAttoXL1,
|
|
283
|
-
asXL1BlockRange,
|
|
284
|
-
BlockViewerMoniker,
|
|
285
|
-
ChainContractViewerMoniker,
|
|
286
391
|
FinalizationViewerMoniker,
|
|
287
|
-
|
|
288
|
-
NetworkStakeStepRewardsByPositionViewerMoniker,
|
|
392
|
+
NetworkStakeStepRewardsViewerMoniker,
|
|
289
393
|
NetworkStakeViewerMoniker,
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
TimeSyncViewerMoniker,
|
|
293
|
-
TransactionViewerMoniker,
|
|
294
|
-
XYO_NETWORK_STAKING_ADDRESS,
|
|
295
|
-
XYO_ZERO_ADDRESS,
|
|
296
|
-
XyoViewerMoniker as XyoViewerMoniker3
|
|
394
|
+
StakeTotalsViewerMoniker,
|
|
395
|
+
StakeViewerMoniker
|
|
297
396
|
} from "@xyo-network/xl1-protocol-lib";
|
|
298
397
|
import {
|
|
299
|
-
AbstractCreatableProvider as
|
|
300
|
-
|
|
301
|
-
blockRangeSteps,
|
|
302
|
-
creatableProvider as creatableProvider4,
|
|
303
|
-
externalBlockRangeFromStep,
|
|
304
|
-
externalBlockRangeFromXL1BlockRange,
|
|
305
|
-
networkStakeStepRewardPositionWeight,
|
|
306
|
-
stepRewardTotal,
|
|
307
|
-
toStepIdentityString,
|
|
308
|
-
weightedStakeForRangeByPosition,
|
|
309
|
-
withContextCacheResponse
|
|
398
|
+
AbstractCreatableProvider as AbstractCreatableProvider5,
|
|
399
|
+
creatableProvider as creatableProvider5
|
|
310
400
|
} from "@xyo-network/xl1-protocol-sdk";
|
|
311
|
-
var
|
|
312
|
-
moniker =
|
|
313
|
-
_tracer;
|
|
314
|
-
_accountBalanceViewer;
|
|
315
|
-
_blockViewer;
|
|
316
|
-
_chainContractViewer;
|
|
317
|
-
_chainId;
|
|
401
|
+
var SimpleNetworkStakeViewer = class extends AbstractCreatableProvider5 {
|
|
402
|
+
moniker = SimpleNetworkStakeViewer.defaultMoniker;
|
|
318
403
|
_finalizationViewer;
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
_stepViewer;
|
|
325
|
-
_timeSyncViewer;
|
|
326
|
-
_transaction;
|
|
327
|
-
get account() {
|
|
328
|
-
return { balance: this._accountBalanceViewer };
|
|
329
|
-
}
|
|
330
|
-
get block() {
|
|
331
|
-
return this._blockViewer;
|
|
332
|
-
}
|
|
333
|
-
get chainContractViewer() {
|
|
334
|
-
return this._chainContractViewer;
|
|
404
|
+
_stake;
|
|
405
|
+
_stakeTotals;
|
|
406
|
+
_stepRewardsViewer;
|
|
407
|
+
get stepRewards() {
|
|
408
|
+
return assertEx2(this._stepRewardsViewer, () => "Step rewards viewer not initialized");
|
|
335
409
|
}
|
|
336
|
-
get
|
|
410
|
+
get finalizationViewer() {
|
|
337
411
|
return this._finalizationViewer;
|
|
338
412
|
}
|
|
339
|
-
get
|
|
340
|
-
return this.
|
|
341
|
-
}
|
|
342
|
-
get networkStake() {
|
|
343
|
-
return this._networkStakeViewer;
|
|
413
|
+
get rewardMultipliers() {
|
|
414
|
+
return this.params.rewardMultipliers;
|
|
344
415
|
}
|
|
345
416
|
get stake() {
|
|
346
|
-
return this.
|
|
347
|
-
}
|
|
348
|
-
get step() {
|
|
349
|
-
return this._stepViewer;
|
|
350
|
-
}
|
|
351
|
-
get time() {
|
|
352
|
-
return this._timeSyncViewer;
|
|
417
|
+
return this._stake;
|
|
353
418
|
}
|
|
354
|
-
get
|
|
355
|
-
return this.
|
|
419
|
+
get stakeTotals() {
|
|
420
|
+
return this._stakeTotals;
|
|
356
421
|
}
|
|
357
|
-
|
|
358
|
-
|
|
422
|
+
async active(blockNumber) {
|
|
423
|
+
const resolvedBlockNumber = blockNumber ?? await this.finalizationViewer.headNumber();
|
|
424
|
+
return [await this.stakeTotals.active(resolvedBlockNumber), resolvedBlockNumber];
|
|
359
425
|
}
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
426
|
+
async createHandler() {
|
|
427
|
+
await super.createHandler();
|
|
428
|
+
this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker);
|
|
429
|
+
this._stake = await this.locator.getInstance(StakeViewerMoniker);
|
|
430
|
+
this._stakeTotals = await this.locator.getInstance(StakeTotalsViewerMoniker);
|
|
431
|
+
this._stepRewardsViewer = await this.locator.getInstance(NetworkStakeStepRewardsViewerMoniker);
|
|
365
432
|
}
|
|
433
|
+
};
|
|
434
|
+
__publicField(SimpleNetworkStakeViewer, "connectionTypes", ["lmdb", "mongo", "memory"]);
|
|
435
|
+
__publicField(SimpleNetworkStakeViewer, "defaultMoniker", NetworkStakeViewerMoniker);
|
|
436
|
+
__publicField(SimpleNetworkStakeViewer, "dependencies", [
|
|
437
|
+
FinalizationViewerMoniker,
|
|
438
|
+
NetworkStakeStepRewardsViewerMoniker,
|
|
439
|
+
StakeTotalsViewerMoniker,
|
|
440
|
+
StakeViewerMoniker
|
|
441
|
+
]);
|
|
442
|
+
__publicField(SimpleNetworkStakeViewer, "monikers", [NetworkStakeViewerMoniker]);
|
|
443
|
+
__publicField(SimpleNetworkStakeViewer, "surface", "node");
|
|
444
|
+
SimpleNetworkStakeViewer = __decorateClass([
|
|
445
|
+
creatableProvider5()
|
|
446
|
+
], SimpleNetworkStakeViewer);
|
|
447
|
+
|
|
448
|
+
// src/SimpleStepRewards/SimpleStepRewardsByPositionViewer.ts
|
|
449
|
+
import { isArray } from "@ariestools/sdk";
|
|
450
|
+
import {
|
|
451
|
+
asAttoXL1,
|
|
452
|
+
asXL1BlockRange,
|
|
453
|
+
BlockViewerMoniker,
|
|
454
|
+
FinalizationViewerMoniker as FinalizationViewerMoniker2,
|
|
455
|
+
NetworkStakeStepRewardsByPositionViewerMoniker,
|
|
456
|
+
StakeViewerMoniker as StakeViewerMoniker2
|
|
457
|
+
} from "@xyo-network/xl1-protocol-lib";
|
|
458
|
+
import {
|
|
459
|
+
AbstractCreatableProvider as AbstractCreatableProvider6,
|
|
460
|
+
blockRangeSteps,
|
|
461
|
+
creatableProvider as creatableProvider6
|
|
462
|
+
} from "@xyo-network/xl1-protocol-sdk";
|
|
463
|
+
|
|
464
|
+
// src/SimpleStepRewards/primitives/networkStakeStepRewardEarned.ts
|
|
465
|
+
import { XYO_NETWORK_STAKING_ADDRESS as XYO_NETWORK_STAKING_ADDRESS2 } from "@xyo-network/xl1-protocol-lib";
|
|
466
|
+
import { withContextCacheResponse as withContextCacheResponse2 } from "@xyo-network/xl1-protocol-sdk";
|
|
467
|
+
|
|
468
|
+
// src/SimpleStepRewards/primitives/networkStakeStepRewardEarnedForPosition.ts
|
|
469
|
+
import { XYO_NETWORK_STAKING_ADDRESS } from "@xyo-network/xl1-protocol-lib";
|
|
470
|
+
import {
|
|
471
|
+
externalBlockRangeFromStep,
|
|
472
|
+
stepRewardTotal,
|
|
473
|
+
weightedStakeForRangeByPosition,
|
|
474
|
+
withContextCacheResponse
|
|
475
|
+
} from "@xyo-network/xl1-protocol-sdk";
|
|
476
|
+
async function networkStakeStepRewardEarnedForPosition(context, blockViewer, stakeEventsViewer, stepIdentity, position, rewardMultipliers = {}) {
|
|
477
|
+
const cacheKey = `${stepIdentity.block}|${stepIdentity.step}|${position.id}`;
|
|
478
|
+
return await withContextCacheResponse(context, "networkStakeStepRewardEarnedForPosition", cacheKey, async () => {
|
|
479
|
+
const range = await externalBlockRangeFromStep(context, blockViewer, stepIdentity);
|
|
480
|
+
const numerator = position.staked === XYO_NETWORK_STAKING_ADDRESS ? await weightedStakeForRangeByPosition(
|
|
481
|
+
context,
|
|
482
|
+
blockViewer,
|
|
483
|
+
stakeEventsViewer,
|
|
484
|
+
range,
|
|
485
|
+
XYO_NETWORK_STAKING_ADDRESS,
|
|
486
|
+
position.id
|
|
487
|
+
) : 0n;
|
|
488
|
+
const denominator = await weightedStakeForRangeByPosition(
|
|
489
|
+
context,
|
|
490
|
+
blockViewer,
|
|
491
|
+
stakeEventsViewer,
|
|
492
|
+
range
|
|
493
|
+
);
|
|
494
|
+
const totalReward = await stepRewardTotal(context, blockViewer, stepIdentity, rewardMultipliers);
|
|
495
|
+
const positionReward = denominator > 0n ? totalReward * numerator / denominator : 0n;
|
|
496
|
+
const result = [positionReward, totalReward];
|
|
497
|
+
return result;
|
|
498
|
+
});
|
|
499
|
+
}
|
|
500
|
+
|
|
501
|
+
// src/SimpleStepRewards/primitives/networkStakeStepRewardEarned.ts
|
|
502
|
+
async function networkStakeStepRewardEarned(context, blockViewer, stakeViewer, stepIdentity, rewardMultipliers = {}) {
|
|
503
|
+
const cacheKey = `${stepIdentity.block}|${stepIdentity.step}`;
|
|
504
|
+
return await withContextCacheResponse2(context, "networkStakeStepRewardEarned", cacheKey, async () => {
|
|
505
|
+
const positions = await stakeViewer.stakesByStaked(XYO_NETWORK_STAKING_ADDRESS2);
|
|
506
|
+
const results = await Promise.all(positions.map((pos) => {
|
|
507
|
+
return networkStakeStepRewardEarnedForPosition(
|
|
508
|
+
context,
|
|
509
|
+
blockViewer,
|
|
510
|
+
stakeViewer.stakeEvents,
|
|
511
|
+
stepIdentity,
|
|
512
|
+
pos,
|
|
513
|
+
rewardMultipliers
|
|
514
|
+
);
|
|
515
|
+
}));
|
|
516
|
+
const numerator = results.reduce((acc, [positionReward]) => acc + positionReward, 0n);
|
|
517
|
+
const result = results.length > 0 ? [numerator, results[0][1]] : [0n, 0n];
|
|
518
|
+
return result;
|
|
519
|
+
});
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
// src/SimpleStepRewards/primitives/networkStakeStepRewardEarnedForStaker.ts
|
|
523
|
+
import { XYO_NETWORK_STAKING_ADDRESS as XYO_NETWORK_STAKING_ADDRESS3 } from "@xyo-network/xl1-protocol-lib";
|
|
524
|
+
import {
|
|
525
|
+
toStepIdentityString,
|
|
526
|
+
withContextCacheResponse as withContextCacheResponse3
|
|
527
|
+
} from "@xyo-network/xl1-protocol-sdk";
|
|
528
|
+
async function networkStakeStepRewardEarnedForStaker(context, blockViewer, stakeViewer, stepIdentity, staker, rewardMultipliers = {}) {
|
|
529
|
+
const stepId = toStepIdentityString(stepIdentity);
|
|
530
|
+
return await withContextCacheResponse3(context, "networkStakeStepRewardEarnedForStaker", `${stepId}-${staker}`, async () => {
|
|
531
|
+
const stakes = await stakeViewer.stakesByStaker(staker);
|
|
532
|
+
const positions = stakes.filter((pos) => pos.staked === XYO_NETWORK_STAKING_ADDRESS3);
|
|
533
|
+
const results = await Promise.all(positions.map((pos) => {
|
|
534
|
+
return networkStakeStepRewardEarnedForPosition(
|
|
535
|
+
context,
|
|
536
|
+
blockViewer,
|
|
537
|
+
stakeViewer.stakeEvents,
|
|
538
|
+
stepIdentity,
|
|
539
|
+
pos,
|
|
540
|
+
rewardMultipliers
|
|
541
|
+
);
|
|
542
|
+
}));
|
|
543
|
+
const numerator = results.reduce((acc, [positionReward]) => acc + positionReward, 0n);
|
|
544
|
+
const result = results.length > 0 ? [numerator, results[0][1]] : [0n, 0n];
|
|
545
|
+
return result;
|
|
546
|
+
});
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
// src/SimpleStepRewards/SimpleStepRewardsByPositionViewer.ts
|
|
550
|
+
var SimpleStepRewardsByPositionViewer = class extends AbstractCreatableProvider6 {
|
|
551
|
+
moniker = SimpleStepRewardsByPositionViewer.defaultMoniker;
|
|
552
|
+
_blockViewer;
|
|
553
|
+
_finalizationViewer;
|
|
554
|
+
_stakeViewer;
|
|
366
555
|
get rewardMultipliers() {
|
|
367
|
-
|
|
368
|
-
return this._rewardMultipliers;
|
|
369
|
-
}
|
|
370
|
-
async accountBalance(address, config = {}) {
|
|
371
|
-
return await this.account.balance.accountBalance(address, config);
|
|
372
|
-
}
|
|
373
|
-
async accountBalanceHistory(address, config = {}) {
|
|
374
|
-
return await this.account.balance.accountBalanceHistory(address, config);
|
|
375
|
-
}
|
|
376
|
-
async blockByHash(hash) {
|
|
377
|
-
return await this.block.blockByHash(hash);
|
|
556
|
+
return this.params.rewardMultipliers ?? {};
|
|
378
557
|
}
|
|
379
|
-
|
|
380
|
-
return
|
|
558
|
+
get blockViewer() {
|
|
559
|
+
return this._blockViewer;
|
|
381
560
|
}
|
|
382
|
-
|
|
383
|
-
return
|
|
561
|
+
get finalizationViewer() {
|
|
562
|
+
return this._finalizationViewer;
|
|
384
563
|
}
|
|
385
|
-
|
|
386
|
-
return
|
|
564
|
+
get stakeViewer() {
|
|
565
|
+
return this._stakeViewer;
|
|
387
566
|
}
|
|
388
|
-
async
|
|
389
|
-
|
|
567
|
+
async bonus({ range, positions } = {}) {
|
|
568
|
+
const total = await this.total({ range, positions });
|
|
569
|
+
const earned = await this.earned({ range, positions });
|
|
570
|
+
const result = {};
|
|
571
|
+
for (const key of Object.keys(total)) {
|
|
572
|
+
const pos = Number(key);
|
|
573
|
+
result[pos] = asAttoXL1(total[pos] - (earned[pos] ?? 0n));
|
|
574
|
+
}
|
|
575
|
+
return result;
|
|
390
576
|
}
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
const chainId = assertEx2(
|
|
394
|
-
blockNumber === "latest" ? this._chainId : await this.chainContractViewer.chainIdAtBlockNumber(blockNumber),
|
|
395
|
-
() => `Could not find block for chainId at block ${blockNumber}`
|
|
396
|
-
);
|
|
397
|
-
return chainId;
|
|
398
|
-
}, this.context);
|
|
577
|
+
claimed(_options) {
|
|
578
|
+
throw new Error("Method [claimed] not implemented.");
|
|
399
579
|
}
|
|
400
580
|
async createHandler() {
|
|
401
581
|
await super.createHandler();
|
|
402
|
-
this._accountBalanceViewer = await this.locator.getInstance(AccountBalanceViewerMoniker);
|
|
403
582
|
this._blockViewer = await this.locator.getInstance(BlockViewerMoniker);
|
|
404
|
-
this.
|
|
405
|
-
this.
|
|
406
|
-
this._mempoolViewer = await this.locator.getInstance(MempoolViewerMoniker);
|
|
407
|
-
this._networkStakeViewer = await this.locator.getInstance(NetworkStakeViewerMoniker);
|
|
408
|
-
this._networkStepRewardsByPositionViewer = await this.locator.getInstance(NetworkStakeStepRewardsByPositionViewerMoniker);
|
|
409
|
-
this._stakeViewer = await this.locator.getInstance(StakeViewerMoniker);
|
|
410
|
-
this._stepViewer = await this.locator.getInstance(StepViewerMoniker);
|
|
411
|
-
this._timeSyncViewer = await this.locator.getInstance(TimeSyncViewerMoniker);
|
|
412
|
-
this._transaction = await this.locator.getInstance(TransactionViewerMoniker);
|
|
413
|
-
this._chainId = await this._chainContractViewer.chainId();
|
|
414
|
-
}
|
|
415
|
-
async currentBlock() {
|
|
416
|
-
return await this.block.currentBlock();
|
|
417
|
-
}
|
|
418
|
-
async currentBlockHash() {
|
|
419
|
-
return await this.block.currentBlockHash();
|
|
420
|
-
}
|
|
421
|
-
async currentBlockNumber() {
|
|
422
|
-
return await this.block.currentBlockNumber();
|
|
423
|
-
}
|
|
424
|
-
forkHistory() {
|
|
425
|
-
throw new Error("Method [forkHistory] not implemented.");
|
|
426
|
-
}
|
|
427
|
-
networkStakeStepRewardAddressHistory(_address) {
|
|
428
|
-
throw new Error("Method [networkStakeStepRewardAddressHistory] not implemented.");
|
|
429
|
-
}
|
|
430
|
-
networkStakeStepRewardAddressReward(_context, _address) {
|
|
431
|
-
throw new Error("Method [networkStakeStepRewardAddressReward] not implemented.");
|
|
432
|
-
}
|
|
433
|
-
networkStakeStepRewardAddressShare(_context, _address) {
|
|
434
|
-
throw new Error("Method [networkStakeStepRewardAddressShare] not implemented.");
|
|
435
|
-
}
|
|
436
|
-
networkStakeStepRewardClaimedByAddress(_address) {
|
|
437
|
-
throw new Error("Method [networkStakeStepRewardClaimedByAddress] not implemented.");
|
|
583
|
+
this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker2);
|
|
584
|
+
this._stakeViewer = await this.locator.getInstance(StakeViewerMoniker2);
|
|
438
585
|
}
|
|
439
|
-
async
|
|
440
|
-
|
|
441
|
-
return await withContextCacheResponse(this.context, "SimpleXyoViewer:networkStakeStepRewardForPosition", cacheKey, async () => {
|
|
442
|
-
const externalRange = await externalBlockRangeFromXL1BlockRange(this.context, this.block, range);
|
|
443
|
-
const positionCount = await this.stake.stakeEvents.positionCount(externalRange);
|
|
444
|
-
if (positionCount === 0) {
|
|
445
|
-
return [asAttoXL1(0n), asAttoXL1(0n)];
|
|
446
|
-
}
|
|
447
|
-
const steps = blockRangeSteps(range, [3, 4, 5, 6, 7]);
|
|
448
|
-
const rewards = await Promise.all(steps.map((step) => this.networkStakeStepRewardForStepForPosition(step, position)));
|
|
449
|
-
const positionReward = asAttoXL1(rewards.reduce((a, b) => a + b[0], 0n));
|
|
450
|
-
const totalReward = asAttoXL1(rewards.reduce((a, b) => a + b[1], 0n));
|
|
451
|
-
return [positionReward, totalReward];
|
|
452
|
-
});
|
|
586
|
+
async earned({ range, positions } = {}) {
|
|
587
|
+
return await this.calculateRewards({ range, positions });
|
|
453
588
|
}
|
|
454
|
-
async
|
|
455
|
-
return await
|
|
589
|
+
async total({ range, positions } = {}) {
|
|
590
|
+
return await this.calculateRewards({ range, positions }, this.rewardMultipliers);
|
|
456
591
|
}
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
const cacheKey = `${stepIdentityString}|${position}`;
|
|
460
|
-
return await withContextCacheResponse(this.context, "SimpleXyoViewer:networkStakeStepRewardForStepForPosition", cacheKey, async () => {
|
|
461
|
-
const range = await externalBlockRangeFromStep(this.context, this.block, stepIdentity);
|
|
462
|
-
const stake = await this.stakeById(position);
|
|
463
|
-
const numerator = stake.staked === XYO_NETWORK_STAKING_ADDRESS ? await weightedStakeForRangeByPosition(this.context, this.block, this.stake.stakeEvents, range, XYO_NETWORK_STAKING_ADDRESS, position) : 0n;
|
|
464
|
-
const denominator = await this.stepWeightedDenominator(stepIdentity);
|
|
465
|
-
const totalReward = await this.networkStakeStepRewardForStep(stepIdentity);
|
|
466
|
-
const positionReward = asAttoXL1(denominator > 0n ? totalReward * numerator / denominator : 0n);
|
|
467
|
-
const result = [positionReward, totalReward];
|
|
468
|
-
return result;
|
|
469
|
-
});
|
|
592
|
+
unclaimed(_options = {}) {
|
|
593
|
+
throw new Error("Method [unclaimed] not implemented.");
|
|
470
594
|
}
|
|
471
|
-
async
|
|
472
|
-
const stakes = await this.stake.stakesByStaked(XYO_NETWORK_STAKING_ADDRESS);
|
|
473
|
-
const rewards = [];
|
|
474
|
-
for (const stake of stakes) {
|
|
475
|
-
rewards.push([stake.staker, await this.networkStakeStepRewardForStepForPosition(
|
|
476
|
-
step,
|
|
477
|
-
stake.id
|
|
478
|
-
)]);
|
|
479
|
-
}
|
|
595
|
+
async calculateRewards({ range, positions } = {}, rewardMultipliers) {
|
|
480
596
|
const result = {};
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
}
|
|
496
|
-
networkStakeStepRewardRandomizer(_context) {
|
|
497
|
-
throw new Error("Method [networkStakeStepRewardRandomizer] not implemented.");
|
|
498
|
-
}
|
|
499
|
-
async networkStakeStepRewardStakerCount(stepContext) {
|
|
500
|
-
return Object.keys(await allStakersForStep(
|
|
501
|
-
this.context,
|
|
502
|
-
this.block,
|
|
503
|
-
this.stake.stakeEvents,
|
|
504
|
-
stepContext,
|
|
505
|
-
XYO_NETWORK_STAKING_ADDRESS
|
|
506
|
-
)).length;
|
|
507
|
-
}
|
|
508
|
-
networkStakeStepRewardUnclaimedByAddress(_address) {
|
|
509
|
-
throw new Error("Method [networkStakeStepRewardUnclaimedByAddress] not implemented.");
|
|
510
|
-
}
|
|
511
|
-
networkStakeStepRewardWeightForAddress(_context, _address) {
|
|
512
|
-
throw new Error("Method [networkStakeStepRewardWeightForAddress] not implemented.");
|
|
513
|
-
}
|
|
514
|
-
async networkStakeStepRewardsForPosition(position, range) {
|
|
515
|
-
const steps = blockRangeSteps(range, [3, 4, 5, 6, 7, 8]);
|
|
516
|
-
const rewards = await Promise.all(steps.map(async (step) => {
|
|
517
|
-
return [toStepIdentityString(step), await this.networkStakeStepRewardForStepForPosition(step, position)];
|
|
518
|
-
}));
|
|
519
|
-
const result = Object.fromEntries(rewards);
|
|
520
|
-
const filtered = Object.fromEntries(Object.entries(result).filter(([_, v]) => v[0] > 0n));
|
|
521
|
-
return filtered;
|
|
522
|
-
}
|
|
523
|
-
async networkStakeStepRewardsForRange(range) {
|
|
524
|
-
return await this.spanAsync("networkStakeStepRewardsForRange", async () => {
|
|
525
|
-
const steps = blockRangeSteps(range, [3, 4, 5, 6, 7, 8]);
|
|
526
|
-
const rewards = await Promise.all(steps.map(async (step) => {
|
|
527
|
-
return await this.networkStakeStepRewardForStep(step);
|
|
528
|
-
}));
|
|
529
|
-
return asAttoXL1(rewards.reduce((a, b) => a + b, 0n));
|
|
530
|
-
}, this.context);
|
|
531
|
-
}
|
|
532
|
-
async networkStakeStepRewardsForStepLevel(stepLevel, range) {
|
|
533
|
-
const steps = blockRangeSteps(range, [stepLevel]);
|
|
534
|
-
const rewards = await Promise.all(steps.map(async (step) => {
|
|
535
|
-
return await this.networkStakeStepRewardForStep(step);
|
|
536
|
-
}));
|
|
537
|
-
return asAttoXL1(rewards.reduce((a, b) => a + b, 0n));
|
|
538
|
-
}
|
|
539
|
-
payloadByHash(_hash) {
|
|
540
|
-
throw new Error("Method [payloadByHash] not implemented.");
|
|
541
|
-
}
|
|
542
|
-
payloadsByHash(_hashes) {
|
|
543
|
-
throw new Error("Method [payloadsByHash] not implemented.");
|
|
544
|
-
}
|
|
545
|
-
async rate(range, timeUnit) {
|
|
546
|
-
return await this.block.rate(range, timeUnit);
|
|
547
|
-
}
|
|
548
|
-
async stakeById(id) {
|
|
549
|
-
return await this.stake.stakeById(id);
|
|
550
|
-
}
|
|
551
|
-
async stakeByStaker(staker, slot) {
|
|
552
|
-
return await this.stake.stakeByStaker(staker, slot);
|
|
553
|
-
}
|
|
554
|
-
async stakedByStaker(staker) {
|
|
555
|
-
const result = /* @__PURE__ */ new Set();
|
|
556
|
-
let slot = 0;
|
|
557
|
-
while (true) {
|
|
558
|
-
try {
|
|
559
|
-
const ethStake = await this.stake.stakeByStaker(staker, slot);
|
|
560
|
-
result.add(toAddress(ethStake.staked));
|
|
561
|
-
slot++;
|
|
562
|
-
} catch {
|
|
563
|
-
break;
|
|
564
|
-
}
|
|
565
|
-
}
|
|
566
|
-
return [...result];
|
|
567
|
-
}
|
|
568
|
-
async stakesByStaked(staked) {
|
|
569
|
-
return await this.stake.stakesByStaked(staked);
|
|
570
|
-
}
|
|
571
|
-
async stakesByStaker(staker) {
|
|
572
|
-
return await this.stake.stakesByStaker(staker);
|
|
573
|
-
}
|
|
574
|
-
async stepSizeRate(start, stepSizeIndex, count, timeUnit) {
|
|
575
|
-
return await this.block.stepSizeRate(start, stepSizeIndex, count, timeUnit);
|
|
576
|
-
}
|
|
577
|
-
async timeDurationRate(timeConfig, startBlock, timeUnit, toleranceMs, maxAttempts) {
|
|
578
|
-
return await this.block.timeDurationRate(timeConfig, startBlock, timeUnit, toleranceMs, maxAttempts);
|
|
579
|
-
}
|
|
580
|
-
async transactionByBlockHashAndIndex(blockHash, transactionIndex = 0) {
|
|
581
|
-
return await this.transaction.byBlockHashAndIndex(blockHash, transactionIndex);
|
|
582
|
-
}
|
|
583
|
-
async transactionByBlockNumberAndIndex(blockNumber, transactionIndex = 0) {
|
|
584
|
-
return await this.transaction.byBlockNumberAndIndex(blockNumber, transactionIndex);
|
|
585
|
-
}
|
|
586
|
-
async transactionByHash(transactionHash) {
|
|
587
|
-
return await this.transaction.byHash(transactionHash);
|
|
588
|
-
}
|
|
589
|
-
async startHandler() {
|
|
590
|
-
try {
|
|
591
|
-
const currentBlockNumber = await this.currentBlockNumber();
|
|
592
|
-
await this.account.balance.accountBalance(XYO_ZERO_ADDRESS);
|
|
593
|
-
if (this.initRewardsCache) {
|
|
594
|
-
const externalRange = await externalBlockRangeFromXL1BlockRange(
|
|
595
|
-
this.context,
|
|
596
|
-
this.block,
|
|
597
|
-
asXL1BlockRange([0, currentBlockNumber], { name: "startHandler" })
|
|
598
|
-
);
|
|
599
|
-
const positionCount = await this.stake.stakeEvents.positionCount(externalRange);
|
|
600
|
-
this.logger?.debug(`SimpleXyoViewer: Precomputing networkStakeStepRewardForPosition up to position ${positionCount - 1}`);
|
|
601
|
-
const positions = Array.from(
|
|
602
|
-
{ length: positionCount },
|
|
603
|
-
(_, i) => i
|
|
604
|
-
);
|
|
605
|
-
while (positions.length > 0) {
|
|
606
|
-
const batch = positions.splice(0, 10);
|
|
607
|
-
this.logger?.debug(`SimpleXyoViewer: Precomputing networkStakeStepRewardForPosition for positions ${batch.at(0)} - ${batch.at(-1)}`);
|
|
608
|
-
await Promise.all(batch.map(async (_, position) => await this.networkStakeStepRewardForPosition(
|
|
597
|
+
const head = await this.finalizationViewer.head();
|
|
598
|
+
const steps = blockRangeSteps(asXL1BlockRange(
|
|
599
|
+
range ?? [0, head[1]],
|
|
600
|
+
{ name: "NodeStepRewardsByPositionViewer" }
|
|
601
|
+
), [3, 4, 5, 6, 7]);
|
|
602
|
+
for (const step of steps) {
|
|
603
|
+
if (isArray(positions)) {
|
|
604
|
+
for (const positionId of positions) {
|
|
605
|
+
const position = await this.stakeViewer.stakeById(positionId);
|
|
606
|
+
const reward = await networkStakeStepRewardEarnedForPosition(
|
|
607
|
+
this.context,
|
|
608
|
+
this.blockViewer,
|
|
609
|
+
this.stakeViewer.stakeEvents,
|
|
610
|
+
step,
|
|
609
611
|
position,
|
|
610
|
-
|
|
611
|
-
)
|
|
612
|
+
rewardMultipliers
|
|
613
|
+
);
|
|
614
|
+
result[positionId] = asAttoXL1((result[positionId] ?? 0n) + reward[0]);
|
|
612
615
|
}
|
|
613
|
-
this.logger?.debug(`SimpleXyoViewer: Precomputed networkStakeStepRewardForPosition up to position ${positionCount - 1}`);
|
|
614
616
|
}
|
|
615
|
-
} catch (ex) {
|
|
616
|
-
this.logger?.error(`SimpleXyoViewer: Error during startHandler initialization: ${ex.message}`);
|
|
617
|
-
this.logger?.error(ex.stack ?? "<No Stack>");
|
|
618
|
-
throw ex;
|
|
619
617
|
}
|
|
620
|
-
|
|
621
|
-
async stepWeightedDenominator(stepIdentity, staked) {
|
|
622
|
-
const cacheKey = toStepIdentityString(stepIdentity);
|
|
623
|
-
return await withContextCacheResponse(this.context, "NodeXyoViewer-networkStakeStepRewardForStepForPosition-denominator", cacheKey, async () => {
|
|
624
|
-
const range = await externalBlockRangeFromStep(this.context, this.block, stepIdentity);
|
|
625
|
-
return await weightedStakeForRangeByPosition(this.context, this.block, this.stake.stakeEvents, range, staked);
|
|
626
|
-
});
|
|
627
|
-
}
|
|
628
|
-
};
|
|
629
|
-
__publicField(SimpleXyoViewer, "connectionTypes", ["lmdb", "mongo", "memory"]);
|
|
630
|
-
__publicField(SimpleXyoViewer, "defaultMoniker", XyoViewerMoniker3);
|
|
631
|
-
__publicField(SimpleXyoViewer, "dependencies", [
|
|
632
|
-
AccountBalanceViewerMoniker,
|
|
633
|
-
BlockViewerMoniker,
|
|
634
|
-
ChainContractViewerMoniker,
|
|
635
|
-
FinalizationViewerMoniker,
|
|
636
|
-
MempoolViewerMoniker,
|
|
637
|
-
NetworkStakeViewerMoniker,
|
|
638
|
-
NetworkStakeStepRewardsByPositionViewerMoniker,
|
|
639
|
-
StakeViewerMoniker,
|
|
640
|
-
StepViewerMoniker,
|
|
641
|
-
TimeSyncViewerMoniker,
|
|
642
|
-
TransactionViewerMoniker
|
|
643
|
-
]);
|
|
644
|
-
__publicField(SimpleXyoViewer, "monikers", [XyoViewerMoniker3]);
|
|
645
|
-
__publicField(SimpleXyoViewer, "surface", "node");
|
|
646
|
-
SimpleXyoViewer = __decorateClass([
|
|
647
|
-
creatableProvider4()
|
|
648
|
-
], SimpleXyoViewer);
|
|
649
|
-
|
|
650
|
-
// src/NodeXyoViewer.ts
|
|
651
|
-
var NodeXyoViewer = class extends SimpleXyoViewer {
|
|
652
|
-
get node() {
|
|
653
|
-
return this.params.node;
|
|
654
|
-
}
|
|
655
|
-
static async getFinalizedArchivistFromNode(node) {
|
|
656
|
-
const resolved = await this.getArchivist(node, this.finalizedArchivistPath);
|
|
657
|
-
return assertEx3(resolved, () => `Could not resolve finalized archivist at ${this.finalizedArchivistPath}`);
|
|
618
|
+
return result;
|
|
658
619
|
}
|
|
659
620
|
};
|
|
660
|
-
__publicField(
|
|
661
|
-
__publicField(
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
],
|
|
621
|
+
__publicField(SimpleStepRewardsByPositionViewer, "connectionTypes", ["lmdb", "mongo", "memory", "rpc"]);
|
|
622
|
+
__publicField(SimpleStepRewardsByPositionViewer, "defaultMoniker", NetworkStakeStepRewardsByPositionViewerMoniker);
|
|
623
|
+
__publicField(SimpleStepRewardsByPositionViewer, "dependencies", [BlockViewerMoniker, FinalizationViewerMoniker2, StakeViewerMoniker2]);
|
|
624
|
+
__publicField(SimpleStepRewardsByPositionViewer, "monikers", [NetworkStakeStepRewardsByPositionViewerMoniker]);
|
|
625
|
+
__publicField(SimpleStepRewardsByPositionViewer, "surface", "node");
|
|
626
|
+
SimpleStepRewardsByPositionViewer = __decorateClass([
|
|
627
|
+
creatableProvider6()
|
|
628
|
+
], SimpleStepRewardsByPositionViewer);
|
|
668
629
|
|
|
669
|
-
// src/
|
|
670
|
-
import {
|
|
671
|
-
import { isHashMeta, PayloadBuilder } from "@xyo-network/sdk-js";
|
|
630
|
+
// src/SimpleStepRewards/SimpleStepRewardsByStakerViewer.ts
|
|
631
|
+
import { isArray as isArray2 } from "@ariestools/sdk";
|
|
672
632
|
import {
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
633
|
+
asAttoXL1 as asAttoXL12,
|
|
634
|
+
asXL1BlockRange as asXL1BlockRange2,
|
|
635
|
+
BlockViewerMoniker as BlockViewerMoniker2,
|
|
636
|
+
FinalizationViewerMoniker as FinalizationViewerMoniker3,
|
|
637
|
+
NetworkStakeStepRewardsByStakerViewerMoniker,
|
|
638
|
+
StakeViewerMoniker as StakeViewerMoniker3
|
|
676
639
|
} from "@xyo-network/xl1-protocol-lib";
|
|
677
|
-
import {
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
640
|
+
import {
|
|
641
|
+
AbstractCreatableProvider as AbstractCreatableProvider7,
|
|
642
|
+
blockRangeSteps as blockRangeSteps2,
|
|
643
|
+
creatableProvider as creatableProvider7
|
|
644
|
+
} from "@xyo-network/xl1-protocol-sdk";
|
|
645
|
+
var SimpleStepRewardsByStakerViewer = class extends AbstractCreatableProvider7 {
|
|
646
|
+
moniker = SimpleStepRewardsByStakerViewer.defaultMoniker;
|
|
647
|
+
_blockViewer;
|
|
648
|
+
_finalizationViewer;
|
|
649
|
+
_stakeViewer;
|
|
650
|
+
get rewardMultipliers() {
|
|
651
|
+
return this.params.rewardMultipliers ?? {};
|
|
682
652
|
}
|
|
683
|
-
get
|
|
684
|
-
return this.
|
|
653
|
+
get blockViewer() {
|
|
654
|
+
return this._blockViewer;
|
|
685
655
|
}
|
|
686
|
-
|
|
687
|
-
return
|
|
688
|
-
...await super.paramsHandler(params),
|
|
689
|
-
rejectedBlocksArchivist: assertEx4(params?.rejectedBlocksArchivist, () => "rejectedBlocksArchivist is required"),
|
|
690
|
-
rejectedTransactionsArchivist: assertEx4(params?.rejectedTransactionsArchivist, () => "rejectedTransactionsArchivist is required")
|
|
691
|
-
};
|
|
656
|
+
get finalizationViewer() {
|
|
657
|
+
return this._finalizationViewer;
|
|
692
658
|
}
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
limit: batchSize,
|
|
703
|
-
cursor,
|
|
704
|
-
order: "desc"
|
|
705
|
-
});
|
|
706
|
-
while (batch.length > 0 && pruned < maxPrune && total < maxCheck) {
|
|
707
|
-
const pruneHashes = batch.filter(isHashMeta).filter((p) => !isBlockRejection(p)).map((p) => p._hash);
|
|
708
|
-
pruned += pruneHashes.length;
|
|
709
|
-
total += batch.length;
|
|
710
|
-
if (pruneHashes.length > 0) {
|
|
711
|
-
await this.rejectedBlocksArchivist.delete(pruneHashes);
|
|
712
|
-
}
|
|
713
|
-
const pruneSet = new Set(pruneHashes);
|
|
714
|
-
const lastSurvivor = batch.findLast((p) => isHashMeta(p) && !pruneSet.has(p._hash));
|
|
715
|
-
cursor = lastSurvivor?._sequence ?? cursor;
|
|
716
|
-
batch = await this.rejectedBlocksArchivist.next({
|
|
717
|
-
limit: batchSize,
|
|
718
|
-
cursor,
|
|
719
|
-
order: "desc"
|
|
720
|
-
});
|
|
659
|
+
get stakeViewer() {
|
|
660
|
+
return this._stakeViewer;
|
|
661
|
+
}
|
|
662
|
+
async bonus({ range, stakers } = {}) {
|
|
663
|
+
const total = await this.total({ range, stakers });
|
|
664
|
+
const earned = await this.earned({ range, stakers });
|
|
665
|
+
const result = {};
|
|
666
|
+
for (const staker of Object.keys(total)) {
|
|
667
|
+
result[staker] = asAttoXL12(total[staker] - (earned[staker] ?? 0n));
|
|
721
668
|
}
|
|
722
|
-
return
|
|
669
|
+
return result;
|
|
723
670
|
}
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
671
|
+
claimed(_options) {
|
|
672
|
+
throw new Error("Method [claimed] not implemented.");
|
|
673
|
+
}
|
|
674
|
+
async createHandler() {
|
|
675
|
+
await super.createHandler();
|
|
676
|
+
this._blockViewer = await this.locator.getInstance(BlockViewerMoniker2);
|
|
677
|
+
this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker3);
|
|
678
|
+
this._stakeViewer = await this.locator.getInstance(StakeViewerMoniker3);
|
|
679
|
+
}
|
|
680
|
+
async earned(options = {}) {
|
|
681
|
+
return await this.calculateRewards(options);
|
|
682
|
+
}
|
|
683
|
+
async total(options = {}) {
|
|
684
|
+
return await this.calculateRewards(options, this.rewardMultipliers);
|
|
685
|
+
}
|
|
686
|
+
unclaimed(_options = {}) {
|
|
687
|
+
throw new Error("Method [unclaimed] not implemented.");
|
|
688
|
+
}
|
|
689
|
+
async calculateRewards({ range, stakers } = {}, rewardMultipliers) {
|
|
690
|
+
const result = {};
|
|
691
|
+
const steps = blockRangeSteps2(asXL1BlockRange2(
|
|
692
|
+
range ?? [0, await this.finalizationViewer.headNumber()],
|
|
693
|
+
{ name: "NodeStepRewardsByStakerViewer" }
|
|
694
|
+
), [3, 4, 5, 6, 7]);
|
|
695
|
+
for (const step of steps) {
|
|
696
|
+
if (isArray2(stakers)) {
|
|
697
|
+
for (const staker of stakers) {
|
|
698
|
+
const reward = await networkStakeStepRewardEarnedForStaker(
|
|
699
|
+
this.context,
|
|
700
|
+
this.blockViewer,
|
|
701
|
+
this.stakeViewer,
|
|
702
|
+
step,
|
|
703
|
+
staker,
|
|
704
|
+
rewardMultipliers
|
|
705
|
+
);
|
|
706
|
+
result[staker] = asAttoXL12((result[staker] ?? 0n) + reward[0]);
|
|
707
|
+
}
|
|
743
708
|
}
|
|
744
|
-
const pruneSet = new Set(pruneHashes);
|
|
745
|
-
const lastSurvivor = batch.findLast((p) => isHashMeta(p) && !pruneSet.has(p._hash));
|
|
746
|
-
cursor = lastSurvivor?._sequence ?? cursor;
|
|
747
|
-
batch = await this.rejectedTransactionsArchivist.next({
|
|
748
|
-
limit: batchSize,
|
|
749
|
-
cursor,
|
|
750
|
-
order: "desc"
|
|
751
|
-
});
|
|
752
709
|
}
|
|
753
|
-
return
|
|
754
|
-
}
|
|
755
|
-
async rejectBlock(rejection) {
|
|
756
|
-
const withMeta = await PayloadBuilder.addHashMeta(rejection);
|
|
757
|
-
const inserted = await this.rejectedBlocksArchivist.insert([withMeta]);
|
|
758
|
-
return inserted.length > 0;
|
|
759
|
-
}
|
|
760
|
-
async rejectTransaction(rejection) {
|
|
761
|
-
const withMeta = await PayloadBuilder.addHashMeta(rejection);
|
|
762
|
-
const inserted = await this.rejectedTransactionsArchivist.insert([withMeta]);
|
|
763
|
-
return inserted.length > 0;
|
|
710
|
+
return result;
|
|
764
711
|
}
|
|
765
712
|
};
|
|
766
|
-
__publicField(
|
|
767
|
-
__publicField(
|
|
768
|
-
__publicField(
|
|
769
|
-
__publicField(
|
|
770
|
-
__publicField(
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
],
|
|
713
|
+
__publicField(SimpleStepRewardsByStakerViewer, "connectionTypes", ["lmdb", "mongo", "memory", "rpc"]);
|
|
714
|
+
__publicField(SimpleStepRewardsByStakerViewer, "defaultMoniker", NetworkStakeStepRewardsByStakerViewerMoniker);
|
|
715
|
+
__publicField(SimpleStepRewardsByStakerViewer, "dependencies", [BlockViewerMoniker2, FinalizationViewerMoniker3, StakeViewerMoniker3]);
|
|
716
|
+
__publicField(SimpleStepRewardsByStakerViewer, "monikers", [NetworkStakeStepRewardsByStakerViewerMoniker]);
|
|
717
|
+
__publicField(SimpleStepRewardsByStakerViewer, "surface", "node");
|
|
718
|
+
SimpleStepRewardsByStakerViewer = __decorateClass([
|
|
719
|
+
creatableProvider7()
|
|
720
|
+
], SimpleStepRewardsByStakerViewer);
|
|
774
721
|
|
|
775
|
-
// src/
|
|
776
|
-
import {
|
|
777
|
-
exists,
|
|
778
|
-
isDefined,
|
|
779
|
-
isHash
|
|
780
|
-
} from "@xylabs/sdk";
|
|
781
|
-
import { isHashMeta as isHashMeta2 } from "@xyo-network/sdk-js";
|
|
722
|
+
// src/SimpleStepRewards/SimpleStepRewardsByStepViewer.ts
|
|
782
723
|
import {
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
|
|
724
|
+
asAttoXL1 as asAttoXL13,
|
|
725
|
+
asXL1BlockRange as asXL1BlockRange3,
|
|
726
|
+
BlockViewerMoniker as BlockViewerMoniker3,
|
|
727
|
+
FinalizationViewerMoniker as FinalizationViewerMoniker4,
|
|
728
|
+
NetworkStakeStepRewardsByStepViewerMoniker,
|
|
729
|
+
StakeViewerMoniker as StakeViewerMoniker4
|
|
786
730
|
} from "@xyo-network/xl1-protocol-lib";
|
|
787
|
-
import {
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
731
|
+
import {
|
|
732
|
+
AbstractCreatableProvider as AbstractCreatableProvider8,
|
|
733
|
+
blockRangeSteps as blockRangeSteps3,
|
|
734
|
+
creatableProvider as creatableProvider8,
|
|
735
|
+
toStepIdentityString as toStepIdentityString2
|
|
736
|
+
} from "@xyo-network/xl1-protocol-sdk";
|
|
737
|
+
var SimpleStepRewardsByStepViewer = class extends AbstractCreatableProvider8 {
|
|
738
|
+
moniker = SimpleStepRewardsByStepViewer.defaultMoniker;
|
|
739
|
+
_blockViewer;
|
|
740
|
+
_finalizationViewer;
|
|
741
|
+
_stakeViewer;
|
|
742
|
+
get rewardMultipliers() {
|
|
743
|
+
return this.params.rewardMultipliers ?? {};
|
|
792
744
|
}
|
|
793
|
-
get
|
|
794
|
-
return this.
|
|
745
|
+
get blockViewer() {
|
|
746
|
+
return this._blockViewer;
|
|
795
747
|
}
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
const payloads = await this.rejectedBlocksArchivist.next({
|
|
809
|
-
order: "desc",
|
|
810
|
-
limit,
|
|
811
|
-
cursor
|
|
812
|
-
});
|
|
813
|
-
const rejections = payloads.filter(isHashMeta2).map((p) => isBlockRejection2(p) ? p : void 0).filter(exists);
|
|
814
|
-
if (rejector !== void 0) {
|
|
815
|
-
return rejections.filter((r) => r.rejector === rejector);
|
|
748
|
+
get finalizationViewer() {
|
|
749
|
+
return this._finalizationViewer;
|
|
750
|
+
}
|
|
751
|
+
get stakeViewer() {
|
|
752
|
+
return this._stakeViewer;
|
|
753
|
+
}
|
|
754
|
+
async bonus({ range, steps } = {}) {
|
|
755
|
+
const total = await this.total({ range, steps });
|
|
756
|
+
const earned = await this.earned({ range, steps });
|
|
757
|
+
const result = {};
|
|
758
|
+
for (const stepString of Object.keys(total)) {
|
|
759
|
+
result[stepString] = asAttoXL13(total[stepString] - (earned[stepString] ?? 0n));
|
|
816
760
|
}
|
|
817
|
-
return
|
|
761
|
+
return result;
|
|
818
762
|
}
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
|
|
763
|
+
claimed(_options) {
|
|
764
|
+
throw new Error("Method [claimed] not implemented.");
|
|
765
|
+
}
|
|
766
|
+
async createHandler() {
|
|
767
|
+
await super.createHandler();
|
|
768
|
+
this._blockViewer = await this.locator.getInstance(BlockViewerMoniker3);
|
|
769
|
+
this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker4);
|
|
770
|
+
this._stakeViewer = await this.locator.getInstance(StakeViewerMoniker4);
|
|
771
|
+
}
|
|
772
|
+
async earned({ range, steps } = {}) {
|
|
773
|
+
const result = {};
|
|
774
|
+
const resolvedSteps = steps ?? blockRangeSteps3(asXL1BlockRange3(
|
|
775
|
+
range ?? [0, await this.finalizationViewer.headNumber()],
|
|
776
|
+
{ name: "NodeStepRewardsByStepViewer" }
|
|
777
|
+
), [3, 4, 5, 6, 7]);
|
|
778
|
+
for (const step of resolvedSteps) {
|
|
779
|
+
const stepIdentityString = toStepIdentityString2(step);
|
|
780
|
+
const reward = await networkStakeStepRewardEarned(
|
|
781
|
+
this.context,
|
|
782
|
+
this.blockViewer,
|
|
783
|
+
this.stakeViewer,
|
|
784
|
+
step
|
|
785
|
+
);
|
|
786
|
+
result[stepIdentityString] = asAttoXL13((result[stepIdentityString] ?? 0n) + reward[0]);
|
|
830
787
|
}
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
const
|
|
837
|
-
|
|
838
|
-
|
|
788
|
+
return result;
|
|
789
|
+
}
|
|
790
|
+
async total({ range, steps } = {}) {
|
|
791
|
+
const result = {};
|
|
792
|
+
const head = await this.finalizationViewer.head();
|
|
793
|
+
const resolvedSteps = steps ?? blockRangeSteps3(asXL1BlockRange3(
|
|
794
|
+
range ?? [0, head[1]],
|
|
795
|
+
{ name: "NodeStepRewardsByStepViewer" }
|
|
796
|
+
), [3, 4, 5, 6, 7]);
|
|
797
|
+
for (const step of resolvedSteps) {
|
|
798
|
+
const stepIdentityString = toStepIdentityString2(step);
|
|
799
|
+
const reward = await networkStakeStepRewardEarned(
|
|
800
|
+
this.context,
|
|
801
|
+
this.blockViewer,
|
|
802
|
+
this.stakeViewer,
|
|
803
|
+
step,
|
|
804
|
+
this.rewardMultipliers
|
|
805
|
+
);
|
|
806
|
+
result[stepIdentityString] = asAttoXL13((result[stepIdentityString] ?? 0n) + reward[0]);
|
|
839
807
|
}
|
|
840
|
-
return
|
|
808
|
+
return result;
|
|
809
|
+
}
|
|
810
|
+
unclaimed(_options = {}) {
|
|
811
|
+
throw new Error("Method [unclaimed] ot implemented.");
|
|
841
812
|
}
|
|
842
813
|
};
|
|
843
|
-
__publicField(
|
|
844
|
-
__publicField(
|
|
845
|
-
__publicField(
|
|
846
|
-
__publicField(
|
|
847
|
-
__publicField(
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
],
|
|
814
|
+
__publicField(SimpleStepRewardsByStepViewer, "connectionTypes", ["lmdb", "mongo", "memory", "rpc"]);
|
|
815
|
+
__publicField(SimpleStepRewardsByStepViewer, "defaultMoniker", NetworkStakeStepRewardsByStepViewerMoniker);
|
|
816
|
+
__publicField(SimpleStepRewardsByStepViewer, "dependencies", [BlockViewerMoniker3, FinalizationViewerMoniker4, StakeViewerMoniker4]);
|
|
817
|
+
__publicField(SimpleStepRewardsByStepViewer, "monikers", [NetworkStakeStepRewardsByStepViewerMoniker]);
|
|
818
|
+
__publicField(SimpleStepRewardsByStepViewer, "surface", "node");
|
|
819
|
+
SimpleStepRewardsByStepViewer = __decorateClass([
|
|
820
|
+
creatableProvider8()
|
|
821
|
+
], SimpleStepRewardsByStepViewer);
|
|
851
822
|
|
|
852
|
-
// src/
|
|
853
|
-
import {
|
|
823
|
+
// src/SimpleStepRewards/SimpleStepRewardsTotalViewer.ts
|
|
824
|
+
import { asAttoXL1 as asAttoXL14, NetworkStakeStepRewardsTotalViewerMoniker } from "@xyo-network/xl1-protocol-lib";
|
|
854
825
|
import {
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
826
|
+
AbstractCreatableProvider as AbstractCreatableProvider9,
|
|
827
|
+
creatableProvider as creatableProvider9
|
|
828
|
+
} from "@xyo-network/xl1-protocol-sdk";
|
|
829
|
+
var SimpleStepRewardsTotalViewer = class extends AbstractCreatableProvider9 {
|
|
830
|
+
moniker = SimpleStepRewardsTotalViewer.defaultMoniker;
|
|
831
|
+
get rewardMultipliers() {
|
|
832
|
+
return this.params.rewardMultipliers ?? {};
|
|
833
|
+
}
|
|
834
|
+
async bonus({ range } = {}) {
|
|
835
|
+
const total = await this.total({ range });
|
|
836
|
+
const earned = await this.earned({ range });
|
|
837
|
+
return asAttoXL14(total - earned);
|
|
838
|
+
}
|
|
839
|
+
claimed(_options) {
|
|
840
|
+
throw new Error("Method [claimed] not implemented.");
|
|
841
|
+
}
|
|
842
|
+
async earned(options = {}) {
|
|
843
|
+
return await this.calculateRewards(options);
|
|
844
|
+
}
|
|
845
|
+
async total(options = {}) {
|
|
846
|
+
return await this.calculateRewards(options, this.rewardMultipliers);
|
|
847
|
+
}
|
|
848
|
+
unclaimed(_options = {}) {
|
|
849
|
+
throw new Error("Method [unclaimed] not implemented.");
|
|
850
|
+
}
|
|
851
|
+
calculateRewards(_options = {}, _rewardMultipliers) {
|
|
852
|
+
throw new Error("Method [calculateRewards] not implemented.");
|
|
853
|
+
}
|
|
854
|
+
};
|
|
855
|
+
__publicField(SimpleStepRewardsTotalViewer, "connectionTypes", ["lmdb", "mongo", "memory", "rpc"]);
|
|
856
|
+
__publicField(SimpleStepRewardsTotalViewer, "defaultMoniker", NetworkStakeStepRewardsTotalViewerMoniker);
|
|
857
|
+
__publicField(SimpleStepRewardsTotalViewer, "dependencies", []);
|
|
858
|
+
__publicField(SimpleStepRewardsTotalViewer, "monikers", [NetworkStakeStepRewardsTotalViewerMoniker]);
|
|
859
|
+
__publicField(SimpleStepRewardsTotalViewer, "surface", "node");
|
|
860
|
+
SimpleStepRewardsTotalViewer = __decorateClass([
|
|
861
|
+
creatableProvider9()
|
|
862
|
+
], SimpleStepRewardsTotalViewer);
|
|
863
|
+
|
|
864
|
+
// src/SimpleStepRewards/SimpleStepRewardsViewer.ts
|
|
865
|
+
import { assertEx as assertEx3 } from "@ariestools/sdk";
|
|
866
|
+
import {
|
|
867
|
+
BlockViewerMoniker as BlockViewerMoniker4,
|
|
868
|
+
NetworkStakeStepRewardsByPositionViewerMoniker as NetworkStakeStepRewardsByPositionViewerMoniker2,
|
|
869
|
+
NetworkStakeStepRewardsByStakerViewerMoniker as NetworkStakeStepRewardsByStakerViewerMoniker2,
|
|
870
|
+
NetworkStakeStepRewardsByStepViewerMoniker as NetworkStakeStepRewardsByStepViewerMoniker2,
|
|
871
|
+
NetworkStakeStepRewardsViewerMoniker as NetworkStakeStepRewardsViewerMoniker2
|
|
860
872
|
} from "@xyo-network/xl1-protocol-lib";
|
|
861
873
|
import {
|
|
862
|
-
AbstractCreatableProvider as
|
|
863
|
-
creatableProvider as
|
|
874
|
+
AbstractCreatableProvider as AbstractCreatableProvider10,
|
|
875
|
+
creatableProvider as creatableProvider10
|
|
864
876
|
} from "@xyo-network/xl1-protocol-sdk";
|
|
865
|
-
var
|
|
866
|
-
moniker =
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
get
|
|
872
|
-
return
|
|
873
|
-
}
|
|
874
|
-
get finalizationViewer() {
|
|
875
|
-
return this._finalizationViewer;
|
|
877
|
+
var SimpleStepRewardsViewer = class extends AbstractCreatableProvider10 {
|
|
878
|
+
moniker = SimpleStepRewardsViewer.defaultMoniker;
|
|
879
|
+
_blockViewer;
|
|
880
|
+
_position;
|
|
881
|
+
_staker;
|
|
882
|
+
_step;
|
|
883
|
+
get position() {
|
|
884
|
+
return assertEx3(this._position, () => "Position viewer not initialized");
|
|
876
885
|
}
|
|
877
|
-
get
|
|
878
|
-
return this.
|
|
886
|
+
get staker() {
|
|
887
|
+
return assertEx3(this._staker, () => "Position viewer not initialized");
|
|
879
888
|
}
|
|
880
|
-
get
|
|
881
|
-
return this.
|
|
889
|
+
get step() {
|
|
890
|
+
return assertEx3(this._step, () => "Step viewer not initialized");
|
|
882
891
|
}
|
|
883
|
-
get
|
|
884
|
-
|
|
892
|
+
get total() {
|
|
893
|
+
throw new Error("Method [total] not implemented.");
|
|
885
894
|
}
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
return [await this.stakeTotals.active(resolvedBlockNumber), resolvedBlockNumber];
|
|
895
|
+
get rewardMultipliers() {
|
|
896
|
+
return this.params.rewardMultipliers;
|
|
889
897
|
}
|
|
890
898
|
async createHandler() {
|
|
891
899
|
await super.createHandler();
|
|
892
|
-
this.
|
|
893
|
-
this.
|
|
894
|
-
this.
|
|
895
|
-
this.
|
|
900
|
+
this._blockViewer = await this.locator.getInstance(BlockViewerMoniker4);
|
|
901
|
+
this._position = await this.locator.getInstance(NetworkStakeStepRewardsByPositionViewerMoniker2);
|
|
902
|
+
this._staker = await this.locator.getInstance(NetworkStakeStepRewardsByStakerViewerMoniker2);
|
|
903
|
+
this._step = await this.locator.getInstance(NetworkStakeStepRewardsByStepViewerMoniker2);
|
|
904
|
+
}
|
|
905
|
+
async startHandler() {
|
|
906
|
+
await super.startHandler();
|
|
907
|
+
await assertEx3(this._position, () => "Position viewer not created").start();
|
|
908
|
+
await assertEx3(this._staker, () => "Staker viewer not created").start();
|
|
909
|
+
await assertEx3(this._step, () => "Step viewer not created").start();
|
|
896
910
|
}
|
|
897
911
|
};
|
|
898
|
-
__publicField(
|
|
899
|
-
__publicField(
|
|
900
|
-
__publicField(
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
912
|
+
__publicField(SimpleStepRewardsViewer, "connectionTypes", ["lmdb", "mongo", "memory", "rpc"]);
|
|
913
|
+
__publicField(SimpleStepRewardsViewer, "defaultMoniker", NetworkStakeStepRewardsViewerMoniker2);
|
|
914
|
+
__publicField(SimpleStepRewardsViewer, "dependencies", [
|
|
915
|
+
BlockViewerMoniker4,
|
|
916
|
+
NetworkStakeStepRewardsByPositionViewerMoniker2,
|
|
917
|
+
NetworkStakeStepRewardsByStakerViewerMoniker2,
|
|
918
|
+
NetworkStakeStepRewardsByStepViewerMoniker2
|
|
905
919
|
]);
|
|
906
|
-
__publicField(
|
|
907
|
-
__publicField(
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
],
|
|
920
|
+
__publicField(SimpleStepRewardsViewer, "monikers", [NetworkStakeStepRewardsViewerMoniker2]);
|
|
921
|
+
__publicField(SimpleStepRewardsViewer, "surface", "node");
|
|
922
|
+
SimpleStepRewardsViewer = __decorateClass([
|
|
923
|
+
creatableProvider10()
|
|
924
|
+
], SimpleStepRewardsViewer);
|
|
911
925
|
|
|
912
|
-
// src/
|
|
913
|
-
import { isArray } from "@xylabs/sdk";
|
|
926
|
+
// src/SimpleStepViewer.ts
|
|
914
927
|
import {
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
StakeViewerMoniker as StakeViewerMoniker3
|
|
928
|
+
BlockViewerMoniker as BlockViewerMoniker5,
|
|
929
|
+
NetworkStakeStepRewardsViewerMoniker as NetworkStakeStepRewardsViewerMoniker3,
|
|
930
|
+
StakeEventsViewerMoniker,
|
|
931
|
+
StakeViewerMoniker as StakeViewerMoniker5,
|
|
932
|
+
StepViewerMoniker
|
|
921
933
|
} from "@xyo-network/xl1-protocol-lib";
|
|
922
934
|
import {
|
|
923
|
-
AbstractCreatableProvider as
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
} from "@xyo-network/xl1-protocol-sdk";
|
|
927
|
-
|
|
928
|
-
// src/SimpleStepRewards/primitives/networkStakeStepRewardEarned.ts
|
|
929
|
-
import { XYO_NETWORK_STAKING_ADDRESS as XYO_NETWORK_STAKING_ADDRESS3 } from "@xyo-network/xl1-protocol-lib";
|
|
930
|
-
import { withContextCacheResponse as withContextCacheResponse3 } from "@xyo-network/xl1-protocol-sdk";
|
|
931
|
-
|
|
932
|
-
// src/SimpleStepRewards/primitives/networkStakeStepRewardEarnedForPosition.ts
|
|
933
|
-
import { XYO_NETWORK_STAKING_ADDRESS as XYO_NETWORK_STAKING_ADDRESS2 } from "@xyo-network/xl1-protocol-lib";
|
|
934
|
-
import {
|
|
935
|
-
externalBlockRangeFromStep as externalBlockRangeFromStep2,
|
|
936
|
-
stepRewardTotal as stepRewardTotal2,
|
|
937
|
-
weightedStakeForRangeByPosition as weightedStakeForRangeByPosition2,
|
|
938
|
-
withContextCacheResponse as withContextCacheResponse2
|
|
939
|
-
} from "@xyo-network/xl1-protocol-sdk";
|
|
940
|
-
async function networkStakeStepRewardEarnedForPosition(context, blockViewer, stakeEventsViewer, stepIdentity, position, rewardMultipliers = {}) {
|
|
941
|
-
const cacheKey = `${stepIdentity.block}|${stepIdentity.step}|${position.id}`;
|
|
942
|
-
return await withContextCacheResponse2(context, "networkStakeStepRewardEarnedForPosition", cacheKey, async () => {
|
|
943
|
-
const range = await externalBlockRangeFromStep2(context, blockViewer, stepIdentity);
|
|
944
|
-
const numerator = position.staked === XYO_NETWORK_STAKING_ADDRESS2 ? await weightedStakeForRangeByPosition2(
|
|
945
|
-
context,
|
|
946
|
-
blockViewer,
|
|
947
|
-
stakeEventsViewer,
|
|
948
|
-
range,
|
|
949
|
-
XYO_NETWORK_STAKING_ADDRESS2,
|
|
950
|
-
position.id
|
|
951
|
-
) : 0n;
|
|
952
|
-
const denominator = await weightedStakeForRangeByPosition2(
|
|
953
|
-
context,
|
|
954
|
-
blockViewer,
|
|
955
|
-
stakeEventsViewer,
|
|
956
|
-
range
|
|
957
|
-
);
|
|
958
|
-
const totalReward = await stepRewardTotal2(context, blockViewer, stepIdentity, rewardMultipliers);
|
|
959
|
-
const positionReward = denominator > 0n ? totalReward * numerator / denominator : 0n;
|
|
960
|
-
const result = [positionReward, totalReward];
|
|
961
|
-
return result;
|
|
962
|
-
});
|
|
963
|
-
}
|
|
964
|
-
|
|
965
|
-
// src/SimpleStepRewards/primitives/networkStakeStepRewardEarned.ts
|
|
966
|
-
async function networkStakeStepRewardEarned(context, blockViewer, stakeViewer, stepIdentity, rewardMultipliers = {}) {
|
|
967
|
-
const cacheKey = `${stepIdentity.block}|${stepIdentity.step}`;
|
|
968
|
-
return await withContextCacheResponse3(context, "networkStakeStepRewardEarned", cacheKey, async () => {
|
|
969
|
-
const positions = await stakeViewer.stakesByStaked(XYO_NETWORK_STAKING_ADDRESS3);
|
|
970
|
-
const results = await Promise.all(positions.map((pos) => {
|
|
971
|
-
return networkStakeStepRewardEarnedForPosition(
|
|
972
|
-
context,
|
|
973
|
-
blockViewer,
|
|
974
|
-
stakeViewer.stakeEvents,
|
|
975
|
-
stepIdentity,
|
|
976
|
-
pos,
|
|
977
|
-
rewardMultipliers
|
|
978
|
-
);
|
|
979
|
-
}));
|
|
980
|
-
const numerator = results.reduce((acc, [positionReward]) => acc + positionReward, 0n);
|
|
981
|
-
const result = results.length > 0 ? [numerator, results[0][1]] : [0n, 0n];
|
|
982
|
-
return result;
|
|
983
|
-
});
|
|
984
|
-
}
|
|
985
|
-
|
|
986
|
-
// src/SimpleStepRewards/primitives/networkStakeStepRewardEarnedForStaker.ts
|
|
987
|
-
import { XYO_NETWORK_STAKING_ADDRESS as XYO_NETWORK_STAKING_ADDRESS4 } from "@xyo-network/xl1-protocol-lib";
|
|
988
|
-
import {
|
|
989
|
-
toStepIdentityString as toStepIdentityString2,
|
|
990
|
-
withContextCacheResponse as withContextCacheResponse4
|
|
935
|
+
AbstractCreatableProvider as AbstractCreatableProvider11,
|
|
936
|
+
creatableProvider as creatableProvider11,
|
|
937
|
+
externalBlockRangeFromStep as externalBlockRangeFromStep2
|
|
991
938
|
} from "@xyo-network/xl1-protocol-sdk";
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
return await withContextCacheResponse4(context, "networkStakeStepRewardEarnedForStaker", `${stepId}-${staker}`, async () => {
|
|
995
|
-
const stakes = await stakeViewer.stakesByStaker(staker);
|
|
996
|
-
const positions = stakes.filter((pos) => pos.staked === XYO_NETWORK_STAKING_ADDRESS4);
|
|
997
|
-
const results = await Promise.all(positions.map((pos) => {
|
|
998
|
-
return networkStakeStepRewardEarnedForPosition(
|
|
999
|
-
context,
|
|
1000
|
-
blockViewer,
|
|
1001
|
-
stakeViewer.stakeEvents,
|
|
1002
|
-
stepIdentity,
|
|
1003
|
-
pos,
|
|
1004
|
-
rewardMultipliers
|
|
1005
|
-
);
|
|
1006
|
-
}));
|
|
1007
|
-
const numerator = results.reduce((acc, [positionReward]) => acc + positionReward, 0n);
|
|
1008
|
-
const result = results.length > 0 ? [numerator, results[0][1]] : [0n, 0n];
|
|
1009
|
-
return result;
|
|
1010
|
-
});
|
|
1011
|
-
}
|
|
1012
|
-
|
|
1013
|
-
// src/SimpleStepRewards/SimpleStepRewardsByPositionViewer.ts
|
|
1014
|
-
var SimpleStepRewardsByPositionViewer = class extends AbstractCreatableProvider8 {
|
|
1015
|
-
moniker = SimpleStepRewardsByPositionViewer.defaultMoniker;
|
|
939
|
+
var SimpleStepViewer = class extends AbstractCreatableProvider11 {
|
|
940
|
+
moniker = SimpleStepViewer.defaultMoniker;
|
|
1016
941
|
_blockViewer;
|
|
1017
|
-
|
|
942
|
+
_networkStakeStepRewardsViewer;
|
|
943
|
+
_stakeEventsViewer;
|
|
1018
944
|
_stakeViewer;
|
|
1019
|
-
get
|
|
1020
|
-
return this.
|
|
945
|
+
get rewards() {
|
|
946
|
+
return this._networkStakeStepRewardsViewer;
|
|
1021
947
|
}
|
|
1022
948
|
get blockViewer() {
|
|
1023
949
|
return this._blockViewer;
|
|
1024
950
|
}
|
|
1025
|
-
get
|
|
1026
|
-
return this.
|
|
951
|
+
get stakeEventsViewer() {
|
|
952
|
+
return this._stakeEventsViewer;
|
|
1027
953
|
}
|
|
1028
954
|
get stakeViewer() {
|
|
1029
955
|
return this._stakeViewer;
|
|
1030
956
|
}
|
|
1031
|
-
async bonus({ range, positions } = {}) {
|
|
1032
|
-
const total = await this.total({ range, positions });
|
|
1033
|
-
const earned = await this.earned({ range, positions });
|
|
1034
|
-
const result = {};
|
|
1035
|
-
for (const key of Object.keys(total)) {
|
|
1036
|
-
const pos = Number(key);
|
|
1037
|
-
result[pos] = asAttoXL12(total[pos] - (earned[pos] ?? 0n));
|
|
1038
|
-
}
|
|
1039
|
-
return result;
|
|
1040
|
-
}
|
|
1041
|
-
claimed(_options) {
|
|
1042
|
-
throw new Error("Method [claimed] not implemented.");
|
|
1043
|
-
}
|
|
1044
957
|
async createHandler() {
|
|
1045
958
|
await super.createHandler();
|
|
1046
|
-
this._blockViewer = await this.locator.getInstance(
|
|
1047
|
-
this.
|
|
1048
|
-
this._stakeViewer = await this.locator.getInstance(
|
|
959
|
+
this._blockViewer = await this.locator.getInstance(BlockViewerMoniker5);
|
|
960
|
+
this._networkStakeStepRewardsViewer = await this.locator.getInstance(NetworkStakeStepRewardsViewerMoniker3);
|
|
961
|
+
this._stakeViewer = await this.locator.getInstance(StakeViewerMoniker5);
|
|
962
|
+
this._stakeEventsViewer = await this.locator.getInstance(StakeEventsViewerMoniker);
|
|
1049
963
|
}
|
|
1050
|
-
async
|
|
1051
|
-
|
|
964
|
+
async positionCount(step) {
|
|
965
|
+
const externalRange = await externalBlockRangeFromStep2(this.context, this.blockViewer, step);
|
|
966
|
+
const positionCount = await this.stakeEventsViewer.positionCount(externalRange);
|
|
967
|
+
return positionCount;
|
|
1052
968
|
}
|
|
1053
|
-
|
|
1054
|
-
|
|
969
|
+
// TODO: Implement paging
|
|
970
|
+
async positions(step, _options) {
|
|
971
|
+
const count = await this.positionCount(step);
|
|
972
|
+
const externalRange = await externalBlockRangeFromStep2(this.context, this.blockViewer, step);
|
|
973
|
+
const allPositions = await Promise.all(Array.from({ length: count + 1 }, (_, i) => i).map(async (id) => this.stakeViewer.stakeById(id)));
|
|
974
|
+
return allPositions.filter((pos) => pos.addBlock <= externalRange[1] && (pos.removeBlock === 0 || pos.removeBlock > externalRange[0]));
|
|
1055
975
|
}
|
|
1056
|
-
|
|
1057
|
-
throw new Error("Method [
|
|
976
|
+
randomizer(_step) {
|
|
977
|
+
throw new Error("Method [randomizer] not implemented.");
|
|
1058
978
|
}
|
|
1059
|
-
|
|
1060
|
-
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1069
|
-
|
|
1070
|
-
const reward = await networkStakeStepRewardEarnedForPosition(
|
|
1071
|
-
this.context,
|
|
1072
|
-
this.blockViewer,
|
|
1073
|
-
this.stakeViewer.stakeEvents,
|
|
1074
|
-
step,
|
|
1075
|
-
position,
|
|
1076
|
-
rewardMultipliers
|
|
1077
|
-
);
|
|
1078
|
-
result[positionId] = asAttoXL12((result[positionId] ?? 0n) + reward[0]);
|
|
1079
|
-
}
|
|
1080
|
-
}
|
|
1081
|
-
}
|
|
1082
|
-
return result;
|
|
979
|
+
stake(_step) {
|
|
980
|
+
throw new Error("Method [stake] not implemented.");
|
|
981
|
+
}
|
|
982
|
+
stakerCount(_step) {
|
|
983
|
+
throw new Error("Method [stakerCount] not implemented.");
|
|
984
|
+
}
|
|
985
|
+
stakers(_step, _options) {
|
|
986
|
+
throw new Error("Method [stakers] not implemented.");
|
|
987
|
+
}
|
|
988
|
+
weight(_step, _positionId) {
|
|
989
|
+
throw new Error("Method [weight] not implemented.");
|
|
1083
990
|
}
|
|
1084
991
|
};
|
|
1085
|
-
__publicField(
|
|
1086
|
-
__publicField(
|
|
1087
|
-
__publicField(
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
|
|
1091
|
-
|
|
1092
|
-
]
|
|
992
|
+
__publicField(SimpleStepViewer, "connectionTypes", ["lmdb", "mongo", "memory", "rpc"]);
|
|
993
|
+
__publicField(SimpleStepViewer, "defaultMoniker", StepViewerMoniker);
|
|
994
|
+
__publicField(SimpleStepViewer, "dependencies", [
|
|
995
|
+
BlockViewerMoniker5,
|
|
996
|
+
NetworkStakeStepRewardsViewerMoniker3,
|
|
997
|
+
StakeViewerMoniker5,
|
|
998
|
+
StakeEventsViewerMoniker
|
|
999
|
+
]);
|
|
1000
|
+
__publicField(SimpleStepViewer, "monikers", [StepViewerMoniker]);
|
|
1001
|
+
__publicField(SimpleStepViewer, "surface", "node");
|
|
1002
|
+
SimpleStepViewer = __decorateClass([
|
|
1003
|
+
creatableProvider11()
|
|
1004
|
+
], SimpleStepViewer);
|
|
1093
1005
|
|
|
1094
|
-
// src/
|
|
1095
|
-
import { isArray as isArray2 } from "@xylabs/sdk";
|
|
1006
|
+
// src/SimpleXyoViewer.ts
|
|
1096
1007
|
import {
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1008
|
+
assertEx as assertEx4,
|
|
1009
|
+
toAddress
|
|
1010
|
+
} from "@ariestools/sdk";
|
|
1011
|
+
import {
|
|
1012
|
+
AccountBalanceViewerMoniker,
|
|
1013
|
+
asAttoXL1 as asAttoXL15,
|
|
1014
|
+
asXL1BlockRange as asXL1BlockRange4,
|
|
1015
|
+
BlockViewerMoniker as BlockViewerMoniker6,
|
|
1016
|
+
ChainContractViewerMoniker,
|
|
1017
|
+
FinalizationViewerMoniker as FinalizationViewerMoniker5,
|
|
1018
|
+
MempoolViewerMoniker,
|
|
1019
|
+
NetworkStakeStepRewardsByPositionViewerMoniker as NetworkStakeStepRewardsByPositionViewerMoniker3,
|
|
1020
|
+
NetworkStakeViewerMoniker as NetworkStakeViewerMoniker2,
|
|
1021
|
+
StakeViewerMoniker as StakeViewerMoniker6,
|
|
1022
|
+
StepViewerMoniker as StepViewerMoniker2,
|
|
1023
|
+
TimeSyncViewerMoniker,
|
|
1024
|
+
TransactionViewerMoniker,
|
|
1025
|
+
XYO_NETWORK_STAKING_ADDRESS as XYO_NETWORK_STAKING_ADDRESS4,
|
|
1026
|
+
XYO_ZERO_ADDRESS,
|
|
1027
|
+
XyoViewerMoniker as XyoViewerMoniker3
|
|
1103
1028
|
} from "@xyo-network/xl1-protocol-lib";
|
|
1104
1029
|
import {
|
|
1105
|
-
AbstractCreatableProvider as
|
|
1106
|
-
|
|
1107
|
-
|
|
1030
|
+
AbstractCreatableProvider as AbstractCreatableProvider12,
|
|
1031
|
+
allStakersForStep,
|
|
1032
|
+
blockRangeSteps as blockRangeSteps4,
|
|
1033
|
+
creatableProvider as creatableProvider12,
|
|
1034
|
+
externalBlockRangeFromStep as externalBlockRangeFromStep3,
|
|
1035
|
+
externalBlockRangeFromXL1BlockRange,
|
|
1036
|
+
networkStakeStepRewardPositionWeight,
|
|
1037
|
+
stepRewardTotal as stepRewardTotal2,
|
|
1038
|
+
toStepIdentityString as toStepIdentityString3,
|
|
1039
|
+
weightedStakeForRangeByPosition as weightedStakeForRangeByPosition2,
|
|
1040
|
+
withContextCacheResponse as withContextCacheResponse4
|
|
1108
1041
|
} from "@xyo-network/xl1-protocol-sdk";
|
|
1109
|
-
var
|
|
1110
|
-
moniker =
|
|
1042
|
+
var SimpleXyoViewer = class extends AbstractCreatableProvider12 {
|
|
1043
|
+
moniker = SimpleXyoViewer.defaultMoniker;
|
|
1044
|
+
_tracer;
|
|
1045
|
+
_accountBalanceViewer;
|
|
1111
1046
|
_blockViewer;
|
|
1047
|
+
_chainContractViewer;
|
|
1048
|
+
_chainId;
|
|
1112
1049
|
_finalizationViewer;
|
|
1050
|
+
_mempoolViewer;
|
|
1051
|
+
_networkStakeViewer;
|
|
1052
|
+
_networkStepRewardsByPositionViewer;
|
|
1053
|
+
_rewardMultipliers;
|
|
1113
1054
|
_stakeViewer;
|
|
1114
|
-
|
|
1115
|
-
|
|
1055
|
+
_stepViewer;
|
|
1056
|
+
_timeSyncViewer;
|
|
1057
|
+
_transaction;
|
|
1058
|
+
get account() {
|
|
1059
|
+
return { balance: this._accountBalanceViewer };
|
|
1116
1060
|
}
|
|
1117
|
-
get
|
|
1061
|
+
get block() {
|
|
1118
1062
|
return this._blockViewer;
|
|
1119
1063
|
}
|
|
1120
|
-
get
|
|
1064
|
+
get chainContractViewer() {
|
|
1065
|
+
return this._chainContractViewer;
|
|
1066
|
+
}
|
|
1067
|
+
get finalization() {
|
|
1121
1068
|
return this._finalizationViewer;
|
|
1122
1069
|
}
|
|
1123
|
-
get
|
|
1124
|
-
return this.
|
|
1070
|
+
get mempool() {
|
|
1071
|
+
return this._mempoolViewer;
|
|
1125
1072
|
}
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
const earned = await this.earned({ range, stakers });
|
|
1129
|
-
const result = {};
|
|
1130
|
-
for (const staker of Object.keys(total)) {
|
|
1131
|
-
result[staker] = asAttoXL13(total[staker] - (earned[staker] ?? 0n));
|
|
1132
|
-
}
|
|
1133
|
-
return result;
|
|
1073
|
+
get networkStake() {
|
|
1074
|
+
return this._networkStakeViewer;
|
|
1134
1075
|
}
|
|
1135
|
-
|
|
1136
|
-
|
|
1076
|
+
get stake() {
|
|
1077
|
+
return this._stakeViewer;
|
|
1137
1078
|
}
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
this._blockViewer = await this.locator.getInstance(BlockViewerMoniker3);
|
|
1141
|
-
this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker4);
|
|
1142
|
-
this._stakeViewer = await this.locator.getInstance(StakeViewerMoniker4);
|
|
1079
|
+
get step() {
|
|
1080
|
+
return this._stepViewer;
|
|
1143
1081
|
}
|
|
1144
|
-
|
|
1145
|
-
return
|
|
1082
|
+
get time() {
|
|
1083
|
+
return this._timeSyncViewer;
|
|
1146
1084
|
}
|
|
1147
|
-
|
|
1148
|
-
return
|
|
1085
|
+
get transaction() {
|
|
1086
|
+
return this._transaction;
|
|
1149
1087
|
}
|
|
1150
|
-
|
|
1151
|
-
|
|
1088
|
+
get finalizationViewer() {
|
|
1089
|
+
return this._finalizationViewer;
|
|
1152
1090
|
}
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
), [3, 4, 5, 6, 7]);
|
|
1159
|
-
for (const step of steps) {
|
|
1160
|
-
if (isArray2(stakers)) {
|
|
1161
|
-
for (const staker of stakers) {
|
|
1162
|
-
const reward = await networkStakeStepRewardEarnedForStaker(
|
|
1163
|
-
this.context,
|
|
1164
|
-
this.blockViewer,
|
|
1165
|
-
this.stakeViewer,
|
|
1166
|
-
step,
|
|
1167
|
-
staker,
|
|
1168
|
-
rewardMultipliers
|
|
1169
|
-
);
|
|
1170
|
-
result[staker] = asAttoXL13((result[staker] ?? 0n) + reward[0]);
|
|
1171
|
-
}
|
|
1172
|
-
}
|
|
1173
|
-
}
|
|
1174
|
-
return result;
|
|
1091
|
+
get initRewardsCache() {
|
|
1092
|
+
return this.params.initRewardsCache ?? true;
|
|
1093
|
+
}
|
|
1094
|
+
get networkStepRewardsByPositionViewer() {
|
|
1095
|
+
return this._networkStepRewardsByPositionViewer;
|
|
1175
1096
|
}
|
|
1176
|
-
};
|
|
1177
|
-
__publicField(SimpleStepRewardsByStakerViewer, "connectionTypes", ["lmdb", "mongo", "memory", "rpc"]);
|
|
1178
|
-
__publicField(SimpleStepRewardsByStakerViewer, "defaultMoniker", NetworkStakeStepRewardsByStakerViewerMoniker);
|
|
1179
|
-
__publicField(SimpleStepRewardsByStakerViewer, "dependencies", [BlockViewerMoniker3, FinalizationViewerMoniker4, StakeViewerMoniker4]);
|
|
1180
|
-
__publicField(SimpleStepRewardsByStakerViewer, "monikers", [NetworkStakeStepRewardsByStakerViewerMoniker]);
|
|
1181
|
-
__publicField(SimpleStepRewardsByStakerViewer, "surface", "node");
|
|
1182
|
-
SimpleStepRewardsByStakerViewer = __decorateClass([
|
|
1183
|
-
creatableProvider10()
|
|
1184
|
-
], SimpleStepRewardsByStakerViewer);
|
|
1185
|
-
|
|
1186
|
-
// src/SimpleStepRewards/SimpleStepRewardsByStepViewer.ts
|
|
1187
|
-
import {
|
|
1188
|
-
asAttoXL1 as asAttoXL14,
|
|
1189
|
-
asXL1BlockRange as asXL1BlockRange4,
|
|
1190
|
-
BlockViewerMoniker as BlockViewerMoniker4,
|
|
1191
|
-
FinalizationViewerMoniker as FinalizationViewerMoniker5,
|
|
1192
|
-
NetworkStakeStepRewardsByStepViewerMoniker,
|
|
1193
|
-
StakeViewerMoniker as StakeViewerMoniker5
|
|
1194
|
-
} from "@xyo-network/xl1-protocol-lib";
|
|
1195
|
-
import {
|
|
1196
|
-
AbstractCreatableProvider as AbstractCreatableProvider10,
|
|
1197
|
-
blockRangeSteps as blockRangeSteps4,
|
|
1198
|
-
creatableProvider as creatableProvider11,
|
|
1199
|
-
toStepIdentityString as toStepIdentityString3
|
|
1200
|
-
} from "@xyo-network/xl1-protocol-sdk";
|
|
1201
|
-
var SimpleStepRewardsByStepViewer = class extends AbstractCreatableProvider10 {
|
|
1202
|
-
moniker = SimpleStepRewardsByStepViewer.defaultMoniker;
|
|
1203
|
-
_blockViewer;
|
|
1204
|
-
_finalizationViewer;
|
|
1205
|
-
_stakeViewer;
|
|
1206
1097
|
get rewardMultipliers() {
|
|
1207
|
-
|
|
1098
|
+
this._rewardMultipliers = this._rewardMultipliers ?? this.params.rewardMultipliers ?? {};
|
|
1099
|
+
return this._rewardMultipliers;
|
|
1208
1100
|
}
|
|
1209
|
-
|
|
1210
|
-
return this.
|
|
1101
|
+
async accountBalance(address, config = {}) {
|
|
1102
|
+
return await this.account.balance.accountBalance(address, config);
|
|
1211
1103
|
}
|
|
1212
|
-
|
|
1213
|
-
return this.
|
|
1104
|
+
async accountBalanceHistory(address, config = {}) {
|
|
1105
|
+
return await this.account.balance.accountBalanceHistory(address, config);
|
|
1214
1106
|
}
|
|
1215
|
-
|
|
1216
|
-
return this.
|
|
1107
|
+
async blockByHash(hash) {
|
|
1108
|
+
return await this.block.blockByHash(hash);
|
|
1217
1109
|
}
|
|
1218
|
-
async
|
|
1219
|
-
|
|
1220
|
-
const earned = await this.earned({ range, steps });
|
|
1221
|
-
const result = {};
|
|
1222
|
-
for (const stepString of Object.keys(total)) {
|
|
1223
|
-
result[stepString] = asAttoXL14(total[stepString] - (earned[stepString] ?? 0n));
|
|
1224
|
-
}
|
|
1225
|
-
return result;
|
|
1110
|
+
async blockByNumber(blockNumber) {
|
|
1111
|
+
return await this.block.blockByNumber(blockNumber);
|
|
1226
1112
|
}
|
|
1227
|
-
|
|
1228
|
-
|
|
1113
|
+
async blocksByHash(hash, limit = 10) {
|
|
1114
|
+
return await this.block.blocksByHash(hash, limit);
|
|
1115
|
+
}
|
|
1116
|
+
async blocksByNumber(blockNumber, limit = 10) {
|
|
1117
|
+
return await this.block.blocksByNumber(blockNumber, limit);
|
|
1118
|
+
}
|
|
1119
|
+
async blocksByStep(stepLevel, stepIndex) {
|
|
1120
|
+
return await this.block.blocksByStep(stepLevel, stepIndex);
|
|
1121
|
+
}
|
|
1122
|
+
async chainId(blockNumber = "latest") {
|
|
1123
|
+
return await this.spanAsync("SimpleXyoViewer:chainId", async () => {
|
|
1124
|
+
const chainId = assertEx4(
|
|
1125
|
+
blockNumber === "latest" ? this._chainId : await this.chainContractViewer.chainIdAtBlockNumber(blockNumber),
|
|
1126
|
+
() => `Could not find block for chainId at block ${blockNumber}`
|
|
1127
|
+
);
|
|
1128
|
+
return chainId;
|
|
1129
|
+
}, this.context);
|
|
1229
1130
|
}
|
|
1230
1131
|
async createHandler() {
|
|
1231
1132
|
await super.createHandler();
|
|
1232
|
-
this.
|
|
1133
|
+
this._accountBalanceViewer = await this.locator.getInstance(AccountBalanceViewerMoniker);
|
|
1134
|
+
this._blockViewer = await this.locator.getInstance(BlockViewerMoniker6);
|
|
1135
|
+
this._chainContractViewer = await this.locator.getInstance(ChainContractViewerMoniker);
|
|
1233
1136
|
this._finalizationViewer = await this.locator.getInstance(FinalizationViewerMoniker5);
|
|
1234
|
-
this.
|
|
1137
|
+
this._mempoolViewer = await this.locator.getInstance(MempoolViewerMoniker);
|
|
1138
|
+
this._networkStakeViewer = await this.locator.getInstance(NetworkStakeViewerMoniker2);
|
|
1139
|
+
this._networkStepRewardsByPositionViewer = await this.locator.getInstance(NetworkStakeStepRewardsByPositionViewerMoniker3);
|
|
1140
|
+
this._stakeViewer = await this.locator.getInstance(StakeViewerMoniker6);
|
|
1141
|
+
this._stepViewer = await this.locator.getInstance(StepViewerMoniker2);
|
|
1142
|
+
this._timeSyncViewer = await this.locator.getInstance(TimeSyncViewerMoniker);
|
|
1143
|
+
this._transaction = await this.locator.getInstance(TransactionViewerMoniker);
|
|
1144
|
+
this._chainId = await this._chainContractViewer.chainId();
|
|
1235
1145
|
}
|
|
1236
|
-
async
|
|
1237
|
-
|
|
1238
|
-
const resolvedSteps = steps ?? blockRangeSteps4(asXL1BlockRange4(
|
|
1239
|
-
range ?? [0, await this.finalizationViewer.headNumber()],
|
|
1240
|
-
{ name: "NodeStepRewardsByStepViewer" }
|
|
1241
|
-
), [3, 4, 5, 6, 7]);
|
|
1242
|
-
for (const step of resolvedSteps) {
|
|
1243
|
-
const stepIdentityString = toStepIdentityString3(step);
|
|
1244
|
-
const reward = await networkStakeStepRewardEarned(
|
|
1245
|
-
this.context,
|
|
1246
|
-
this.blockViewer,
|
|
1247
|
-
this.stakeViewer,
|
|
1248
|
-
step
|
|
1249
|
-
);
|
|
1250
|
-
result[stepIdentityString] = asAttoXL14((result[stepIdentityString] ?? 0n) + reward[0]);
|
|
1251
|
-
}
|
|
1252
|
-
return result;
|
|
1146
|
+
async currentBlock() {
|
|
1147
|
+
return await this.block.currentBlock();
|
|
1253
1148
|
}
|
|
1254
|
-
async
|
|
1255
|
-
|
|
1256
|
-
const head = await this.finalizationViewer.head();
|
|
1257
|
-
const resolvedSteps = steps ?? blockRangeSteps4(asXL1BlockRange4(
|
|
1258
|
-
range ?? [0, head[1]],
|
|
1259
|
-
{ name: "NodeStepRewardsByStepViewer" }
|
|
1260
|
-
), [3, 4, 5, 6, 7]);
|
|
1261
|
-
for (const step of resolvedSteps) {
|
|
1262
|
-
const stepIdentityString = toStepIdentityString3(step);
|
|
1263
|
-
const reward = await networkStakeStepRewardEarned(
|
|
1264
|
-
this.context,
|
|
1265
|
-
this.blockViewer,
|
|
1266
|
-
this.stakeViewer,
|
|
1267
|
-
step,
|
|
1268
|
-
this.rewardMultipliers
|
|
1269
|
-
);
|
|
1270
|
-
result[stepIdentityString] = asAttoXL14((result[stepIdentityString] ?? 0n) + reward[0]);
|
|
1271
|
-
}
|
|
1272
|
-
return result;
|
|
1149
|
+
async currentBlockHash() {
|
|
1150
|
+
return await this.block.currentBlockHash();
|
|
1273
1151
|
}
|
|
1274
|
-
|
|
1275
|
-
|
|
1152
|
+
async currentBlockNumber() {
|
|
1153
|
+
return await this.block.currentBlockNumber();
|
|
1276
1154
|
}
|
|
1277
|
-
|
|
1278
|
-
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1287
|
-
|
|
1288
|
-
|
|
1289
|
-
|
|
1290
|
-
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
|
|
1294
|
-
|
|
1295
|
-
|
|
1296
|
-
|
|
1155
|
+
forkHistory() {
|
|
1156
|
+
throw new Error("Method [forkHistory] not implemented.");
|
|
1157
|
+
}
|
|
1158
|
+
networkStakeStepRewardAddressHistory(_address) {
|
|
1159
|
+
throw new Error("Method [networkStakeStepRewardAddressHistory] not implemented.");
|
|
1160
|
+
}
|
|
1161
|
+
networkStakeStepRewardAddressReward(_context, _address) {
|
|
1162
|
+
throw new Error("Method [networkStakeStepRewardAddressReward] not implemented.");
|
|
1163
|
+
}
|
|
1164
|
+
networkStakeStepRewardAddressShare(_context, _address) {
|
|
1165
|
+
throw new Error("Method [networkStakeStepRewardAddressShare] not implemented.");
|
|
1166
|
+
}
|
|
1167
|
+
networkStakeStepRewardClaimedByAddress(_address) {
|
|
1168
|
+
throw new Error("Method [networkStakeStepRewardClaimedByAddress] not implemented.");
|
|
1169
|
+
}
|
|
1170
|
+
async networkStakeStepRewardForPosition(position, range) {
|
|
1171
|
+
const cacheKey = `${position}|${range[0]}-${range[1]}`;
|
|
1172
|
+
return await withContextCacheResponse4(this.context, "SimpleXyoViewer:networkStakeStepRewardForPosition", cacheKey, async () => {
|
|
1173
|
+
const externalRange = await externalBlockRangeFromXL1BlockRange(this.context, this.block, range);
|
|
1174
|
+
const positionCount = await this.stake.stakeEvents.positionCount(externalRange);
|
|
1175
|
+
if (positionCount === 0) {
|
|
1176
|
+
return [asAttoXL15(0n), asAttoXL15(0n)];
|
|
1177
|
+
}
|
|
1178
|
+
const steps = blockRangeSteps4(range, [3, 4, 5, 6, 7]);
|
|
1179
|
+
const rewards = await Promise.all(steps.map((step) => this.networkStakeStepRewardForStepForPosition(step, position)));
|
|
1180
|
+
const positionReward = asAttoXL15(rewards.reduce((a, b) => a + b[0], 0n));
|
|
1181
|
+
const totalReward = asAttoXL15(rewards.reduce((a, b) => a + b[1], 0n));
|
|
1182
|
+
return [positionReward, totalReward];
|
|
1183
|
+
});
|
|
1184
|
+
}
|
|
1185
|
+
async networkStakeStepRewardForStep(stepContext) {
|
|
1186
|
+
return await stepRewardTotal2(this.context, this.block, stepContext, this.rewardMultipliers);
|
|
1187
|
+
}
|
|
1188
|
+
async networkStakeStepRewardForStepForPosition(stepIdentity, position) {
|
|
1189
|
+
const stepIdentityString = toStepIdentityString3(stepIdentity);
|
|
1190
|
+
const cacheKey = `${stepIdentityString}|${position}`;
|
|
1191
|
+
return await withContextCacheResponse4(this.context, "SimpleXyoViewer:networkStakeStepRewardForStepForPosition", cacheKey, async () => {
|
|
1192
|
+
const range = await externalBlockRangeFromStep3(this.context, this.block, stepIdentity);
|
|
1193
|
+
const stake = await this.stakeById(position);
|
|
1194
|
+
const numerator = stake.staked === XYO_NETWORK_STAKING_ADDRESS4 ? await weightedStakeForRangeByPosition2(this.context, this.block, this.stake.stakeEvents, range, XYO_NETWORK_STAKING_ADDRESS4, position) : 0n;
|
|
1195
|
+
const denominator = await this.stepWeightedDenominator(stepIdentity);
|
|
1196
|
+
const totalReward = await this.networkStakeStepRewardForStep(stepIdentity);
|
|
1197
|
+
const positionReward = asAttoXL15(denominator > 0n ? totalReward * numerator / denominator : 0n);
|
|
1198
|
+
const result = [positionReward, totalReward];
|
|
1199
|
+
return result;
|
|
1200
|
+
});
|
|
1201
|
+
}
|
|
1202
|
+
async networkStakeStepRewardPoolRewards(step) {
|
|
1203
|
+
const stakes = await this.stake.stakesByStaked(XYO_NETWORK_STAKING_ADDRESS4);
|
|
1204
|
+
const rewards = [];
|
|
1205
|
+
for (const stake of stakes) {
|
|
1206
|
+
rewards.push([stake.staker, await this.networkStakeStepRewardForStepForPosition(
|
|
1207
|
+
step,
|
|
1208
|
+
stake.id
|
|
1209
|
+
)]);
|
|
1210
|
+
}
|
|
1211
|
+
const result = {};
|
|
1212
|
+
for (const [staker, reward] of rewards) {
|
|
1213
|
+
result[staker] = asAttoXL15((result[staker] ?? 0n) + reward[0]);
|
|
1214
|
+
}
|
|
1215
|
+
const filtered = Object.fromEntries(Object.entries(result).filter(([_, v]) => v > 0n));
|
|
1216
|
+
return filtered;
|
|
1297
1217
|
}
|
|
1298
|
-
|
|
1299
|
-
|
|
1300
|
-
const earned = await this.earned({ range });
|
|
1301
|
-
return asAttoXL15(total - earned);
|
|
1218
|
+
networkStakeStepRewardPoolShares(_context) {
|
|
1219
|
+
throw new Error("Method [networkStakeStepRewardPoolShares] not implemented.");
|
|
1302
1220
|
}
|
|
1303
|
-
|
|
1304
|
-
|
|
1221
|
+
async networkStakeStepRewardPositionWeight(stepContext, position) {
|
|
1222
|
+
return await networkStakeStepRewardPositionWeight(this.context, this.block, this.stake.stakeEvents, stepContext, position);
|
|
1305
1223
|
}
|
|
1306
|
-
|
|
1307
|
-
|
|
1224
|
+
networkStakeStepRewardPotentialPositionLoss(_context, _position) {
|
|
1225
|
+
throw new Error("Method [networkStakeStepRewardPotentialPositionLoss] not implemented.");
|
|
1308
1226
|
}
|
|
1309
|
-
|
|
1310
|
-
|
|
1227
|
+
networkStakeStepRewardRandomizer(_context) {
|
|
1228
|
+
throw new Error("Method [networkStakeStepRewardRandomizer] not implemented.");
|
|
1311
1229
|
}
|
|
1312
|
-
|
|
1313
|
-
|
|
1230
|
+
async networkStakeStepRewardStakerCount(stepContext) {
|
|
1231
|
+
return Object.keys(await allStakersForStep(
|
|
1232
|
+
this.context,
|
|
1233
|
+
this.block,
|
|
1234
|
+
this.stake.stakeEvents,
|
|
1235
|
+
stepContext,
|
|
1236
|
+
XYO_NETWORK_STAKING_ADDRESS4
|
|
1237
|
+
)).length;
|
|
1314
1238
|
}
|
|
1315
|
-
|
|
1316
|
-
throw new Error("Method
|
|
1239
|
+
networkStakeStepRewardUnclaimedByAddress(_address) {
|
|
1240
|
+
throw new Error("Method [networkStakeStepRewardUnclaimedByAddress] not implemented.");
|
|
1317
1241
|
}
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
__publicField(SimpleStepRewardsTotalViewer, "defaultMoniker", NetworkStakeStepRewardsTotalViewerMoniker);
|
|
1321
|
-
__publicField(SimpleStepRewardsTotalViewer, "dependencies", []);
|
|
1322
|
-
__publicField(SimpleStepRewardsTotalViewer, "monikers", [NetworkStakeStepRewardsTotalViewerMoniker]);
|
|
1323
|
-
__publicField(SimpleStepRewardsTotalViewer, "surface", "node");
|
|
1324
|
-
SimpleStepRewardsTotalViewer = __decorateClass([
|
|
1325
|
-
creatableProvider12()
|
|
1326
|
-
], SimpleStepRewardsTotalViewer);
|
|
1327
|
-
|
|
1328
|
-
// src/SimpleStepRewards/SimpleStepRewardsViewer.ts
|
|
1329
|
-
import { assertEx as assertEx6 } from "@xylabs/sdk";
|
|
1330
|
-
import {
|
|
1331
|
-
BlockViewerMoniker as BlockViewerMoniker5,
|
|
1332
|
-
NetworkStakeStepRewardsByPositionViewerMoniker as NetworkStakeStepRewardsByPositionViewerMoniker3,
|
|
1333
|
-
NetworkStakeStepRewardsByStakerViewerMoniker as NetworkStakeStepRewardsByStakerViewerMoniker2,
|
|
1334
|
-
NetworkStakeStepRewardsByStepViewerMoniker as NetworkStakeStepRewardsByStepViewerMoniker2,
|
|
1335
|
-
NetworkStakeStepRewardsViewerMoniker as NetworkStakeStepRewardsViewerMoniker2
|
|
1336
|
-
} from "@xyo-network/xl1-protocol-lib";
|
|
1337
|
-
import {
|
|
1338
|
-
AbstractCreatableProvider as AbstractCreatableProvider12,
|
|
1339
|
-
creatableProvider as creatableProvider13
|
|
1340
|
-
} from "@xyo-network/xl1-protocol-sdk";
|
|
1341
|
-
var SimpleStepRewardsViewer = class extends AbstractCreatableProvider12 {
|
|
1342
|
-
moniker = SimpleStepRewardsViewer.defaultMoniker;
|
|
1343
|
-
_blockViewer;
|
|
1344
|
-
_position;
|
|
1345
|
-
_staker;
|
|
1346
|
-
_step;
|
|
1347
|
-
get position() {
|
|
1348
|
-
return assertEx6(this._position, () => "Position viewer not initialized");
|
|
1242
|
+
networkStakeStepRewardWeightForAddress(_context, _address) {
|
|
1243
|
+
throw new Error("Method [networkStakeStepRewardWeightForAddress] not implemented.");
|
|
1349
1244
|
}
|
|
1350
|
-
|
|
1351
|
-
|
|
1245
|
+
async networkStakeStepRewardsForPosition(position, range) {
|
|
1246
|
+
const steps = blockRangeSteps4(range, [3, 4, 5, 6, 7, 8]);
|
|
1247
|
+
const rewards = await Promise.all(steps.map(async (step) => {
|
|
1248
|
+
return [toStepIdentityString3(step), await this.networkStakeStepRewardForStepForPosition(step, position)];
|
|
1249
|
+
}));
|
|
1250
|
+
const result = Object.fromEntries(rewards);
|
|
1251
|
+
const filtered = Object.fromEntries(Object.entries(result).filter(([_, v]) => v[0] > 0n));
|
|
1252
|
+
return filtered;
|
|
1352
1253
|
}
|
|
1353
|
-
|
|
1354
|
-
return
|
|
1254
|
+
async networkStakeStepRewardsForRange(range) {
|
|
1255
|
+
return await this.spanAsync("networkStakeStepRewardsForRange", async () => {
|
|
1256
|
+
const steps = blockRangeSteps4(range, [3, 4, 5, 6, 7, 8]);
|
|
1257
|
+
const rewards = await Promise.all(steps.map(async (step) => {
|
|
1258
|
+
return await this.networkStakeStepRewardForStep(step);
|
|
1259
|
+
}));
|
|
1260
|
+
return asAttoXL15(rewards.reduce((a, b) => a + b, 0n));
|
|
1261
|
+
}, this.context);
|
|
1355
1262
|
}
|
|
1356
|
-
|
|
1357
|
-
|
|
1263
|
+
async networkStakeStepRewardsForStepLevel(stepLevel, range) {
|
|
1264
|
+
const steps = blockRangeSteps4(range, [stepLevel]);
|
|
1265
|
+
const rewards = await Promise.all(steps.map(async (step) => {
|
|
1266
|
+
return await this.networkStakeStepRewardForStep(step);
|
|
1267
|
+
}));
|
|
1268
|
+
return asAttoXL15(rewards.reduce((a, b) => a + b, 0n));
|
|
1358
1269
|
}
|
|
1359
|
-
|
|
1360
|
-
|
|
1270
|
+
payloadByHash(_hash) {
|
|
1271
|
+
throw new Error("Method [payloadByHash] not implemented.");
|
|
1361
1272
|
}
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
this._blockViewer = await this.locator.getInstance(BlockViewerMoniker5);
|
|
1365
|
-
this._position = await this.locator.getInstance(NetworkStakeStepRewardsByPositionViewerMoniker3);
|
|
1366
|
-
this._staker = await this.locator.getInstance(NetworkStakeStepRewardsByStakerViewerMoniker2);
|
|
1367
|
-
this._step = await this.locator.getInstance(NetworkStakeStepRewardsByStepViewerMoniker2);
|
|
1273
|
+
payloadsByHash(_hashes) {
|
|
1274
|
+
throw new Error("Method [payloadsByHash] not implemented.");
|
|
1368
1275
|
}
|
|
1369
|
-
async
|
|
1370
|
-
await
|
|
1371
|
-
await assertEx6(this._position, () => "Position viewer not created").start();
|
|
1372
|
-
await assertEx6(this._staker, () => "Staker viewer not created").start();
|
|
1373
|
-
await assertEx6(this._step, () => "Step viewer not created").start();
|
|
1276
|
+
async rate(range, timeUnit) {
|
|
1277
|
+
return await this.block.rate(range, timeUnit);
|
|
1374
1278
|
}
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
__publicField(SimpleStepRewardsViewer, "defaultMoniker", NetworkStakeStepRewardsViewerMoniker2);
|
|
1378
|
-
__publicField(SimpleStepRewardsViewer, "dependencies", [
|
|
1379
|
-
BlockViewerMoniker5,
|
|
1380
|
-
NetworkStakeStepRewardsByPositionViewerMoniker3,
|
|
1381
|
-
NetworkStakeStepRewardsByStakerViewerMoniker2,
|
|
1382
|
-
NetworkStakeStepRewardsByStepViewerMoniker2
|
|
1383
|
-
]);
|
|
1384
|
-
__publicField(SimpleStepRewardsViewer, "monikers", [NetworkStakeStepRewardsViewerMoniker2]);
|
|
1385
|
-
__publicField(SimpleStepRewardsViewer, "surface", "node");
|
|
1386
|
-
SimpleStepRewardsViewer = __decorateClass([
|
|
1387
|
-
creatableProvider13()
|
|
1388
|
-
], SimpleStepRewardsViewer);
|
|
1389
|
-
|
|
1390
|
-
// src/SimpleStepViewer.ts
|
|
1391
|
-
import {
|
|
1392
|
-
BlockViewerMoniker as BlockViewerMoniker6,
|
|
1393
|
-
NetworkStakeStepRewardsViewerMoniker as NetworkStakeStepRewardsViewerMoniker3,
|
|
1394
|
-
StakeEventsViewerMoniker,
|
|
1395
|
-
StakeViewerMoniker as StakeViewerMoniker6,
|
|
1396
|
-
StepViewerMoniker as StepViewerMoniker2
|
|
1397
|
-
} from "@xyo-network/xl1-protocol-lib";
|
|
1398
|
-
import {
|
|
1399
|
-
AbstractCreatableProvider as AbstractCreatableProvider13,
|
|
1400
|
-
creatableProvider as creatableProvider14,
|
|
1401
|
-
externalBlockRangeFromStep as externalBlockRangeFromStep3
|
|
1402
|
-
} from "@xyo-network/xl1-protocol-sdk";
|
|
1403
|
-
var SimpleStepViewer = class extends AbstractCreatableProvider13 {
|
|
1404
|
-
moniker = SimpleStepViewer.defaultMoniker;
|
|
1405
|
-
_blockViewer;
|
|
1406
|
-
_networkStakeStepRewardsViewer;
|
|
1407
|
-
_stakeEventsViewer;
|
|
1408
|
-
_stakeViewer;
|
|
1409
|
-
get rewards() {
|
|
1410
|
-
return this._networkStakeStepRewardsViewer;
|
|
1279
|
+
async stakeById(id) {
|
|
1280
|
+
return await this.stake.stakeById(id);
|
|
1411
1281
|
}
|
|
1412
|
-
|
|
1413
|
-
return this.
|
|
1282
|
+
async stakeByStaker(staker, slot) {
|
|
1283
|
+
return await this.stake.stakeByStaker(staker, slot);
|
|
1414
1284
|
}
|
|
1415
|
-
|
|
1416
|
-
|
|
1285
|
+
async stakedByStaker(staker) {
|
|
1286
|
+
const result = /* @__PURE__ */ new Set();
|
|
1287
|
+
let slot = 0;
|
|
1288
|
+
while (true) {
|
|
1289
|
+
try {
|
|
1290
|
+
const ethStake = await this.stake.stakeByStaker(staker, slot);
|
|
1291
|
+
result.add(toAddress(ethStake.staked));
|
|
1292
|
+
slot++;
|
|
1293
|
+
} catch {
|
|
1294
|
+
break;
|
|
1295
|
+
}
|
|
1296
|
+
}
|
|
1297
|
+
return [...result];
|
|
1417
1298
|
}
|
|
1418
|
-
|
|
1419
|
-
return this.
|
|
1299
|
+
async stakesByStaked(staked) {
|
|
1300
|
+
return await this.stake.stakesByStaked(staked);
|
|
1420
1301
|
}
|
|
1421
|
-
async
|
|
1422
|
-
await
|
|
1423
|
-
this._blockViewer = await this.locator.getInstance(BlockViewerMoniker6);
|
|
1424
|
-
this._networkStakeStepRewardsViewer = await this.locator.getInstance(NetworkStakeStepRewardsViewerMoniker3);
|
|
1425
|
-
this._stakeViewer = await this.locator.getInstance(StakeViewerMoniker6);
|
|
1426
|
-
this._stakeEventsViewer = await this.locator.getInstance(StakeEventsViewerMoniker);
|
|
1302
|
+
async stakesByStaker(staker) {
|
|
1303
|
+
return await this.stake.stakesByStaker(staker);
|
|
1427
1304
|
}
|
|
1428
|
-
async
|
|
1429
|
-
|
|
1430
|
-
const positionCount = await this.stakeEventsViewer.positionCount(externalRange);
|
|
1431
|
-
return positionCount;
|
|
1305
|
+
async stepSizeRate(start, stepSizeIndex, count, timeUnit) {
|
|
1306
|
+
return await this.block.stepSizeRate(start, stepSizeIndex, count, timeUnit);
|
|
1432
1307
|
}
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
const count = await this.positionCount(step);
|
|
1436
|
-
const externalRange = await externalBlockRangeFromStep3(this.context, this.blockViewer, step);
|
|
1437
|
-
const allPositions = await Promise.all(Array.from({ length: count + 1 }, (_, i) => i).map(async (id) => this.stakeViewer.stakeById(id)));
|
|
1438
|
-
return allPositions.filter((pos) => pos.addBlock <= externalRange[1] && (pos.removeBlock === 0 || pos.removeBlock > externalRange[0]));
|
|
1308
|
+
async timeDurationRate(timeConfig, startBlock, timeUnit, toleranceMs, maxAttempts) {
|
|
1309
|
+
return await this.block.timeDurationRate(timeConfig, startBlock, timeUnit, toleranceMs, maxAttempts);
|
|
1439
1310
|
}
|
|
1440
|
-
|
|
1441
|
-
|
|
1311
|
+
async transactionByBlockHashAndIndex(blockHash, transactionIndex = 0) {
|
|
1312
|
+
return await this.transaction.byBlockHashAndIndex(blockHash, transactionIndex);
|
|
1442
1313
|
}
|
|
1443
|
-
|
|
1444
|
-
|
|
1314
|
+
async transactionByBlockNumberAndIndex(blockNumber, transactionIndex = 0) {
|
|
1315
|
+
return await this.transaction.byBlockNumberAndIndex(blockNumber, transactionIndex);
|
|
1445
1316
|
}
|
|
1446
|
-
|
|
1447
|
-
|
|
1317
|
+
async transactionByHash(transactionHash) {
|
|
1318
|
+
return await this.transaction.byHash(transactionHash);
|
|
1448
1319
|
}
|
|
1449
|
-
|
|
1450
|
-
|
|
1320
|
+
async startHandler() {
|
|
1321
|
+
try {
|
|
1322
|
+
const currentBlockNumber = await this.currentBlockNumber();
|
|
1323
|
+
await this.account.balance.accountBalance(XYO_ZERO_ADDRESS);
|
|
1324
|
+
if (this.initRewardsCache) {
|
|
1325
|
+
const externalRange = await externalBlockRangeFromXL1BlockRange(
|
|
1326
|
+
this.context,
|
|
1327
|
+
this.block,
|
|
1328
|
+
asXL1BlockRange4([0, currentBlockNumber], { name: "startHandler" })
|
|
1329
|
+
);
|
|
1330
|
+
const positionCount = await this.stake.stakeEvents.positionCount(externalRange);
|
|
1331
|
+
this.logger?.debug(`SimpleXyoViewer: Precomputing networkStakeStepRewardForPosition up to position ${positionCount - 1}`);
|
|
1332
|
+
const positions = Array.from(
|
|
1333
|
+
{ length: positionCount },
|
|
1334
|
+
(_, i) => i
|
|
1335
|
+
);
|
|
1336
|
+
while (positions.length > 0) {
|
|
1337
|
+
const batch = positions.splice(0, 10);
|
|
1338
|
+
this.logger?.debug(`SimpleXyoViewer: Precomputing networkStakeStepRewardForPosition for positions ${batch.at(0)} - ${batch.at(-1)}`);
|
|
1339
|
+
await Promise.all(batch.map(async (_, position) => await this.networkStakeStepRewardForPosition(
|
|
1340
|
+
position,
|
|
1341
|
+
asXL1BlockRange4([0, currentBlockNumber], { name: "startHandler" })
|
|
1342
|
+
)));
|
|
1343
|
+
}
|
|
1344
|
+
this.logger?.debug(`SimpleXyoViewer: Precomputed networkStakeStepRewardForPosition up to position ${positionCount - 1}`);
|
|
1345
|
+
}
|
|
1346
|
+
} catch (ex) {
|
|
1347
|
+
this.logger?.error(`SimpleXyoViewer: Error during startHandler initialization: ${ex.message}`);
|
|
1348
|
+
this.logger?.error(ex.stack ?? "<No Stack>");
|
|
1349
|
+
throw ex;
|
|
1350
|
+
}
|
|
1451
1351
|
}
|
|
1452
|
-
|
|
1453
|
-
|
|
1352
|
+
async stepWeightedDenominator(stepIdentity, staked) {
|
|
1353
|
+
const cacheKey = toStepIdentityString3(stepIdentity);
|
|
1354
|
+
return await withContextCacheResponse4(this.context, "NodeXyoViewer-networkStakeStepRewardForStepForPosition-denominator", cacheKey, async () => {
|
|
1355
|
+
const range = await externalBlockRangeFromStep3(this.context, this.block, stepIdentity);
|
|
1356
|
+
return await weightedStakeForRangeByPosition2(this.context, this.block, this.stake.stakeEvents, range, staked);
|
|
1357
|
+
});
|
|
1454
1358
|
}
|
|
1455
1359
|
};
|
|
1456
|
-
__publicField(
|
|
1457
|
-
__publicField(
|
|
1458
|
-
__publicField(
|
|
1360
|
+
__publicField(SimpleXyoViewer, "connectionTypes", ["lmdb", "mongo", "memory"]);
|
|
1361
|
+
__publicField(SimpleXyoViewer, "defaultMoniker", XyoViewerMoniker3);
|
|
1362
|
+
__publicField(SimpleXyoViewer, "dependencies", [
|
|
1363
|
+
AccountBalanceViewerMoniker,
|
|
1459
1364
|
BlockViewerMoniker6,
|
|
1460
|
-
|
|
1365
|
+
ChainContractViewerMoniker,
|
|
1366
|
+
FinalizationViewerMoniker5,
|
|
1367
|
+
MempoolViewerMoniker,
|
|
1368
|
+
NetworkStakeViewerMoniker2,
|
|
1369
|
+
NetworkStakeStepRewardsByPositionViewerMoniker3,
|
|
1461
1370
|
StakeViewerMoniker6,
|
|
1462
|
-
|
|
1371
|
+
StepViewerMoniker2,
|
|
1372
|
+
TimeSyncViewerMoniker,
|
|
1373
|
+
TransactionViewerMoniker
|
|
1463
1374
|
]);
|
|
1464
|
-
__publicField(
|
|
1465
|
-
__publicField(
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
],
|
|
1375
|
+
__publicField(SimpleXyoViewer, "monikers", [XyoViewerMoniker3]);
|
|
1376
|
+
__publicField(SimpleXyoViewer, "surface", "node");
|
|
1377
|
+
SimpleXyoViewer = __decorateClass([
|
|
1378
|
+
creatableProvider12()
|
|
1379
|
+
], SimpleXyoViewer);
|
|
1469
1380
|
|
|
1470
1381
|
// src/locators/providerCandidates.ts
|
|
1471
1382
|
var PROVIDER_IMPLEMENTATIONS = [
|
|
@@ -1482,10 +1393,6 @@ var PROVIDER_IMPLEMENTATIONS = [
|
|
|
1482
1393
|
JsonRpcXyoRunner,
|
|
1483
1394
|
JsonRpcXyoSigner,
|
|
1484
1395
|
JsonRpcXyoViewer,
|
|
1485
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated -- backward-compat provider registry
|
|
1486
|
-
NodeXyoRunner,
|
|
1487
|
-
// eslint-disable-next-line @typescript-eslint/no-deprecated -- backward-compat provider registry
|
|
1488
|
-
NodeXyoViewer,
|
|
1489
1396
|
RestDataLakeRunner,
|
|
1490
1397
|
RestDataLakeViewer,
|
|
1491
1398
|
SimpleAccountBalanceViewer,
|
|
@@ -1497,7 +1404,7 @@ var PROVIDER_IMPLEMENTATIONS = [
|
|
|
1497
1404
|
SimpleDeadLetterQueueViewer,
|
|
1498
1405
|
SimpleFinalizationRunner,
|
|
1499
1406
|
SimpleFinalizationViewer,
|
|
1500
|
-
|
|
1407
|
+
SimpleMempoolRunner,
|
|
1501
1408
|
SimpleMempoolViewer,
|
|
1502
1409
|
SimpleNetworkStakeViewer,
|
|
1503
1410
|
SimpleStakeEventsViewer,
|
|
@@ -1656,24 +1563,13 @@ async function basicRemoteRunnerLocator(name, rpcConnection, signerTransport, da
|
|
|
1656
1563
|
return locator;
|
|
1657
1564
|
}
|
|
1658
1565
|
|
|
1659
|
-
// src/locators/commonLocatorFromConfig.ts
|
|
1660
|
-
import { ProviderFactoryLocator as ProviderFactoryLocator5 } from "@xyo-network/xl1-protocol-sdk";
|
|
1661
|
-
function commonLocatorFromConfig(context, validateDepsOnRegister = false) {
|
|
1662
|
-
return new ProviderFactoryLocator5(context, {}, validateDepsOnRegister);
|
|
1663
|
-
}
|
|
1664
|
-
|
|
1665
|
-
// src/locators/commonProvidersFromConfig.ts
|
|
1666
|
-
function commonProvidersFromConfig() {
|
|
1667
|
-
return [];
|
|
1668
|
-
}
|
|
1669
|
-
|
|
1670
1566
|
// src/locators/rootLocatorFromConfig.ts
|
|
1671
|
-
import { assertEx as
|
|
1567
|
+
import { assertEx as assertEx5 } from "@ariestools/sdk";
|
|
1672
1568
|
async function rootLocatorFromConfig(context, validateDepsOnRegister = false, validators) {
|
|
1673
1569
|
const { config } = context;
|
|
1674
1570
|
const hasRpcConnection = config.connections?.["default-rpc"] !== void 0 || Object.values(config.connections ?? {}).some((connection) => connection?.type === "rpc");
|
|
1675
1571
|
const newLocator = hasRpcConnection ? await remoteLocatorFromConfig(context, validateDepsOnRegister, validators) : void 0;
|
|
1676
|
-
const locator =
|
|
1572
|
+
const locator = assertEx5(newLocator, () => "Root locator could not be created from config. No supported configuration found.");
|
|
1677
1573
|
locator.freeze();
|
|
1678
1574
|
return locator;
|
|
1679
1575
|
}
|
|
@@ -1702,16 +1598,6 @@ import {
|
|
|
1702
1598
|
SimpleXyoGatewayRunner as SimpleXyoGatewayRunner3,
|
|
1703
1599
|
SimpleXyoSigner as SimpleXyoSigner2
|
|
1704
1600
|
} from "@xyo-network/xl1-protocol-sdk";
|
|
1705
|
-
var registerGatewayRunnerWithLocatorIfProvided = (locator, params) => {
|
|
1706
|
-
const account = params?.signerAccount;
|
|
1707
|
-
if (account) {
|
|
1708
|
-
locator.registerMany([
|
|
1709
|
-
SimpleXyoSigner2.factory(SimpleXyoSigner2.dependencies, { account }),
|
|
1710
|
-
SimpleXyoGatewayRunner3.factory(SimpleXyoGatewayRunner3.dependencies, {})
|
|
1711
|
-
]);
|
|
1712
|
-
}
|
|
1713
|
-
return locator;
|
|
1714
|
-
};
|
|
1715
1601
|
var registerGatewayWithLocator = (locator, account) => {
|
|
1716
1602
|
locator.registerMany([
|
|
1717
1603
|
SimpleXyoConnectionRunner.factory(SimpleXyoConnectionRunner.dependencies, {}),
|
|
@@ -1733,8 +1619,6 @@ var registerSimpleStakeViewerWithLocator = (locator, positions) => {
|
|
|
1733
1619
|
return locator;
|
|
1734
1620
|
};
|
|
1735
1621
|
export {
|
|
1736
|
-
NodeXyoRunner,
|
|
1737
|
-
NodeXyoViewer,
|
|
1738
1622
|
SimpleDeadLetterQueueRunner,
|
|
1739
1623
|
SimpleDeadLetterQueueViewer,
|
|
1740
1624
|
SimpleNetworkStakeViewer,
|
|
@@ -1751,13 +1635,11 @@ export {
|
|
|
1751
1635
|
baseConfigFactoryLocator,
|
|
1752
1636
|
basicRemoteRunnerLocator,
|
|
1753
1637
|
basicRemoteViewerLocator,
|
|
1638
|
+
buildSimpleXyoSigner,
|
|
1754
1639
|
buildSimpleXyoSignerV2,
|
|
1755
|
-
commonLocatorFromConfig,
|
|
1756
|
-
commonProvidersFromConfig,
|
|
1757
1640
|
createRestDataLakeRunner,
|
|
1758
1641
|
createRestDataLakeViewer,
|
|
1759
1642
|
locatorFromAdaptedConfig,
|
|
1760
|
-
registerGatewayRunnerWithLocatorIfProvided,
|
|
1761
1643
|
registerGatewayWithLocator,
|
|
1762
1644
|
registerSimpleStakeViewerWithLocator,
|
|
1763
1645
|
remoteLocatorFromConfig,
|