@xyo-network/chain-reward-redemption 1.20.27 → 1.20.29
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/node/RewardRedemptionActor.d.ts +4 -3
- package/dist/node/RewardRedemptionActor.d.ts.map +1 -1
- package/dist/node/index.d.ts +1 -0
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.mjs +226 -205
- package/dist/node/index.mjs.map +1 -1
- package/dist/node/modules/ChainStepRewardsClaimSentinel/ChainStepRewardsClaimSentinel.d.ts +8 -0
- package/dist/node/modules/ChainStepRewardsClaimSentinel/ChainStepRewardsClaimSentinel.d.ts.map +1 -1
- package/dist/node/server/server.d.ts.map +1 -1
- package/package.json +136 -136
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import type { RewardRedemptionConfig } from '@xyo-network/chain-orchestration';
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
1
|
+
import type { ActorCapabilityNeeds, ActorParamsV3, RewardRedemptionConfig } from '@xyo-network/chain-orchestration';
|
|
2
|
+
import { ActorV3 } from '@xyo-network/chain-orchestration';
|
|
3
|
+
import type { XyoGatewayRunner } from '@xyo-network/xl1-sdk';
|
|
4
4
|
export type RewardRedemptionActorParams = ActorParamsV3<{
|
|
5
5
|
config: RewardRedemptionConfig;
|
|
6
6
|
}>;
|
|
7
7
|
export declare class RewardRedemptionActor extends ActorV3<RewardRedemptionActorParams> {
|
|
8
|
+
static readonly needs: ActorCapabilityNeeds;
|
|
8
9
|
protected _gatewayRunner: XyoGatewayRunner;
|
|
9
10
|
private server?;
|
|
10
11
|
protected get gatewayRunner(): XyoGatewayRunner;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RewardRedemptionActor.d.ts","sourceRoot":"","sources":["../../src/RewardRedemptionActor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;
|
|
1
|
+
{"version":3,"file":"RewardRedemptionActor.d.ts","sourceRoot":"","sources":["../../src/RewardRedemptionActor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,oBAAoB,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,kCAAkC,CAAA;AACnH,OAAO,EAAE,OAAO,EAAE,MAAM,kCAAkC,CAAA;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AAS5D,MAAM,MAAM,2BAA2B,GAAG,aAAa,CAAC;IACtD,MAAM,EAAE,sBAAsB,CAAA;CAC/B,CAAC,CAAA;AAEF,qBACa,qBAAsB,SAAQ,OAAO,CAAC,2BAA2B,CAAC;IAC7E,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAK1C;IAED,SAAS,CAAC,cAAc,EAAG,gBAAgB,CAAA;IAC3C,OAAO,CAAC,MAAM,CAAC,CAAQ;IAEvB,SAAS,KAAK,aAAa,qBAE1B;IAEc,aAAa;IAKb,YAAY;IAMZ,WAAW;YAKZ,WAAW;IAIzB,OAAO,CAAC,UAAU;CAInB"}
|
package/dist/node/index.d.ts
CHANGED
package/dist/node/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA;AAClC,cAAc,4BAA4B,CAAA"}
|
package/dist/node/index.mjs
CHANGED
|
@@ -1,6 +1,14 @@
|
|
|
1
1
|
var __defProp = Object.defineProperty;
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
|
|
4
|
+
// src/manifest/getLocator.ts
|
|
5
|
+
import { isDefined as isDefined3 } from "@xylabs/sdk-js";
|
|
6
|
+
import { MongoDBArchivistV2 } from "@xyo-network/archivist-mongodb";
|
|
7
|
+
import { ViewArchivist } from "@xyo-network/archivist-view";
|
|
8
|
+
import { initTelemetry } from "@xyo-network/chain-telemetry";
|
|
9
|
+
import { AbstractModule, LoggerModuleStatusReporter, MemoryArchivist, MemorySentinel, ModuleFactoryLocator } from "@xyo-network/sdk-js";
|
|
10
|
+
import { hasMongoConfig } from "@xyo-network/xl1-sdk";
|
|
11
|
+
|
|
4
12
|
// src/modules/ChainStepRewardsClaimSentinel/ChainStepRewardsClaimSentinel.ts
|
|
5
13
|
import { assertEx, delay, isDefined, isUndefined, toAddress } from "@xylabs/sdk-js";
|
|
6
14
|
import { AbstractSentinel, asSchema } from "@xyo-network/sdk-js";
|
|
@@ -9,7 +17,7 @@ import { Mutex } from "async-mutex";
|
|
|
9
17
|
var ChainStepRewardsClaimSentinelConfigSchema = asSchema("network.xyo.sentinel.chain.step.rewards.claim.config", true);
|
|
10
18
|
var defaultStepClaimIntervalMs = 15e3;
|
|
11
19
|
var scope = "reward-escrow";
|
|
12
|
-
var
|
|
20
|
+
var DefaultRewardableSteps = [
|
|
13
21
|
3,
|
|
14
22
|
4,
|
|
15
23
|
5,
|
|
@@ -39,6 +47,9 @@ var ChainStepRewardsClaimSentinel = class extends AbstractSentinel {
|
|
|
39
47
|
get gateway() {
|
|
40
48
|
return assertEx(this._gateway, () => "Gateway is not defined");
|
|
41
49
|
}
|
|
50
|
+
get rewardableSteps() {
|
|
51
|
+
return isDefined(this.config.rewardableSteps) ? this.config.rewardableSteps : DefaultRewardableSteps;
|
|
52
|
+
}
|
|
42
53
|
get stepClaimIntervalMs() {
|
|
43
54
|
return isDefined(this.config.stepClaimIntervalMs) ? this.config.stepClaimIntervalMs : defaultStepClaimIntervalMs;
|
|
44
55
|
}
|
|
@@ -85,7 +96,7 @@ var ChainStepRewardsClaimSentinel = class extends AbstractSentinel {
|
|
|
85
96
|
step,
|
|
86
97
|
block
|
|
87
98
|
};
|
|
88
|
-
}).filter((stepIdentity) =>
|
|
99
|
+
}).filter((stepIdentity) => this.rewardableSteps.includes(stepIdentity.step));
|
|
89
100
|
for (const stepIdentity of stepIdentities) {
|
|
90
101
|
const result = await this.claimStepIdentity(stepIdentity);
|
|
91
102
|
if (isDefined(result)) response3.push(...flattenHydratedTransaction(result));
|
|
@@ -114,7 +125,7 @@ var ChainStepRewardsClaimSentinel = class extends AbstractSentinel {
|
|
|
114
125
|
}
|
|
115
126
|
async claimAllSteps() {
|
|
116
127
|
const results = [];
|
|
117
|
-
for (const step of
|
|
128
|
+
for (const step of this.rewardableSteps) {
|
|
118
129
|
const from = 0;
|
|
119
130
|
const to = await this.viewer.currentBlockNumber();
|
|
120
131
|
const range = asXL1BlockRange([
|
|
@@ -290,9 +301,190 @@ var DerivedAddressWalletTransferSentinel = class extends AbstractSentinel2 {
|
|
|
290
301
|
}, "submitRewardDistributionTransaction");
|
|
291
302
|
};
|
|
292
303
|
|
|
304
|
+
// src/manifest/getLocator.ts
|
|
305
|
+
var getLocator = /* @__PURE__ */ __name(async (context, gateway) => {
|
|
306
|
+
const { config, logger } = context;
|
|
307
|
+
const { otlpEndpoint } = config.telemetry?.otel ?? {};
|
|
308
|
+
const { path: endpoint = "/metrics", port = 9467 } = config.telemetry?.metrics?.scrape ?? {};
|
|
309
|
+
const { traceProvider, meterProvider } = await initTelemetry({
|
|
310
|
+
attributes: {
|
|
311
|
+
serviceName: "xl1-reward-redemption",
|
|
312
|
+
serviceVersion: "1.0.0"
|
|
313
|
+
},
|
|
314
|
+
otlpEndpoint,
|
|
315
|
+
metricsConfig: {
|
|
316
|
+
endpoint,
|
|
317
|
+
port
|
|
318
|
+
}
|
|
319
|
+
});
|
|
320
|
+
if (isDefined3(logger)) AbstractModule.defaultLogger = logger;
|
|
321
|
+
const statusReporter = logger ? new LoggerModuleStatusReporter(logger) : void 0;
|
|
322
|
+
const locator = new ModuleFactoryLocator();
|
|
323
|
+
const mongoConfig = config.storage?.mongo;
|
|
324
|
+
if (hasMongoConfig(mongoConfig)) {
|
|
325
|
+
const { connectionString: dbConnectionString, database: dbName, domain: dbDomain, password: dbPassword, username: dbUserName } = mongoConfig;
|
|
326
|
+
const payloadSdkConfig = {
|
|
327
|
+
dbConnectionString,
|
|
328
|
+
dbDomain,
|
|
329
|
+
dbName,
|
|
330
|
+
dbPassword,
|
|
331
|
+
dbUserName
|
|
332
|
+
};
|
|
333
|
+
const params = {
|
|
334
|
+
meterProvider,
|
|
335
|
+
payloadSdkConfig,
|
|
336
|
+
statusReporter,
|
|
337
|
+
traceProvider
|
|
338
|
+
};
|
|
339
|
+
locator.register(MongoDBArchivistV2.factory(params), void 0, true);
|
|
340
|
+
}
|
|
341
|
+
locator.register(MemoryArchivist.factory({
|
|
342
|
+
traceProvider,
|
|
343
|
+
meterProvider,
|
|
344
|
+
statusReporter
|
|
345
|
+
}));
|
|
346
|
+
locator.register(MemorySentinel.factory({
|
|
347
|
+
traceProvider,
|
|
348
|
+
meterProvider,
|
|
349
|
+
statusReporter
|
|
350
|
+
}));
|
|
351
|
+
locator.register(ViewArchivist.factory({
|
|
352
|
+
traceProvider,
|
|
353
|
+
meterProvider,
|
|
354
|
+
statusReporter
|
|
355
|
+
}));
|
|
356
|
+
const chainStepRewardsClaimSentinelParams = {
|
|
357
|
+
gateway,
|
|
358
|
+
traceProvider,
|
|
359
|
+
meterProvider,
|
|
360
|
+
statusReporter
|
|
361
|
+
};
|
|
362
|
+
locator.register(ChainStepRewardsClaimSentinel.factory(chainStepRewardsClaimSentinelParams));
|
|
363
|
+
const derivedAddressWalletTransferSentinelParams = {
|
|
364
|
+
gateway,
|
|
365
|
+
traceProvider,
|
|
366
|
+
meterProvider,
|
|
367
|
+
statusReporter
|
|
368
|
+
};
|
|
369
|
+
locator.register(DerivedAddressWalletTransferSentinel.factory(derivedAddressWalletTransferSentinelParams));
|
|
370
|
+
return locator;
|
|
371
|
+
}, "getLocator");
|
|
372
|
+
|
|
373
|
+
// src/manifest/getNode.ts
|
|
374
|
+
import { ManifestWrapper } from "@xyo-network/sdk-js";
|
|
375
|
+
|
|
376
|
+
// src/manifest/node.json
|
|
377
|
+
var node_default = {
|
|
378
|
+
$schema: "https://raw.githubusercontent.com/XYOracleNetwork/sdk-xyo-client-js/main/packages/manifest/src/schema.json",
|
|
379
|
+
nodes: [
|
|
380
|
+
{
|
|
381
|
+
config: {
|
|
382
|
+
accountPath: "44'/60'/1",
|
|
383
|
+
name: "XYORewardRedemptionNode",
|
|
384
|
+
schema: "network.xyo.node.config"
|
|
385
|
+
},
|
|
386
|
+
modules: {
|
|
387
|
+
private: [
|
|
388
|
+
{
|
|
389
|
+
config: {
|
|
390
|
+
accountPath: "1/1'/1'",
|
|
391
|
+
name: "DataPrivate",
|
|
392
|
+
getCache: {
|
|
393
|
+
enabled: true,
|
|
394
|
+
maxEntries: 5e3
|
|
395
|
+
},
|
|
396
|
+
payloadSdkConfig: {
|
|
397
|
+
collection: "reward_redemption_api_datalake"
|
|
398
|
+
},
|
|
399
|
+
schema: "network.xyo.archivist.config"
|
|
400
|
+
}
|
|
401
|
+
},
|
|
402
|
+
{
|
|
403
|
+
config: {
|
|
404
|
+
accountPath: "1/1'/2'",
|
|
405
|
+
name: "ChainStepRewardsClaimSentinel",
|
|
406
|
+
schema: "network.xyo.sentinel.chain.step.rewards.claim.config"
|
|
407
|
+
}
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
config: {
|
|
411
|
+
accountPath: "1/1'/3'",
|
|
412
|
+
automations: [
|
|
413
|
+
{
|
|
414
|
+
frequency: 6e4,
|
|
415
|
+
frequencyUnits: "millis",
|
|
416
|
+
schema: "network.xyo.automation.interval",
|
|
417
|
+
type: "interval"
|
|
418
|
+
}
|
|
419
|
+
],
|
|
420
|
+
name: "ChainRewardsClaimIntervalSentinel",
|
|
421
|
+
schema: "network.xyo.sentinel.config",
|
|
422
|
+
synchronous: true,
|
|
423
|
+
tasks: [
|
|
424
|
+
{
|
|
425
|
+
mod: "ChainStepRewardsClaimSentinel",
|
|
426
|
+
endPoint: "report"
|
|
427
|
+
}
|
|
428
|
+
]
|
|
429
|
+
}
|
|
430
|
+
},
|
|
431
|
+
{
|
|
432
|
+
config: {
|
|
433
|
+
accountPath: "1/1'/4'",
|
|
434
|
+
name: "DerivedAddressWalletTransferSentinel",
|
|
435
|
+
schema: "network.xyo.sentinel.chain.derived.address.wallet.transfer.config"
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
],
|
|
439
|
+
public: [
|
|
440
|
+
{
|
|
441
|
+
config: {
|
|
442
|
+
accountPath: "1/1/1",
|
|
443
|
+
name: "Data",
|
|
444
|
+
allowedQueries: [
|
|
445
|
+
"network.xyo.query.archivist.get",
|
|
446
|
+
"network.xyo.query.archivist.next"
|
|
447
|
+
],
|
|
448
|
+
getCache: {
|
|
449
|
+
enabled: true,
|
|
450
|
+
maxEntries: 5e3
|
|
451
|
+
},
|
|
452
|
+
originArchivist: "DataPrivate",
|
|
453
|
+
schema: "network.xyo.archivist.view.config"
|
|
454
|
+
}
|
|
455
|
+
}
|
|
456
|
+
]
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
],
|
|
460
|
+
schema: "network.xyo.manifest"
|
|
461
|
+
};
|
|
462
|
+
|
|
463
|
+
// src/manifest/nodeManifest.ts
|
|
464
|
+
var NodeManifest = node_default;
|
|
465
|
+
|
|
466
|
+
// src/manifest/private/index.ts
|
|
467
|
+
var PrivateChildManifests = [];
|
|
468
|
+
|
|
469
|
+
// src/manifest/public/index.ts
|
|
470
|
+
var PublicChildManifests = [];
|
|
471
|
+
|
|
472
|
+
// src/manifest/getNode.ts
|
|
473
|
+
var getNode = /* @__PURE__ */ __name(async (context, gateway, wallet) => {
|
|
474
|
+
const locator = await getLocator(context, gateway);
|
|
475
|
+
const wrapper = new ManifestWrapper(NodeManifest, wallet, locator, PublicChildManifests, PrivateChildManifests);
|
|
476
|
+
const [node, ...childNodes] = await wrapper.loadNodes();
|
|
477
|
+
if (childNodes?.length > 0) {
|
|
478
|
+
await Promise.all(childNodes.map((childNode) => node.register(childNode)));
|
|
479
|
+
await Promise.all(childNodes.map((childNode) => node.attach(childNode.address, true)));
|
|
480
|
+
}
|
|
481
|
+
return node;
|
|
482
|
+
}, "getNode");
|
|
483
|
+
|
|
293
484
|
// src/RewardRedemptionActor.ts
|
|
294
485
|
import { creatable } from "@xylabs/sdk-js";
|
|
295
|
-
import { ActorV3
|
|
486
|
+
import { ActorV3 } from "@xyo-network/chain-orchestration";
|
|
487
|
+
import { asHostActorConfigContext, XyoGatewayRunnerMoniker, XyoViewerMoniker as XyoViewerMoniker2 } from "@xyo-network/xl1-sdk";
|
|
296
488
|
|
|
297
489
|
// src/server/app.ts
|
|
298
490
|
import { standardErrors } from "@xylabs/express";
|
|
@@ -358,7 +550,7 @@ var addProbeRoutes = /* @__PURE__ */ __name((app) => {
|
|
|
358
550
|
|
|
359
551
|
// src/server/routes/dataLake/archivistMiddleware.ts
|
|
360
552
|
import { setRawResponseFormat as setRawResponseFormat4 } from "@xylabs/express";
|
|
361
|
-
import { asHash, isDefined as
|
|
553
|
+
import { asHash, isDefined as isDefined4 } from "@xylabs/sdk-js";
|
|
362
554
|
import { asArchivistInstance, isAnyPayload, isSequence, PayloadBuilder } from "@xyo-network/sdk-js";
|
|
363
555
|
import express from "express";
|
|
364
556
|
var resolveArchivist = /* @__PURE__ */ __name(async (node, archivistModuleIdentifier) => {
|
|
@@ -369,7 +561,7 @@ var resolveArchivist = /* @__PURE__ */ __name(async (node, archivistModuleIdenti
|
|
|
369
561
|
}, "resolveArchivist");
|
|
370
562
|
var archivistInstance;
|
|
371
563
|
var getArchivist = /* @__PURE__ */ __name(async (node, archivistModuleIdentifier) => {
|
|
372
|
-
if (
|
|
564
|
+
if (isDefined4(archivistInstance)) return archivistInstance;
|
|
373
565
|
archivistInstance = await resolveArchivist(node, archivistModuleIdentifier);
|
|
374
566
|
return archivistInstance;
|
|
375
567
|
}, "getArchivist");
|
|
@@ -391,8 +583,8 @@ var archivistMiddleware = /* @__PURE__ */ __name((options) => {
|
|
|
391
583
|
router.get("/next", async (req, res) => {
|
|
392
584
|
setRawResponseFormat4(res);
|
|
393
585
|
const cursor = isSequence(req.query.cursor) ? req.query.cursor : void 0;
|
|
394
|
-
const limit =
|
|
395
|
-
const open =
|
|
586
|
+
const limit = isDefined4(req.query.limit) ? Number(req.query.limit) : void 0;
|
|
587
|
+
const open = isDefined4(req.query.open) ? Boolean(req.query.open) : void 0;
|
|
396
588
|
const order = req.query.order === "asc" ? "asc" : "desc";
|
|
397
589
|
const options2 = {
|
|
398
590
|
limit,
|
|
@@ -408,14 +600,14 @@ var archivistMiddleware = /* @__PURE__ */ __name((options) => {
|
|
|
408
600
|
setRawResponseFormat4(res);
|
|
409
601
|
const options2 = req.body;
|
|
410
602
|
const archivist = await getArchivist(node, archivistModuleIdentifier);
|
|
411
|
-
const result = await (
|
|
603
|
+
const result = await (isDefined4(options2) ? archivist.next(options2) : archivist.next());
|
|
412
604
|
res.status(200).json(result);
|
|
413
605
|
});
|
|
414
606
|
router.get("/get/:hash", async (req, res) => {
|
|
415
607
|
setRawResponseFormat4(res);
|
|
416
608
|
const { hash: rawHash } = req.params;
|
|
417
609
|
const hash = asHash(rawHash);
|
|
418
|
-
if (
|
|
610
|
+
if (isDefined4(hash)) {
|
|
419
611
|
const archivist = await getArchivist(node, archivistModuleIdentifier);
|
|
420
612
|
const [payload] = await archivist.get([
|
|
421
613
|
hash
|
|
@@ -448,13 +640,13 @@ import { addRouteDefinitions } from "@xylabs/express";
|
|
|
448
640
|
|
|
449
641
|
// src/server/routes/rewardRedemption/routeDefinitions/routes/claimRange.ts
|
|
450
642
|
import { requestHandlerValidator } from "@xylabs/express";
|
|
451
|
-
import { assertEx as assertEx3, isDefined as
|
|
643
|
+
import { assertEx as assertEx3, isDefined as isDefined5 } from "@xylabs/sdk-js";
|
|
452
644
|
import { asSentinelInstance, PayloadBuilder as PayloadBuilder2, PayloadZodLoose } from "@xyo-network/sdk-js";
|
|
453
645
|
import { asXL1BlockRange as asXL1BlockRange2, blockRangeSteps as blockRangeSteps2, StepIdentitySchema, XyoViewerMoniker } from "@xyo-network/xl1-sdk";
|
|
454
646
|
import { z as z2 } from "zod";
|
|
455
647
|
|
|
456
648
|
// src/server/routes/rewardRedemption/routeDefinitions/util/rewardableSteps.ts
|
|
457
|
-
var
|
|
649
|
+
var RewardableSteps = [
|
|
458
650
|
3,
|
|
459
651
|
4,
|
|
460
652
|
5,
|
|
@@ -467,7 +659,7 @@ var RewardableSteps2 = [
|
|
|
467
659
|
var query = z2.object({
|
|
468
660
|
fromBlock: z2.coerce.number().int().nonnegative().optional(),
|
|
469
661
|
toBlock: z2.coerce.number().int().nonnegative().optional(),
|
|
470
|
-
step: z2.coerce.number().int().nonnegative().min(Math.min(...
|
|
662
|
+
step: z2.coerce.number().int().nonnegative().min(Math.min(...RewardableSteps)).max(Math.max(...RewardableSteps)).optional().default(3)
|
|
471
663
|
});
|
|
472
664
|
var response = z2.array(PayloadZodLoose);
|
|
473
665
|
var validateRequest = requestHandlerValidator({
|
|
@@ -486,9 +678,9 @@ var postClaimRange = {
|
|
|
486
678
|
const { locator, node } = req.app;
|
|
487
679
|
const { fromBlock, toBlock, step } = z2.parse(query, req.query);
|
|
488
680
|
const viewer = await locator.getInstance(XyoViewerMoniker);
|
|
489
|
-
const from =
|
|
681
|
+
const from = isDefined5(fromBlock) ? fromBlock : 0;
|
|
490
682
|
const currentBlock = await viewer.currentBlockNumber();
|
|
491
|
-
const to =
|
|
683
|
+
const to = isDefined5(toBlock) ? Math.min(toBlock, currentBlock) : currentBlock;
|
|
492
684
|
if (to <= from) {
|
|
493
685
|
res.status(400);
|
|
494
686
|
res.json([]);
|
|
@@ -590,194 +782,6 @@ var getApp = /* @__PURE__ */ __name((node, config, locator) => {
|
|
|
590
782
|
import { boot } from "@xyo-network/bios";
|
|
591
783
|
import { initActorSeedPhrase } from "@xyo-network/chain-orchestration";
|
|
592
784
|
import { HDWallet } from "@xyo-network/sdk-js";
|
|
593
|
-
|
|
594
|
-
// src/manifest/getLocator.ts
|
|
595
|
-
import { isDefined as isDefined5 } from "@xylabs/sdk-js";
|
|
596
|
-
import { MongoDBArchivistV2 } from "@xyo-network/archivist-mongodb";
|
|
597
|
-
import { ViewArchivist } from "@xyo-network/archivist-view";
|
|
598
|
-
import { initTelemetry } from "@xyo-network/chain-telemetry";
|
|
599
|
-
import { AbstractModule, LoggerModuleStatusReporter, MemoryArchivist, MemorySentinel, ModuleFactoryLocator } from "@xyo-network/sdk-js";
|
|
600
|
-
import { hasMongoConfig } from "@xyo-network/xl1-sdk";
|
|
601
|
-
var getLocator = /* @__PURE__ */ __name(async (context, gateway) => {
|
|
602
|
-
const { config, logger } = context;
|
|
603
|
-
const { otlpEndpoint } = config.telemetry?.otel ?? {};
|
|
604
|
-
const { path: endpoint = "/metrics", port = 9467 } = config.telemetry?.metrics?.scrape ?? {};
|
|
605
|
-
const { traceProvider, meterProvider } = await initTelemetry({
|
|
606
|
-
attributes: {
|
|
607
|
-
serviceName: "xl1-reward-redemption",
|
|
608
|
-
serviceVersion: "1.0.0"
|
|
609
|
-
},
|
|
610
|
-
otlpEndpoint,
|
|
611
|
-
metricsConfig: {
|
|
612
|
-
endpoint,
|
|
613
|
-
port
|
|
614
|
-
}
|
|
615
|
-
});
|
|
616
|
-
if (isDefined5(logger)) AbstractModule.defaultLogger = logger;
|
|
617
|
-
const statusReporter = logger ? new LoggerModuleStatusReporter(logger) : void 0;
|
|
618
|
-
const locator = new ModuleFactoryLocator();
|
|
619
|
-
const mongoConfig = config.storage?.mongo;
|
|
620
|
-
if (hasMongoConfig(mongoConfig)) {
|
|
621
|
-
const { connectionString: dbConnectionString, database: dbName, domain: dbDomain, password: dbPassword, username: dbUserName } = mongoConfig;
|
|
622
|
-
const payloadSdkConfig = {
|
|
623
|
-
dbConnectionString,
|
|
624
|
-
dbDomain,
|
|
625
|
-
dbName,
|
|
626
|
-
dbPassword,
|
|
627
|
-
dbUserName
|
|
628
|
-
};
|
|
629
|
-
const params = {
|
|
630
|
-
meterProvider,
|
|
631
|
-
payloadSdkConfig,
|
|
632
|
-
statusReporter,
|
|
633
|
-
traceProvider
|
|
634
|
-
};
|
|
635
|
-
locator.register(MongoDBArchivistV2.factory(params), void 0, true);
|
|
636
|
-
}
|
|
637
|
-
locator.register(MemoryArchivist.factory({
|
|
638
|
-
traceProvider,
|
|
639
|
-
meterProvider,
|
|
640
|
-
statusReporter
|
|
641
|
-
}));
|
|
642
|
-
locator.register(MemorySentinel.factory({
|
|
643
|
-
traceProvider,
|
|
644
|
-
meterProvider,
|
|
645
|
-
statusReporter
|
|
646
|
-
}));
|
|
647
|
-
locator.register(ViewArchivist.factory({
|
|
648
|
-
traceProvider,
|
|
649
|
-
meterProvider,
|
|
650
|
-
statusReporter
|
|
651
|
-
}));
|
|
652
|
-
const chainStepRewardsClaimSentinelParams = {
|
|
653
|
-
gateway,
|
|
654
|
-
traceProvider,
|
|
655
|
-
meterProvider,
|
|
656
|
-
statusReporter
|
|
657
|
-
};
|
|
658
|
-
locator.register(ChainStepRewardsClaimSentinel.factory(chainStepRewardsClaimSentinelParams));
|
|
659
|
-
const derivedAddressWalletTransferSentinelParams = {
|
|
660
|
-
gateway,
|
|
661
|
-
traceProvider,
|
|
662
|
-
meterProvider,
|
|
663
|
-
statusReporter
|
|
664
|
-
};
|
|
665
|
-
locator.register(DerivedAddressWalletTransferSentinel.factory(derivedAddressWalletTransferSentinelParams));
|
|
666
|
-
return locator;
|
|
667
|
-
}, "getLocator");
|
|
668
|
-
|
|
669
|
-
// src/manifest/getNode.ts
|
|
670
|
-
import { ManifestWrapper } from "@xyo-network/sdk-js";
|
|
671
|
-
|
|
672
|
-
// src/manifest/node.json
|
|
673
|
-
var node_default = {
|
|
674
|
-
$schema: "https://raw.githubusercontent.com/XYOracleNetwork/sdk-xyo-client-js/main/packages/manifest/src/schema.json",
|
|
675
|
-
nodes: [
|
|
676
|
-
{
|
|
677
|
-
config: {
|
|
678
|
-
accountPath: "44'/60'/1",
|
|
679
|
-
name: "XYORewardRedemptionNode",
|
|
680
|
-
schema: "network.xyo.node.config"
|
|
681
|
-
},
|
|
682
|
-
modules: {
|
|
683
|
-
private: [
|
|
684
|
-
{
|
|
685
|
-
config: {
|
|
686
|
-
accountPath: "1/1'/1'",
|
|
687
|
-
name: "DataPrivate",
|
|
688
|
-
getCache: {
|
|
689
|
-
enabled: true,
|
|
690
|
-
maxEntries: 5e3
|
|
691
|
-
},
|
|
692
|
-
payloadSdkConfig: {
|
|
693
|
-
collection: "reward_redemption_api_datalake"
|
|
694
|
-
},
|
|
695
|
-
schema: "network.xyo.archivist.config"
|
|
696
|
-
}
|
|
697
|
-
},
|
|
698
|
-
{
|
|
699
|
-
config: {
|
|
700
|
-
accountPath: "1/1'/2'",
|
|
701
|
-
name: "ChainStepRewardsClaimSentinel",
|
|
702
|
-
schema: "network.xyo.sentinel.chain.step.rewards.claim.config"
|
|
703
|
-
}
|
|
704
|
-
},
|
|
705
|
-
{
|
|
706
|
-
config: {
|
|
707
|
-
accountPath: "1/1'/3'",
|
|
708
|
-
automations: [
|
|
709
|
-
{
|
|
710
|
-
frequency: 6e4,
|
|
711
|
-
frequencyUnits: "millis",
|
|
712
|
-
schema: "network.xyo.automation.interval",
|
|
713
|
-
type: "interval"
|
|
714
|
-
}
|
|
715
|
-
],
|
|
716
|
-
name: "ChainRewardsClaimIntervalSentinel",
|
|
717
|
-
schema: "network.xyo.sentinel.config",
|
|
718
|
-
synchronous: true,
|
|
719
|
-
tasks: [
|
|
720
|
-
{
|
|
721
|
-
mod: "ChainStepRewardsClaimSentinel",
|
|
722
|
-
endPoint: "report"
|
|
723
|
-
}
|
|
724
|
-
]
|
|
725
|
-
}
|
|
726
|
-
},
|
|
727
|
-
{
|
|
728
|
-
config: {
|
|
729
|
-
accountPath: "1/1'/4'",
|
|
730
|
-
name: "DerivedAddressWalletTransferSentinel",
|
|
731
|
-
schema: "network.xyo.sentinel.chain.derived.address.wallet.transfer.config"
|
|
732
|
-
}
|
|
733
|
-
}
|
|
734
|
-
],
|
|
735
|
-
public: [
|
|
736
|
-
{
|
|
737
|
-
config: {
|
|
738
|
-
accountPath: "1/1/1",
|
|
739
|
-
name: "Data",
|
|
740
|
-
allowedQueries: [
|
|
741
|
-
"network.xyo.query.archivist.get",
|
|
742
|
-
"network.xyo.query.archivist.next"
|
|
743
|
-
],
|
|
744
|
-
getCache: {
|
|
745
|
-
enabled: true,
|
|
746
|
-
maxEntries: 5e3
|
|
747
|
-
},
|
|
748
|
-
originArchivist: "DataPrivate",
|
|
749
|
-
schema: "network.xyo.archivist.view.config"
|
|
750
|
-
}
|
|
751
|
-
}
|
|
752
|
-
]
|
|
753
|
-
}
|
|
754
|
-
}
|
|
755
|
-
],
|
|
756
|
-
schema: "network.xyo.manifest"
|
|
757
|
-
};
|
|
758
|
-
|
|
759
|
-
// src/manifest/nodeManifest.ts
|
|
760
|
-
var NodeManifest = node_default;
|
|
761
|
-
|
|
762
|
-
// src/manifest/private/index.ts
|
|
763
|
-
var PrivateChildManifests = [];
|
|
764
|
-
|
|
765
|
-
// src/manifest/public/index.ts
|
|
766
|
-
var PublicChildManifests = [];
|
|
767
|
-
|
|
768
|
-
// src/manifest/getNode.ts
|
|
769
|
-
var getNode = /* @__PURE__ */ __name(async (context, gateway, wallet) => {
|
|
770
|
-
const locator = await getLocator(context, gateway);
|
|
771
|
-
const wrapper = new ManifestWrapper(NodeManifest, wallet, locator, PublicChildManifests, PrivateChildManifests);
|
|
772
|
-
const [node, ...childNodes] = await wrapper.loadNodes();
|
|
773
|
-
if (childNodes?.length > 0) {
|
|
774
|
-
await Promise.all(childNodes.map((childNode) => node.register(childNode)));
|
|
775
|
-
await Promise.all(childNodes.map((childNode) => node.attach(childNode.address, true)));
|
|
776
|
-
}
|
|
777
|
-
return node;
|
|
778
|
-
}, "getNode");
|
|
779
|
-
|
|
780
|
-
// src/server/server.ts
|
|
781
785
|
var hostname = "::";
|
|
782
786
|
var getServer = /* @__PURE__ */ __name(async (context, gateway, locator, providedNode) => {
|
|
783
787
|
const { logger, config } = context;
|
|
@@ -787,7 +791,13 @@ var getServer = /* @__PURE__ */ __name(async (context, gateway, locator, provide
|
|
|
787
791
|
const wallet = await HDWallet.fromPhrase(seedPhrase);
|
|
788
792
|
const node = providedNode ?? await getNode(context, gateway, wallet);
|
|
789
793
|
const app = getApp(node, config, locator);
|
|
790
|
-
const server =
|
|
794
|
+
const server = await new Promise((resolve, reject) => {
|
|
795
|
+
const srv = app.listen(port, hostname, () => {
|
|
796
|
+
logger?.log(`[RewardsRedemption] Server listening at http://${hostname}:${port}`);
|
|
797
|
+
resolve(srv);
|
|
798
|
+
});
|
|
799
|
+
srv.once("error", reject);
|
|
800
|
+
});
|
|
791
801
|
server.setTimeout(12e4);
|
|
792
802
|
return server;
|
|
793
803
|
}, "getServer");
|
|
@@ -804,6 +814,12 @@ var RewardRedemptionActor = class extends ActorV3 {
|
|
|
804
814
|
static {
|
|
805
815
|
__name(this, "RewardRedemptionActor");
|
|
806
816
|
}
|
|
817
|
+
static needs = {
|
|
818
|
+
required: [
|
|
819
|
+
XyoGatewayRunnerMoniker,
|
|
820
|
+
XyoViewerMoniker2
|
|
821
|
+
]
|
|
822
|
+
};
|
|
807
823
|
_gatewayRunner;
|
|
808
824
|
server;
|
|
809
825
|
get gatewayRunner() {
|
|
@@ -839,6 +855,11 @@ export {
|
|
|
839
855
|
ConfirmedClaimValuesZod,
|
|
840
856
|
DerivedAddressWalletTransferSentinel,
|
|
841
857
|
DerivedAddressWalletTransferSentinelConfigSchema,
|
|
842
|
-
|
|
858
|
+
NodeManifest,
|
|
859
|
+
PrivateChildManifests,
|
|
860
|
+
PublicChildManifests,
|
|
861
|
+
RewardRedemptionActor,
|
|
862
|
+
getLocator,
|
|
863
|
+
getNode
|
|
843
864
|
};
|
|
844
865
|
//# sourceMappingURL=index.mjs.map
|