@xyo-network/chain-services 1.15.18 → 1.15.20
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/accountBalanceServiceFromArchivist.d.ts.map +1 -1
- package/dist/neutral/AccountTransfers/accountTransfersServiceFromArchivist.d.ts.map +1 -1
- package/dist/neutral/index.mjs +84 -76
- package/dist/neutral/index.mjs.map +1 -1
- package/package.json +9 -9
- package/src/AccountBalance/accountBalanceServiceFromArchivist.ts +7 -3
- package/src/AccountTransfers/accountTransfersServiceFromArchivist.ts +7 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountBalanceServiceFromArchivist.d.ts","sourceRoot":"","sources":["../../../src/AccountBalance/accountBalanceServiceFromArchivist.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAEjE,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAQjF,eAAO,MAAM,mCAAmC,GAC9C,SAAS,OAAO,EAChB,WAAW,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KACjD,OAAO,CAAC,uBAAuB,
|
|
1
|
+
{"version":3,"file":"accountBalanceServiceFromArchivist.d.ts","sourceRoot":"","sources":["../../../src/AccountBalance/accountBalanceServiceFromArchivist.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAEjE,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAQjF,eAAO,MAAM,mCAAmC,GAC9C,SAAS,OAAO,EAChB,WAAW,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KACjD,OAAO,CAAC,uBAAuB,CAsBjC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accountTransfersServiceFromArchivist.d.ts","sourceRoot":"","sources":["../../../src/AccountTransfers/accountTransfersServiceFromArchivist.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAEjE,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAQjF,eAAO,MAAM,oCAAoC,GAC/C,SAAS,OAAO,EAChB,WAAW,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KACjD,OAAO,CAAC,uBAAuB,
|
|
1
|
+
{"version":3,"file":"accountTransfersServiceFromArchivist.d.ts","sourceRoot":"","sources":["../../../src/AccountTransfers/accountTransfersServiceFromArchivist.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAEjE,OAAO,KAAK,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAA;AAQjF,eAAO,MAAM,oCAAoC,GAC/C,SAAS,OAAO,EAChB,WAAW,aAAa,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,KACjD,OAAO,CAAC,uBAAuB,CAsBjC,CAAA"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -2,8 +2,8 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
|
|
4
4
|
// src/AccountBalance/accountBalanceServiceFromArchivist.ts
|
|
5
|
-
import {
|
|
6
|
-
import { LruCacheMap } from "@xyo-network/chain-protocol";
|
|
5
|
+
import { assertEx } from "@xylabs/assert";
|
|
6
|
+
import { findMostRecentBlock, LruCacheMap } from "@xyo-network/chain-protocol";
|
|
7
7
|
import { StepSizes } from "@xyo-network/xl1-protocol";
|
|
8
8
|
import { readPayloadMapFromStore } from "@xyo-network/xl1-protocol-sdk";
|
|
9
9
|
import { Semaphore } from "async-mutex";
|
|
@@ -104,6 +104,10 @@ var accountBalancesServiceFromArchivist = /* @__PURE__ */ __name(async (chainId,
|
|
|
104
104
|
updateAgeOnGet: true
|
|
105
105
|
});
|
|
106
106
|
const chainMap = readPayloadMapFromStore(archivist);
|
|
107
|
+
const headFunc = /* @__PURE__ */ __name(async () => {
|
|
108
|
+
const head = await findMostRecentBlock(archivist);
|
|
109
|
+
return assertEx(head?._hash, () => "No head found in chainArchivist");
|
|
110
|
+
}, "headFunc");
|
|
107
111
|
const service = await BaseAccountBalanceService.create({
|
|
108
112
|
context: {
|
|
109
113
|
chainId,
|
|
@@ -112,15 +116,15 @@ var accountBalancesServiceFromArchivist = /* @__PURE__ */ __name(async (chainId,
|
|
|
112
116
|
},
|
|
113
117
|
stepSemaphores: StepSizes.map(() => new Semaphore(20)),
|
|
114
118
|
summaryMap,
|
|
115
|
-
head:
|
|
119
|
+
head: headFunc
|
|
116
120
|
}
|
|
117
121
|
});
|
|
118
122
|
return service;
|
|
119
123
|
}, "accountBalancesServiceFromArchivist");
|
|
120
124
|
|
|
121
125
|
// src/AccountTransfers/accountTransfersServiceFromArchivist.ts
|
|
122
|
-
import {
|
|
123
|
-
import { LruCacheMap as LruCacheMap2 } from "@xyo-network/chain-protocol";
|
|
126
|
+
import { assertEx as assertEx2 } from "@xylabs/assert";
|
|
127
|
+
import { findMostRecentBlock as findMostRecentBlock2, LruCacheMap as LruCacheMap2 } from "@xyo-network/chain-protocol";
|
|
124
128
|
import { StepSizes as StepSizes2 } from "@xyo-network/xl1-protocol";
|
|
125
129
|
import { readPayloadMapFromStore as readPayloadMapFromStore2 } from "@xyo-network/xl1-protocol-sdk";
|
|
126
130
|
import { Semaphore as Semaphore2 } from "async-mutex";
|
|
@@ -171,6 +175,10 @@ var accountTransfersServiceFromArchivist = /* @__PURE__ */ __name(async (chainId
|
|
|
171
175
|
updateAgeOnGet: true
|
|
172
176
|
});
|
|
173
177
|
const chainMap = readPayloadMapFromStore2(archivist);
|
|
178
|
+
const headFunc = /* @__PURE__ */ __name(async () => {
|
|
179
|
+
const head = await findMostRecentBlock2(archivist);
|
|
180
|
+
return assertEx2(head?._hash, () => "No head found in chainArchivist");
|
|
181
|
+
}, "headFunc");
|
|
174
182
|
const service = await BaseAccountTransfersService.create({
|
|
175
183
|
context: {
|
|
176
184
|
chainId,
|
|
@@ -179,14 +187,14 @@ var accountTransfersServiceFromArchivist = /* @__PURE__ */ __name(async (chainId
|
|
|
179
187
|
},
|
|
180
188
|
stepSemaphores: StepSizes2.map(() => new Semaphore2(20)),
|
|
181
189
|
summaryMap,
|
|
182
|
-
head:
|
|
190
|
+
head: headFunc
|
|
183
191
|
}
|
|
184
192
|
});
|
|
185
193
|
return service;
|
|
186
194
|
}, "accountTransfersServiceFromArchivist");
|
|
187
195
|
|
|
188
196
|
// src/BlockProducer/BaseBlockProducerService.ts
|
|
189
|
-
import { assertEx as
|
|
197
|
+
import { assertEx as assertEx4 } from "@xylabs/assert";
|
|
190
198
|
import { creatable as creatable4 } from "@xylabs/creatable";
|
|
191
199
|
import { exists } from "@xylabs/exists";
|
|
192
200
|
import { hexToBigInt, toHex } from "@xylabs/hex";
|
|
@@ -197,7 +205,7 @@ import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder"
|
|
|
197
205
|
import { asBlockBoundWitness, AttoXL1 as AttoXL13, BlockNumberSchema, defaultRewardRatio, TimeSchema, XYO_STEP_REWARD_ADDRESS } from "@xyo-network/xl1-protocol";
|
|
198
206
|
|
|
199
207
|
// src/BlockProducer/generateTransactionFeeTransfers.ts
|
|
200
|
-
import { assertEx } from "@xylabs/assert";
|
|
208
|
+
import { assertEx as assertEx3 } from "@xylabs/assert";
|
|
201
209
|
import { hexFromBigInt } from "@xylabs/hex";
|
|
202
210
|
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
203
211
|
import { TransferSchema, XYO_ZERO_ADDRESS } from "@xyo-network/xl1-protocol";
|
|
@@ -233,7 +241,7 @@ async function generateTransactionFeeTransfers(address, transactions) {
|
|
|
233
241
|
return payload;
|
|
234
242
|
});
|
|
235
243
|
for (const [from, amount] of Object.entries(txGasCosts)) {
|
|
236
|
-
const fromPayload =
|
|
244
|
+
const fromPayload = assertEx3(payloads.find((p) => p.from === from), () => "from payload not found");
|
|
237
245
|
fromPayload.transfers[address] = hexFromBigInt(amount);
|
|
238
246
|
}
|
|
239
247
|
return payloads;
|
|
@@ -280,40 +288,40 @@ var BaseBlockProducerService = class _BaseBlockProducerService extends BaseServi
|
|
|
280
288
|
return this.account.address;
|
|
281
289
|
}
|
|
282
290
|
get account() {
|
|
283
|
-
return
|
|
291
|
+
return assertEx4(this.params.account, () => "account is required");
|
|
284
292
|
}
|
|
285
293
|
get balanceService() {
|
|
286
|
-
return
|
|
294
|
+
return assertEx4(this.params.balanceService, () => "balanceService is required");
|
|
287
295
|
}
|
|
288
296
|
get chainArchivist() {
|
|
289
|
-
return
|
|
297
|
+
return assertEx4(this.params.chainArchivist, () => "chainArchivist is required");
|
|
290
298
|
}
|
|
291
299
|
get chainId() {
|
|
292
|
-
return
|
|
300
|
+
return assertEx4(this.params.chainId, () => "chainId is required");
|
|
293
301
|
}
|
|
294
302
|
get electionService() {
|
|
295
|
-
return
|
|
303
|
+
return assertEx4(this.params.electionService, () => "electionService is required");
|
|
296
304
|
}
|
|
297
305
|
get pendingTransactionsService() {
|
|
298
|
-
return
|
|
306
|
+
return assertEx4(this.params.pendingTransactionsService, () => "Missing pendingTransactionsService");
|
|
299
307
|
}
|
|
300
308
|
get rejectedTransactionsArchivist() {
|
|
301
|
-
return
|
|
309
|
+
return assertEx4(this.params.rejectedTransactionsArchivist, () => "No rejected bundled transactions archivist");
|
|
302
310
|
}
|
|
303
311
|
get rewardAddress() {
|
|
304
|
-
return
|
|
312
|
+
return assertEx4(this.params.rewardAddress, () => "No reward address provided");
|
|
305
313
|
}
|
|
306
314
|
get rewardService() {
|
|
307
|
-
return
|
|
315
|
+
return assertEx4(this.params.rewardService, () => "rewardService is required");
|
|
308
316
|
}
|
|
309
317
|
get stakeIntentService() {
|
|
310
|
-
return
|
|
318
|
+
return assertEx4(this.params.stakeIntentService, () => "No StakeIntentService provided");
|
|
311
319
|
}
|
|
312
320
|
get time() {
|
|
313
|
-
return
|
|
321
|
+
return assertEx4(this.params.time, () => "No TimeSyncViewInterface provided");
|
|
314
322
|
}
|
|
315
323
|
get validateHydratedBlockState() {
|
|
316
|
-
return
|
|
324
|
+
return assertEx4(this.params.validateHydratedBlockState, () => "validateHydratedBlockState is required");
|
|
317
325
|
}
|
|
318
326
|
async next(head) {
|
|
319
327
|
if (head.chain !== this.chainId) return;
|
|
@@ -333,7 +341,7 @@ var BaseBlockProducerService = class _BaseBlockProducerService extends BaseServi
|
|
|
333
341
|
}
|
|
334
342
|
});
|
|
335
343
|
}
|
|
336
|
-
const blockHex =
|
|
344
|
+
const blockHex = assertEx4(toHex(block), () => "Failed to convert block to hex");
|
|
337
345
|
const blockId = new PayloadBuilder2({
|
|
338
346
|
schema: BlockNumberSchema
|
|
339
347
|
}).fields({
|
|
@@ -362,7 +370,7 @@ var BaseBlockProducerService = class _BaseBlockProducerService extends BaseServi
|
|
|
362
370
|
}
|
|
363
371
|
async proposeNextValidBlock(head, validateBalances = false) {
|
|
364
372
|
return await this.spanAsync("proposeNextValidBlock", async () => {
|
|
365
|
-
const { block: previousBlock } =
|
|
373
|
+
const { block: previousBlock } = assertEx4(asBlockBoundWitness(head), () => "Invalid head block");
|
|
366
374
|
const nextBlock = previousBlock + 1;
|
|
367
375
|
const nextBlockTransactions = await this.pendingTransactionsService.getPendingTransactions(head._hash, _BaseBlockProducerService.DefaultBlockSize);
|
|
368
376
|
const blockPayloads = [];
|
|
@@ -426,7 +434,7 @@ var BaseBlockProducerService = class _BaseBlockProducerService extends BaseServi
|
|
|
426
434
|
}
|
|
427
435
|
async generateTimePayload(head) {
|
|
428
436
|
const [ethereum, ethHashOrNull] = await this.time.currentTimeAndHash("ethereum");
|
|
429
|
-
const ethereumHash =
|
|
437
|
+
const ethereumHash = assertEx4(ethHashOrNull, () => "No ethereum hash available from time sync service");
|
|
430
438
|
const timePayload = {
|
|
431
439
|
schema: TimeSchema,
|
|
432
440
|
// note, this is for the previous block
|
|
@@ -481,7 +489,7 @@ BaseBlockRewardService = _ts_decorate5([
|
|
|
481
489
|
], BaseBlockRewardService);
|
|
482
490
|
|
|
483
491
|
// src/BlockReward/EvmBlockRewardService.ts
|
|
484
|
-
import { assertEx as
|
|
492
|
+
import { assertEx as assertEx5 } from "@xylabs/assert";
|
|
485
493
|
import { creatable as creatable6 } from "@xylabs/creatable";
|
|
486
494
|
import { toEthAddress } from "@xylabs/hex";
|
|
487
495
|
import { XyoChainRewards__factory as XyoChainRewardsFactory } from "@xyo-network/typechain";
|
|
@@ -498,13 +506,13 @@ var EvmBlockRewardService = class extends BaseBlockRewardService {
|
|
|
498
506
|
}
|
|
499
507
|
_contractAddress;
|
|
500
508
|
get chainService() {
|
|
501
|
-
return
|
|
509
|
+
return assertEx5(this.params.chainService, () => "chainService is required");
|
|
502
510
|
}
|
|
503
511
|
get contractAddress() {
|
|
504
|
-
return
|
|
512
|
+
return assertEx5(this._contractAddress, () => "contractAddress is required");
|
|
505
513
|
}
|
|
506
514
|
get provider() {
|
|
507
|
-
return
|
|
515
|
+
return assertEx5(this.params.provider, () => "provider is required");
|
|
508
516
|
}
|
|
509
517
|
async createHandler() {
|
|
510
518
|
await super.createHandler();
|
|
@@ -525,7 +533,7 @@ EvmBlockRewardService = _ts_decorate6([
|
|
|
525
533
|
], EvmBlockRewardService);
|
|
526
534
|
|
|
527
535
|
// src/BlockReward/MemoryBlockRewardService.ts
|
|
528
|
-
import { assertEx as
|
|
536
|
+
import { assertEx as assertEx6 } from "@xylabs/assert";
|
|
529
537
|
import { creatable as creatable7 } from "@xylabs/creatable";
|
|
530
538
|
import { toFixedPoint } from "@xylabs/decimal-precision";
|
|
531
539
|
import { rewardFromBlockNumber } from "@xyo-network/chain-protocol";
|
|
@@ -542,22 +550,22 @@ var MemoryBlockRewardService = class extends BaseBlockRewardService {
|
|
|
542
550
|
}
|
|
543
551
|
rewardFromBlockNumber = rewardFromBlockNumber(18);
|
|
544
552
|
get creatorReward() {
|
|
545
|
-
return
|
|
553
|
+
return assertEx6(this.params.creatorReward, () => "creatorReward is required");
|
|
546
554
|
}
|
|
547
555
|
get initialReward() {
|
|
548
|
-
return
|
|
556
|
+
return assertEx6(this.params.initialStepReward, () => "initialStepReward is required");
|
|
549
557
|
}
|
|
550
558
|
get minRewardPerBlock() {
|
|
551
|
-
return
|
|
559
|
+
return assertEx6(this.params.minRewardPerBlock, () => "minRewardPerBlock is required");
|
|
552
560
|
}
|
|
553
561
|
get stepFactorDenominator() {
|
|
554
|
-
return
|
|
562
|
+
return assertEx6(this.params.stepFactorDenominator, () => "stepFactorDenominator is required");
|
|
555
563
|
}
|
|
556
564
|
get stepFactorNumerator() {
|
|
557
|
-
return
|
|
565
|
+
return assertEx6(this.params.stepFactorNumerator, () => "stepFactorNumerator is required");
|
|
558
566
|
}
|
|
559
567
|
get stepSize() {
|
|
560
|
-
return
|
|
568
|
+
return assertEx6(this.params.stepSize, () => "stepSize is required");
|
|
561
569
|
}
|
|
562
570
|
static async paramsHandler(inParams) {
|
|
563
571
|
return {
|
|
@@ -579,7 +587,7 @@ MemoryBlockRewardService = _ts_decorate7([
|
|
|
579
587
|
], MemoryBlockRewardService);
|
|
580
588
|
|
|
581
589
|
// src/ChainBlockNumberIteration/ChainBlockNumberIterationService.ts
|
|
582
|
-
import { assertEx as
|
|
590
|
+
import { assertEx as assertEx7 } from "@xylabs/assert";
|
|
583
591
|
import { isDefined as isDefined2, isNull, isUndefined } from "@xylabs/typeof";
|
|
584
592
|
import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder";
|
|
585
593
|
import { asBlockBoundWitness as asBlockBoundWitness2, asBlockBoundWitnessWithStorageMeta, isBlockBoundWitnessWithHashStorageMeta } from "@xyo-network/xl1-protocol";
|
|
@@ -593,21 +601,21 @@ var ChainBlockNumberIterationService = class extends BaseService {
|
|
|
593
601
|
});
|
|
594
602
|
_currentHead;
|
|
595
603
|
get chainId() {
|
|
596
|
-
return
|
|
604
|
+
return assertEx7(this._currentHead?.chain ?? this.params?.head?.chain, () => "Current head is not set");
|
|
597
605
|
}
|
|
598
606
|
get chainMap() {
|
|
599
|
-
return
|
|
607
|
+
return assertEx7(this.params.chainMap);
|
|
600
608
|
}
|
|
601
609
|
async get(block) {
|
|
602
610
|
const head = await this.head();
|
|
603
|
-
|
|
611
|
+
assertEx7(head.block >= block, () => `Block requested is newer than the current head [${block}]`);
|
|
604
612
|
const cached = this._blocksByBlockNumber.get(block);
|
|
605
613
|
if (cached) return cached;
|
|
606
614
|
const startingBlock = head;
|
|
607
615
|
const currentBlockHash = await PayloadBuilder3.hash(startingBlock);
|
|
608
616
|
let currentBlock = await this.chainMap.get(currentBlockHash);
|
|
609
617
|
while (isDefined2(currentBlock)) {
|
|
610
|
-
|
|
618
|
+
assertEx7(asBlockBoundWitness2(currentBlock), () => `Expected hash to be a block bound witness [${currentBlock?._hash}]`);
|
|
611
619
|
if (isBlockBoundWitnessWithHashStorageMeta(currentBlock)) {
|
|
612
620
|
this._blocksByBlockNumber.set(currentBlock.block, currentBlock);
|
|
613
621
|
if (currentBlock.block === block) {
|
|
@@ -648,7 +656,7 @@ var ChainBlockNumberIterationService = class extends BaseService {
|
|
|
648
656
|
currentBlock = asBlockBoundWitnessWithStorageMeta(nextBlock);
|
|
649
657
|
} else {
|
|
650
658
|
const hash = PayloadBuilder3.hash(currentBlock);
|
|
651
|
-
|
|
659
|
+
assertEx7(asBlockBoundWitnessWithStorageMeta(currentBlock), () => `Expected hash to be a block bound witness [${hash}]`);
|
|
652
660
|
}
|
|
653
661
|
}
|
|
654
662
|
return results;
|
|
@@ -672,7 +680,7 @@ var ChainBlockNumberIterationService = class extends BaseService {
|
|
|
672
680
|
};
|
|
673
681
|
|
|
674
682
|
// src/ChainService/Evm/Evm.ts
|
|
675
|
-
import { assertEx as
|
|
683
|
+
import { assertEx as assertEx8 } from "@xylabs/assert";
|
|
676
684
|
import { toAddress, toEthAddress as toEthAddress2 } from "@xylabs/hex";
|
|
677
685
|
import { StakedXyoChain__factory as StakedXyoChainFactory } from "@xyo-network/typechain";
|
|
678
686
|
import { getAddress } from "ethers/address";
|
|
@@ -681,16 +689,16 @@ var EvmChainService = class extends BaseService {
|
|
|
681
689
|
__name(this, "EvmChainService");
|
|
682
690
|
}
|
|
683
691
|
get chainId() {
|
|
684
|
-
return
|
|
692
|
+
return assertEx8(this.params.id);
|
|
685
693
|
}
|
|
686
694
|
get contract() {
|
|
687
695
|
if (this.params.contract === void 0) {
|
|
688
696
|
this.params.contract = StakedXyoChainFactory.connect(toEthAddress2(this.chainId), this.params.runner);
|
|
689
697
|
}
|
|
690
|
-
return
|
|
698
|
+
return assertEx8(this.params.contract);
|
|
691
699
|
}
|
|
692
700
|
get runner() {
|
|
693
|
-
return
|
|
701
|
+
return assertEx8(this.params.runner);
|
|
694
702
|
}
|
|
695
703
|
async active() {
|
|
696
704
|
return await this.contract.active();
|
|
@@ -813,7 +821,7 @@ var MemoryChainService = class extends BaseService {
|
|
|
813
821
|
};
|
|
814
822
|
|
|
815
823
|
// src/ChainValidator/XyoValidator.ts
|
|
816
|
-
import { assertEx as
|
|
824
|
+
import { assertEx as assertEx9 } from "@xylabs/assert";
|
|
817
825
|
import { creatable as creatable8 } from "@xylabs/creatable";
|
|
818
826
|
function _ts_decorate8(decorators, target, key, desc) {
|
|
819
827
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -830,22 +838,22 @@ var XyoValidator = class extends BaseService {
|
|
|
830
838
|
return this.account.address;
|
|
831
839
|
}
|
|
832
840
|
get account() {
|
|
833
|
-
return
|
|
841
|
+
return assertEx9(this.params.account, () => "account is required");
|
|
834
842
|
}
|
|
835
843
|
get chainArchivist() {
|
|
836
|
-
return
|
|
844
|
+
return assertEx9(this.params.chainArchivist, () => "chainArchivist is required");
|
|
837
845
|
}
|
|
838
846
|
get chainInfo() {
|
|
839
|
-
return
|
|
847
|
+
return assertEx9(this.params.chainId, () => "chainInfo is required");
|
|
840
848
|
}
|
|
841
849
|
get electionService() {
|
|
842
|
-
return
|
|
850
|
+
return assertEx9(this.params.electionService, () => "electionService is required");
|
|
843
851
|
}
|
|
844
852
|
get pendingBundledTransactionsArchivist() {
|
|
845
|
-
return
|
|
853
|
+
return assertEx9(this.params.pendingBundledTransactionsArchivist, () => "pendingBundledTransactions is required");
|
|
846
854
|
}
|
|
847
855
|
get rewardService() {
|
|
848
|
-
return
|
|
856
|
+
return assertEx9(this.params.rewardService, () => "rewardService is required");
|
|
849
857
|
}
|
|
850
858
|
validatePendingBlock(_block) {
|
|
851
859
|
return [];
|
|
@@ -864,7 +872,7 @@ XyoValidator = _ts_decorate8([
|
|
|
864
872
|
], XyoValidator);
|
|
865
873
|
|
|
866
874
|
// src/Election/BaseElectionService.ts
|
|
867
|
-
import { assertEx as
|
|
875
|
+
import { assertEx as assertEx10 } from "@xylabs/assert";
|
|
868
876
|
import { creatable as creatable9 } from "@xylabs/creatable";
|
|
869
877
|
import { hexToLast4BytesInt, shuffleWithSeed } from "@xyo-network/chain-utils";
|
|
870
878
|
import { PayloadBuilder as PayloadBuilder4 } from "@xyo-network/payload-builder";
|
|
@@ -880,13 +888,13 @@ var BaseElectionService = class extends BaseService {
|
|
|
880
888
|
__name(this, "BaseElectionService");
|
|
881
889
|
}
|
|
882
890
|
get chainIterator() {
|
|
883
|
-
return
|
|
891
|
+
return assertEx10(this.params.chainIterator, () => "No chain iterator");
|
|
884
892
|
}
|
|
885
893
|
get chainStakeViewer() {
|
|
886
|
-
return
|
|
894
|
+
return assertEx10(this.params.chainStakeViewer, () => "No chain stake viewer");
|
|
887
895
|
}
|
|
888
896
|
get stakeIntentService() {
|
|
889
|
-
return
|
|
897
|
+
return assertEx10(this.params.stakeIntentService, () => "No staked intent service");
|
|
890
898
|
}
|
|
891
899
|
async getCreatorCommitteeForNextBlock(current) {
|
|
892
900
|
return await this.spanAsync("getCreatorCommitteeForNextBlock", async () => {
|
|
@@ -982,13 +990,13 @@ BaseNetworkStakeStepRewardService = _ts_decorate10([
|
|
|
982
990
|
// src/PendingTransactions/BasePendingTransactions.ts
|
|
983
991
|
import { ValueType } from "@opentelemetry/api";
|
|
984
992
|
import { filterAs, filterAsync } from "@xylabs/array";
|
|
985
|
-
import { assertEx as
|
|
993
|
+
import { assertEx as assertEx11 } from "@xylabs/assert";
|
|
986
994
|
import { creatable as creatable11 } from "@xylabs/creatable";
|
|
987
995
|
import { exists as exists2 } from "@xylabs/exists";
|
|
988
996
|
import { forget } from "@xylabs/forget";
|
|
989
997
|
import { isDefined as isDefined3, isUndefined as isUndefined2 } from "@xylabs/typeof";
|
|
990
998
|
import { MemoryArchivist } from "@xyo-network/archivist-memory";
|
|
991
|
-
import { findMostRecentBlock } from "@xyo-network/chain-protocol";
|
|
999
|
+
import { findMostRecentBlock as findMostRecentBlock3 } from "@xyo-network/chain-protocol";
|
|
992
1000
|
import { asBlockBoundWitnessWithHashStorageMeta, isTransactionBoundWitnessWithStorageMeta } from "@xyo-network/xl1-protocol";
|
|
993
1001
|
import { TransactionJsonSchemaValidator, validateTransaction } from "@xyo-network/xl1-validation";
|
|
994
1002
|
import { Mutex as Mutex2 } from "async-mutex";
|
|
@@ -1080,23 +1088,23 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
|
|
|
1080
1088
|
return this.params.additionalPendingTransactionValidators ?? [];
|
|
1081
1089
|
}
|
|
1082
1090
|
get chainArchivist() {
|
|
1083
|
-
return
|
|
1091
|
+
return assertEx11(this.params.chainArchivist, () => "No completed blocks with data archivist");
|
|
1084
1092
|
}
|
|
1085
1093
|
get chainId() {
|
|
1086
|
-
return
|
|
1094
|
+
return assertEx11(this.params.chainId, () => "No chain id");
|
|
1087
1095
|
}
|
|
1088
1096
|
get pendingBundledTransactionsArchivist() {
|
|
1089
|
-
return
|
|
1097
|
+
return assertEx11(this.params.pendingBundledTransactionsArchivist, () => "No pending bundled transactions archivist");
|
|
1090
1098
|
}
|
|
1091
1099
|
get pendingBundledTransactionsLocalArchivist() {
|
|
1092
|
-
return
|
|
1100
|
+
return assertEx11(this._curatedPendingBundledTransactionsArchivist, () => "No pending bundled transactions curated archivist");
|
|
1093
1101
|
}
|
|
1094
1102
|
get pendingTransactionsCount() {
|
|
1095
1103
|
forget(this.countPendingTransactions());
|
|
1096
1104
|
return this._pendingTransactionsCount;
|
|
1097
1105
|
}
|
|
1098
1106
|
get rejectedTransactionsArchivist() {
|
|
1099
|
-
return
|
|
1107
|
+
return assertEx11(this.params.rejectedTransactionsArchivist, () => "No rejected transactions archivist");
|
|
1100
1108
|
}
|
|
1101
1109
|
async createHandler() {
|
|
1102
1110
|
await super.createHandler();
|
|
@@ -1165,7 +1173,7 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
|
|
|
1165
1173
|
}
|
|
1166
1174
|
async cleanupWorker() {
|
|
1167
1175
|
return await this._updateCuratedPendingTransactionsArchivistMutex.runExclusive(async () => {
|
|
1168
|
-
const lastHead = await
|
|
1176
|
+
const lastHead = await findMostRecentBlock3(this.chainArchivist);
|
|
1169
1177
|
if (isDefined3(lastHead)) await this.pruneCuratedPendingTransactionsArchivist(lastHead._hash);
|
|
1170
1178
|
}, _BasePendingTransactionsService.MutexPriority.PurgeTransactions);
|
|
1171
1179
|
}
|
|
@@ -1297,7 +1305,7 @@ var mapBoundWitnessToStakeIntentHashes = /* @__PURE__ */ __name((bw) => {
|
|
|
1297
1305
|
|
|
1298
1306
|
// src/StakeIntent/XyoStakeIntentService.ts
|
|
1299
1307
|
import { filterAs as filterAs3 } from "@xylabs/array";
|
|
1300
|
-
import { assertEx as
|
|
1308
|
+
import { assertEx as assertEx12 } from "@xylabs/assert";
|
|
1301
1309
|
import { creatable as creatable12 } from "@xylabs/creatable";
|
|
1302
1310
|
import { asAddress } from "@xylabs/hex";
|
|
1303
1311
|
import { isUndefined as isUndefined3 } from "@xylabs/typeof";
|
|
@@ -1337,16 +1345,16 @@ var XyoStakeIntentService = class extends BaseService {
|
|
|
1337
1345
|
});
|
|
1338
1346
|
_updateMutex = new Mutex3();
|
|
1339
1347
|
get chainArchivist() {
|
|
1340
|
-
return
|
|
1348
|
+
return assertEx12(this.params.chainArchivist, () => "chainArchivist not set");
|
|
1341
1349
|
}
|
|
1342
1350
|
get chainIterator() {
|
|
1343
|
-
return
|
|
1351
|
+
return assertEx12(this.params.chainIterator, () => "chainIterator not set");
|
|
1344
1352
|
}
|
|
1345
1353
|
get chainStakeViewer() {
|
|
1346
|
-
return
|
|
1354
|
+
return assertEx12(this.params.chainStakeViewer, () => "chainStakeViewer not set");
|
|
1347
1355
|
}
|
|
1348
1356
|
get stakeIntentStateArchivist() {
|
|
1349
|
-
return
|
|
1357
|
+
return assertEx12(this.params.stakeIntentStateArchivist, () => "stakeIntentStateArchivist not set");
|
|
1350
1358
|
}
|
|
1351
1359
|
async createHandler() {
|
|
1352
1360
|
this.chainIterator.on("headUpdated", async () => {
|
|
@@ -1359,13 +1367,13 @@ var XyoStakeIntentService = class extends BaseService {
|
|
|
1359
1367
|
}
|
|
1360
1368
|
async getDeclaredCandidateRanges(address, intent) {
|
|
1361
1369
|
await Promise.resolve();
|
|
1362
|
-
|
|
1370
|
+
assertEx12(intent === "producer", () => `Error: Support not yet added for intent ${intent}`);
|
|
1363
1371
|
const results = this._producers.get(address);
|
|
1364
1372
|
return results ?? [];
|
|
1365
1373
|
}
|
|
1366
1374
|
async getDeclaredCandidatesForBlock(block, intent) {
|
|
1367
1375
|
return await this.spanAsync("getDeclaredCandidatesForBlock", async () => {
|
|
1368
|
-
|
|
1376
|
+
assertEx12(intent === "producer", () => `Error: Support not yet added for intent ${intent}`);
|
|
1369
1377
|
const results = this._producers.findAllContaining(block);
|
|
1370
1378
|
const candidates = [
|
|
1371
1379
|
...results
|
|
@@ -1430,7 +1438,7 @@ var XyoStakeIntentService = class extends BaseService {
|
|
|
1430
1438
|
]);
|
|
1431
1439
|
}
|
|
1432
1440
|
async recoverState(current) {
|
|
1433
|
-
const currentBlock =
|
|
1441
|
+
const currentBlock = assertEx12(asBlockBoundWitness3((await this.chainArchivist.get([
|
|
1434
1442
|
current
|
|
1435
1443
|
]))?.[0]), () => `Block ${current} not found`);
|
|
1436
1444
|
const currentBlockNum = currentBlock.block;
|
|
@@ -1525,7 +1533,7 @@ BaseStepStakeService = _ts_decorate13([
|
|
|
1525
1533
|
], BaseStepStakeService);
|
|
1526
1534
|
|
|
1527
1535
|
// src/Time/BaseTimeSyncService.ts
|
|
1528
|
-
import { assertEx as
|
|
1536
|
+
import { assertEx as assertEx13 } from "@xylabs/assert";
|
|
1529
1537
|
import { creatable as creatable14 } from "@xylabs/creatable";
|
|
1530
1538
|
import { asHash } from "@xylabs/hex";
|
|
1531
1539
|
import { PayloadBuilder as PayloadBuilder8 } from "@xyo-network/payload-builder";
|
|
@@ -1553,7 +1561,7 @@ var BaseTimeSyncService = class extends BaseService {
|
|
|
1553
1561
|
async convertTime(fromDomain, toDomain, from) {
|
|
1554
1562
|
switch (fromDomain) {
|
|
1555
1563
|
case "xl1": {
|
|
1556
|
-
const block =
|
|
1564
|
+
const block = assertEx13(await this.chainIterator.get(from), () => "Block not found");
|
|
1557
1565
|
const timeSchemaIndex = block.payload_schemas.indexOf(TimeSchema2);
|
|
1558
1566
|
const hash = timeSchemaIndex === -1 ? void 0 : block.payload_hashes[timeSchemaIndex];
|
|
1559
1567
|
const [payload] = hash === void 0 ? [] : await this.chainArchivist.get([
|
|
@@ -1622,10 +1630,10 @@ var BaseTimeSyncService = class extends BaseService {
|
|
|
1622
1630
|
];
|
|
1623
1631
|
}
|
|
1624
1632
|
case "ethereum": {
|
|
1625
|
-
const provider =
|
|
1633
|
+
const provider = assertEx13(this.ethProvider, () => "Ethereum provider not configured");
|
|
1626
1634
|
const blockNumber = await provider.getBlockNumber() ?? 0;
|
|
1627
1635
|
const block = await provider.getBlock(blockNumber);
|
|
1628
|
-
const blockHash = asHash(
|
|
1636
|
+
const blockHash = asHash(assertEx13(block?.hash, () => "Block hash not found"), true);
|
|
1629
1637
|
return [
|
|
1630
1638
|
blockNumber,
|
|
1631
1639
|
blockHash
|