@xyo-network/xl1-cli-lib 1.16.21 → 1.16.23
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/index.mjs +254 -167
- package/dist/node/index.mjs.map +1 -1
- package/dist/node/orchestration/actor/implementation/BalanceActor.d.ts +1 -1
- package/dist/node/orchestration/actor/implementation/BalanceActor.d.ts.map +1 -1
- package/dist/node/orchestration/actor/implementation/ChainHeadUpdateActor.d.ts +1 -0
- package/dist/node/orchestration/actor/implementation/ChainHeadUpdateActor.d.ts.map +1 -1
- package/dist/node/orchestration/actor/implementation/ProducerActor.d.ts +2 -1
- package/dist/node/orchestration/actor/implementation/ProducerActor.d.ts.map +1 -1
- package/dist/node/orchestration/actor/implementation/ValidatorActor.d.ts +1 -1
- package/dist/node/orchestration/actor/implementation/ValidatorActor.d.ts.map +1 -1
- package/dist/node/orchestration/archivists/ChainFinalized/archivist.d.ts.map +1 -1
- package/dist/node/orchestration/archivists/ChainSubmissions/archivist.d.ts +1 -1
- package/dist/node/orchestration/archivists/ChainSubmissions/archivist.d.ts.map +1 -1
- package/dist/node/orchestration/archivists/PendingTransactions/archivist.d.ts +4 -2
- package/dist/node/orchestration/archivists/PendingTransactions/archivist.d.ts.map +1 -1
- package/dist/node/orchestration/archivists/RejectedTransactions/archivist.d.ts.map +1 -1
- package/dist/node/orchestration/archivists/StakeIntentState/archivist.d.ts.map +1 -1
- package/dist/node/orchestration/initServices.d.ts.map +1 -1
- package/dist/node/orchestration/map/BalanceSummary/initBalanceSummaryMap.d.ts +1 -1
- package/dist/node/orchestration/map/BalanceSummary/initBalanceSummaryMap.d.ts.map +1 -1
- package/dist/node/orchestration/map/BalanceSummary/initTransferSummaryMap.d.ts +2 -2
- package/dist/node/orchestration/map/BalanceSummary/initTransferSummaryMap.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/balance.d.ts +2 -2
- package/dist/node/orchestration/services/implementation/balance.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/chain/evm.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/chain/index.d.ts +1 -0
- package/dist/node/orchestration/services/implementation/chain/index.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/iterator.d.ts +1 -1
- package/dist/node/orchestration/services/implementation/iterator.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/pendingTransactions.d.ts +1 -1
- package/dist/node/orchestration/services/implementation/pendingTransactions.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/producer.d.ts +1 -1
- package/dist/node/orchestration/services/implementation/producer.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/reward.d.ts +1 -1
- package/dist/node/orchestration/services/implementation/reward.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/time.d.ts +1 -1
- package/dist/node/orchestration/services/implementation/time.d.ts.map +1 -1
- package/dist/node/orchestration/services/implementation/transfer.d.ts +1 -1
- package/dist/node/orchestration/services/implementation/transfer.d.ts.map +1 -1
- package/dist/node/xl1.mjs +252 -166
- package/dist/node/xl1.mjs.map +1 -1
- package/package.json +20 -20
- package/src/orchestration/actor/implementation/BalanceActor.ts +1 -1
- package/src/orchestration/actor/implementation/ChainHeadUpdateActor.ts +11 -2
- package/src/orchestration/actor/implementation/ProducerActor.ts +41 -32
- package/src/orchestration/actor/implementation/ValidatorActor.ts +1 -1
- package/src/orchestration/archivists/ChainFinalized/archivist.ts +13 -10
- package/src/orchestration/archivists/ChainSubmissions/archivist.ts +6 -4
- package/src/orchestration/archivists/PendingTransactions/archivist.ts +20 -14
- package/src/orchestration/archivists/RejectedTransactions/archivist.ts +6 -3
- package/src/orchestration/archivists/StakeIntentState/archivist.ts +6 -3
- package/src/orchestration/initServices.ts +4 -1
- package/src/orchestration/map/BalanceSummary/initBalanceSummaryMap.ts +8 -4
- package/src/orchestration/map/BalanceSummary/initTransferSummaryMap.ts +9 -5
- package/src/orchestration/services/implementation/balance.ts +8 -6
- package/src/orchestration/services/implementation/chain/evm.ts +3 -1
- package/src/orchestration/services/implementation/chain/index.ts +29 -8
- package/src/orchestration/services/implementation/iterator.ts +15 -8
- package/src/orchestration/services/implementation/pendingTransactions.ts +5 -3
- package/src/orchestration/services/implementation/producer.ts +5 -3
- package/src/orchestration/services/implementation/reward.ts +24 -16
- package/src/orchestration/services/implementation/time.ts +9 -7
- package/src/orchestration/services/implementation/transfer.ts +5 -3
package/dist/node/index.mjs
CHANGED
|
@@ -223,7 +223,7 @@ var BalanceActor = class _BalanceActor extends Actor {
|
|
|
223
223
|
if (this._updateMutex.isLocked()) return;
|
|
224
224
|
await this._updateMutex.runExclusive(async () => {
|
|
225
225
|
const head = await PayloadBuilder.hash(await this.chainIterator.head());
|
|
226
|
-
await this.balanceService.
|
|
226
|
+
await this.balanceService.accountsBalances([], head);
|
|
227
227
|
});
|
|
228
228
|
}
|
|
229
229
|
};
|
|
@@ -232,10 +232,12 @@ var BalanceActor = class _BalanceActor extends Actor {
|
|
|
232
232
|
import { assertEx as assertEx2, filterAs, toHex } from "@xylabs/sdk-js";
|
|
233
233
|
import { findMostRecentBlock, sortBlocks } from "@xyo-network/chain-protocol";
|
|
234
234
|
import { asBlockBoundWitness } from "@xyo-network/xl1-protocol";
|
|
235
|
+
import { Mutex as Mutex2 } from "async-mutex";
|
|
235
236
|
var ChainHeadUpdateActor = class _ChainHeadUpdateActor extends Actor {
|
|
236
237
|
static {
|
|
237
238
|
__name(this, "ChainHeadUpdateActor");
|
|
238
239
|
}
|
|
240
|
+
_pollForNewHeadMutex = new Mutex2();
|
|
239
241
|
constructor(params) {
|
|
240
242
|
super("ChainHeadUpdate", "ChainHeadUpdate", params);
|
|
241
243
|
}
|
|
@@ -266,8 +268,14 @@ var ChainHeadUpdateActor = class _ChainHeadUpdateActor extends Actor {
|
|
|
266
268
|
await this.updateHeadIfNewer(candidateBlock);
|
|
267
269
|
}
|
|
268
270
|
async pollForNewHead() {
|
|
269
|
-
|
|
270
|
-
|
|
271
|
+
if (this._pollForNewHeadMutex.isLocked()) {
|
|
272
|
+
this.logger?.log("Skipping poll for new head, previous poll still in progress");
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
await this._pollForNewHeadMutex.runExclusive(async () => {
|
|
276
|
+
const candidateBlock = await findMostRecentBlock(this.chainFinalizedArchivist);
|
|
277
|
+
await this.updateHeadIfNewer(candidateBlock);
|
|
278
|
+
});
|
|
271
279
|
}
|
|
272
280
|
async updateHeadIfNewer(candidateBlock) {
|
|
273
281
|
if (!candidateBlock) return;
|
|
@@ -290,6 +298,7 @@ import { BaseBlockProducerService } from "@xyo-network/chain-services";
|
|
|
290
298
|
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
|
|
291
299
|
import { PayloadBundleSchema } from "@xyo-network/payload-model";
|
|
292
300
|
import { buildTransaction, flattenHydratedBlock, flattenHydratedTransaction } from "@xyo-network/xl1-protocol-sdk";
|
|
301
|
+
import { Mutex as Mutex3 } from "async-mutex";
|
|
293
302
|
var SHOULD_REGISTER_REDECLARATION_INTENT_TIMER = true;
|
|
294
303
|
var TEN_MINUTES = 10 * 60 * 1e3;
|
|
295
304
|
var ProducerActor = class _ProducerActor extends Actor {
|
|
@@ -298,6 +307,7 @@ var ProducerActor = class _ProducerActor extends Actor {
|
|
|
298
307
|
}
|
|
299
308
|
_lastProducedBlock;
|
|
300
309
|
_lastRedeclarationIntent;
|
|
310
|
+
_produceBlockMutex = new Mutex3();
|
|
301
311
|
constructor(params) {
|
|
302
312
|
super(params.producer.address, "Producer", params);
|
|
303
313
|
}
|
|
@@ -335,7 +345,7 @@ var ProducerActor = class _ProducerActor extends Actor {
|
|
|
335
345
|
async () => {
|
|
336
346
|
await this.produceBlock();
|
|
337
347
|
},
|
|
338
|
-
|
|
348
|
+
2e3,
|
|
339
349
|
1500
|
|
340
350
|
/* 500 */
|
|
341
351
|
);
|
|
@@ -357,30 +367,36 @@ var ProducerActor = class _ProducerActor extends Actor {
|
|
|
357
367
|
}
|
|
358
368
|
async produceBlock() {
|
|
359
369
|
await this.spanAsync("produceBlock", async () => {
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
if (headDuration > 500) {
|
|
364
|
-
this.logger?.warn(`[Slow] Fetched head in ${headDuration}ms: 0x${toHex2(head._hash)}`);
|
|
370
|
+
if (this._produceBlockMutex.isLocked()) {
|
|
371
|
+
this.logger?.log("Skipping block production, previous production still in progress");
|
|
372
|
+
return;
|
|
365
373
|
}
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
const nextDuration = Date.now() - nextStart;
|
|
373
|
-
if (nextDuration > 1e3) {
|
|
374
|
-
this.logger?.warn(`[Slow] Generated next block in ${nextDuration}ms, block: ${nextBlock?.[0]._hash}`);
|
|
374
|
+
await this._produceBlockMutex.runExclusive(async () => {
|
|
375
|
+
const headStart = Date.now();
|
|
376
|
+
const head = await this.chainIterator.head();
|
|
377
|
+
const headDuration = Date.now() - headStart;
|
|
378
|
+
if (headDuration > 500) {
|
|
379
|
+
this.logger?.warn(`[Slow] Fetched head in ${headDuration}ms: 0x${toHex2(head._hash)}`);
|
|
375
380
|
}
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
this.logger?.log("
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
381
|
+
const headHash = head._hash;
|
|
382
|
+
if (this._lastProducedBlock && this._lastProducedBlock[0].previous === headHash) {
|
|
383
|
+
this.logger?.log("Block already produced:", `0x${toHex2(this._lastProducedBlock[0].block)}`, this._lastProducedBlock[0].block);
|
|
384
|
+
} else {
|
|
385
|
+
const nextStart = Date.now();
|
|
386
|
+
const nextBlock = await this.producer.next(head);
|
|
387
|
+
const nextDuration = Date.now() - nextStart;
|
|
388
|
+
if (nextDuration > 1e3) {
|
|
389
|
+
this.logger?.warn(`[Slow] Generated next block in ${nextDuration}ms, block: ${nextBlock?.[0]._hash}`);
|
|
390
|
+
}
|
|
391
|
+
if (nextBlock) {
|
|
392
|
+
const displayBlockNumber = `0x${toHex2(nextBlock[0].block)}`;
|
|
393
|
+
this.logger?.log("Produced block:", displayBlockNumber);
|
|
394
|
+
await this.chainSubmissionsArchivistWrite.insert(flattenHydratedBlock(nextBlock));
|
|
395
|
+
this.logger?.log("Published block:", displayBlockNumber, nextBlock[0].block);
|
|
396
|
+
this._lastProducedBlock = nextBlock;
|
|
397
|
+
}
|
|
382
398
|
}
|
|
383
|
-
}
|
|
399
|
+
});
|
|
384
400
|
});
|
|
385
401
|
}
|
|
386
402
|
async redeclareIntent() {
|
|
@@ -433,7 +449,7 @@ var ProducerActor = class _ProducerActor extends Actor {
|
|
|
433
449
|
async validateCurrentBalance() {
|
|
434
450
|
const head = this._lastProducedBlock?.[0]._hash;
|
|
435
451
|
if (isDefined(head)) {
|
|
436
|
-
const balances = await this.balanceService.
|
|
452
|
+
const balances = await this.balanceService.accountsBalances([
|
|
437
453
|
this.account.address
|
|
438
454
|
], head);
|
|
439
455
|
const currentBalance = balances[this.account.address] ?? 0n;
|
|
@@ -518,7 +534,7 @@ var ValidatorActor = class _ValidatorActor extends Actor {
|
|
|
518
534
|
}
|
|
519
535
|
});
|
|
520
536
|
},
|
|
521
|
-
|
|
537
|
+
2e3,
|
|
522
538
|
1500
|
|
523
539
|
/* 500 */
|
|
524
540
|
);
|
|
@@ -592,7 +608,7 @@ var initHealthEndpoints = /* @__PURE__ */ __name((params) => {
|
|
|
592
608
|
}, "initHealthEndpoints");
|
|
593
609
|
|
|
594
610
|
// src/orchestration/initServices.ts
|
|
595
|
-
import { asAddress as asAddress2, assertEx as
|
|
611
|
+
import { asAddress as asAddress2, assertEx as assertEx19, isDefined as isDefined14 } from "@xylabs/sdk-js";
|
|
596
612
|
import { initProducerAccount } from "@xyo-network/chain-orchestration";
|
|
597
613
|
import { initTelemetry } from "@xyo-network/chain-telemetry";
|
|
598
614
|
import { startupSpanAsync as startupSpanAsync8 } from "@xyo-network/chain-utils";
|
|
@@ -605,10 +621,11 @@ import { Semaphore as Semaphore2 } from "async-mutex";
|
|
|
605
621
|
// src/orchestration/archivists/ChainFinalized/archivist.ts
|
|
606
622
|
import { initArchivistSync } from "@xyo-network/chain-orchestration";
|
|
607
623
|
import { startupSpanAsync } from "@xyo-network/chain-utils";
|
|
608
|
-
import {
|
|
624
|
+
import { timeBudget } from "@xyo-network/xl1-protocol-sdk";
|
|
625
|
+
import { Mutex as Mutex6 } from "async-mutex";
|
|
609
626
|
|
|
610
627
|
// src/orchestration/archivists/ChainFinalized/local.ts
|
|
611
|
-
import { Mutex as
|
|
628
|
+
import { Mutex as Mutex4 } from "async-mutex";
|
|
612
629
|
|
|
613
630
|
// src/orchestration/archivists/lib/localPersistentArchivist.ts
|
|
614
631
|
import { rm } from "fs/promises";
|
|
@@ -636,7 +653,7 @@ var getLocalPersistentArchivist = /* @__PURE__ */ __name((name, dbName, storeNam
|
|
|
636
653
|
}, "getLocalPersistentArchivist");
|
|
637
654
|
|
|
638
655
|
// src/orchestration/archivists/ChainFinalized/local.ts
|
|
639
|
-
var mutex = new
|
|
656
|
+
var mutex = new Mutex4();
|
|
640
657
|
var singleton;
|
|
641
658
|
var initLocalChainFinalizedArchivist = /* @__PURE__ */ __name(async ({ config: config2 }) => {
|
|
642
659
|
return await mutex.runExclusive(async () => {
|
|
@@ -651,8 +668,8 @@ var initLocalChainFinalizedArchivist = /* @__PURE__ */ __name(async ({ config: c
|
|
|
651
668
|
import { assertEx as assertEx5 } from "@xylabs/sdk-js";
|
|
652
669
|
import { initBridge, initBridgedArchivistModule } from "@xyo-network/chain-orchestration";
|
|
653
670
|
import { getUrl } from "@xyo-network/xl1-protocol-sdk";
|
|
654
|
-
import { Mutex as
|
|
655
|
-
var mutex2 = new
|
|
671
|
+
import { Mutex as Mutex5 } from "async-mutex";
|
|
672
|
+
var mutex2 = new Mutex5();
|
|
656
673
|
var singleton2;
|
|
657
674
|
var initRemoteChainFinalizedArchivist = /* @__PURE__ */ __name(async ({ config: config2 }) => {
|
|
658
675
|
return await mutex2.runExclusive(async () => {
|
|
@@ -669,24 +686,26 @@ var initRemoteChainFinalizedArchivist = /* @__PURE__ */ __name(async ({ config:
|
|
|
669
686
|
}, "initRemoteChainFinalizedArchivist");
|
|
670
687
|
|
|
671
688
|
// src/orchestration/archivists/ChainFinalized/archivist.ts
|
|
672
|
-
var mutex3 = new
|
|
689
|
+
var mutex3 = new Mutex6();
|
|
673
690
|
var singleton3;
|
|
674
691
|
async function initChainFinalizedArchivist({ config: config2, logger, traceProvider }) {
|
|
675
692
|
return await mutex3.runExclusive(async () => {
|
|
676
693
|
if (singleton3) return singleton3;
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
694
|
+
return await timeBudget("initChainFinalizedArchivist", logger, async () => {
|
|
695
|
+
const [remote, local] = await Promise.all([
|
|
696
|
+
startupSpanAsync("ChainFinalizedArchivist:initRemote", () => initRemoteChainFinalizedArchivist({
|
|
697
|
+
config: config2,
|
|
698
|
+
logger
|
|
699
|
+
})),
|
|
700
|
+
startupSpanAsync("ChainFinalizedArchivist:initLocal", () => initLocalChainFinalizedArchivist({
|
|
701
|
+
config: config2,
|
|
702
|
+
logger
|
|
703
|
+
}))
|
|
704
|
+
]);
|
|
705
|
+
await startupSpanAsync("ChainFinalizedArchivist:initArchivistSync", () => initArchivistSync("ChainFinalizedArchivist", remote, local, 200, Number.MAX_SAFE_INTEGER, traceProvider));
|
|
706
|
+
singleton3 = local;
|
|
707
|
+
return singleton3;
|
|
708
|
+
}, 2e3, true);
|
|
690
709
|
});
|
|
691
710
|
}
|
|
692
711
|
__name(initChainFinalizedArchivist, "initChainFinalizedArchivist");
|
|
@@ -694,14 +713,15 @@ __name(initChainFinalizedArchivist, "initChainFinalizedArchivist");
|
|
|
694
713
|
// src/orchestration/archivists/ChainSubmissions/archivist.ts
|
|
695
714
|
import { assertEx as assertEx7 } from "@xylabs/sdk-js";
|
|
696
715
|
import { startupSpanAsync as startupSpanAsync2 } from "@xyo-network/chain-utils";
|
|
697
|
-
import {
|
|
716
|
+
import { timeBudget as timeBudget2 } from "@xyo-network/xl1-protocol-sdk";
|
|
717
|
+
import { Mutex as Mutex8 } from "async-mutex";
|
|
698
718
|
|
|
699
719
|
// src/orchestration/archivists/ChainSubmissions/remote.ts
|
|
700
720
|
import { assertEx as assertEx6 } from "@xylabs/sdk-js";
|
|
701
721
|
import { initBridge as initBridge2, initBridgedArchivistModule as initBridgedArchivistModule2 } from "@xyo-network/chain-orchestration";
|
|
702
722
|
import { getUrl as getUrl2 } from "@xyo-network/xl1-protocol-sdk";
|
|
703
|
-
import { Mutex as
|
|
704
|
-
var mutex4 = new
|
|
723
|
+
import { Mutex as Mutex7 } from "async-mutex";
|
|
724
|
+
var mutex4 = new Mutex7();
|
|
705
725
|
var singleton4;
|
|
706
726
|
var initRemoteChainSubmissionsArchivist = /* @__PURE__ */ __name(async ({ config: config2 }) => {
|
|
707
727
|
return await mutex4.runExclusive(async () => {
|
|
@@ -718,26 +738,29 @@ var initRemoteChainSubmissionsArchivist = /* @__PURE__ */ __name(async ({ config
|
|
|
718
738
|
}, "initRemoteChainSubmissionsArchivist");
|
|
719
739
|
|
|
720
740
|
// src/orchestration/archivists/ChainSubmissions/archivist.ts
|
|
721
|
-
var mutex5 = new
|
|
741
|
+
var mutex5 = new Mutex8();
|
|
722
742
|
var singleton5;
|
|
723
743
|
var initChainSubmissionsArchivist = /* @__PURE__ */ __name(async (params) => {
|
|
724
744
|
return await mutex5.runExclusive(async () => {
|
|
725
745
|
if (singleton5) return singleton5;
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
746
|
+
return await timeBudget2("initChainSubmissionsArchivist", params.logger, async () => {
|
|
747
|
+
const remote = await startupSpanAsync2("ChainSubmissionsArchivist:initRemote", () => initRemoteChainSubmissionsArchivist(params));
|
|
748
|
+
singleton5 = remote;
|
|
749
|
+
return assertEx7(singleton5, () => new Error("Failed to initialize ChainSubmissionsArchivist"));
|
|
750
|
+
}, 2e3, true);
|
|
729
751
|
});
|
|
730
752
|
}, "initChainSubmissionsArchivist");
|
|
731
753
|
|
|
732
754
|
// src/orchestration/archivists/PendingTransactions/archivist.ts
|
|
733
755
|
import { initArchivistSync as initArchivistSync2 } from "@xyo-network/chain-orchestration";
|
|
734
756
|
import { startupSpanAsync as startupSpanAsync3 } from "@xyo-network/chain-utils";
|
|
735
|
-
import {
|
|
757
|
+
import { timeBudget as timeBudget3 } from "@xyo-network/xl1-protocol-sdk";
|
|
758
|
+
import { Mutex as Mutex11 } from "async-mutex";
|
|
736
759
|
|
|
737
760
|
// src/orchestration/archivists/PendingTransactions/local.ts
|
|
738
761
|
import { MemoryArchivist, MemoryArchivistConfigSchema } from "@xyo-network/archivist-memory";
|
|
739
|
-
import { Mutex as
|
|
740
|
-
var mutex6 = new
|
|
762
|
+
import { Mutex as Mutex9 } from "async-mutex";
|
|
763
|
+
var mutex6 = new Mutex9();
|
|
741
764
|
var singleton6;
|
|
742
765
|
var initLocalPendingTransactionsArchivist = /* @__PURE__ */ __name(async () => {
|
|
743
766
|
return await mutex6.runExclusive(async () => {
|
|
@@ -758,8 +781,8 @@ var initLocalPendingTransactionsArchivist = /* @__PURE__ */ __name(async () => {
|
|
|
758
781
|
import { assertEx as assertEx8 } from "@xylabs/sdk-js";
|
|
759
782
|
import { initBridge as initBridge3, initBridgedArchivistModule as initBridgedArchivistModule3 } from "@xyo-network/chain-orchestration";
|
|
760
783
|
import { getUrl as getUrl3 } from "@xyo-network/xl1-protocol-sdk";
|
|
761
|
-
import { Mutex as
|
|
762
|
-
var mutex7 = new
|
|
784
|
+
import { Mutex as Mutex10 } from "async-mutex";
|
|
785
|
+
var mutex7 = new Mutex10();
|
|
763
786
|
var singleton7;
|
|
764
787
|
var initRemotePendingTransactionsArchivist = /* @__PURE__ */ __name(async ({ config: config2 }) => {
|
|
765
788
|
return await mutex7.runExclusive(async () => {
|
|
@@ -776,35 +799,44 @@ var initRemotePendingTransactionsArchivist = /* @__PURE__ */ __name(async ({ con
|
|
|
776
799
|
}, "initRemotePendingTransactionsArchivist");
|
|
777
800
|
|
|
778
801
|
// src/orchestration/archivists/PendingTransactions/archivist.ts
|
|
779
|
-
var mutex8 = new
|
|
802
|
+
var mutex8 = new Mutex11();
|
|
780
803
|
var singleton8;
|
|
781
|
-
var initPendingBundledTransactionsArchivist = /* @__PURE__ */ __name(async (
|
|
804
|
+
var initPendingBundledTransactionsArchivist = /* @__PURE__ */ __name(async ({ config: config2, logger }) => {
|
|
782
805
|
return await mutex8.runExclusive(async () => {
|
|
783
806
|
if (singleton8) return singleton8;
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
807
|
+
return await timeBudget3("initPendingBundledTransactionsArchivist", logger, async () => {
|
|
808
|
+
const remote = await startupSpanAsync3("PendingBundledTransactionsArchivist:initRemote", () => initRemotePendingTransactionsArchivist({
|
|
809
|
+
config: config2,
|
|
810
|
+
logger
|
|
811
|
+
}));
|
|
812
|
+
const local = await startupSpanAsync3("PendingBundledTransactionsArchivist:initLocal", () => initLocalPendingTransactionsArchivist({
|
|
813
|
+
config: config2,
|
|
814
|
+
logger
|
|
815
|
+
}));
|
|
816
|
+
const start2 = await remote.next({
|
|
817
|
+
limit: 1,
|
|
818
|
+
order: "desc"
|
|
819
|
+
});
|
|
820
|
+
await local.insert(start2);
|
|
821
|
+
await startupSpanAsync3("PendingBundledTransactionsArchivist:initArchivistSync", () => initArchivistSync2("PendingBundledTransactionsArchivist", remote, local));
|
|
822
|
+
singleton8 = [
|
|
823
|
+
local,
|
|
824
|
+
remote
|
|
825
|
+
];
|
|
826
|
+
return singleton8;
|
|
827
|
+
}, 2e3, true);
|
|
797
828
|
});
|
|
798
829
|
}, "initPendingBundledTransactionsArchivist");
|
|
799
830
|
|
|
800
831
|
// src/orchestration/archivists/RejectedTransactions/archivist.ts
|
|
801
832
|
import { startupSpanAsync as startupSpanAsync4 } from "@xyo-network/chain-utils";
|
|
802
|
-
import {
|
|
833
|
+
import { timeBudget as timeBudget4 } from "@xyo-network/xl1-protocol-sdk";
|
|
834
|
+
import { Mutex as Mutex13 } from "async-mutex";
|
|
803
835
|
|
|
804
836
|
// src/orchestration/archivists/RejectedTransactions/local.ts
|
|
805
837
|
import { MemoryArchivist as MemoryArchivist2, MemoryArchivistConfigSchema as MemoryArchivistConfigSchema2 } from "@xyo-network/archivist-memory";
|
|
806
|
-
import { Mutex as
|
|
807
|
-
var mutex9 = new
|
|
838
|
+
import { Mutex as Mutex12 } from "async-mutex";
|
|
839
|
+
var mutex9 = new Mutex12();
|
|
808
840
|
var singleton9;
|
|
809
841
|
var initLocalRejectedTransactionsArchivist = /* @__PURE__ */ __name(async () => {
|
|
810
842
|
return await mutex9.runExclusive(async () => {
|
|
@@ -822,14 +854,16 @@ var initLocalRejectedTransactionsArchivist = /* @__PURE__ */ __name(async () =>
|
|
|
822
854
|
}, "initLocalRejectedTransactionsArchivist");
|
|
823
855
|
|
|
824
856
|
// src/orchestration/archivists/RejectedTransactions/archivist.ts
|
|
825
|
-
var mutex10 = new
|
|
857
|
+
var mutex10 = new Mutex13();
|
|
826
858
|
var singleton10;
|
|
827
859
|
async function initRejectedTransactionsArchivist(params) {
|
|
828
860
|
return await mutex10.runExclusive(async () => {
|
|
829
861
|
if (singleton10) return singleton10;
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
862
|
+
return await timeBudget4("initRejectedTransactionsArchivist", params.logger, async () => {
|
|
863
|
+
const local = await startupSpanAsync4("RejectedTransactionsArchivist:initLocal", () => initLocalRejectedTransactionsArchivist(params));
|
|
864
|
+
singleton10 = local;
|
|
865
|
+
return singleton10;
|
|
866
|
+
}, 2e3, true);
|
|
833
867
|
});
|
|
834
868
|
}
|
|
835
869
|
__name(initRejectedTransactionsArchivist, "initRejectedTransactionsArchivist");
|
|
@@ -837,12 +871,13 @@ __name(initRejectedTransactionsArchivist, "initRejectedTransactionsArchivist");
|
|
|
837
871
|
// src/orchestration/archivists/StakeIntentState/archivist.ts
|
|
838
872
|
import { assertEx as assertEx10 } from "@xylabs/sdk-js";
|
|
839
873
|
import { startupSpanAsync as startupSpanAsync5 } from "@xyo-network/chain-utils";
|
|
840
|
-
import {
|
|
874
|
+
import { timeBudget as timeBudget5 } from "@xyo-network/xl1-protocol-sdk";
|
|
875
|
+
import { Mutex as Mutex15 } from "async-mutex";
|
|
841
876
|
|
|
842
877
|
// src/orchestration/archivists/StakeIntentState/local.ts
|
|
843
878
|
import { assertEx as assertEx9 } from "@xylabs/sdk-js";
|
|
844
|
-
import { Mutex as
|
|
845
|
-
var mutex11 = new
|
|
879
|
+
import { Mutex as Mutex14 } from "async-mutex";
|
|
880
|
+
var mutex11 = new Mutex14();
|
|
846
881
|
var singleton11;
|
|
847
882
|
var initLocalStakeIntentStateArchivist = /* @__PURE__ */ __name(async ({ config: config2 }) => {
|
|
848
883
|
return await mutex11.runExclusive(async () => {
|
|
@@ -854,27 +889,30 @@ var initLocalStakeIntentStateArchivist = /* @__PURE__ */ __name(async ({ config:
|
|
|
854
889
|
}, "initLocalStakeIntentStateArchivist");
|
|
855
890
|
|
|
856
891
|
// src/orchestration/archivists/StakeIntentState/archivist.ts
|
|
857
|
-
var mutex12 = new
|
|
892
|
+
var mutex12 = new Mutex15();
|
|
858
893
|
var singleton12;
|
|
859
894
|
var initStakeIntentStateArchivist = /* @__PURE__ */ __name(async (params) => {
|
|
860
895
|
return await mutex12.runExclusive(async () => {
|
|
861
896
|
if (singleton12) return singleton12;
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
897
|
+
return await timeBudget5("initStakeIntentStateArchivist", params.logger, async () => {
|
|
898
|
+
const local = await startupSpanAsync5("StakeIntentStateArchivist:initLocal", () => initLocalStakeIntentStateArchivist(params));
|
|
899
|
+
singleton12 = local;
|
|
900
|
+
return assertEx10(singleton12, () => "StakeIntentStateArchivist is undefined");
|
|
901
|
+
}, 2e3, true);
|
|
865
902
|
});
|
|
866
903
|
}, "initStakeIntentStateArchivist");
|
|
867
904
|
|
|
868
905
|
// src/orchestration/map/BalanceSummary/initBalanceSummaryMap.ts
|
|
869
906
|
import { isDefined as isDefined5 } from "@xylabs/sdk-js";
|
|
870
907
|
import { startupSpanAsync as startupSpanAsync6 } from "@xyo-network/chain-utils";
|
|
871
|
-
import {
|
|
908
|
+
import { timeBudget as timeBudget6 } from "@xyo-network/xl1-protocol-sdk";
|
|
909
|
+
import { Mutex as Mutex17 } from "async-mutex";
|
|
872
910
|
|
|
873
911
|
// src/orchestration/map/BalanceSummary/initLocalBalanceSummaryMap.ts
|
|
874
912
|
import { isDefined as isDefined4 } from "@xylabs/sdk-js";
|
|
875
913
|
import { getLocalPersistentMap } from "@xyo-network/chain-protocol";
|
|
876
|
-
import { Mutex as
|
|
877
|
-
var mutex13 = new
|
|
914
|
+
import { Mutex as Mutex16 } from "async-mutex";
|
|
915
|
+
var mutex13 = new Mutex16();
|
|
878
916
|
var singleton13;
|
|
879
917
|
var initLocalBalanceSummaryMap = /* @__PURE__ */ __name(async (params) => {
|
|
880
918
|
return await mutex13.runExclusive(async () => {
|
|
@@ -886,14 +924,16 @@ var initLocalBalanceSummaryMap = /* @__PURE__ */ __name(async (params) => {
|
|
|
886
924
|
}, "initLocalBalanceSummaryMap");
|
|
887
925
|
|
|
888
926
|
// src/orchestration/map/BalanceSummary/initBalanceSummaryMap.ts
|
|
889
|
-
var mutex14 = new
|
|
927
|
+
var mutex14 = new Mutex17();
|
|
890
928
|
var singleton14;
|
|
891
929
|
async function initBalanceSummaryMap(params) {
|
|
892
930
|
return await mutex14.runExclusive(async () => {
|
|
893
931
|
if (isDefined5(singleton14)) return singleton14;
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
932
|
+
return await timeBudget6("initBalanceSummaryMap", params.logger, async () => {
|
|
933
|
+
const local = await startupSpanAsync6("BalanceSummaryMap:initLocal", () => initLocalBalanceSummaryMap(params));
|
|
934
|
+
singleton14 = local;
|
|
935
|
+
return singleton14;
|
|
936
|
+
}, 2e3, true);
|
|
897
937
|
});
|
|
898
938
|
}
|
|
899
939
|
__name(initBalanceSummaryMap, "initBalanceSummaryMap");
|
|
@@ -901,13 +941,14 @@ __name(initBalanceSummaryMap, "initBalanceSummaryMap");
|
|
|
901
941
|
// src/orchestration/map/BalanceSummary/initTransferSummaryMap.ts
|
|
902
942
|
import { isDefined as isDefined7 } from "@xylabs/sdk-js";
|
|
903
943
|
import { startupSpanAsync as startupSpanAsync7 } from "@xyo-network/chain-utils";
|
|
904
|
-
import {
|
|
944
|
+
import { timeBudget as timeBudget7 } from "@xyo-network/xl1-protocol-sdk";
|
|
945
|
+
import { Mutex as Mutex19 } from "async-mutex";
|
|
905
946
|
|
|
906
947
|
// src/orchestration/map/BalanceSummary/initLocalTransferSummaryMap.ts
|
|
907
948
|
import { isDefined as isDefined6 } from "@xylabs/sdk-js";
|
|
908
949
|
import { getLocalPersistentMap as getLocalPersistentMap2 } from "@xyo-network/chain-protocol";
|
|
909
|
-
import { Mutex as
|
|
910
|
-
var mutex15 = new
|
|
950
|
+
import { Mutex as Mutex18 } from "async-mutex";
|
|
951
|
+
var mutex15 = new Mutex18();
|
|
911
952
|
var singleton15;
|
|
912
953
|
var initLocalTransferSummaryMap = /* @__PURE__ */ __name(async (params) => {
|
|
913
954
|
return await mutex15.runExclusive(async () => {
|
|
@@ -919,28 +960,34 @@ var initLocalTransferSummaryMap = /* @__PURE__ */ __name(async (params) => {
|
|
|
919
960
|
}, "initLocalTransferSummaryMap");
|
|
920
961
|
|
|
921
962
|
// src/orchestration/map/BalanceSummary/initTransferSummaryMap.ts
|
|
922
|
-
var mutex16 = new
|
|
963
|
+
var mutex16 = new Mutex19();
|
|
923
964
|
var singleton16;
|
|
924
965
|
async function initTransferSummaryMap(params) {
|
|
925
966
|
return await mutex16.runExclusive(async () => {
|
|
926
967
|
if (isDefined7(singleton16)) return singleton16;
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
968
|
+
return await timeBudget7("initTransferSummaryMap:Init", params.logger, async () => {
|
|
969
|
+
const local = await startupSpanAsync7("TransferSummaryMap:initLocal", () => initLocalTransferSummaryMap(params));
|
|
970
|
+
singleton16 = local;
|
|
971
|
+
return singleton16;
|
|
972
|
+
}, 2e3, true);
|
|
930
973
|
});
|
|
931
974
|
}
|
|
932
975
|
__name(initTransferSummaryMap, "initTransferSummaryMap");
|
|
933
976
|
|
|
934
977
|
// src/orchestration/services/implementation/balance.ts
|
|
935
978
|
import { BaseAccountBalanceService } from "@xyo-network/chain-services";
|
|
979
|
+
import { timeBudget as timeBudget8 } from "@xyo-network/xl1-protocol-sdk";
|
|
936
980
|
var balanceServiceSingleton;
|
|
937
981
|
var initBalanceService = /* @__PURE__ */ __name(async (params) => {
|
|
938
982
|
if (balanceServiceSingleton) return balanceServiceSingleton;
|
|
939
|
-
|
|
940
|
-
|
|
983
|
+
return await timeBudget8("initBalanceService", params.logger, async () => {
|
|
984
|
+
balanceServiceSingleton = await BaseAccountBalanceService.create(params);
|
|
985
|
+
return balanceServiceSingleton;
|
|
986
|
+
}, 2e3, true);
|
|
941
987
|
}, "initBalanceService");
|
|
942
988
|
|
|
943
989
|
// src/orchestration/services/implementation/chain/index.ts
|
|
990
|
+
import { assertEx as assertEx16 } from "@xylabs/sdk-js";
|
|
944
991
|
import { MemoryChainService } from "@xyo-network/chain-services";
|
|
945
992
|
|
|
946
993
|
// src/orchestration/services/implementation/chain/evm.ts
|
|
@@ -1052,31 +1099,43 @@ var initEvmContractChainService = /* @__PURE__ */ __name(async ({ account, confi
|
|
|
1052
1099
|
meterProvider,
|
|
1053
1100
|
logger
|
|
1054
1101
|
});
|
|
1055
|
-
|
|
1102
|
+
const result = await chainStakeServiceSingleton;
|
|
1103
|
+
await result.start();
|
|
1104
|
+
return result;
|
|
1056
1105
|
}, "initEvmContractChainService");
|
|
1057
1106
|
|
|
1058
1107
|
// src/orchestration/services/implementation/chain/index.ts
|
|
1059
1108
|
var chainStakeServiceSingleton2;
|
|
1060
|
-
var initChainService = /* @__PURE__ */ __name(({ account, config: config2 }) =>
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1109
|
+
var initChainService = /* @__PURE__ */ __name(({ account, config: config2, logger }) => {
|
|
1110
|
+
logger?.log("ChainService: Initializing...");
|
|
1111
|
+
const result = init({
|
|
1112
|
+
config: config2,
|
|
1113
|
+
name: "ChainService",
|
|
1114
|
+
account
|
|
1115
|
+
});
|
|
1116
|
+
logger?.log("ChainService: Initialized");
|
|
1117
|
+
return result;
|
|
1118
|
+
}, "initChainService");
|
|
1119
|
+
var initMemoryChainService = /* @__PURE__ */ __name(async ({ config: config2 }) => {
|
|
1120
|
+
const result = await MemoryChainService.create({
|
|
1121
|
+
config: config2,
|
|
1122
|
+
name: "MemoryChainService"
|
|
1123
|
+
});
|
|
1124
|
+
assertEx16(await result.start(), () => "Failed to start MemoryChainService");
|
|
1125
|
+
return result;
|
|
1126
|
+
}, "initMemoryChainService");
|
|
1127
|
+
var init = /* @__PURE__ */ __name(async (params) => {
|
|
1066
1128
|
if (chainStakeServiceSingleton2) return chainStakeServiceSingleton2;
|
|
1067
1129
|
const { config: config2 } = params;
|
|
1068
|
-
chainStakeServiceSingleton2 = canUseEvmContractChainService(config2) ? initEvmContractChainService({
|
|
1130
|
+
chainStakeServiceSingleton2 = canUseEvmContractChainService(config2) ? await initEvmContractChainService({
|
|
1069
1131
|
...params,
|
|
1070
1132
|
name: "ChainStakeService"
|
|
1071
|
-
}) :
|
|
1072
|
-
...params,
|
|
1073
|
-
name: "ChainStakeService"
|
|
1074
|
-
});
|
|
1133
|
+
}) : await initMemoryChainService(params);
|
|
1075
1134
|
return chainStakeServiceSingleton2;
|
|
1076
1135
|
}, "init");
|
|
1077
1136
|
|
|
1078
1137
|
// src/orchestration/services/implementation/head/head.ts
|
|
1079
|
-
import { assertEx as
|
|
1138
|
+
import { assertEx as assertEx17, isDefined as isDefined13 } from "@xylabs/sdk-js";
|
|
1080
1139
|
import { findMostRecentBlock as findMostRecentBlock2 } from "@xyo-network/chain-protocol";
|
|
1081
1140
|
|
|
1082
1141
|
// src/orchestration/services/implementation/head/createBootstrapHead.ts
|
|
@@ -1297,13 +1356,13 @@ var initHead = /* @__PURE__ */ __name(async (params) => {
|
|
|
1297
1356
|
if (isDefined13(forkFromBlock)) {
|
|
1298
1357
|
const chain = await createForkedHead(forkFromBlock, account, chainService);
|
|
1299
1358
|
await submitNewChain(chain, chainArchivist, chainSubmissionsArchivistWrite);
|
|
1300
|
-
const newBlock =
|
|
1359
|
+
const newBlock = assertEx17(chain.at(-1), () => new Error("Failed to get new head after forking"));
|
|
1301
1360
|
head = newBlock[0];
|
|
1302
1361
|
}
|
|
1303
1362
|
} else {
|
|
1304
1363
|
const chain = await createBootstrapHead(account, chainService);
|
|
1305
1364
|
await submitNewChain(chain, chainArchivist, chainSubmissionsArchivistWrite);
|
|
1306
|
-
const newBlock =
|
|
1365
|
+
const newBlock = assertEx17(chain.at(-1), () => new Error("Failed to get new head after genesis"));
|
|
1307
1366
|
head = newBlock[0];
|
|
1308
1367
|
}
|
|
1309
1368
|
headSingleton = head;
|
|
@@ -1312,105 +1371,131 @@ var initHead = /* @__PURE__ */ __name(async (params) => {
|
|
|
1312
1371
|
|
|
1313
1372
|
// src/orchestration/services/implementation/iterator.ts
|
|
1314
1373
|
import { BaseElectionService, ChainBlockNumberIterationService, XyoStakeIntentService } from "@xyo-network/chain-services";
|
|
1374
|
+
import { timeBudget as timeBudget9 } from "@xyo-network/xl1-protocol-sdk";
|
|
1315
1375
|
var chainIteratorServiceSingleton;
|
|
1316
1376
|
var stakeIntentServiceSingleton;
|
|
1317
1377
|
var electionServiceSingleton;
|
|
1318
1378
|
var initChainIterator = /* @__PURE__ */ __name((params) => {
|
|
1319
1379
|
if (chainIteratorServiceSingleton) return chainIteratorServiceSingleton;
|
|
1320
|
-
|
|
1321
|
-
|
|
1380
|
+
return timeBudget9("initChainIterator", params.logger, () => {
|
|
1381
|
+
chainIteratorServiceSingleton = ChainBlockNumberIterationService.create(params);
|
|
1382
|
+
return chainIteratorServiceSingleton;
|
|
1383
|
+
}, 2e3, true);
|
|
1322
1384
|
}, "initChainIterator");
|
|
1323
1385
|
var initStakeIntentService = /* @__PURE__ */ __name((params) => {
|
|
1324
1386
|
if (stakeIntentServiceSingleton) return stakeIntentServiceSingleton;
|
|
1325
|
-
|
|
1326
|
-
|
|
1387
|
+
return timeBudget9("initStakeIntentService", params.logger, () => {
|
|
1388
|
+
stakeIntentServiceSingleton = XyoStakeIntentService.create(params);
|
|
1389
|
+
return stakeIntentServiceSingleton;
|
|
1390
|
+
}, 2e3, true);
|
|
1327
1391
|
}, "initStakeIntentService");
|
|
1328
1392
|
var initElectionService = /* @__PURE__ */ __name((params) => {
|
|
1329
1393
|
if (electionServiceSingleton) return electionServiceSingleton;
|
|
1330
|
-
|
|
1331
|
-
|
|
1394
|
+
return timeBudget9("initElectionService", params.logger, () => {
|
|
1395
|
+
electionServiceSingleton = BaseElectionService.create(params);
|
|
1396
|
+
return electionServiceSingleton;
|
|
1397
|
+
}, 2e3, true);
|
|
1332
1398
|
}, "initElectionService");
|
|
1333
1399
|
|
|
1334
1400
|
// src/orchestration/services/implementation/pendingTransactions.ts
|
|
1335
1401
|
import { BasePendingTransactionsService } from "@xyo-network/chain-services";
|
|
1402
|
+
import { timeBudget as timeBudget10 } from "@xyo-network/xl1-protocol-sdk";
|
|
1336
1403
|
var serviceSingleton;
|
|
1337
1404
|
var initPendingTransactions = /* @__PURE__ */ __name(async (params) => {
|
|
1338
1405
|
if (serviceSingleton) return serviceSingleton;
|
|
1339
|
-
|
|
1340
|
-
|
|
1406
|
+
return await timeBudget10("initPendingTransactions", params.logger, async () => {
|
|
1407
|
+
serviceSingleton = await BasePendingTransactionsService.create(params);
|
|
1408
|
+
return serviceSingleton;
|
|
1409
|
+
}, 2e3, true);
|
|
1341
1410
|
}, "initPendingTransactions");
|
|
1342
1411
|
|
|
1343
1412
|
// src/orchestration/services/implementation/producer.ts
|
|
1344
1413
|
import { BaseBlockProducerService as BaseBlockProducerService2 } from "@xyo-network/chain-services";
|
|
1414
|
+
import { timeBudget as timeBudget11 } from "@xyo-network/xl1-protocol-sdk";
|
|
1345
1415
|
var serviceSingleton2;
|
|
1346
1416
|
var initBlockProducer = /* @__PURE__ */ __name(async (params) => {
|
|
1347
1417
|
if (serviceSingleton2) return serviceSingleton2;
|
|
1348
|
-
|
|
1349
|
-
|
|
1418
|
+
return await timeBudget11("initBlockProducer", params.logger, async () => {
|
|
1419
|
+
serviceSingleton2 = await BaseBlockProducerService2.create(params);
|
|
1420
|
+
return serviceSingleton2;
|
|
1421
|
+
}, 2e3, true);
|
|
1350
1422
|
}, "initBlockProducer");
|
|
1351
1423
|
|
|
1352
1424
|
// src/orchestration/services/implementation/reward.ts
|
|
1353
|
-
import { assertEx as
|
|
1425
|
+
import { assertEx as assertEx18 } from "@xylabs/sdk-js";
|
|
1354
1426
|
import { EvmBlockRewardService, MemoryBlockRewardService } from "@xyo-network/chain-services";
|
|
1427
|
+
import { timeBudget as timeBudget12 } from "@xyo-network/xl1-protocol-sdk";
|
|
1355
1428
|
var rewardServiceSingleton;
|
|
1356
1429
|
var initBlockRewardService = /* @__PURE__ */ __name((params) => {
|
|
1357
1430
|
if (rewardServiceSingleton) return rewardServiceSingleton;
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1431
|
+
return timeBudget12("initBlockRewardService", params.logger, () => {
|
|
1432
|
+
const { config: config2 } = params;
|
|
1433
|
+
rewardServiceSingleton = canUseEvmBlockRewardService({
|
|
1434
|
+
config: config2
|
|
1435
|
+
}) ? initEvmBlockRewardService(params) : initXyoBlockRewardService(params);
|
|
1436
|
+
return rewardServiceSingleton;
|
|
1437
|
+
}, 2e3, true);
|
|
1363
1438
|
}, "initBlockRewardService");
|
|
1364
1439
|
var initXyoBlockRewardService = /* @__PURE__ */ __name((params) => {
|
|
1365
1440
|
if (rewardServiceSingleton) return rewardServiceSingleton;
|
|
1366
|
-
|
|
1367
|
-
|
|
1441
|
+
return timeBudget12("initXyoBlockRewardService", params.logger, () => {
|
|
1442
|
+
rewardServiceSingleton = MemoryBlockRewardService.create(params);
|
|
1443
|
+
return rewardServiceSingleton;
|
|
1444
|
+
}, 2e3, true);
|
|
1368
1445
|
}, "initXyoBlockRewardService");
|
|
1369
1446
|
var canUseEvmBlockRewardService = /* @__PURE__ */ __name((params) => canUseEvmProvider({
|
|
1370
1447
|
config: params.config
|
|
1371
1448
|
}), "canUseEvmBlockRewardService");
|
|
1372
1449
|
var initEvmBlockRewardService = /* @__PURE__ */ __name(async (params) => {
|
|
1373
1450
|
if (rewardServiceSingleton) return rewardServiceSingleton;
|
|
1374
|
-
|
|
1375
|
-
|
|
1376
|
-
|
|
1377
|
-
|
|
1378
|
-
|
|
1379
|
-
|
|
1380
|
-
|
|
1381
|
-
|
|
1382
|
-
|
|
1383
|
-
|
|
1451
|
+
return await timeBudget12("initEvmBlockRewardService", params.logger, async () => {
|
|
1452
|
+
const { account: paramsAccount } = params;
|
|
1453
|
+
const account = assertEx18(paramsAccount, () => "Account is required");
|
|
1454
|
+
const provider2 = assertEx18(await initEvmProvider(params));
|
|
1455
|
+
const evmBlockRewardServiceParams = {
|
|
1456
|
+
...params,
|
|
1457
|
+
provider: provider2,
|
|
1458
|
+
account
|
|
1459
|
+
};
|
|
1460
|
+
rewardServiceSingleton = EvmBlockRewardService.create(evmBlockRewardServiceParams);
|
|
1461
|
+
return rewardServiceSingleton;
|
|
1462
|
+
}, 2e3, true);
|
|
1384
1463
|
}, "initEvmBlockRewardService");
|
|
1385
1464
|
|
|
1386
1465
|
// src/orchestration/services/implementation/time.ts
|
|
1387
1466
|
import { BaseTimeSyncService } from "@xyo-network/chain-services";
|
|
1467
|
+
import { timeBudget as timeBudget13 } from "@xyo-network/xl1-protocol-sdk";
|
|
1388
1468
|
var timeSyncServiceSingleton;
|
|
1389
1469
|
var initTimeService = /* @__PURE__ */ __name(async ({ chainArchivist, chainIterator, config: config2, logger, meterProvider, traceProvider }) => {
|
|
1390
1470
|
if (timeSyncServiceSingleton) return timeSyncServiceSingleton;
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1471
|
+
return await timeBudget13("initTimeService", logger, async () => {
|
|
1472
|
+
const ethProvider = canUseEvmProvider({
|
|
1473
|
+
config: config2
|
|
1474
|
+
}) ? await initEvmProvider({
|
|
1475
|
+
config: config2
|
|
1476
|
+
}) : void 0;
|
|
1477
|
+
timeSyncServiceSingleton = BaseTimeSyncService.create({
|
|
1478
|
+
chainArchivist,
|
|
1479
|
+
chainIterator,
|
|
1480
|
+
ethProvider,
|
|
1481
|
+
logger,
|
|
1482
|
+
meterProvider,
|
|
1483
|
+
traceProvider
|
|
1484
|
+
});
|
|
1485
|
+
return await timeSyncServiceSingleton;
|
|
1486
|
+
}, 2e3, true);
|
|
1405
1487
|
}, "initTimeService");
|
|
1406
1488
|
|
|
1407
1489
|
// src/orchestration/services/implementation/transfer.ts
|
|
1408
1490
|
import { BaseAccountTransfersService } from "@xyo-network/chain-services";
|
|
1491
|
+
import { timeBudget as timeBudget14 } from "@xyo-network/xl1-protocol-sdk";
|
|
1409
1492
|
var transferServiceSingleton;
|
|
1410
1493
|
var initTransferService = /* @__PURE__ */ __name(async (params) => {
|
|
1411
1494
|
if (transferServiceSingleton) return transferServiceSingleton;
|
|
1412
|
-
|
|
1413
|
-
|
|
1495
|
+
return await timeBudget14("initTransferService", params.logger, async () => {
|
|
1496
|
+
transferServiceSingleton = await BaseAccountTransfersService.create(params);
|
|
1497
|
+
return transferServiceSingleton;
|
|
1498
|
+
}, 2e3, true);
|
|
1414
1499
|
}, "initTransferService");
|
|
1415
1500
|
|
|
1416
1501
|
// src/orchestration/services/implementation/validator.ts
|
|
@@ -1513,7 +1598,8 @@ var RuntimeStatusMonitor = class extends LoggerStatusReporter {
|
|
|
1513
1598
|
|
|
1514
1599
|
// src/orchestration/initServices.ts
|
|
1515
1600
|
var isStartable = /* @__PURE__ */ __name((value) => {
|
|
1516
|
-
|
|
1601
|
+
const possibleStartable = value;
|
|
1602
|
+
return isDefined14(possibleStartable.start) && typeof possibleStartable.start === "function" && possibleStartable.status === "created";
|
|
1517
1603
|
}, "isStartable");
|
|
1518
1604
|
var initServices = /* @__PURE__ */ __name(async (context) => {
|
|
1519
1605
|
const { config: config2, logger } = context;
|
|
@@ -1694,7 +1780,7 @@ var initServices = /* @__PURE__ */ __name(async (context) => {
|
|
|
1694
1780
|
validateHydratedBlockState,
|
|
1695
1781
|
...initParams
|
|
1696
1782
|
};
|
|
1697
|
-
const rewardAddress = isDefined14(config2.producer.rewardAddress) ?
|
|
1783
|
+
const rewardAddress = isDefined14(config2.producer.rewardAddress) ? assertEx19(asAddress2(config2.producer.rewardAddress), () => "Invalid block reward address provided") : account.address;
|
|
1698
1784
|
const producerParams = {
|
|
1699
1785
|
...validatorParams,
|
|
1700
1786
|
name: "Producer",
|
|
@@ -1729,7 +1815,7 @@ var initServices = /* @__PURE__ */ __name(async (context) => {
|
|
|
1729
1815
|
balanceSummaryMap,
|
|
1730
1816
|
...Object.values(result)
|
|
1731
1817
|
].filter(isStartable);
|
|
1732
|
-
|
|
1818
|
+
assertEx19((await Promise.all(startableServices.map((service) => service.start()))).every(Boolean), () => "One or more services failed to start");
|
|
1733
1819
|
logger?.log("All services started successfully.");
|
|
1734
1820
|
return result;
|
|
1735
1821
|
}, "initServices");
|
|
@@ -1897,7 +1983,7 @@ var waitForHostPort = /* @__PURE__ */ __name((host, port) => {
|
|
|
1897
1983
|
|
|
1898
1984
|
// src/runCLI.ts
|
|
1899
1985
|
var configuration;
|
|
1900
|
-
var version = isDefined17("1.16.
|
|
1986
|
+
var version = isDefined17("1.16.22") ? "1.16.22" : "unknown";
|
|
1901
1987
|
var getContextFromConfig = /* @__PURE__ */ __name((configuration2) => {
|
|
1902
1988
|
const logger = initLogger(configuration2);
|
|
1903
1989
|
const orchestrator = new Orchestrator(logger);
|
|
@@ -2039,6 +2125,7 @@ export {
|
|
|
2039
2125
|
initEvmProvider,
|
|
2040
2126
|
initHead,
|
|
2041
2127
|
initHealthEndpoints,
|
|
2128
|
+
initMemoryChainService,
|
|
2042
2129
|
initPendingTransactions,
|
|
2043
2130
|
initServices,
|
|
2044
2131
|
initStakeIntentService,
|