@xyo-network/chain-services 1.18.0-rc.1 → 1.18.0
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/neutral/implementation/head/index.d.ts +0 -1
- package/dist/neutral/implementation/head/index.d.ts.map +1 -1
- package/dist/neutral/implementation/index.d.ts +0 -6
- package/dist/neutral/implementation/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +133 -293
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/simple/block/runner/SimpleBlockRunner.d.ts +3 -1
- package/dist/neutral/simple/block/runner/SimpleBlockRunner.d.ts.map +1 -1
- package/package.json +10 -12
- package/src/AccountBalance/accountBalanceServiceFromArchivist.ts +1 -1
- package/src/ChainValidator/XyoValidator.ts +1 -1
- package/src/implementation/head/index.ts +0 -1
- package/src/implementation/index.ts +0 -6
- package/src/simple/block/runner/SimpleBlockRunner.ts +26 -14
- package/dist/neutral/implementation/accountBalance.d.ts +0 -7
- package/dist/neutral/implementation/accountBalance.d.ts.map +0 -1
- package/dist/neutral/implementation/blockViewer.d.ts +0 -4
- package/dist/neutral/implementation/blockViewer.d.ts.map +0 -1
- package/dist/neutral/implementation/head/createForkedHead/config/getBridgeDestinationDetails.d.ts +0 -8
- package/dist/neutral/implementation/head/createForkedHead/config/getBridgeDestinationDetails.d.ts.map +0 -1
- package/dist/neutral/implementation/head/createForkedHead/config/getBridgeSourceDetails.d.ts +0 -9
- package/dist/neutral/implementation/head/createForkedHead/config/getBridgeSourceDetails.d.ts.map +0 -1
- package/dist/neutral/implementation/head/createForkedHead/config/getForkDetails.d.ts +0 -4
- package/dist/neutral/implementation/head/createForkedHead/config/getForkDetails.d.ts.map +0 -1
- package/dist/neutral/implementation/head/createForkedHead/config/index.d.ts +0 -4
- package/dist/neutral/implementation/head/createForkedHead/config/index.d.ts.map +0 -1
- package/dist/neutral/implementation/head/createForkedHead/createForkedHead.d.ts +0 -5
- package/dist/neutral/implementation/head/createForkedHead/createForkedHead.d.ts.map +0 -1
- package/dist/neutral/implementation/head/createForkedHead/getBridgeDestinationObservation.d.ts +0 -11
- package/dist/neutral/implementation/head/createForkedHead/getBridgeDestinationObservation.d.ts.map +0 -1
- package/dist/neutral/implementation/head/createForkedHead/getBridgeIntent.d.ts +0 -11
- package/dist/neutral/implementation/head/createForkedHead/getBridgeIntent.d.ts.map +0 -1
- package/dist/neutral/implementation/head/createForkedHead/getBridgeSourceObservation.d.ts +0 -11
- package/dist/neutral/implementation/head/createForkedHead/getBridgeSourceObservation.d.ts.map +0 -1
- package/dist/neutral/implementation/head/createForkedHead/getFirstBlockForNewChain.d.ts +0 -13
- package/dist/neutral/implementation/head/createForkedHead/getFirstBlockForNewChain.d.ts.map +0 -1
- package/dist/neutral/implementation/head/createForkedHead/index.d.ts +0 -2
- package/dist/neutral/implementation/head/createForkedHead/index.d.ts.map +0 -1
- package/dist/neutral/implementation/head/getForkFromBlock.d.ts +0 -13
- package/dist/neutral/implementation/head/getForkFromBlock.d.ts.map +0 -1
- package/dist/neutral/implementation/head/submitNewChain.d.ts +0 -10
- package/dist/neutral/implementation/head/submitNewChain.d.ts.map +0 -1
- package/dist/neutral/implementation/mempoolRunner.d.ts +0 -7
- package/dist/neutral/implementation/mempoolRunner.d.ts.map +0 -1
- package/dist/neutral/implementation/mempoolViewer.d.ts +0 -7
- package/dist/neutral/implementation/mempoolViewer.d.ts.map +0 -1
- package/dist/neutral/implementation/pendingTransactions.d.ts +0 -9
- package/dist/neutral/implementation/pendingTransactions.d.ts.map +0 -1
- package/dist/neutral/implementation/reward.d.ts +0 -14
- package/dist/neutral/implementation/reward.d.ts.map +0 -1
- package/src/implementation/accountBalance.ts +0 -29
- package/src/implementation/blockViewer.ts +0 -24
- package/src/implementation/head/createForkedHead/config/getBridgeDestinationDetails.ts +0 -27
- package/src/implementation/head/createForkedHead/config/getBridgeSourceDetails.ts +0 -19
- package/src/implementation/head/createForkedHead/config/getForkDetails.ts +0 -10
- package/src/implementation/head/createForkedHead/config/index.ts +0 -3
- package/src/implementation/head/createForkedHead/createForkedHead.ts +0 -29
- package/src/implementation/head/createForkedHead/getBridgeDestinationObservation.ts +0 -42
- package/src/implementation/head/createForkedHead/getBridgeIntent.ts +0 -51
- package/src/implementation/head/createForkedHead/getBridgeSourceObservation.ts +0 -46
- package/src/implementation/head/createForkedHead/getFirstBlockForNewChain.ts +0 -41
- package/src/implementation/head/createForkedHead/index.ts +0 -1
- package/src/implementation/head/getForkFromBlock.ts +0 -45
- package/src/implementation/head/submitNewChain.ts +0 -27
- package/src/implementation/mempoolRunner.ts +0 -29
- package/src/implementation/mempoolViewer.ts +0 -29
- package/src/implementation/pendingTransactions.ts +0 -36
- package/src/implementation/reward.ts +0 -53
package/dist/neutral/index.mjs
CHANGED
|
@@ -476,67 +476,24 @@ BaseElectionService = _ts_decorate4([
|
|
|
476
476
|
creatable4()
|
|
477
477
|
], BaseElectionService);
|
|
478
478
|
|
|
479
|
-
// src/implementation/accountBalance.ts
|
|
480
|
-
import { isDefined as isDefined2 } from "@xylabs/sdk-js";
|
|
481
|
-
import { AccountBalanceViewerRpcSchemas, HttpRpcTransport, JsonRpcAccountBalanceViewer } from "@xyo-network/xl1-rpc";
|
|
482
|
-
var balanceServiceSingleton;
|
|
483
|
-
var initAccountBalanceService = /* @__PURE__ */ __name(async (params) => {
|
|
484
|
-
const { config, logger } = params;
|
|
485
|
-
if (balanceServiceSingleton) return balanceServiceSingleton;
|
|
486
|
-
const endpoint = config.services?.accountBalanceViewerEndpoint ?? config.services?.apiEndpoint;
|
|
487
|
-
if (isDefined2(endpoint)) {
|
|
488
|
-
const transport = new HttpRpcTransport(endpoint, {
|
|
489
|
-
...AccountBalanceViewerRpcSchemas
|
|
490
|
-
});
|
|
491
|
-
const viewer = await JsonRpcAccountBalanceViewer.create({
|
|
492
|
-
transport
|
|
493
|
-
});
|
|
494
|
-
logger?.log("Using AccountBalanceViewer RPC service at", endpoint);
|
|
495
|
-
return viewer;
|
|
496
|
-
} else {
|
|
497
|
-
throw new Error("No AccountBalanceViewer endpoint configured");
|
|
498
|
-
}
|
|
499
|
-
}, "initAccountBalanceService");
|
|
500
|
-
|
|
501
|
-
// src/implementation/blockViewer.ts
|
|
502
|
-
import { isDefined as isDefined3 } from "@xylabs/sdk-js";
|
|
503
|
-
import { BlockViewerRpcSchemas, HttpRpcTransport as HttpRpcTransport2, JsonRpcBlockViewer } from "@xyo-network/xl1-rpc";
|
|
504
|
-
var blockViewerSingleton;
|
|
505
|
-
var initBlockViewer = /* @__PURE__ */ __name(async ({ config, logger }) => {
|
|
506
|
-
if (blockViewerSingleton) return blockViewerSingleton;
|
|
507
|
-
const endpoint = config.services?.apiEndpoint;
|
|
508
|
-
if (isDefined3(endpoint)) {
|
|
509
|
-
const transport = new HttpRpcTransport2(endpoint, {
|
|
510
|
-
...BlockViewerRpcSchemas
|
|
511
|
-
});
|
|
512
|
-
const viewer = await JsonRpcBlockViewer.create({
|
|
513
|
-
transport
|
|
514
|
-
});
|
|
515
|
-
logger?.log("Using BlockViewer RPC service at", endpoint);
|
|
516
|
-
return viewer;
|
|
517
|
-
} else {
|
|
518
|
-
throw new Error("No BlockViewer endpoint configured");
|
|
519
|
-
}
|
|
520
|
-
}, "initBlockViewer");
|
|
521
|
-
|
|
522
479
|
// src/implementation/chain/index.ts
|
|
523
480
|
import { assertEx as assertEx9 } from "@xylabs/sdk-js";
|
|
524
481
|
|
|
525
482
|
// src/implementation/chain/evm.ts
|
|
526
|
-
import { asAddress, assertEx as assertEx8, isDefined as
|
|
483
|
+
import { asAddress, assertEx as assertEx8, isDefined as isDefined5, ZERO_ADDRESS as ZERO_ADDRESS2 } from "@xylabs/sdk-js";
|
|
527
484
|
import { Wallet } from "ethers/wallet";
|
|
528
485
|
|
|
529
486
|
// src/implementation/evm/initEvmProvider.ts
|
|
530
487
|
import { assertEx as assertEx7 } from "@xylabs/sdk-js";
|
|
531
488
|
|
|
532
489
|
// src/implementation/evm/initInfuraProvider.ts
|
|
533
|
-
import { assertEx as assertEx5, isDefined as
|
|
490
|
+
import { assertEx as assertEx5, isDefined as isDefined3 } from "@xylabs/sdk-js";
|
|
534
491
|
import { InfuraProvider } from "ethers/providers";
|
|
535
492
|
|
|
536
493
|
// src/implementation/evm/initChainId.ts
|
|
537
|
-
import { assertEx as assertEx4, hexFrom, isDefined as
|
|
494
|
+
import { assertEx as assertEx4, hexFrom, isDefined as isDefined2, isHex } from "@xylabs/sdk-js";
|
|
538
495
|
var canUseChainId = /* @__PURE__ */ __name((config) => {
|
|
539
|
-
return
|
|
496
|
+
return isDefined2(config.evm.chainId);
|
|
540
497
|
}, "canUseChainId");
|
|
541
498
|
var getChainId = /* @__PURE__ */ __name((config) => {
|
|
542
499
|
const chainId = assertEx4(config.evm.chainId, () => "Missing config.evm.chainId");
|
|
@@ -561,7 +518,7 @@ var initInfuraProvider = /* @__PURE__ */ __name((config) => {
|
|
|
561
518
|
return instance;
|
|
562
519
|
}, "initInfuraProvider");
|
|
563
520
|
var canUseInfuraProvider = /* @__PURE__ */ __name((config) => {
|
|
564
|
-
return canUseChainId(config) &&
|
|
521
|
+
return canUseChainId(config) && isDefined3(config.evm?.infura?.projectId) && isDefined3(config.evm?.infura?.projectSecret);
|
|
565
522
|
}, "canUseInfuraProvider");
|
|
566
523
|
var getInfuraProviderConfig = /* @__PURE__ */ __name((config) => {
|
|
567
524
|
const projectId = assertEx5(config.evm?.infura?.projectId, () => "Missing config.evm.infura.projectId");
|
|
@@ -574,14 +531,14 @@ var getInfuraProviderConfig = /* @__PURE__ */ __name((config) => {
|
|
|
574
531
|
}, "getInfuraProviderConfig");
|
|
575
532
|
|
|
576
533
|
// src/implementation/evm/initJsonRpcProvider.ts
|
|
577
|
-
import { assertEx as assertEx6, isDefined as
|
|
534
|
+
import { assertEx as assertEx6, isDefined as isDefined4 } from "@xylabs/sdk-js";
|
|
578
535
|
import { JsonRpcProvider } from "ethers/providers";
|
|
579
536
|
var initJsonRpcProvider = /* @__PURE__ */ __name((config) => {
|
|
580
537
|
const providerConfig = getJsonRpcProviderConfig(config);
|
|
581
538
|
return Promise.resolve(new JsonRpcProvider(...providerConfig));
|
|
582
539
|
}, "initJsonRpcProvider");
|
|
583
540
|
var canUseJsonRpcProvider = /* @__PURE__ */ __name((config) => {
|
|
584
|
-
return canUseChainId(config) &&
|
|
541
|
+
return canUseChainId(config) && isDefined4(config.evm.jsonRpc?.url);
|
|
585
542
|
}, "canUseJsonRpcProvider");
|
|
586
543
|
var getJsonRpcProviderConfig = /* @__PURE__ */ __name((config) => {
|
|
587
544
|
const jsonRpcUrl = assertEx6(config.evm.jsonRpc?.url, () => "Missing config.evm.jsonRpc.url");
|
|
@@ -610,7 +567,7 @@ var canUseEvmProvider = /* @__PURE__ */ __name(({ config }) => {
|
|
|
610
567
|
var chainStakeServiceSingleton;
|
|
611
568
|
var canUseEvmContractChainService = /* @__PURE__ */ __name((config) => {
|
|
612
569
|
const { id } = config.chain;
|
|
613
|
-
return
|
|
570
|
+
return isDefined5(id) && id !== ZERO_ADDRESS2 && canUseEvmProvider({
|
|
614
571
|
config
|
|
615
572
|
});
|
|
616
573
|
}, "canUseEvmContractChainService");
|
|
@@ -683,75 +640,87 @@ var createBootstrapHead = /* @__PURE__ */ __name(async (account, chainId, genesi
|
|
|
683
640
|
return chain;
|
|
684
641
|
}, "createBootstrapHead");
|
|
685
642
|
|
|
686
|
-
// src/
|
|
687
|
-
import {
|
|
688
|
-
import {
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
}
|
|
643
|
+
// src/NetworkStakeStepReward/BaseNetworkStakeStepRewardService.ts
|
|
644
|
+
import { creatable as creatable5 } from "@xylabs/sdk-js";
|
|
645
|
+
import { NetworkStakeStepRewardViewerMoniker } from "@xyo-network/xl1-protocol-sdk";
|
|
646
|
+
function _ts_decorate5(decorators, target, key, desc) {
|
|
647
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
648
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
649
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
650
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
651
|
+
}
|
|
652
|
+
__name(_ts_decorate5, "_ts_decorate");
|
|
653
|
+
var BaseNetworkStakeStepRewardService = class _BaseNetworkStakeStepRewardService extends BaseService {
|
|
654
|
+
static {
|
|
655
|
+
__name(this, "BaseNetworkStakeStepRewardService");
|
|
700
656
|
}
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
const { config, logger } = params;
|
|
709
|
-
if (mempoolRunnerSingleton) return mempoolRunnerSingleton;
|
|
710
|
-
const endpoint = config.services?.apiEndpoint;
|
|
711
|
-
if (isDefined8(endpoint)) {
|
|
712
|
-
const transport = new HttpRpcTransport3(endpoint, {
|
|
713
|
-
...MempoolRunnerRpcSchemas
|
|
714
|
-
});
|
|
715
|
-
const runner = await JsonRpcMempoolRunner.create({
|
|
716
|
-
transport
|
|
717
|
-
});
|
|
718
|
-
logger?.log("Using mempoolRunner RPC service at", endpoint);
|
|
719
|
-
return runner;
|
|
720
|
-
} else {
|
|
721
|
-
throw new Error("No MempoolRunner endpoint configured");
|
|
657
|
+
static defaultMoniker = NetworkStakeStepRewardViewerMoniker;
|
|
658
|
+
static monikers = [
|
|
659
|
+
NetworkStakeStepRewardViewerMoniker
|
|
660
|
+
];
|
|
661
|
+
moniker = _BaseNetworkStakeStepRewardService.defaultMoniker;
|
|
662
|
+
networkStakeStepRewardAddressHistory(_address) {
|
|
663
|
+
throw new Error("Method [networkStakeStepRewardAddressHistory] not implemented.");
|
|
722
664
|
}
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
// src/implementation/mempoolViewer.ts
|
|
726
|
-
import { isDefined as isDefined9 } from "@xylabs/sdk-js";
|
|
727
|
-
import { HttpRpcTransport as HttpRpcTransport4, JsonRpcMempoolViewer, MempoolViewerRpcSchemas } from "@xyo-network/xl1-rpc";
|
|
728
|
-
var mempoolViewerSingleton;
|
|
729
|
-
var initMempoolViewer = /* @__PURE__ */ __name(async (params) => {
|
|
730
|
-
const { config, logger } = params;
|
|
731
|
-
if (mempoolViewerSingleton) return mempoolViewerSingleton;
|
|
732
|
-
const endpoint = config.services?.apiEndpoint;
|
|
733
|
-
if (isDefined9(endpoint)) {
|
|
734
|
-
const transport = new HttpRpcTransport4(endpoint, {
|
|
735
|
-
...MempoolViewerRpcSchemas
|
|
736
|
-
});
|
|
737
|
-
const viewer = await JsonRpcMempoolViewer.create({
|
|
738
|
-
transport
|
|
739
|
-
});
|
|
740
|
-
logger?.log("Using MempoolViewer RPC service at", endpoint);
|
|
741
|
-
return viewer;
|
|
742
|
-
} else {
|
|
743
|
-
throw new Error("No MempoolViewer endpoint configured");
|
|
665
|
+
networkStakeStepRewardAddressReward(_context, _address) {
|
|
666
|
+
throw new Error("Method [networkStakeStepRewardAddressReward] not implemented.");
|
|
744
667
|
}
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
668
|
+
networkStakeStepRewardAddressShare(_context, _address) {
|
|
669
|
+
throw new Error("Method [networkStakeStepRewardAddressShare] not implemented.");
|
|
670
|
+
}
|
|
671
|
+
networkStakeStepRewardClaimedByAddress(_address) {
|
|
672
|
+
throw new Error("Method [networkStakeStepRewardClaimedByAddress] not implemented.");
|
|
673
|
+
}
|
|
674
|
+
networkStakeStepRewardForPosition(_position, _range) {
|
|
675
|
+
throw new Error("Method [networkStakeStepRewardForPosition] not implemented.");
|
|
676
|
+
}
|
|
677
|
+
networkStakeStepRewardForStep(_context) {
|
|
678
|
+
throw new Error("Method [networkStakeStepRewardForStep] not implemented.");
|
|
679
|
+
}
|
|
680
|
+
networkStakeStepRewardForStepForPosition(_context, _position) {
|
|
681
|
+
throw new Error("Method [networkStakeStepRewardForStepForPosition] not implemented.");
|
|
682
|
+
}
|
|
683
|
+
networkStakeStepRewardPoolRewards(_context) {
|
|
684
|
+
throw new Error("Method [networkStakeStepRewardPoolRewards] not implemented.");
|
|
685
|
+
}
|
|
686
|
+
networkStakeStepRewardPoolShares(_context) {
|
|
687
|
+
throw new Error("Method [networkStakeStepRewardPoolShares] not implemented.");
|
|
688
|
+
}
|
|
689
|
+
networkStakeStepRewardPositionWeight(_context, _position) {
|
|
690
|
+
throw new Error("Method [networkStakeStepRewardPositionWeight] not implemented.");
|
|
691
|
+
}
|
|
692
|
+
networkStakeStepRewardPotentialPositionLoss(_context, _position) {
|
|
693
|
+
throw new Error("Method [networkStakeStepRewardPotentialPositionLoss] not implemented.");
|
|
694
|
+
}
|
|
695
|
+
networkStakeStepRewardRandomizer(_context) {
|
|
696
|
+
throw new Error("Method [networkStakeStepRewardRandomizer] not implemented.");
|
|
697
|
+
}
|
|
698
|
+
networkStakeStepRewardStakerCount(_context) {
|
|
699
|
+
throw new Error("Method [networkStakeStepRewardStakerCount] not implemented.");
|
|
700
|
+
}
|
|
701
|
+
networkStakeStepRewardUnclaimedByAddress(_address) {
|
|
702
|
+
throw new Error("Method [networkStakeStepRewardUnclaimedByAddress] not implemented.");
|
|
703
|
+
}
|
|
704
|
+
networkStakeStepRewardWeightForAddress(_context, _address) {
|
|
705
|
+
throw new Error("Method [networkStakeStepRewardWeightForAddress] not implemented.");
|
|
706
|
+
}
|
|
707
|
+
networkStakeStepRewardsForPosition(_position, _range) {
|
|
708
|
+
throw new Error("Method [networkStakeStepRewardsForPosition] not implemented.");
|
|
709
|
+
}
|
|
710
|
+
networkStakeStepRewardsForRange(_range) {
|
|
711
|
+
throw new Error("Method [networkStakeStepRewardsForRange] not implemented.");
|
|
712
|
+
}
|
|
713
|
+
networkStakeStepRewardsForStepLevel(_stepLevel, _range) {
|
|
714
|
+
throw new Error("Method [networkStakeStepRewardsForStepLevel] not implemented.");
|
|
715
|
+
}
|
|
716
|
+
};
|
|
717
|
+
BaseNetworkStakeStepRewardService = _ts_decorate5([
|
|
718
|
+
creatable5()
|
|
719
|
+
], BaseNetworkStakeStepRewardService);
|
|
751
720
|
|
|
752
721
|
// src/PendingTransactions/BasePendingTransactions.ts
|
|
753
722
|
import { ValueType } from "@opentelemetry/api";
|
|
754
|
-
import { assertEx as assertEx10, creatable as
|
|
723
|
+
import { assertEx as assertEx10, creatable as creatable6, exists, filterAs, filterAsync, forget, isDefined as isDefined6, isUndefined } from "@xylabs/sdk-js";
|
|
755
724
|
import { MemoryArchivist } from "@xyo-network/archivist-memory";
|
|
756
725
|
import { asBlockBoundWitnessWithHashMeta, asXL1BlockNumber, isTransactionBoundWitnessWithStorageMeta } from "@xyo-network/xl1-protocol";
|
|
757
726
|
import { findMostRecentBlock as findMostRecentBlock2, MempoolViewerMoniker } from "@xyo-network/xl1-protocol-sdk";
|
|
@@ -791,13 +760,13 @@ var bundle = /* @__PURE__ */ __name((root, transaction) => {
|
|
|
791
760
|
}, "bundle");
|
|
792
761
|
|
|
793
762
|
// src/PendingTransactions/BasePendingTransactions.ts
|
|
794
|
-
function
|
|
763
|
+
function _ts_decorate6(decorators, target, key, desc) {
|
|
795
764
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
796
765
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
797
766
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
798
767
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
799
768
|
}
|
|
800
|
-
__name(
|
|
769
|
+
__name(_ts_decorate6, "_ts_decorate");
|
|
801
770
|
var BasePendingTransactionsService = class _BasePendingTransactionsService extends BaseService {
|
|
802
771
|
static {
|
|
803
772
|
__name(this, "BasePendingTransactionsService");
|
|
@@ -943,7 +912,7 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
|
|
|
943
912
|
async cleanupWorker() {
|
|
944
913
|
return await this._updateCuratedPendingTransactionsArchivistMutex.runExclusive(async () => {
|
|
945
914
|
const lastHead = await findMostRecentBlock2(this.chainArchivist);
|
|
946
|
-
if (
|
|
915
|
+
if (isDefined6(lastHead)) await this.pruneCuratedPendingTransactionsArchivist(lastHead._hash);
|
|
947
916
|
}, _BasePendingTransactionsService.MutexPriority.PurgeTransactions);
|
|
948
917
|
}
|
|
949
918
|
async countPendingTransactions() {
|
|
@@ -1005,7 +974,7 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
|
|
|
1005
974
|
let [lastHead] = filterAs(await this.chainArchivist.get([
|
|
1006
975
|
head
|
|
1007
976
|
]), (x) => asBlockBoundWitnessWithHashMeta(x));
|
|
1008
|
-
while (
|
|
977
|
+
while (isDefined6(lastHead)) {
|
|
1009
978
|
const pendingBundledTransactions = await this.pendingBundledTransactionsLocalArchivist.next({
|
|
1010
979
|
limit: 100,
|
|
1011
980
|
order: "asc",
|
|
@@ -1039,149 +1008,12 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
|
|
|
1039
1008
|
});
|
|
1040
1009
|
}
|
|
1041
1010
|
};
|
|
1042
|
-
BasePendingTransactionsService =
|
|
1043
|
-
|
|
1011
|
+
BasePendingTransactionsService = _ts_decorate6([
|
|
1012
|
+
creatable6()
|
|
1044
1013
|
], BasePendingTransactionsService);
|
|
1045
1014
|
var isTransactionExpired = /* @__PURE__ */ __name((block) => ([txBw]) => txBw.exp < block, "isTransactionExpired");
|
|
1046
1015
|
var isTransactionActive = /* @__PURE__ */ __name((block) => ([txBw]) => txBw.nbf <= block && txBw.exp >= block, "isTransactionActive");
|
|
1047
1016
|
|
|
1048
|
-
// src/implementation/pendingTransactions.ts
|
|
1049
|
-
var serviceSingleton;
|
|
1050
|
-
var initPendingTransactions = /* @__PURE__ */ __name(async ({ config, params, logger }) => {
|
|
1051
|
-
if (serviceSingleton) return serviceSingleton;
|
|
1052
|
-
return await timeBudget("initPendingTransactions", logger, async () => {
|
|
1053
|
-
const endpoint = config.services?.apiEndpoint;
|
|
1054
|
-
if (isDefined11(endpoint)) {
|
|
1055
|
-
const transport = new HttpRpcTransport5(endpoint, {
|
|
1056
|
-
...MempoolViewerRpcSchemas2
|
|
1057
|
-
});
|
|
1058
|
-
const viewer = await JsonRpcMempoolViewer2.create({
|
|
1059
|
-
transport
|
|
1060
|
-
});
|
|
1061
|
-
logger?.log("Using MempoolViewer RPC service at", endpoint);
|
|
1062
|
-
return viewer;
|
|
1063
|
-
} else {
|
|
1064
|
-
serviceSingleton = await BasePendingTransactionsService.create(params);
|
|
1065
|
-
}
|
|
1066
|
-
return serviceSingleton;
|
|
1067
|
-
}, 2e3, true);
|
|
1068
|
-
}, "initPendingTransactions");
|
|
1069
|
-
|
|
1070
|
-
// src/implementation/reward.ts
|
|
1071
|
-
import { assertEx as assertEx11 } from "@xylabs/sdk-js";
|
|
1072
|
-
import { SimpleBlockRewardViewer, timeBudget as timeBudget2 } from "@xyo-network/xl1-protocol-sdk";
|
|
1073
|
-
var rewardServiceSingleton;
|
|
1074
|
-
var initBlockRewardViewer = /* @__PURE__ */ __name((params) => {
|
|
1075
|
-
if (rewardServiceSingleton) return rewardServiceSingleton;
|
|
1076
|
-
return timeBudget2("initBlockRewardViewer", params.logger, () => {
|
|
1077
|
-
const { config } = params;
|
|
1078
|
-
rewardServiceSingleton = canUseEvmBlockRewardViewer({
|
|
1079
|
-
config
|
|
1080
|
-
}) ? initEvmBlockRewardViewer(params) : initXyoBlockRewardViewer(params);
|
|
1081
|
-
return rewardServiceSingleton;
|
|
1082
|
-
}, 2e3, true);
|
|
1083
|
-
}, "initBlockRewardViewer");
|
|
1084
|
-
var initXyoBlockRewardViewer = /* @__PURE__ */ __name((params) => {
|
|
1085
|
-
if (rewardServiceSingleton) return rewardServiceSingleton;
|
|
1086
|
-
return timeBudget2("initXyoBlockRewardViewer", params.logger, () => {
|
|
1087
|
-
rewardServiceSingleton = SimpleBlockRewardViewer.create(params);
|
|
1088
|
-
return rewardServiceSingleton;
|
|
1089
|
-
}, 2e3, true);
|
|
1090
|
-
}, "initXyoBlockRewardViewer");
|
|
1091
|
-
var canUseEvmBlockRewardViewer = /* @__PURE__ */ __name((params) => canUseEvmProvider({
|
|
1092
|
-
config: params.config
|
|
1093
|
-
}), "canUseEvmBlockRewardViewer");
|
|
1094
|
-
var initEvmBlockRewardViewer = /* @__PURE__ */ __name(async (params) => {
|
|
1095
|
-
if (rewardServiceSingleton) return rewardServiceSingleton;
|
|
1096
|
-
return await timeBudget2("initEvmBlockRewardViewer", params.logger, async () => {
|
|
1097
|
-
const provider2 = assertEx11(await initEvmProvider(params));
|
|
1098
|
-
const evmBlockRewardViewerParams = {
|
|
1099
|
-
...params,
|
|
1100
|
-
provider: provider2
|
|
1101
|
-
};
|
|
1102
|
-
rewardServiceSingleton = EvmBlockRewardViewer.create(evmBlockRewardViewerParams);
|
|
1103
|
-
return rewardServiceSingleton;
|
|
1104
|
-
}, 2e3, true);
|
|
1105
|
-
}, "initEvmBlockRewardViewer");
|
|
1106
|
-
|
|
1107
|
-
// src/NetworkStakeStepReward/BaseNetworkStakeStepRewardService.ts
|
|
1108
|
-
import { creatable as creatable6 } from "@xylabs/sdk-js";
|
|
1109
|
-
import { NetworkStakeStepRewardViewerMoniker } from "@xyo-network/xl1-protocol-sdk";
|
|
1110
|
-
function _ts_decorate6(decorators, target, key, desc) {
|
|
1111
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1112
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1113
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
1114
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1115
|
-
}
|
|
1116
|
-
__name(_ts_decorate6, "_ts_decorate");
|
|
1117
|
-
var BaseNetworkStakeStepRewardService = class _BaseNetworkStakeStepRewardService extends BaseService {
|
|
1118
|
-
static {
|
|
1119
|
-
__name(this, "BaseNetworkStakeStepRewardService");
|
|
1120
|
-
}
|
|
1121
|
-
static defaultMoniker = NetworkStakeStepRewardViewerMoniker;
|
|
1122
|
-
static monikers = [
|
|
1123
|
-
NetworkStakeStepRewardViewerMoniker
|
|
1124
|
-
];
|
|
1125
|
-
moniker = _BaseNetworkStakeStepRewardService.defaultMoniker;
|
|
1126
|
-
networkStakeStepRewardAddressHistory(_address) {
|
|
1127
|
-
throw new Error("Method [networkStakeStepRewardAddressHistory] not implemented.");
|
|
1128
|
-
}
|
|
1129
|
-
networkStakeStepRewardAddressReward(_context, _address) {
|
|
1130
|
-
throw new Error("Method [networkStakeStepRewardAddressReward] not implemented.");
|
|
1131
|
-
}
|
|
1132
|
-
networkStakeStepRewardAddressShare(_context, _address) {
|
|
1133
|
-
throw new Error("Method [networkStakeStepRewardAddressShare] not implemented.");
|
|
1134
|
-
}
|
|
1135
|
-
networkStakeStepRewardClaimedByAddress(_address) {
|
|
1136
|
-
throw new Error("Method [networkStakeStepRewardClaimedByAddress] not implemented.");
|
|
1137
|
-
}
|
|
1138
|
-
networkStakeStepRewardForPosition(_position, _range) {
|
|
1139
|
-
throw new Error("Method [networkStakeStepRewardForPosition] not implemented.");
|
|
1140
|
-
}
|
|
1141
|
-
networkStakeStepRewardForStep(_context) {
|
|
1142
|
-
throw new Error("Method [networkStakeStepRewardForStep] not implemented.");
|
|
1143
|
-
}
|
|
1144
|
-
networkStakeStepRewardForStepForPosition(_context, _position) {
|
|
1145
|
-
throw new Error("Method [networkStakeStepRewardForStepForPosition] not implemented.");
|
|
1146
|
-
}
|
|
1147
|
-
networkStakeStepRewardPoolRewards(_context) {
|
|
1148
|
-
throw new Error("Method [networkStakeStepRewardPoolRewards] not implemented.");
|
|
1149
|
-
}
|
|
1150
|
-
networkStakeStepRewardPoolShares(_context) {
|
|
1151
|
-
throw new Error("Method [networkStakeStepRewardPoolShares] not implemented.");
|
|
1152
|
-
}
|
|
1153
|
-
networkStakeStepRewardPositionWeight(_context, _position) {
|
|
1154
|
-
throw new Error("Method [networkStakeStepRewardPositionWeight] not implemented.");
|
|
1155
|
-
}
|
|
1156
|
-
networkStakeStepRewardPotentialPositionLoss(_context, _position) {
|
|
1157
|
-
throw new Error("Method [networkStakeStepRewardPotentialPositionLoss] not implemented.");
|
|
1158
|
-
}
|
|
1159
|
-
networkStakeStepRewardRandomizer(_context) {
|
|
1160
|
-
throw new Error("Method [networkStakeStepRewardRandomizer] not implemented.");
|
|
1161
|
-
}
|
|
1162
|
-
networkStakeStepRewardStakerCount(_context) {
|
|
1163
|
-
throw new Error("Method [networkStakeStepRewardStakerCount] not implemented.");
|
|
1164
|
-
}
|
|
1165
|
-
networkStakeStepRewardUnclaimedByAddress(_address) {
|
|
1166
|
-
throw new Error("Method [networkStakeStepRewardUnclaimedByAddress] not implemented.");
|
|
1167
|
-
}
|
|
1168
|
-
networkStakeStepRewardWeightForAddress(_context, _address) {
|
|
1169
|
-
throw new Error("Method [networkStakeStepRewardWeightForAddress] not implemented.");
|
|
1170
|
-
}
|
|
1171
|
-
networkStakeStepRewardsForPosition(_position, _range) {
|
|
1172
|
-
throw new Error("Method [networkStakeStepRewardsForPosition] not implemented.");
|
|
1173
|
-
}
|
|
1174
|
-
networkStakeStepRewardsForRange(_range) {
|
|
1175
|
-
throw new Error("Method [networkStakeStepRewardsForRange] not implemented.");
|
|
1176
|
-
}
|
|
1177
|
-
networkStakeStepRewardsForStepLevel(_stepLevel, _range) {
|
|
1178
|
-
throw new Error("Method [networkStakeStepRewardsForStepLevel] not implemented.");
|
|
1179
|
-
}
|
|
1180
|
-
};
|
|
1181
|
-
BaseNetworkStakeStepRewardService = _ts_decorate6([
|
|
1182
|
-
creatable6()
|
|
1183
|
-
], BaseNetworkStakeStepRewardService);
|
|
1184
|
-
|
|
1185
1017
|
// src/Schemas/BaseSchemasService.ts
|
|
1186
1018
|
import { creatable as creatable7, spanRootAsync } from "@xylabs/sdk-js";
|
|
1187
1019
|
import { schemasSummary } from "@xyo-network/xl1-protocol-sdk";
|
|
@@ -1218,17 +1050,17 @@ BaseSchemasService = _ts_decorate7([
|
|
|
1218
1050
|
], BaseSchemasService);
|
|
1219
1051
|
|
|
1220
1052
|
// src/simple/block/runner/SimpleBlockRunner.ts
|
|
1221
|
-
import { assertEx as
|
|
1053
|
+
import { assertEx as assertEx12, exists as exists2, hexToBigInt, isDefined as isDefined7 } from "@xylabs/sdk-js";
|
|
1222
1054
|
import { MemoryArchivist as MemoryArchivist2 } from "@xyo-network/archivist-memory";
|
|
1223
1055
|
import { FixedPercentageBlockRewardDiviner, FixedPercentageBlockRewardDivinerConfigSchema } from "@xyo-network/chain-modules";
|
|
1224
1056
|
import { buildNextBlock as buildNextBlock2 } from "@xyo-network/chain-protocol";
|
|
1225
1057
|
import { PayloadBuilder as PayloadBuilder5 } from "@xyo-network/payload-builder";
|
|
1226
1058
|
import { asBlockBoundWitness, AttoXL1, BlockNumberSchema, defaultRewardRatio, XYO_STEP_REWARD_ADDRESS } from "@xyo-network/xl1-protocol";
|
|
1227
|
-
import { AbstractCreatableProvider as AbstractCreatableProvider2, AccountBalanceViewerMoniker, BlockRewardViewerMoniker as BlockRewardViewerMoniker2, BlockRunnerMoniker, creatableProvider, createDeclarationIntent as createDeclarationIntent2, MempoolRunnerMoniker, MempoolViewerMoniker as MempoolViewerMoniker2, TimeSyncViewerMoniker } from "@xyo-network/xl1-protocol-sdk";
|
|
1059
|
+
import { AbstractCreatableProvider as AbstractCreatableProvider2, AccountBalanceViewerMoniker, BlockRewardViewerMoniker as BlockRewardViewerMoniker2, BlockRunnerMoniker, BlockValidationViewerMoniker, creatableProvider, createDeclarationIntent as createDeclarationIntent2, MempoolRunnerMoniker, MempoolViewerMoniker as MempoolViewerMoniker2, TimeSyncViewerMoniker } from "@xyo-network/xl1-protocol-sdk";
|
|
1228
1060
|
|
|
1229
1061
|
// src/simple/block/runner/generateTransactionFeeTransfers.ts
|
|
1230
1062
|
import { hexFromBigInt } from "@xylabs/sdk-js";
|
|
1231
|
-
import { assertEx as
|
|
1063
|
+
import { assertEx as assertEx11 } from "@xylabs/sdk-js";
|
|
1232
1064
|
import { PayloadBuilder as PayloadBuilder4 } from "@xyo-network/payload-builder";
|
|
1233
1065
|
import { TransferSchema, XYO_ZERO_ADDRESS } from "@xyo-network/xl1-protocol";
|
|
1234
1066
|
import { transactionRequiredGas } from "@xyo-network/xl1-protocol-sdk";
|
|
@@ -1263,7 +1095,7 @@ async function generateTransactionFeeTransfers(address, transactions) {
|
|
|
1263
1095
|
return payload;
|
|
1264
1096
|
});
|
|
1265
1097
|
for (const [from, amount] of Object.entries(txGasCosts)) {
|
|
1266
|
-
const fromPayload =
|
|
1098
|
+
const fromPayload = assertEx11(payloads.find((p) => p.from === from), () => "from payload not found");
|
|
1267
1099
|
fromPayload.transfers[address] = hexFromBigInt(amount);
|
|
1268
1100
|
}
|
|
1269
1101
|
return payloads;
|
|
@@ -1297,6 +1129,7 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1297
1129
|
_accountBalanceViewer;
|
|
1298
1130
|
_address;
|
|
1299
1131
|
_blockRewardViewer;
|
|
1132
|
+
_blockValidationViewer;
|
|
1300
1133
|
_mempoolRunner;
|
|
1301
1134
|
_mempoolViewer;
|
|
1302
1135
|
_rewardAddress;
|
|
@@ -1333,6 +1166,9 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1333
1166
|
get blockRewardViewer() {
|
|
1334
1167
|
return this._blockRewardViewer;
|
|
1335
1168
|
}
|
|
1169
|
+
get blockValidationViewer() {
|
|
1170
|
+
return this._blockValidationViewer;
|
|
1171
|
+
}
|
|
1336
1172
|
// protected get electionService() {
|
|
1337
1173
|
// return assertEx(this.params.electionService, () => 'electionService is required')
|
|
1338
1174
|
// }
|
|
@@ -1349,7 +1185,7 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1349
1185
|
return this._rejectedTransactionsArchivist;
|
|
1350
1186
|
}
|
|
1351
1187
|
get rewardAddress() {
|
|
1352
|
-
return
|
|
1188
|
+
return assertEx12(this.params.rewardAddress, () => "No reward address provided");
|
|
1353
1189
|
}
|
|
1354
1190
|
// protected get stakeIntentService(): StakeIntentService {
|
|
1355
1191
|
// return assertEx(this.params.stakeIntentService, () => 'No StakeIntentService provided')
|
|
@@ -1362,11 +1198,12 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1362
1198
|
// }
|
|
1363
1199
|
async createHandler() {
|
|
1364
1200
|
this._rejectedTransactionsArchivist = this.params.rejectedTransactionsArchivist ?? await MemoryArchivist2.create();
|
|
1365
|
-
this._account =
|
|
1366
|
-
this._rewardAddress =
|
|
1201
|
+
this._account = assertEx12(this.params.account, () => "Account is required");
|
|
1202
|
+
this._rewardAddress = assertEx12(this.params.rewardAddress, () => "No reward address provided");
|
|
1367
1203
|
this._address = this.account.address;
|
|
1368
1204
|
this._accountBalanceViewer = await this.locateAndCreate(AccountBalanceViewerMoniker);
|
|
1369
1205
|
this._blockRewardViewer = await this.locateAndCreate(BlockRewardViewerMoniker2);
|
|
1206
|
+
this._blockValidationViewer = await this.locator.getInstance(BlockValidationViewerMoniker);
|
|
1370
1207
|
this._mempoolRunner = await this.locateAndCreate(MempoolRunnerMoniker);
|
|
1371
1208
|
this._mempoolViewer = await this.locateAndCreate(MempoolViewerMoniker2);
|
|
1372
1209
|
this._timeSyncViewer = await this.locateAndCreate(TimeSyncViewerMoniker);
|
|
@@ -1376,7 +1213,7 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1376
1213
|
}
|
|
1377
1214
|
async produceNextBlock(head, force) {
|
|
1378
1215
|
const result = await this.proposeNextValidBlock(head);
|
|
1379
|
-
return force ?
|
|
1216
|
+
return force ? assertEx12(result, () => "Failed to produce next block") : result;
|
|
1380
1217
|
}
|
|
1381
1218
|
async getBlockRewardTransfers(block) {
|
|
1382
1219
|
if (!this._blockRewardDiviner) {
|
|
@@ -1413,7 +1250,7 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1413
1250
|
async proposeNextValidBlock(head, validateBalances = false, force = false) {
|
|
1414
1251
|
return await this.spanAsync("proposeNextValidBlock", async () => {
|
|
1415
1252
|
try {
|
|
1416
|
-
const { block: previousBlock } =
|
|
1253
|
+
const { block: previousBlock } = assertEx12(asBlockBoundWitness(head), () => "Invalid head block");
|
|
1417
1254
|
const nextBlock = previousBlock + 1;
|
|
1418
1255
|
const nextBlockTransactions = await this.mempoolViewer.pendingTransactions({
|
|
1419
1256
|
limit: _SimpleBlockRunner.DefaultBlockSize
|
|
@@ -1443,11 +1280,23 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1443
1280
|
this.account
|
|
1444
1281
|
], XYO_STEP_REWARD_ADDRESS, stepRewardPoolBalance);
|
|
1445
1282
|
this.logger?.info(`Built block ${block[0].block} in ${Date.now() - startBuild}ms with ${block[1].length} payloads`);
|
|
1446
|
-
|
|
1447
|
-
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1283
|
+
this.logger?.info(`Validating block ${block[0].block} with ${block[1].length} payloads`);
|
|
1284
|
+
const startValidate = Date.now();
|
|
1285
|
+
const errors = await this.blockValidationViewer.validateBlock(block);
|
|
1286
|
+
this.logger?.info(`Validated block ${block[0].block} in ${Date.now() - startValidate}ms with ${block[1].length} payloads`);
|
|
1287
|
+
if (errors.length > 0) {
|
|
1288
|
+
this.logger?.warn(`Validation of produced block failed: ${errors.at(0)?.message}`);
|
|
1289
|
+
const rejectedTransactions = block[1];
|
|
1290
|
+
await this.rejectedTransactionsArchivist.insert(rejectedTransactions);
|
|
1291
|
+
} else {
|
|
1292
|
+
await this.mempoolRunner.submitBlocks([
|
|
1293
|
+
block
|
|
1294
|
+
]);
|
|
1295
|
+
return block;
|
|
1296
|
+
}
|
|
1297
|
+
} catch (error) {
|
|
1298
|
+
this.logger?.error(`Error proposing next valid block: ${error.message}`);
|
|
1299
|
+
throw error;
|
|
1451
1300
|
}
|
|
1452
1301
|
});
|
|
1453
1302
|
}
|
|
@@ -1486,7 +1335,7 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1486
1335
|
*/
|
|
1487
1336
|
heartbeatRequired(head) {
|
|
1488
1337
|
const epoch = head.$epoch;
|
|
1489
|
-
if (
|
|
1338
|
+
if (isDefined7(epoch)) {
|
|
1490
1339
|
const { heartbeatInterval } = this.params.context.config.producer;
|
|
1491
1340
|
if (Date.now() - epoch > heartbeatInterval) {
|
|
1492
1341
|
return true;
|
|
@@ -1526,12 +1375,12 @@ var mapBoundWitnessToStakeIntentHashes = /* @__PURE__ */ __name((bw) => {
|
|
|
1526
1375
|
}, "mapBoundWitnessToStakeIntentHashes");
|
|
1527
1376
|
|
|
1528
1377
|
// src/StakeIntent/XyoStakeIntentService.ts
|
|
1529
|
-
import { asAddress as asAddress2, assertEx as
|
|
1378
|
+
import { asAddress as asAddress2, assertEx as assertEx13, creatable as creatable8, filterAs as filterAs3, isUndefined as isUndefined2 } from "@xylabs/sdk-js";
|
|
1530
1379
|
import { analyzeChain, ChainStakeIntentAnalyzer, isChainSummaryStakeIntent } from "@xyo-network/chain-analyze";
|
|
1531
1380
|
import { DEFAULT_FIND_FIRST_MATCHING_NEXT_OPTIONS, findFirstMatching, IntervalMap } from "@xyo-network/chain-utils";
|
|
1532
1381
|
import { PayloadBuilder as PayloadBuilder6 } from "@xyo-network/payload-builder";
|
|
1533
1382
|
import { asBlockBoundWitness as asBlockBoundWitness2, asBlockBoundWitnessWithStorageMeta, asChainStakeIntent as asChainStakeIntent2 } from "@xyo-network/xl1-protocol";
|
|
1534
|
-
import { asChainIndexingServiceStateWithStorageMeta, BlockViewerMoniker as BlockViewerMoniker3, ChainIndexingServiceStateSchema, ChainStakeViewerMoniker, isChainIndexingServiceState, readPayloadMapFromStore, timeBudget
|
|
1383
|
+
import { asChainIndexingServiceStateWithStorageMeta, BlockViewerMoniker as BlockViewerMoniker3, ChainIndexingServiceStateSchema, ChainStakeViewerMoniker, isChainIndexingServiceState, readPayloadMapFromStore, timeBudget } from "@xyo-network/xl1-protocol-sdk";
|
|
1535
1384
|
import { Mutex as Mutex3 } from "async-mutex";
|
|
1536
1385
|
import { LRUCache } from "lru-cache";
|
|
1537
1386
|
function _ts_decorate9(decorators, target, key, desc) {
|
|
@@ -1568,19 +1417,19 @@ var XyoStakeIntentService = class extends BaseService {
|
|
|
1568
1417
|
return this._blockViewer;
|
|
1569
1418
|
}
|
|
1570
1419
|
get chainArchivist() {
|
|
1571
|
-
return
|
|
1420
|
+
return assertEx13(this.params.chainArchivist, () => "chainArchivist not set");
|
|
1572
1421
|
}
|
|
1573
1422
|
get chainStakeViewer() {
|
|
1574
1423
|
return this._chainStakeViewer;
|
|
1575
1424
|
}
|
|
1576
1425
|
get stakeIntentStateArchivist() {
|
|
1577
|
-
return
|
|
1426
|
+
return assertEx13(this.params.stakeIntentStateArchivist, () => "stakeIntentStateArchivist not set");
|
|
1578
1427
|
}
|
|
1579
1428
|
static async paramsHandler(params) {
|
|
1580
1429
|
return {
|
|
1581
1430
|
...await super.paramsHandler(params),
|
|
1582
|
-
chainArchivist:
|
|
1583
|
-
stakeIntentStateArchivist:
|
|
1431
|
+
chainArchivist: assertEx13(params?.chainArchivist, () => "chainArchivist is required"),
|
|
1432
|
+
stakeIntentStateArchivist: assertEx13(params?.stakeIntentStateArchivist, () => "stakeIntentStateArchivist is required")
|
|
1584
1433
|
};
|
|
1585
1434
|
}
|
|
1586
1435
|
async createHandler() {
|
|
@@ -1592,13 +1441,13 @@ var XyoStakeIntentService = class extends BaseService {
|
|
|
1592
1441
|
}
|
|
1593
1442
|
async getDeclaredCandidateRanges(address, intent) {
|
|
1594
1443
|
await Promise.resolve();
|
|
1595
|
-
|
|
1444
|
+
assertEx13(intent === "producer", () => `Support not yet added for intent ${intent}`);
|
|
1596
1445
|
const results = this._producers.get(address);
|
|
1597
1446
|
return results ?? [];
|
|
1598
1447
|
}
|
|
1599
1448
|
async getDeclaredCandidatesForBlock(block, intent) {
|
|
1600
1449
|
return await this.spanAsync("getDeclaredCandidatesForBlock", async () => {
|
|
1601
|
-
|
|
1450
|
+
assertEx13(intent === "producer", () => `Support not yet added for intent ${intent}`);
|
|
1602
1451
|
const results = this._producers.findAllContaining(block);
|
|
1603
1452
|
const candidates = [
|
|
1604
1453
|
...results
|
|
@@ -1663,8 +1512,8 @@ var XyoStakeIntentService = class extends BaseService {
|
|
|
1663
1512
|
]);
|
|
1664
1513
|
}
|
|
1665
1514
|
async recoverState(current) {
|
|
1666
|
-
return await
|
|
1667
|
-
const currentBlock =
|
|
1515
|
+
return await timeBudget("XyoStakeIntentService.recoverState", console, async () => {
|
|
1516
|
+
const currentBlock = assertEx13(asBlockBoundWitness2((await this.chainArchivist.get([
|
|
1668
1517
|
current
|
|
1669
1518
|
]))?.[0]), () => `Block ${current} not found`);
|
|
1670
1519
|
const currentBlockNum = currentBlock.block;
|
|
@@ -1706,7 +1555,7 @@ var XyoStakeIntentService = class extends BaseService {
|
|
|
1706
1555
|
return await this.spanAsync("updateIndex", async () => {
|
|
1707
1556
|
const currentHead = (await this.blockViewer.currentBlock())[0];
|
|
1708
1557
|
if (isUndefined2(currentHead)) return;
|
|
1709
|
-
return await
|
|
1558
|
+
return await timeBudget("XyoStakeIntentService.updateIndex", console, async () => {
|
|
1710
1559
|
const currentHeadHash = currentHead._hash;
|
|
1711
1560
|
const chainMap = readPayloadMapFromStore(this.chainArchivist);
|
|
1712
1561
|
const result = await analyzeChain({
|
|
@@ -1789,17 +1638,8 @@ export {
|
|
|
1789
1638
|
creatableService,
|
|
1790
1639
|
createBootstrapHead,
|
|
1791
1640
|
getBlockSignedStakeDeclarations,
|
|
1792
|
-
initAccountBalanceService,
|
|
1793
|
-
initBlockRewardViewer,
|
|
1794
|
-
initBlockViewer,
|
|
1795
1641
|
initChainService,
|
|
1796
|
-
initEvmBlockRewardViewer,
|
|
1797
1642
|
initEvmProvider,
|
|
1798
|
-
initMemoryChainService
|
|
1799
|
-
initMempoolRunner,
|
|
1800
|
-
initMempoolViewer,
|
|
1801
|
-
initPendingTransactions,
|
|
1802
|
-
initXyoBlockRewardViewer,
|
|
1803
|
-
submitNewChain
|
|
1643
|
+
initMemoryChainService
|
|
1804
1644
|
};
|
|
1805
1645
|
//# sourceMappingURL=index.mjs.map
|