@xyo-network/chain-services 1.16.22 → 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/neutral/AccountBalance/BaseAccountBalanceService.d.ts +8 -7
- package/dist/neutral/AccountBalance/BaseAccountBalanceService.d.ts.map +1 -1
- package/dist/neutral/AccountBalance/accountBalanceServiceFromArchivist.d.ts +2 -2
- package/dist/neutral/AccountBalance/accountBalanceServiceFromArchivist.d.ts.map +1 -1
- package/dist/neutral/BlockProducer/BaseBlockProducerService.d.ts +3 -3
- package/dist/neutral/BlockProducer/BaseBlockProducerService.d.ts.map +1 -1
- package/dist/neutral/ChainService/Memory/Memory.d.ts +3 -0
- package/dist/neutral/ChainService/Memory/Memory.d.ts.map +1 -1
- package/dist/neutral/PendingTransactions/BasePendingTransactions.d.ts.map +1 -1
- package/dist/neutral/Schemas/BaseSchemasService.d.ts +13 -0
- package/dist/neutral/Schemas/BaseSchemasService.d.ts.map +1 -0
- package/dist/neutral/Schemas/index.d.ts +2 -0
- package/dist/neutral/Schemas/index.d.ts.map +1 -0
- package/dist/neutral/StakeIntent/XyoStakeIntentService.d.ts.map +1 -1
- package/dist/neutral/index.d.ts +1 -0
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +151 -95
- package/dist/neutral/index.mjs.map +1 -1
- package/package.json +14 -14
- package/src/AccountBalance/BaseAccountBalanceService.ts +13 -8
- package/src/AccountBalance/accountBalanceServiceFromArchivist.ts +2 -2
- package/src/BlockProducer/BaseBlockProducerService.ts +4 -4
- package/src/ChainService/Memory/Memory.ts +14 -4
- package/src/PendingTransactions/BasePendingTransactions.ts +12 -0
- package/src/Schemas/BaseSchemasService.ts +34 -0
- package/src/Schemas/index.ts +1 -0
- package/src/StakeIntent/XyoStakeIntentService.ts +47 -42
- package/src/index.ts +1 -0
package/dist/neutral/index.mjs
CHANGED
|
@@ -159,8 +159,11 @@ var BaseAccountBalanceService = class extends BaseService {
|
|
|
159
159
|
return result;
|
|
160
160
|
});
|
|
161
161
|
}
|
|
162
|
-
|
|
163
|
-
|
|
162
|
+
accountsBalances(address, headOrRange) {
|
|
163
|
+
throw new Error("Method not implemented.");
|
|
164
|
+
}
|
|
165
|
+
async accountsBalancesHistory(addresses, headOrRange) {
|
|
166
|
+
return await this.accountBalanceViewer.accountsBalancesHistory(addresses, headOrRange);
|
|
164
167
|
}
|
|
165
168
|
createHandler() {
|
|
166
169
|
this.blockViewer = blockViewerFromChainIteratorAndArchivist(this.params.chainIterator, this.params.chainArchivist);
|
|
@@ -441,7 +444,7 @@ var BaseBlockProducerService = class _BaseBlockProducerService extends BaseServi
|
|
|
441
444
|
blockPayloads.push(...fundedTransfers, timePayload);
|
|
442
445
|
this.logger?.info(`Building block ${head.block + 1}`);
|
|
443
446
|
const startBuild = Date.now();
|
|
444
|
-
const stepRewardPoolBalance = (await this.balanceService.
|
|
447
|
+
const stepRewardPoolBalance = (await this.balanceService.accountsBalances([
|
|
445
448
|
XYO_STEP_REWARD_ADDRESS
|
|
446
449
|
]))[XYO_STEP_REWARD_ADDRESS];
|
|
447
450
|
const block = await buildNextBlock(head, fundedNextBlockTransactions, blockPayloads, [
|
|
@@ -471,7 +474,7 @@ var BaseBlockProducerService = class _BaseBlockProducerService extends BaseServi
|
|
|
471
474
|
if (!transfer) return;
|
|
472
475
|
const totalTransferCost = Object.values(transfer?.transfers).reduce((acc, t) => acc + hexToBigInt(t ?? "00"), 0n);
|
|
473
476
|
if (validateBalances) {
|
|
474
|
-
const balance = (await this.balanceService.
|
|
477
|
+
const balance = (await this.balanceService.accountsBalances([
|
|
475
478
|
transfer.from
|
|
476
479
|
]))[transfer.from] ?? AttoXL13(0n);
|
|
477
480
|
if (balance >= totalTransferCost) {
|
|
@@ -807,14 +810,15 @@ var EvmChainService = class extends BaseService {
|
|
|
807
810
|
};
|
|
808
811
|
|
|
809
812
|
// src/ChainService/Memory/Memory.ts
|
|
810
|
-
import { ZERO_ADDRESS } from "@xylabs/sdk-js";
|
|
813
|
+
import { assertEx as assertEx8, toAddress as toAddress2, ZERO_ADDRESS } from "@xylabs/sdk-js";
|
|
811
814
|
var MemoryChainService = class extends BaseService {
|
|
812
815
|
static {
|
|
813
816
|
__name(this, "MemoryChainService");
|
|
814
817
|
}
|
|
818
|
+
_chainId;
|
|
815
819
|
_simulatedStake = 1n;
|
|
816
820
|
get chainId() {
|
|
817
|
-
return
|
|
821
|
+
return assertEx8(this._chainId, () => "Chain ID not set");
|
|
818
822
|
}
|
|
819
823
|
async active() {
|
|
820
824
|
return await Promise.resolve(this._simulatedStake);
|
|
@@ -829,7 +833,7 @@ var MemoryChainService = class extends BaseService {
|
|
|
829
833
|
return await Promise.resolve(true);
|
|
830
834
|
}
|
|
831
835
|
createHandler() {
|
|
832
|
-
const { minStake } = this.params.config.producer;
|
|
836
|
+
const { minStake = 1 } = this.params.config.producer ?? {};
|
|
833
837
|
this._simulatedStake = BigInt(minStake);
|
|
834
838
|
}
|
|
835
839
|
async forkedAtBlockNumber() {
|
|
@@ -868,10 +872,14 @@ var MemoryChainService = class extends BaseService {
|
|
|
868
872
|
async withdrawnByStaker(_staker) {
|
|
869
873
|
return await Promise.resolve(0n);
|
|
870
874
|
}
|
|
875
|
+
async startHandler() {
|
|
876
|
+
await super.startHandler();
|
|
877
|
+
this._chainId = this.params.chainId ?? toAddress2(1n);
|
|
878
|
+
}
|
|
871
879
|
};
|
|
872
880
|
|
|
873
881
|
// src/ChainValidator/XyoValidator.ts
|
|
874
|
-
import { assertEx as
|
|
882
|
+
import { assertEx as assertEx9, creatable as creatable8 } from "@xylabs/sdk-js";
|
|
875
883
|
function _ts_decorate8(decorators, target, key, desc) {
|
|
876
884
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
877
885
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -887,22 +895,22 @@ var XyoValidator = class extends BaseService {
|
|
|
887
895
|
return this.account.address;
|
|
888
896
|
}
|
|
889
897
|
get account() {
|
|
890
|
-
return
|
|
898
|
+
return assertEx9(this.params.account, () => "account is required");
|
|
891
899
|
}
|
|
892
900
|
get chainArchivist() {
|
|
893
|
-
return
|
|
901
|
+
return assertEx9(this.params.chainArchivist, () => "chainArchivist is required");
|
|
894
902
|
}
|
|
895
903
|
get chainInfo() {
|
|
896
|
-
return
|
|
904
|
+
return assertEx9(this.params.chainId, () => "chainInfo is required");
|
|
897
905
|
}
|
|
898
906
|
get electionService() {
|
|
899
|
-
return
|
|
907
|
+
return assertEx9(this.params.electionService, () => "electionService is required");
|
|
900
908
|
}
|
|
901
909
|
get pendingBundledTransactionsArchivist() {
|
|
902
|
-
return
|
|
910
|
+
return assertEx9(this.params.pendingBundledTransactionsArchivist, () => "pendingBundledTransactions is required");
|
|
903
911
|
}
|
|
904
912
|
get rewardService() {
|
|
905
|
-
return
|
|
913
|
+
return assertEx9(this.params.rewardService, () => "rewardService is required");
|
|
906
914
|
}
|
|
907
915
|
validatePendingBlock(_block) {
|
|
908
916
|
return [];
|
|
@@ -921,7 +929,7 @@ XyoValidator = _ts_decorate8([
|
|
|
921
929
|
], XyoValidator);
|
|
922
930
|
|
|
923
931
|
// src/Election/BaseElectionService.ts
|
|
924
|
-
import { assertEx as
|
|
932
|
+
import { assertEx as assertEx10, creatable as creatable9 } from "@xylabs/sdk-js";
|
|
925
933
|
import { hexToLast4BytesInt, shuffleWithSeed } from "@xyo-network/chain-utils";
|
|
926
934
|
function _ts_decorate9(decorators, target, key, desc) {
|
|
927
935
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -935,13 +943,13 @@ var BaseElectionService = class extends BaseService {
|
|
|
935
943
|
__name(this, "BaseElectionService");
|
|
936
944
|
}
|
|
937
945
|
get chainIterator() {
|
|
938
|
-
return
|
|
946
|
+
return assertEx10(this.params.chainIterator, () => "No chain iterator");
|
|
939
947
|
}
|
|
940
948
|
get chainStakeViewer() {
|
|
941
|
-
return
|
|
949
|
+
return assertEx10(this.params.chainStakeViewer, () => "No chain stake viewer");
|
|
942
950
|
}
|
|
943
951
|
get stakeIntentService() {
|
|
944
|
-
return
|
|
952
|
+
return assertEx10(this.params.stakeIntentService, () => "No staked intent service");
|
|
945
953
|
}
|
|
946
954
|
async getCreatorCommitteeForNextBlock(current) {
|
|
947
955
|
return await this.spanAsync("getCreatorCommitteeForNextBlock", async () => {
|
|
@@ -1036,7 +1044,7 @@ BaseNetworkStakeStepRewardService = _ts_decorate10([
|
|
|
1036
1044
|
|
|
1037
1045
|
// src/PendingTransactions/BasePendingTransactions.ts
|
|
1038
1046
|
import { ValueType } from "@opentelemetry/api";
|
|
1039
|
-
import { assertEx as
|
|
1047
|
+
import { assertEx as assertEx11, creatable as creatable11, exists as exists2, filterAs, filterAsync, forget, isDefined as isDefined4, isUndefined as isUndefined2 } from "@xylabs/sdk-js";
|
|
1040
1048
|
import { MemoryArchivist } from "@xyo-network/archivist-memory";
|
|
1041
1049
|
import { findMostRecentBlock as findMostRecentBlock2 } from "@xyo-network/chain-protocol";
|
|
1042
1050
|
import { asBlockBoundWitnessWithHashMeta, isTransactionBoundWitnessWithStorageMeta } from "@xyo-network/xl1-protocol";
|
|
@@ -1130,23 +1138,23 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
|
|
|
1130
1138
|
return this.params.additionalPendingTransactionValidators ?? [];
|
|
1131
1139
|
}
|
|
1132
1140
|
get chainArchivist() {
|
|
1133
|
-
return
|
|
1141
|
+
return assertEx11(this.params.chainArchivist, () => "No completed blocks with data archivist");
|
|
1134
1142
|
}
|
|
1135
1143
|
get chainId() {
|
|
1136
|
-
return
|
|
1144
|
+
return assertEx11(this.params.chainId, () => "No chain id");
|
|
1137
1145
|
}
|
|
1138
1146
|
get pendingBundledTransactionsArchivist() {
|
|
1139
|
-
return
|
|
1147
|
+
return assertEx11(this.params.pendingBundledTransactionsArchivist, () => "No pending bundled transactions archivist");
|
|
1140
1148
|
}
|
|
1141
1149
|
get pendingBundledTransactionsLocalArchivist() {
|
|
1142
|
-
return
|
|
1150
|
+
return assertEx11(this._curatedPendingBundledTransactionsArchivist, () => "No pending bundled transactions curated archivist");
|
|
1143
1151
|
}
|
|
1144
1152
|
get pendingTransactionsCount() {
|
|
1145
1153
|
forget(this.countPendingTransactions());
|
|
1146
1154
|
return this._pendingTransactionsCount;
|
|
1147
1155
|
}
|
|
1148
1156
|
get rejectedTransactionsArchivist() {
|
|
1149
|
-
return
|
|
1157
|
+
return assertEx11(this.params.rejectedTransactionsArchivist, () => "No rejected transactions archivist");
|
|
1150
1158
|
}
|
|
1151
1159
|
async createHandler() {
|
|
1152
1160
|
await super.createHandler();
|
|
@@ -1201,6 +1209,13 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
|
|
|
1201
1209
|
}, this.additionalPendingTransactionValidators)
|
|
1202
1210
|
]));
|
|
1203
1211
|
const validTransactions = txValidationResults.filter(([, errors]) => errors.length === 0).map(([tx]) => tx);
|
|
1212
|
+
const invalidTransactions = txValidationResults.filter(([, errors]) => errors.length > 0).map(([tx]) => tx);
|
|
1213
|
+
if (invalidTransactions.length > 0) {
|
|
1214
|
+
this.logger?.warn(`getPendingTransactions: Found ${invalidTransactions.length} invalid pending transactions`);
|
|
1215
|
+
for (const tx of invalidTransactions) {
|
|
1216
|
+
this.logger?.warn(tx[0]._hash);
|
|
1217
|
+
}
|
|
1218
|
+
}
|
|
1204
1219
|
foundPendingTransactions.push(...validTransactions);
|
|
1205
1220
|
}
|
|
1206
1221
|
if (foundPendingTransactions.length > 0) {
|
|
@@ -1318,6 +1333,42 @@ BasePendingTransactionsService = _ts_decorate11([
|
|
|
1318
1333
|
var isTransactionExpired = /* @__PURE__ */ __name((block) => ([txBw]) => txBw.exp < block, "isTransactionExpired");
|
|
1319
1334
|
var isTransactionActive = /* @__PURE__ */ __name((block) => ([txBw]) => txBw.nbf <= block && txBw.exp >= block, "isTransactionActive");
|
|
1320
1335
|
|
|
1336
|
+
// src/Schemas/BaseSchemasService.ts
|
|
1337
|
+
import { creatable as creatable12 } from "@xylabs/sdk-js";
|
|
1338
|
+
import { spanRootAsync as spanRootAsync4 } from "@xylabs/telemetry";
|
|
1339
|
+
import { schemasSummary } from "@xyo-network/xl1-protocol-sdk";
|
|
1340
|
+
function _ts_decorate12(decorators, target, key, desc) {
|
|
1341
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1342
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1343
|
+
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;
|
|
1344
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1345
|
+
}
|
|
1346
|
+
__name(_ts_decorate12, "_ts_decorate");
|
|
1347
|
+
var BaseSchemasService = class extends BaseService {
|
|
1348
|
+
static {
|
|
1349
|
+
__name(this, "BaseSchemasService");
|
|
1350
|
+
}
|
|
1351
|
+
async schema(head, schema) {
|
|
1352
|
+
return (await this.schemas(head, [
|
|
1353
|
+
schema
|
|
1354
|
+
]))[schema] ?? 0;
|
|
1355
|
+
}
|
|
1356
|
+
async schemas(head, schemas) {
|
|
1357
|
+
return await spanRootAsync4("transfers", async () => {
|
|
1358
|
+
const summary = await schemasSummary(this.params.context);
|
|
1359
|
+
const result = {};
|
|
1360
|
+
for (const schema of schemas) {
|
|
1361
|
+
const count = summary[schema] ?? 0;
|
|
1362
|
+
result[schema] = count;
|
|
1363
|
+
}
|
|
1364
|
+
return result;
|
|
1365
|
+
});
|
|
1366
|
+
}
|
|
1367
|
+
};
|
|
1368
|
+
BaseSchemasService = _ts_decorate12([
|
|
1369
|
+
creatable12()
|
|
1370
|
+
], BaseSchemasService);
|
|
1371
|
+
|
|
1321
1372
|
// src/StakeIntent/lib/getBlockSignedStakeDeclarations.ts
|
|
1322
1373
|
import { exists as exists3, filterAs as filterAs2 } from "@xylabs/sdk-js";
|
|
1323
1374
|
import { asOptionalBoundWitness } from "@xyo-network/boundwitness-model";
|
|
@@ -1345,21 +1396,21 @@ var mapBoundWitnessToStakeIntentHashes = /* @__PURE__ */ __name((bw) => {
|
|
|
1345
1396
|
}, "mapBoundWitnessToStakeIntentHashes");
|
|
1346
1397
|
|
|
1347
1398
|
// src/StakeIntent/XyoStakeIntentService.ts
|
|
1348
|
-
import { asAddress, assertEx as
|
|
1399
|
+
import { asAddress, assertEx as assertEx12, creatable as creatable13, filterAs as filterAs3, isUndefined as isUndefined3 } from "@xylabs/sdk-js";
|
|
1349
1400
|
import { analyzeChain, ChainStakeIntentAnalyzer, isChainSummaryStakeIntent } from "@xyo-network/chain-analyze";
|
|
1350
1401
|
import { DEFAULT_FIND_FIRST_MATCHING_NEXT_OPTIONS, findFirstMatching, IntervalMap } from "@xyo-network/chain-utils";
|
|
1351
1402
|
import { PayloadBuilder as PayloadBuilder7 } from "@xyo-network/payload-builder";
|
|
1352
1403
|
import { asBlockBoundWitness as asBlockBoundWitness3, asBlockBoundWitnessWithStorageMeta as asBlockBoundWitnessWithStorageMeta3, asChainStakeIntent as asChainStakeIntent2 } from "@xyo-network/xl1-protocol";
|
|
1353
|
-
import { asChainIndexingServiceStateWithStorageMeta, ChainIndexingServiceStateSchema, isChainIndexingServiceState, readPayloadMapFromStore as readPayloadMapFromStore2 } from "@xyo-network/xl1-protocol-sdk";
|
|
1404
|
+
import { asChainIndexingServiceStateWithStorageMeta, ChainIndexingServiceStateSchema, isChainIndexingServiceState, readPayloadMapFromStore as readPayloadMapFromStore2, timeBudget } from "@xyo-network/xl1-protocol-sdk";
|
|
1354
1405
|
import { Mutex as Mutex3 } from "async-mutex";
|
|
1355
1406
|
import { LRUCache as LRUCache2 } from "lru-cache";
|
|
1356
|
-
function
|
|
1407
|
+
function _ts_decorate13(decorators, target, key, desc) {
|
|
1357
1408
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1358
1409
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1359
1410
|
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;
|
|
1360
1411
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1361
1412
|
}
|
|
1362
|
-
__name(
|
|
1413
|
+
__name(_ts_decorate13, "_ts_decorate");
|
|
1363
1414
|
var ACTIVE_STAKE_TTL = 1e3 * 60 * 60 * 2;
|
|
1364
1415
|
var NO_ACTIVE_STAKE_TTL = 1e3 * 2;
|
|
1365
1416
|
var STAKE_CACHE_MAX_ENTRIES = 1e4;
|
|
@@ -1382,16 +1433,16 @@ var XyoStakeIntentService = class extends BaseService {
|
|
|
1382
1433
|
});
|
|
1383
1434
|
_updateMutex = new Mutex3();
|
|
1384
1435
|
get chainArchivist() {
|
|
1385
|
-
return
|
|
1436
|
+
return assertEx12(this.params.chainArchivist, () => "chainArchivist not set");
|
|
1386
1437
|
}
|
|
1387
1438
|
get chainIterator() {
|
|
1388
|
-
return
|
|
1439
|
+
return assertEx12(this.params.chainIterator, () => "chainIterator not set");
|
|
1389
1440
|
}
|
|
1390
1441
|
get chainStakeViewer() {
|
|
1391
|
-
return
|
|
1442
|
+
return assertEx12(this.params.chainStakeViewer, () => "chainStakeViewer not set");
|
|
1392
1443
|
}
|
|
1393
1444
|
get stakeIntentStateArchivist() {
|
|
1394
|
-
return
|
|
1445
|
+
return assertEx12(this.params.stakeIntentStateArchivist, () => "stakeIntentStateArchivist not set");
|
|
1395
1446
|
}
|
|
1396
1447
|
async createHandler() {
|
|
1397
1448
|
this.chainIterator.on("headUpdated", async () => {
|
|
@@ -1404,13 +1455,13 @@ var XyoStakeIntentService = class extends BaseService {
|
|
|
1404
1455
|
}
|
|
1405
1456
|
async getDeclaredCandidateRanges(address, intent) {
|
|
1406
1457
|
await Promise.resolve();
|
|
1407
|
-
|
|
1458
|
+
assertEx12(intent === "producer", () => `Support not yet added for intent ${intent}`);
|
|
1408
1459
|
const results = this._producers.get(address);
|
|
1409
1460
|
return results ?? [];
|
|
1410
1461
|
}
|
|
1411
1462
|
async getDeclaredCandidatesForBlock(block, intent) {
|
|
1412
1463
|
return await this.spanAsync("getDeclaredCandidatesForBlock", async () => {
|
|
1413
|
-
|
|
1464
|
+
assertEx12(intent === "producer", () => `Support not yet added for intent ${intent}`);
|
|
1414
1465
|
const results = this._producers.findAllContaining(block);
|
|
1415
1466
|
const candidates = [
|
|
1416
1467
|
...results
|
|
@@ -1475,38 +1526,40 @@ var XyoStakeIntentService = class extends BaseService {
|
|
|
1475
1526
|
]);
|
|
1476
1527
|
}
|
|
1477
1528
|
async recoverState(current) {
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
const
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1529
|
+
return await timeBudget("XyoStakeIntentService.recoverState", console, async () => {
|
|
1530
|
+
const currentBlock = assertEx12(asBlockBoundWitness3((await this.chainArchivist.get([
|
|
1531
|
+
current
|
|
1532
|
+
]))?.[0]), () => `Block ${current} not found`);
|
|
1533
|
+
const currentBlockNum = currentBlock.block;
|
|
1534
|
+
const opts = {
|
|
1535
|
+
...DEFAULT_FIND_FIRST_MATCHING_NEXT_OPTIONS
|
|
1536
|
+
};
|
|
1537
|
+
while (true) {
|
|
1538
|
+
const predicate = /* @__PURE__ */ __name((p) => {
|
|
1539
|
+
const state2 = asChainIndexingServiceStateWithStorageMeta(p);
|
|
1540
|
+
return state2 ? true : false;
|
|
1541
|
+
}, "predicate");
|
|
1542
|
+
const state = await findFirstMatching(this.stakeIntentStateArchivist, predicate, opts);
|
|
1543
|
+
if (isChainIndexingServiceState(state)) {
|
|
1544
|
+
const indexed = (await this.chainArchivist.get([
|
|
1545
|
+
state.endBlockHash
|
|
1546
|
+
]))?.[0];
|
|
1547
|
+
const indexedBlock = asBlockBoundWitnessWithStorageMeta3(indexed);
|
|
1548
|
+
if (indexedBlock) {
|
|
1549
|
+
const indexedBlockNum = indexedBlock.block;
|
|
1550
|
+
if (indexedBlockNum <= currentBlockNum) {
|
|
1551
|
+
const data = state.state;
|
|
1552
|
+
this._producers = new IntervalMap(data);
|
|
1553
|
+
this._lastIndexedBlockHash = indexedBlock._hash;
|
|
1554
|
+
break;
|
|
1555
|
+
}
|
|
1503
1556
|
}
|
|
1557
|
+
} else {
|
|
1558
|
+
break;
|
|
1504
1559
|
}
|
|
1505
|
-
|
|
1506
|
-
break;
|
|
1560
|
+
opts.open = true;
|
|
1507
1561
|
}
|
|
1508
|
-
|
|
1509
|
-
}
|
|
1562
|
+
}, 2e3, true);
|
|
1510
1563
|
}
|
|
1511
1564
|
async updateIndex(displayProgress = false) {
|
|
1512
1565
|
if (this._updateMutex.isLocked()) {
|
|
@@ -1516,44 +1569,46 @@ var XyoStakeIntentService = class extends BaseService {
|
|
|
1516
1569
|
return await this.spanAsync("updateIndex", async () => {
|
|
1517
1570
|
const currentHead = await this.chainIterator.head();
|
|
1518
1571
|
if (isUndefined3(currentHead)) return;
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
const
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1572
|
+
return await timeBudget("XyoStakeIntentService.updateIndex", console, async () => {
|
|
1573
|
+
const currentHeadHash = currentHead._hash;
|
|
1574
|
+
const chainMap = readPayloadMapFromStore2(this.chainArchivist);
|
|
1575
|
+
const result = await analyzeChain({
|
|
1576
|
+
chainMap
|
|
1577
|
+
}, [
|
|
1578
|
+
new ChainStakeIntentAnalyzer("producer")
|
|
1579
|
+
], currentHeadHash, this._lastIndexedBlockHash);
|
|
1580
|
+
const signedDeclarations = filterAs3(result.find(isChainSummaryStakeIntent)?.intents ?? [], asChainStakeIntent2);
|
|
1581
|
+
if (currentHead.block === void 0) return;
|
|
1582
|
+
const currentHeadBlockNum = currentHead.block;
|
|
1583
|
+
if (displayProgress) this.logger?.log(`Updating index through 0x${currentHeadBlockNum}`);
|
|
1584
|
+
for (const signedDeclaration of signedDeclarations) {
|
|
1585
|
+
const { exp, nbf } = signedDeclaration;
|
|
1586
|
+
const start = nbf;
|
|
1587
|
+
const stop = exp;
|
|
1588
|
+
const address = asAddress(signedDeclaration?.from);
|
|
1589
|
+
if (start !== void 0 && stop !== void 0 && address !== void 0) {
|
|
1590
|
+
this._producers.insert(address, start, stop);
|
|
1591
|
+
}
|
|
1537
1592
|
}
|
|
1538
|
-
|
|
1539
|
-
|
|
1593
|
+
this._lastIndexedBlockHash = currentHeadHash;
|
|
1594
|
+
}, 2e3, true);
|
|
1540
1595
|
});
|
|
1541
1596
|
});
|
|
1542
1597
|
}
|
|
1543
1598
|
};
|
|
1544
|
-
XyoStakeIntentService =
|
|
1545
|
-
|
|
1599
|
+
XyoStakeIntentService = _ts_decorate13([
|
|
1600
|
+
creatable13()
|
|
1546
1601
|
], XyoStakeIntentService);
|
|
1547
1602
|
|
|
1548
1603
|
// src/StepStake/BaseStepStakeService.ts
|
|
1549
|
-
import { creatable as
|
|
1550
|
-
function
|
|
1604
|
+
import { creatable as creatable14 } from "@xylabs/sdk-js";
|
|
1605
|
+
function _ts_decorate14(decorators, target, key, desc) {
|
|
1551
1606
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1552
1607
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1553
1608
|
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;
|
|
1554
1609
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1555
1610
|
}
|
|
1556
|
-
__name(
|
|
1611
|
+
__name(_ts_decorate14, "_ts_decorate");
|
|
1557
1612
|
var BaseStepStakeService = class extends BaseService {
|
|
1558
1613
|
static {
|
|
1559
1614
|
__name(this, "BaseStepStakeService");
|
|
@@ -1565,20 +1620,20 @@ var BaseStepStakeService = class extends BaseService {
|
|
|
1565
1620
|
throw new Error("Method not implemented.");
|
|
1566
1621
|
}
|
|
1567
1622
|
};
|
|
1568
|
-
BaseStepStakeService =
|
|
1569
|
-
|
|
1623
|
+
BaseStepStakeService = _ts_decorate14([
|
|
1624
|
+
creatable14()
|
|
1570
1625
|
], BaseStepStakeService);
|
|
1571
1626
|
|
|
1572
1627
|
// src/Time/BaseTimeSyncService.ts
|
|
1573
|
-
import { creatable as
|
|
1628
|
+
import { creatable as creatable15 } from "@xylabs/sdk-js";
|
|
1574
1629
|
import { SimpleTimeSyncViewer } from "@xyo-network/xl1-protocol-sdk";
|
|
1575
|
-
function
|
|
1630
|
+
function _ts_decorate15(decorators, target, key, desc) {
|
|
1576
1631
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1577
1632
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1578
1633
|
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;
|
|
1579
1634
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1580
1635
|
}
|
|
1581
|
-
__name(
|
|
1636
|
+
__name(_ts_decorate15, "_ts_decorate");
|
|
1582
1637
|
var BaseTimeSyncService = class extends BaseService {
|
|
1583
1638
|
static {
|
|
1584
1639
|
__name(this, "BaseTimeSyncService");
|
|
@@ -1611,8 +1666,8 @@ var BaseTimeSyncService = class extends BaseService {
|
|
|
1611
1666
|
return await this.timeSyncViewer.currentTimePayload();
|
|
1612
1667
|
}
|
|
1613
1668
|
};
|
|
1614
|
-
BaseTimeSyncService =
|
|
1615
|
-
|
|
1669
|
+
BaseTimeSyncService = _ts_decorate15([
|
|
1670
|
+
creatable15()
|
|
1616
1671
|
], BaseTimeSyncService);
|
|
1617
1672
|
export {
|
|
1618
1673
|
BaseAccountBalanceService,
|
|
@@ -1623,6 +1678,7 @@ export {
|
|
|
1623
1678
|
BaseElectionService,
|
|
1624
1679
|
BaseNetworkStakeStepRewardService,
|
|
1625
1680
|
BasePendingTransactionsService,
|
|
1681
|
+
BaseSchemasService,
|
|
1626
1682
|
BaseService,
|
|
1627
1683
|
BaseStepStakeService,
|
|
1628
1684
|
BaseTimeSyncService,
|