@xyo-network/chain-services 1.18.1 → 1.18.2
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/NetworkStakeStepReward/BaseNetworkStakeStepRewardService.d.ts +14 -14
- package/dist/neutral/NetworkStakeStepReward/BaseNetworkStakeStepRewardService.d.ts.map +1 -1
- package/dist/neutral/Schemas/BaseSchemasService.d.ts.map +1 -1
- package/dist/neutral/StakeIntent/XyoStakeIntentService.d.ts.map +1 -1
- package/dist/neutral/implementation/index.d.ts +0 -1
- package/dist/neutral/implementation/index.d.ts.map +1 -1
- package/dist/neutral/index.d.ts +0 -1
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +91 -290
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/simple/block/runner/SimpleBlockRunner.d.ts +4 -2
- package/dist/neutral/simple/block/runner/SimpleBlockRunner.d.ts.map +1 -1
- package/package.json +28 -28
- package/src/AccountBalance/accountBalanceServiceFromArchivist.ts +7 -3
- package/src/BlockReward/EvmBlockRewardViewer.ts +2 -2
- package/src/Election/BaseElectionService.ts +1 -1
- package/src/NetworkStakeStepReward/BaseNetworkStakeStepRewardService.ts +14 -13
- package/src/PendingTransactions/BasePendingTransactions.ts +3 -3
- package/src/Schemas/BaseSchemasService.ts +3 -3
- package/src/StakeIntent/XyoStakeIntentService.ts +19 -21
- package/src/implementation/index.ts +0 -1
- package/src/index.ts +0 -1
- package/src/simple/block/runner/SimpleBlockRunner.ts +25 -29
- package/dist/neutral/ChainService/Evm/Evm.d.ts +0 -38
- package/dist/neutral/ChainService/Evm/Evm.d.ts.map +0 -1
- package/dist/neutral/ChainService/Evm/index.d.ts +0 -2
- package/dist/neutral/ChainService/Evm/index.d.ts.map +0 -1
- package/dist/neutral/ChainService/Memory/Memory.d.ts +0 -37
- package/dist/neutral/ChainService/Memory/Memory.d.ts.map +0 -1
- package/dist/neutral/ChainService/Memory/index.d.ts +0 -2
- package/dist/neutral/ChainService/Memory/index.d.ts.map +0 -1
- package/dist/neutral/ChainService/index.d.ts +0 -3
- package/dist/neutral/ChainService/index.d.ts.map +0 -1
- package/dist/neutral/implementation/chain/evm.d.ts +0 -6
- package/dist/neutral/implementation/chain/evm.d.ts.map +0 -1
- package/dist/neutral/implementation/chain/index.d.ts +0 -5
- package/dist/neutral/implementation/chain/index.d.ts.map +0 -1
- package/src/ChainService/Evm/Evm.ts +0 -106
- package/src/ChainService/Evm/index.ts +0 -1
- package/src/ChainService/Memory/Memory.ts +0 -105
- package/src/ChainService/Memory/index.ts +0 -1
- package/src/ChainService/index.ts +0 -2
- package/src/implementation/chain/evm.ts +0 -38
- package/src/implementation/chain/index.ts +0 -43
package/dist/neutral/index.mjs
CHANGED
|
@@ -36,7 +36,8 @@ var accountBalancesViewerFromArchivist = /* @__PURE__ */ __name(async (context,
|
|
|
36
36
|
stepSemaphores: StepSizes.map(() => new Semaphore(20)),
|
|
37
37
|
summaryMap,
|
|
38
38
|
head: headFunc,
|
|
39
|
-
singletons: context.singletons
|
|
39
|
+
singletons: context.singletons,
|
|
40
|
+
caches: context.caches
|
|
40
41
|
},
|
|
41
42
|
transfersSummaryContext: {
|
|
42
43
|
chainId,
|
|
@@ -46,7 +47,8 @@ var accountBalancesViewerFromArchivist = /* @__PURE__ */ __name(async (context,
|
|
|
46
47
|
stepSemaphores: StepSizes.map(() => new Semaphore(20)),
|
|
47
48
|
summaryMap: transferSummaryMap,
|
|
48
49
|
head: headFunc,
|
|
49
|
-
singletons: context.singletons
|
|
50
|
+
singletons: context.singletons,
|
|
51
|
+
caches: context.caches
|
|
50
52
|
}
|
|
51
53
|
});
|
|
52
54
|
return service;
|
|
@@ -54,7 +56,7 @@ var accountBalancesViewerFromArchivist = /* @__PURE__ */ __name(async (context,
|
|
|
54
56
|
|
|
55
57
|
// src/BlockReward/EvmBlockRewardViewer.ts
|
|
56
58
|
import { AbstractCreatable, assertEx as assertEx2, creatable, toEthAddress } from "@xylabs/sdk-js";
|
|
57
|
-
import {
|
|
59
|
+
import { IXyoChainRewards__factory } from "@xyo-network/typechain";
|
|
58
60
|
import { asAttoXL1, BlockRewardViewerMoniker } from "@xyo-network/xl1-sdk";
|
|
59
61
|
function _ts_decorate(decorators, target, key, desc) {
|
|
60
62
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -83,7 +85,7 @@ var EvmBlockRewardViewer = class _EvmBlockRewardViewer extends AbstractCreatable
|
|
|
83
85
|
return assertEx2(this.params.provider, () => "provider is required");
|
|
84
86
|
}
|
|
85
87
|
async allowedRewardForBlock(blockNumber) {
|
|
86
|
-
const contract =
|
|
88
|
+
const contract = IXyoChainRewards__factory.connect(toEthAddress(this.contractAddress), this.provider);
|
|
87
89
|
return asAttoXL1(await contract.calcBlockReward(blockNumber));
|
|
88
90
|
}
|
|
89
91
|
async createHandler() {
|
|
@@ -196,159 +198,9 @@ function blockViewerFromChainIteratorAndArchivist(chainIterator, chainArchivist)
|
|
|
196
198
|
}
|
|
197
199
|
__name(blockViewerFromChainIteratorAndArchivist, "blockViewerFromChainIteratorAndArchivist");
|
|
198
200
|
|
|
199
|
-
// src/ChainService/Evm/Evm.ts
|
|
200
|
-
import { toAddress, toEthAddress as toEthAddress2 } from "@xylabs/sdk-js";
|
|
201
|
-
import { AbstractCreatableProvider, ChainContractViewerMoniker } from "@xyo-network/xl1-sdk";
|
|
202
|
-
import { getAddress } from "ethers/address";
|
|
203
|
-
var EvmChainViewer = class _EvmChainViewer extends AbstractCreatableProvider {
|
|
204
|
-
static {
|
|
205
|
-
__name(this, "EvmChainViewer");
|
|
206
|
-
}
|
|
207
|
-
static defaultMoniker = ChainContractViewerMoniker;
|
|
208
|
-
static monikers = [
|
|
209
|
-
ChainContractViewerMoniker
|
|
210
|
-
];
|
|
211
|
-
moniker = _EvmChainViewer.defaultMoniker;
|
|
212
|
-
get contract() {
|
|
213
|
-
return this.params.contract;
|
|
214
|
-
}
|
|
215
|
-
async active() {
|
|
216
|
-
return await this.contract.active();
|
|
217
|
-
}
|
|
218
|
-
async activeByStaked(staked) {
|
|
219
|
-
return await this.contract.activeByAddressStaked(getAddress(toEthAddress2(staked)));
|
|
220
|
-
}
|
|
221
|
-
async activeByStaker(address) {
|
|
222
|
-
return await this.contract.activeByStaker(getAddress(toEthAddress2(address)));
|
|
223
|
-
}
|
|
224
|
-
async addStake(staked, amount) {
|
|
225
|
-
const result = await this.contract.addStake(getAddress(toEthAddress2(staked)), amount);
|
|
226
|
-
await result.wait();
|
|
227
|
-
return true;
|
|
228
|
-
}
|
|
229
|
-
async forkedAtBlockNumber() {
|
|
230
|
-
return await this.contract.forkedAtBlockNumber();
|
|
231
|
-
}
|
|
232
|
-
async forkedAtHash() {
|
|
233
|
-
return await this.contract.forkedAtHash();
|
|
234
|
-
}
|
|
235
|
-
async forkedChainId() {
|
|
236
|
-
return toAddress(await this.contract.forkedChainId());
|
|
237
|
-
}
|
|
238
|
-
async minWithdrawalBlocks() {
|
|
239
|
-
return await this.contract.minWithdrawalBlocks();
|
|
240
|
-
}
|
|
241
|
-
async pending() {
|
|
242
|
-
return await this.contract.pending();
|
|
243
|
-
}
|
|
244
|
-
async pendingByStaker(staker) {
|
|
245
|
-
return await this.contract.pendingByStaker(getAddress(toEthAddress2(staker)));
|
|
246
|
-
}
|
|
247
|
-
async removeStake(slot) {
|
|
248
|
-
const result = await this.contract.removeStake(slot);
|
|
249
|
-
await result.wait();
|
|
250
|
-
return true;
|
|
251
|
-
}
|
|
252
|
-
rewardForBlock(_block) {
|
|
253
|
-
throw new Error("Method not implemented.");
|
|
254
|
-
}
|
|
255
|
-
async rewardsContract() {
|
|
256
|
-
return await this.contract.rewardsContract();
|
|
257
|
-
}
|
|
258
|
-
async stakingTokenAddress() {
|
|
259
|
-
return await this.contract.stakingTokenAddress();
|
|
260
|
-
}
|
|
261
|
-
async withdrawStake(slot) {
|
|
262
|
-
const result = await this.contract.withdrawStake(slot);
|
|
263
|
-
await result.wait();
|
|
264
|
-
return true;
|
|
265
|
-
}
|
|
266
|
-
async withdrawn() {
|
|
267
|
-
return await this.contract.withdrawn();
|
|
268
|
-
}
|
|
269
|
-
async withdrawnByStaker(staker) {
|
|
270
|
-
return await this.contract.withdrawnByStaker(getAddress(staker));
|
|
271
|
-
}
|
|
272
|
-
};
|
|
273
|
-
|
|
274
|
-
// src/ChainService/Memory/Memory.ts
|
|
275
|
-
import { toAddress as toAddress2, ZERO_ADDRESS } from "@xylabs/sdk-js";
|
|
276
|
-
import { AbstractCreatableProvider as AbstractCreatableProvider2, ChainContractViewerMoniker as ChainContractViewerMoniker2 } from "@xyo-network/xl1-sdk";
|
|
277
|
-
var MemoryChainViewer = class _MemoryChainViewer extends AbstractCreatableProvider2 {
|
|
278
|
-
static {
|
|
279
|
-
__name(this, "MemoryChainViewer");
|
|
280
|
-
}
|
|
281
|
-
static defaultMoniker = ChainContractViewerMoniker2;
|
|
282
|
-
static monikers = [
|
|
283
|
-
ChainContractViewerMoniker2
|
|
284
|
-
];
|
|
285
|
-
moniker = _MemoryChainViewer.defaultMoniker;
|
|
286
|
-
_chainId;
|
|
287
|
-
_simulatedStake = 1n;
|
|
288
|
-
async active() {
|
|
289
|
-
return await Promise.resolve(this._simulatedStake);
|
|
290
|
-
}
|
|
291
|
-
async activeByStaked(_staked) {
|
|
292
|
-
return await Promise.resolve(this._simulatedStake);
|
|
293
|
-
}
|
|
294
|
-
async activeByStaker(_address) {
|
|
295
|
-
return await Promise.resolve(this._simulatedStake);
|
|
296
|
-
}
|
|
297
|
-
async addStake(_staked, _amount) {
|
|
298
|
-
return await Promise.resolve(true);
|
|
299
|
-
}
|
|
300
|
-
createHandler() {
|
|
301
|
-
const { minStake = 1 } = this.params.context.config.producer ?? {};
|
|
302
|
-
this._simulatedStake = BigInt(minStake);
|
|
303
|
-
}
|
|
304
|
-
async forkedAtBlockNumber() {
|
|
305
|
-
return await Promise.resolve(0n);
|
|
306
|
-
}
|
|
307
|
-
async forkedAtHash() {
|
|
308
|
-
return await Promise.resolve(0n);
|
|
309
|
-
}
|
|
310
|
-
async forkedChainId() {
|
|
311
|
-
return await Promise.resolve(ZERO_ADDRESS);
|
|
312
|
-
}
|
|
313
|
-
async minWithdrawalBlocks() {
|
|
314
|
-
return await Promise.resolve(1n);
|
|
315
|
-
}
|
|
316
|
-
async pending() {
|
|
317
|
-
return await Promise.resolve(0n);
|
|
318
|
-
}
|
|
319
|
-
async pendingByStaker(_staker) {
|
|
320
|
-
return await Promise.resolve(0n);
|
|
321
|
-
}
|
|
322
|
-
async removeStake(_slot) {
|
|
323
|
-
return await Promise.resolve(true);
|
|
324
|
-
}
|
|
325
|
-
rewardForBlock(_block) {
|
|
326
|
-
throw new Error("Method not implemented.");
|
|
327
|
-
}
|
|
328
|
-
async rewardsContract() {
|
|
329
|
-
return await Promise.resolve("");
|
|
330
|
-
}
|
|
331
|
-
async stakingTokenAddress() {
|
|
332
|
-
return await Promise.resolve("");
|
|
333
|
-
}
|
|
334
|
-
async withdrawStake(_slot) {
|
|
335
|
-
return await Promise.resolve(true);
|
|
336
|
-
}
|
|
337
|
-
async withdrawn() {
|
|
338
|
-
return await Promise.resolve(0n);
|
|
339
|
-
}
|
|
340
|
-
async withdrawnByStaker(_staker) {
|
|
341
|
-
return await Promise.resolve(0n);
|
|
342
|
-
}
|
|
343
|
-
async startHandler() {
|
|
344
|
-
await super.startHandler();
|
|
345
|
-
this._chainId = this.params.chainId ?? toAddress2(1n);
|
|
346
|
-
}
|
|
347
|
-
};
|
|
348
|
-
|
|
349
201
|
// src/ChainValidator/XyoValidator.ts
|
|
350
|
-
import { AbstractCreatableProvider
|
|
351
|
-
var XyoValidator = class extends
|
|
202
|
+
import { AbstractCreatableProvider, BlockViewerMoniker as BlockViewerMoniker2 } from "@xyo-network/xl1-sdk";
|
|
203
|
+
var XyoValidator = class extends AbstractCreatableProvider {
|
|
352
204
|
static {
|
|
353
205
|
__name(this, "XyoValidator");
|
|
354
206
|
}
|
|
@@ -392,7 +244,7 @@ var XyoValidator = class extends AbstractCreatableProvider3 {
|
|
|
392
244
|
// src/Election/BaseElectionService.ts
|
|
393
245
|
import { assertEx as assertEx3 } from "@xylabs/sdk-js";
|
|
394
246
|
import { hexToLast4BytesInt, shuffleWithSeed } from "@xyo-network/chain-utils";
|
|
395
|
-
import { AbstractCreatableProvider as
|
|
247
|
+
import { AbstractCreatableProvider as AbstractCreatableProvider2, creatableProvider } from "@xyo-network/xl1-sdk";
|
|
396
248
|
function _ts_decorate2(decorators, target, key, desc) {
|
|
397
249
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
398
250
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -400,7 +252,7 @@ function _ts_decorate2(decorators, target, key, desc) {
|
|
|
400
252
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
401
253
|
}
|
|
402
254
|
__name(_ts_decorate2, "_ts_decorate");
|
|
403
|
-
var BaseElectionService = class _BaseElectionService extends
|
|
255
|
+
var BaseElectionService = class _BaseElectionService extends AbstractCreatableProvider2 {
|
|
404
256
|
static {
|
|
405
257
|
__name(this, "BaseElectionService");
|
|
406
258
|
}
|
|
@@ -425,6 +277,8 @@ var BaseElectionService = class _BaseElectionService extends AbstractCreatablePr
|
|
|
425
277
|
const candidates = await this.stakeIntentService.getDeclaredCandidatesForBlock(nextBlock, "producer");
|
|
426
278
|
const previousBlockHash = current._hash;
|
|
427
279
|
return this.generateCreatorCommittee(candidates, previousBlockHash);
|
|
280
|
+
}, {
|
|
281
|
+
timeBudgetLimit: 200
|
|
428
282
|
});
|
|
429
283
|
}
|
|
430
284
|
generateCreatorCommittee(candidates, previousBlockHash, maxSize = 3) {
|
|
@@ -438,13 +292,6 @@ BaseElectionService = _ts_decorate2([
|
|
|
438
292
|
creatableProvider()
|
|
439
293
|
], BaseElectionService);
|
|
440
294
|
|
|
441
|
-
// src/implementation/chain/index.ts
|
|
442
|
-
import { assertEx as assertEx9 } from "@xylabs/sdk-js";
|
|
443
|
-
|
|
444
|
-
// src/implementation/chain/evm.ts
|
|
445
|
-
import { asAddress, assertEx as assertEx8, isDefined as isDefined5, ZERO_ADDRESS as ZERO_ADDRESS2 } from "@xylabs/sdk-js";
|
|
446
|
-
import { Wallet } from "ethers/wallet";
|
|
447
|
-
|
|
448
295
|
// src/implementation/evm/initEvmProvider.ts
|
|
449
296
|
import { assertEx as assertEx7 } from "@xylabs/sdk-js";
|
|
450
297
|
|
|
@@ -525,66 +372,6 @@ var canUseEvmProvider = /* @__PURE__ */ __name(({ config }) => {
|
|
|
525
372
|
return canUseInfuraProvider(config) || canUseJsonRpcProvider(config);
|
|
526
373
|
}, "canUseEvmProvider");
|
|
527
374
|
|
|
528
|
-
// src/implementation/chain/evm.ts
|
|
529
|
-
var chainStakeServiceSingleton;
|
|
530
|
-
var canUseEvmContractChainService = /* @__PURE__ */ __name((config) => {
|
|
531
|
-
const { id } = config.chain;
|
|
532
|
-
return isDefined5(id) && id !== ZERO_ADDRESS2 && canUseEvmProvider({
|
|
533
|
-
config
|
|
534
|
-
});
|
|
535
|
-
}, "canUseEvmContractChainService");
|
|
536
|
-
var initEvmContractChainService = /* @__PURE__ */ __name(async ({ account, context: { config }, traceProvider, meterProvider, logger }) => {
|
|
537
|
-
if (chainStakeServiceSingleton) return chainStakeServiceSingleton;
|
|
538
|
-
const emvStakingContractAddress = assertEx8(config.chain.id, () => "config.chain.id is required");
|
|
539
|
-
const id = assertEx8(asAddress(emvStakingContractAddress), () => "config.chain.id is not a valid address");
|
|
540
|
-
const provider2 = assertEx8(await initEvmProvider({
|
|
541
|
-
config
|
|
542
|
-
}));
|
|
543
|
-
const privateKey = assertEx8(account.private?.hex, () => "Account does not have a private key");
|
|
544
|
-
const runner = new Wallet(privateKey, provider2);
|
|
545
|
-
chainStakeServiceSingleton = EvmChainViewer.create({
|
|
546
|
-
id,
|
|
547
|
-
runner,
|
|
548
|
-
traceProvider,
|
|
549
|
-
meterProvider,
|
|
550
|
-
logger
|
|
551
|
-
});
|
|
552
|
-
const result = await chainStakeServiceSingleton;
|
|
553
|
-
await result.start();
|
|
554
|
-
return result;
|
|
555
|
-
}, "initEvmContractChainService");
|
|
556
|
-
|
|
557
|
-
// src/implementation/chain/index.ts
|
|
558
|
-
var chainStakeServiceSingleton2;
|
|
559
|
-
var initChainService = /* @__PURE__ */ __name(({ account, context }) => {
|
|
560
|
-
const { logger } = context;
|
|
561
|
-
logger?.log("ChainService: Initializing...");
|
|
562
|
-
const result = init({
|
|
563
|
-
context,
|
|
564
|
-
name: "ChainService",
|
|
565
|
-
account
|
|
566
|
-
});
|
|
567
|
-
logger?.log("ChainService: Initialized");
|
|
568
|
-
return result;
|
|
569
|
-
}, "initChainService");
|
|
570
|
-
var initMemoryChainService = /* @__PURE__ */ __name(async ({ context }) => {
|
|
571
|
-
const result = await MemoryChainViewer.create({
|
|
572
|
-
context,
|
|
573
|
-
name: "MemoryChainService"
|
|
574
|
-
});
|
|
575
|
-
assertEx9(await result.start(), () => "Failed to start MemoryChainService");
|
|
576
|
-
return result;
|
|
577
|
-
}, "initMemoryChainService");
|
|
578
|
-
var init = /* @__PURE__ */ __name(async (params) => {
|
|
579
|
-
if (chainStakeServiceSingleton2) return chainStakeServiceSingleton2;
|
|
580
|
-
const { config } = params.context;
|
|
581
|
-
chainStakeServiceSingleton2 = canUseEvmContractChainService(config) ? await initEvmContractChainService({
|
|
582
|
-
...params,
|
|
583
|
-
name: "ChainStakeService"
|
|
584
|
-
}) : await initMemoryChainService(params);
|
|
585
|
-
return chainStakeServiceSingleton2;
|
|
586
|
-
}, "init");
|
|
587
|
-
|
|
588
375
|
// src/implementation/head/createBootstrapHead.ts
|
|
589
376
|
import { buildNextBlock, createGenesisBlock } from "@xyo-network/chain-protocol";
|
|
590
377
|
import { createDeclarationIntent } from "@xyo-network/xl1-sdk";
|
|
@@ -603,7 +390,7 @@ var createBootstrapHead = /* @__PURE__ */ __name(async (account, chainId, genesi
|
|
|
603
390
|
}, "createBootstrapHead");
|
|
604
391
|
|
|
605
392
|
// src/NetworkStakeStepReward/BaseNetworkStakeStepRewardService.ts
|
|
606
|
-
import { AbstractCreatableProvider as
|
|
393
|
+
import { AbstractCreatableProvider as AbstractCreatableProvider3, creatableProvider as creatableProvider2, NetworkStakeStepRewardViewerMoniker } from "@xyo-network/xl1-sdk";
|
|
607
394
|
function _ts_decorate3(decorators, target, key, desc) {
|
|
608
395
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
609
396
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -611,7 +398,7 @@ function _ts_decorate3(decorators, target, key, desc) {
|
|
|
611
398
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
612
399
|
}
|
|
613
400
|
__name(_ts_decorate3, "_ts_decorate");
|
|
614
|
-
var BaseNetworkStakeStepRewardService = class _BaseNetworkStakeStepRewardService extends
|
|
401
|
+
var BaseNetworkStakeStepRewardService = class _BaseNetworkStakeStepRewardService extends AbstractCreatableProvider3 {
|
|
615
402
|
static {
|
|
616
403
|
__name(this, "BaseNetworkStakeStepRewardService");
|
|
617
404
|
}
|
|
@@ -682,9 +469,9 @@ BaseNetworkStakeStepRewardService = _ts_decorate3([
|
|
|
682
469
|
|
|
683
470
|
// src/PendingTransactions/BasePendingTransactions.ts
|
|
684
471
|
import { ValueType } from "@opentelemetry/api";
|
|
685
|
-
import { assertEx as
|
|
472
|
+
import { assertEx as assertEx8, exists, filterAs, filterAsync, forget, isDefined as isDefined5, isUndefined } from "@xylabs/sdk-js";
|
|
686
473
|
import { MemoryArchivist } from "@xyo-network/archivist-memory";
|
|
687
|
-
import { AbstractCreatableProvider as
|
|
474
|
+
import { AbstractCreatableProvider as AbstractCreatableProvider4, asBlockBoundWitnessWithHashMeta, asXL1BlockNumber, creatableProvider as creatableProvider3, findMostRecentBlock as findMostRecentBlock2, isTransactionBoundWitnessWithStorageMeta, MempoolViewerMoniker, TransactionJsonSchemaValidator, validateTransaction } from "@xyo-network/xl1-sdk";
|
|
688
475
|
import { Mutex } from "async-mutex";
|
|
689
476
|
|
|
690
477
|
// src/PendingTransactions/bundledPayloadToHydratedTransaction.ts
|
|
@@ -727,7 +514,7 @@ function _ts_decorate4(decorators, target, key, desc) {
|
|
|
727
514
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
728
515
|
}
|
|
729
516
|
__name(_ts_decorate4, "_ts_decorate");
|
|
730
|
-
var BasePendingTransactionsService = class _BasePendingTransactionsService extends
|
|
517
|
+
var BasePendingTransactionsService = class _BasePendingTransactionsService extends AbstractCreatableProvider4 {
|
|
731
518
|
static {
|
|
732
519
|
__name(this, "BasePendingTransactionsService");
|
|
733
520
|
}
|
|
@@ -780,20 +567,20 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
|
|
|
780
567
|
return this.params.additionalPendingTransactionValidators ?? [];
|
|
781
568
|
}
|
|
782
569
|
get chainArchivist() {
|
|
783
|
-
return
|
|
570
|
+
return assertEx8(this.params.chainArchivist, () => "No completed blocks with data archivist");
|
|
784
571
|
}
|
|
785
572
|
get pendingBundledTransactionsArchivist() {
|
|
786
|
-
return
|
|
573
|
+
return assertEx8(this.params.pendingBundledTransactionsArchivist, () => "No pending bundled transactions archivist");
|
|
787
574
|
}
|
|
788
575
|
get pendingBundledTransactionsLocalArchivist() {
|
|
789
|
-
return
|
|
576
|
+
return assertEx8(this._curatedPendingBundledTransactionsArchivist, () => "No pending bundled transactions curated archivist");
|
|
790
577
|
}
|
|
791
578
|
get pendingTransactionsCount() {
|
|
792
579
|
forget(this.countPendingTransactions());
|
|
793
580
|
return this._pendingTransactionsCount;
|
|
794
581
|
}
|
|
795
582
|
get rejectedTransactionsArchivist() {
|
|
796
|
-
return
|
|
583
|
+
return assertEx8(this.params.rejectedTransactionsArchivist, () => "No rejected transactions archivist");
|
|
797
584
|
}
|
|
798
585
|
async createHandler() {
|
|
799
586
|
await super.createHandler();
|
|
@@ -868,12 +655,14 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
|
|
|
868
655
|
}
|
|
869
656
|
return foundPendingTransactions;
|
|
870
657
|
}, _BasePendingTransactionsService.MutexPriority.ReadTransactions);
|
|
658
|
+
}, {
|
|
659
|
+
timeBudgetLimit: 100
|
|
871
660
|
});
|
|
872
661
|
}
|
|
873
662
|
async cleanupWorker() {
|
|
874
663
|
return await this._updateCuratedPendingTransactionsArchivistMutex.runExclusive(async () => {
|
|
875
664
|
const lastHead = await findMostRecentBlock2(this.chainArchivist);
|
|
876
|
-
if (
|
|
665
|
+
if (isDefined5(lastHead)) await this.pruneCuratedPendingTransactionsArchivist(lastHead._hash);
|
|
877
666
|
}, _BasePendingTransactionsService.MutexPriority.PurgeTransactions);
|
|
878
667
|
}
|
|
879
668
|
async countPendingTransactions() {
|
|
@@ -914,6 +703,8 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
|
|
|
914
703
|
await this.pendingBundledTransactionsLocalArchivist.insert(bundledTransactions);
|
|
915
704
|
}
|
|
916
705
|
}, _BasePendingTransactionsService.MutexPriority.InsertNewTransactions);
|
|
706
|
+
}, {
|
|
707
|
+
timeBudgetLimit: 200
|
|
917
708
|
});
|
|
918
709
|
}
|
|
919
710
|
/**
|
|
@@ -935,7 +726,7 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
|
|
|
935
726
|
let [lastHead] = filterAs(await this.chainArchivist.get([
|
|
936
727
|
head
|
|
937
728
|
]), (x) => asBlockBoundWitnessWithHashMeta(x));
|
|
938
|
-
while (
|
|
729
|
+
while (isDefined5(lastHead)) {
|
|
939
730
|
const pendingBundledTransactions = await this.pendingBundledTransactionsLocalArchivist.next({
|
|
940
731
|
limit: 100,
|
|
941
732
|
order: "asc",
|
|
@@ -966,6 +757,8 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
|
|
|
966
757
|
this.logger?.log(payload._hash);
|
|
967
758
|
}
|
|
968
759
|
}
|
|
760
|
+
}, {
|
|
761
|
+
timeBudgetLimit: 200
|
|
969
762
|
});
|
|
970
763
|
}
|
|
971
764
|
};
|
|
@@ -976,8 +769,7 @@ var isTransactionExpired = /* @__PURE__ */ __name((block) => ([txBw]) => txBw.ex
|
|
|
976
769
|
var isTransactionActive = /* @__PURE__ */ __name((block) => ([txBw]) => txBw.nbf <= block && txBw.exp >= block, "isTransactionActive");
|
|
977
770
|
|
|
978
771
|
// src/Schemas/BaseSchemasService.ts
|
|
979
|
-
import {
|
|
980
|
-
import { AbstractCreatableProvider as AbstractCreatableProvider7, creatableProvider as creatableProvider4, schemasSummary } from "@xyo-network/xl1-sdk";
|
|
772
|
+
import { AbstractCreatableProvider as AbstractCreatableProvider5, creatableProvider as creatableProvider4, schemasSummary } from "@xyo-network/xl1-sdk";
|
|
981
773
|
function _ts_decorate5(decorators, target, key, desc) {
|
|
982
774
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
983
775
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -985,7 +777,7 @@ function _ts_decorate5(decorators, target, key, desc) {
|
|
|
985
777
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
986
778
|
}
|
|
987
779
|
__name(_ts_decorate5, "_ts_decorate");
|
|
988
|
-
var BaseSchemasService = class _BaseSchemasService extends
|
|
780
|
+
var BaseSchemasService = class _BaseSchemasService extends AbstractCreatableProvider5 {
|
|
989
781
|
static {
|
|
990
782
|
__name(this, "BaseSchemasService");
|
|
991
783
|
}
|
|
@@ -1001,7 +793,7 @@ var BaseSchemasService = class _BaseSchemasService extends AbstractCreatableProv
|
|
|
1001
793
|
]))[schema] ?? 0;
|
|
1002
794
|
}
|
|
1003
795
|
async schemas(head, schemas) {
|
|
1004
|
-
return await
|
|
796
|
+
return await this.spanAsync("schemas", async () => {
|
|
1005
797
|
const [summary] = await schemasSummary(this.params.schemasStepSummaryContext);
|
|
1006
798
|
const result = {};
|
|
1007
799
|
for (const schema of schemas) {
|
|
@@ -1009,6 +801,8 @@ var BaseSchemasService = class _BaseSchemasService extends AbstractCreatableProv
|
|
|
1009
801
|
result[schema] = count;
|
|
1010
802
|
}
|
|
1011
803
|
return result;
|
|
804
|
+
}, {
|
|
805
|
+
timeBudgetLimit: 100
|
|
1012
806
|
});
|
|
1013
807
|
}
|
|
1014
808
|
};
|
|
@@ -1017,16 +811,16 @@ BaseSchemasService = _ts_decorate5([
|
|
|
1017
811
|
], BaseSchemasService);
|
|
1018
812
|
|
|
1019
813
|
// src/simple/block/runner/SimpleBlockRunner.ts
|
|
1020
|
-
import { assertEx as
|
|
814
|
+
import { assertEx as assertEx10, exists as exists2, hexToBigInt, isDefined as isDefined6 } from "@xylabs/sdk-js";
|
|
1021
815
|
import { MemoryArchivist as MemoryArchivist2 } from "@xyo-network/archivist-memory";
|
|
1022
816
|
import { FixedPercentageBlockRewardDiviner, FixedPercentageBlockRewardDivinerConfigSchema } from "@xyo-network/chain-modules";
|
|
1023
817
|
import { buildNextBlock as buildNextBlock2 } from "@xyo-network/chain-protocol";
|
|
1024
818
|
import { PayloadBuilder as PayloadBuilder5 } from "@xyo-network/payload-builder";
|
|
1025
|
-
import { AbstractCreatableProvider as
|
|
819
|
+
import { AbstractCreatableProvider as AbstractCreatableProvider6, AccountBalanceViewerMoniker, asBlockBoundWitness, AttoXL1, BlockNumberSchema, BlockRewardViewerMoniker as BlockRewardViewerMoniker2, BlockRunnerMoniker, BlockValidationViewerMoniker, creatableProvider as creatableProvider5, createDeclarationIntent as createDeclarationIntent2, defaultRewardRatio, MempoolRunnerMoniker, MempoolViewerMoniker as MempoolViewerMoniker2, TimeSyncViewerMoniker, XYO_STEP_REWARD_ADDRESS } from "@xyo-network/xl1-sdk";
|
|
1026
820
|
|
|
1027
821
|
// src/simple/block/runner/generateTransactionFeeTransfers.ts
|
|
1028
822
|
import { hexFromBigInt } from "@xylabs/sdk-js";
|
|
1029
|
-
import { assertEx as
|
|
823
|
+
import { assertEx as assertEx9 } from "@xylabs/sdk-js";
|
|
1030
824
|
import { PayloadBuilder as PayloadBuilder4 } from "@xyo-network/payload-builder";
|
|
1031
825
|
import { HydratedTransactionWrapper, transactionRequiredGas, TransferSchema, XYO_ZERO_ADDRESS } from "@xyo-network/xl1-sdk";
|
|
1032
826
|
async function generateTransactionFeeTransfers(address, transactions) {
|
|
@@ -1059,7 +853,7 @@ async function generateTransactionFeeTransfers(address, transactions) {
|
|
|
1059
853
|
return payload;
|
|
1060
854
|
});
|
|
1061
855
|
for (const [from, amount] of Object.entries(txGasCosts)) {
|
|
1062
|
-
const fromPayload =
|
|
856
|
+
const fromPayload = assertEx9(payloads.find((p) => p.from === from), () => "from payload not found");
|
|
1063
857
|
fromPayload.transfers[address] = hexFromBigInt(amount);
|
|
1064
858
|
}
|
|
1065
859
|
return payloads;
|
|
@@ -1077,7 +871,7 @@ __name(_ts_decorate6, "_ts_decorate");
|
|
|
1077
871
|
var DEFAULT_BLOCK_SIZE = 10;
|
|
1078
872
|
var XYO_PRODUCER_REDECLARATION_DURATION = 1e4;
|
|
1079
873
|
var XYO_PRODUCER_REDECLARATION_WINDOW = 500;
|
|
1080
|
-
var SimpleBlockRunner = class _SimpleBlockRunner extends
|
|
874
|
+
var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvider6 {
|
|
1081
875
|
static {
|
|
1082
876
|
__name(this, "SimpleBlockRunner");
|
|
1083
877
|
}
|
|
@@ -1102,6 +896,7 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1102
896
|
_address;
|
|
1103
897
|
_blockRewardViewer;
|
|
1104
898
|
_blockValidationViewer;
|
|
899
|
+
_chainId;
|
|
1105
900
|
_mempoolRunner;
|
|
1106
901
|
_mempoolViewer;
|
|
1107
902
|
_rewardAddress;
|
|
@@ -1141,6 +936,9 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1141
936
|
get blockValidationViewer() {
|
|
1142
937
|
return this._blockValidationViewer;
|
|
1143
938
|
}
|
|
939
|
+
get chainId() {
|
|
940
|
+
return this._chainId;
|
|
941
|
+
}
|
|
1144
942
|
// protected get electionService() {
|
|
1145
943
|
// return assertEx(this.params.electionService, () => 'electionService is required')
|
|
1146
944
|
// }
|
|
@@ -1170,11 +968,12 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1170
968
|
// }
|
|
1171
969
|
async createHandler() {
|
|
1172
970
|
this._rejectedTransactionsArchivist = this.params.rejectedTransactionsArchivist ?? await MemoryArchivist2.create();
|
|
1173
|
-
this._account =
|
|
971
|
+
this._account = assertEx10(this.params.account, () => "Account is required");
|
|
1174
972
|
this._address = this.account.address;
|
|
1175
973
|
this._accountBalanceViewer = await this.locateAndCreate(AccountBalanceViewerMoniker);
|
|
1176
974
|
this._blockRewardViewer = await this.locateAndCreate(BlockRewardViewerMoniker2);
|
|
1177
975
|
this._blockValidationViewer = await this.locator.getInstance(BlockValidationViewerMoniker);
|
|
976
|
+
this._chainId = this.context.config.chain.id;
|
|
1178
977
|
this._mempoolRunner = await this.locateAndCreate(MempoolRunnerMoniker);
|
|
1179
978
|
this._mempoolViewer = await this.locateAndCreate(MempoolViewerMoniker2);
|
|
1180
979
|
this._rewardAddress = this.params.rewardAddress ?? this.context.config.producer.rewardAddress;
|
|
@@ -1185,7 +984,7 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1185
984
|
}
|
|
1186
985
|
async produceNextBlock(head, force) {
|
|
1187
986
|
const result = await this.proposeNextValidBlock(head);
|
|
1188
|
-
return force ?
|
|
987
|
+
return force ? assertEx10(result, () => "Failed to produce next block") : result;
|
|
1189
988
|
}
|
|
1190
989
|
async getBlockRewardTransfers(block) {
|
|
1191
990
|
if (!this._blockRewardDiviner) {
|
|
@@ -1222,7 +1021,7 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1222
1021
|
async proposeNextValidBlock(head, validateBalances = false, force = false) {
|
|
1223
1022
|
return await this.spanAsync("proposeNextValidBlock", async () => {
|
|
1224
1023
|
try {
|
|
1225
|
-
const { block: previousBlock } =
|
|
1024
|
+
const { block: previousBlock } = assertEx10(asBlockBoundWitness(head), () => "Invalid head block");
|
|
1226
1025
|
const nextBlock = previousBlock + 1;
|
|
1227
1026
|
const nextBlockTransactions = await this.mempoolViewer.pendingTransactions({
|
|
1228
1027
|
limit: _SimpleBlockRunner.DefaultBlockSize
|
|
@@ -1250,11 +1049,13 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1250
1049
|
]))[XYO_STEP_REWARD_ADDRESS];
|
|
1251
1050
|
const block = await buildNextBlock2(head, fundedNextBlockTransactions, blockPayloads, [
|
|
1252
1051
|
this.account
|
|
1253
|
-
], XYO_STEP_REWARD_ADDRESS, stepRewardPoolBalance);
|
|
1052
|
+
], XYO_STEP_REWARD_ADDRESS, stepRewardPoolBalance, void 0, this.chainId);
|
|
1254
1053
|
this.logger?.info(`Built block ${block[0].block} in ${Date.now() - startBuild}ms with ${block[1].length} payloads`);
|
|
1255
1054
|
this.logger?.info(`Validating block ${block[0].block} with ${block[1].length} payloads`);
|
|
1256
1055
|
const startValidate = Date.now();
|
|
1257
|
-
const errors = await this.blockValidationViewer.validateBlock(block
|
|
1056
|
+
const errors = await this.blockValidationViewer.validateBlock(block, {
|
|
1057
|
+
head: head._hash
|
|
1058
|
+
});
|
|
1258
1059
|
this.logger?.info(`Validated block ${block[0].block} in ${Date.now() - startValidate}ms with ${block[1].length} payloads`);
|
|
1259
1060
|
if (errors.length > 0) {
|
|
1260
1061
|
this.logger?.warn(`Validation of produced block failed: ${errors.at(0)?.message}`);
|
|
@@ -1270,6 +1071,8 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1270
1071
|
this.logger?.error(`Error proposing next valid block: ${error.message}`);
|
|
1271
1072
|
throw error;
|
|
1272
1073
|
}
|
|
1074
|
+
}, {
|
|
1075
|
+
timeBudgetLimit: 200
|
|
1273
1076
|
});
|
|
1274
1077
|
}
|
|
1275
1078
|
// remove unfunded transactions and block transfers
|
|
@@ -1307,7 +1110,7 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1307
1110
|
*/
|
|
1308
1111
|
heartbeatRequired(head) {
|
|
1309
1112
|
const epoch = head.$epoch;
|
|
1310
|
-
if (
|
|
1113
|
+
if (isDefined6(epoch)) {
|
|
1311
1114
|
const { heartbeatInterval } = this.params.context.config.producer;
|
|
1312
1115
|
if (Date.now() - epoch > heartbeatInterval) {
|
|
1313
1116
|
return true;
|
|
@@ -1347,11 +1150,11 @@ var mapBoundWitnessToStakeIntentHashes = /* @__PURE__ */ __name((bw) => {
|
|
|
1347
1150
|
}, "mapBoundWitnessToStakeIntentHashes");
|
|
1348
1151
|
|
|
1349
1152
|
// src/StakeIntent/XyoStakeIntentService.ts
|
|
1350
|
-
import { asAddress
|
|
1153
|
+
import { asAddress, assertEx as assertEx11, filterAs as filterAs3, isUndefined as isUndefined2 } from "@xylabs/sdk-js";
|
|
1351
1154
|
import { analyzeChain, ChainStakeIntentAnalyzer, isChainSummaryStakeIntent } from "@xyo-network/chain-analyze";
|
|
1352
1155
|
import { DEFAULT_FIND_FIRST_MATCHING_NEXT_OPTIONS, findFirstMatching, IntervalMap } from "@xyo-network/chain-utils";
|
|
1353
1156
|
import { PayloadBuilder as PayloadBuilder6 } from "@xyo-network/payload-builder";
|
|
1354
|
-
import { AbstractCreatableProvider as
|
|
1157
|
+
import { AbstractCreatableProvider as AbstractCreatableProvider7, asChainIndexingServiceStateWithStorageMeta, BlockViewerMoniker as BlockViewerMoniker3, ChainIndexingServiceStateSchema, ChainStakeViewerMoniker, creatableProvider as creatableProvider6, isChainIndexingServiceState, readPayloadMapFromStore, timeBudget } from "@xyo-network/xl1-sdk";
|
|
1355
1158
|
import { asBlockBoundWitness as asBlockBoundWitness2, asBlockBoundWitnessWithStorageMeta, asChainStakeIntent as asChainStakeIntent2 } from "@xyo-network/xl1-sdk";
|
|
1356
1159
|
import { Mutex as Mutex2 } from "async-mutex";
|
|
1357
1160
|
import { LRUCache } from "lru-cache";
|
|
@@ -1365,7 +1168,7 @@ __name(_ts_decorate7, "_ts_decorate");
|
|
|
1365
1168
|
var ACTIVE_STAKE_TTL = 1e3 * 60 * 60 * 2;
|
|
1366
1169
|
var NO_ACTIVE_STAKE_TTL = 1e3 * 2;
|
|
1367
1170
|
var STAKE_CACHE_MAX_ENTRIES = 1e4;
|
|
1368
|
-
var XyoStakeIntentService = class _XyoStakeIntentService extends
|
|
1171
|
+
var XyoStakeIntentService = class _XyoStakeIntentService extends AbstractCreatableProvider7 {
|
|
1369
1172
|
static {
|
|
1370
1173
|
__name(this, "XyoStakeIntentService");
|
|
1371
1174
|
}
|
|
@@ -1395,19 +1198,19 @@ var XyoStakeIntentService = class _XyoStakeIntentService extends AbstractCreatab
|
|
|
1395
1198
|
return this._blockViewer;
|
|
1396
1199
|
}
|
|
1397
1200
|
get chainArchivist() {
|
|
1398
|
-
return
|
|
1201
|
+
return assertEx11(this.params.chainArchivist, () => "chainArchivist not set");
|
|
1399
1202
|
}
|
|
1400
1203
|
get chainStakeViewer() {
|
|
1401
1204
|
return this._chainStakeViewer;
|
|
1402
1205
|
}
|
|
1403
1206
|
get stakeIntentStateArchivist() {
|
|
1404
|
-
return
|
|
1207
|
+
return assertEx11(this.params.stakeIntentStateArchivist, () => "stakeIntentStateArchivist not set");
|
|
1405
1208
|
}
|
|
1406
1209
|
static async paramsHandler(params) {
|
|
1407
1210
|
return {
|
|
1408
1211
|
...await super.paramsHandler(params),
|
|
1409
|
-
chainArchivist:
|
|
1410
|
-
stakeIntentStateArchivist:
|
|
1212
|
+
chainArchivist: assertEx11(params?.chainArchivist, () => "chainArchivist is required"),
|
|
1213
|
+
stakeIntentStateArchivist: assertEx11(params?.stakeIntentStateArchivist, () => "stakeIntentStateArchivist is required")
|
|
1411
1214
|
};
|
|
1412
1215
|
}
|
|
1413
1216
|
async createHandler() {
|
|
@@ -1419,13 +1222,13 @@ var XyoStakeIntentService = class _XyoStakeIntentService extends AbstractCreatab
|
|
|
1419
1222
|
}
|
|
1420
1223
|
async getDeclaredCandidateRanges(address, intent) {
|
|
1421
1224
|
await Promise.resolve();
|
|
1422
|
-
|
|
1225
|
+
assertEx11(intent === "producer", () => `Support not yet added for intent ${intent}`);
|
|
1423
1226
|
const results = this._producers.get(address);
|
|
1424
1227
|
return results ?? [];
|
|
1425
1228
|
}
|
|
1426
1229
|
async getDeclaredCandidatesForBlock(block, intent) {
|
|
1427
1230
|
return await this.spanAsync("getDeclaredCandidatesForBlock", async () => {
|
|
1428
|
-
|
|
1231
|
+
assertEx11(intent === "producer", () => `Support not yet added for intent ${intent}`);
|
|
1429
1232
|
const results = this._producers.findAllContaining(block);
|
|
1430
1233
|
const candidates = [
|
|
1431
1234
|
...results
|
|
@@ -1433,6 +1236,8 @@ var XyoStakeIntentService = class _XyoStakeIntentService extends AbstractCreatab
|
|
|
1433
1236
|
const requiredMinimumStake = this.getRequiredMinimumStakeForIntent(intent);
|
|
1434
1237
|
const validCandidates = await this.filterToValidStake(candidates, this.chainStakeViewer, requiredMinimumStake);
|
|
1435
1238
|
return validCandidates;
|
|
1239
|
+
}, {
|
|
1240
|
+
timeBudgetLimit: 200
|
|
1436
1241
|
});
|
|
1437
1242
|
}
|
|
1438
1243
|
getRequiredMinimumStakeForIntent(intent) {
|
|
@@ -1491,7 +1296,7 @@ var XyoStakeIntentService = class _XyoStakeIntentService extends AbstractCreatab
|
|
|
1491
1296
|
}
|
|
1492
1297
|
async recoverState(current) {
|
|
1493
1298
|
return await timeBudget("XyoStakeIntentService.recoverState", console, async () => {
|
|
1494
|
-
const currentBlock =
|
|
1299
|
+
const currentBlock = assertEx11(asBlockBoundWitness2((await this.chainArchivist.get([
|
|
1495
1300
|
current
|
|
1496
1301
|
]))?.[0]), () => `Block ${current} not found`);
|
|
1497
1302
|
const currentBlockNum = currentBlock.block;
|
|
@@ -1533,29 +1338,29 @@ var XyoStakeIntentService = class _XyoStakeIntentService extends AbstractCreatab
|
|
|
1533
1338
|
return await this.spanAsync("updateIndex", async () => {
|
|
1534
1339
|
const currentHead = (await this.blockViewer.currentBlock())[0];
|
|
1535
1340
|
if (isUndefined2(currentHead)) return;
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
this._producers.insert(address, start, stop);
|
|
1555
|
-
}
|
|
1341
|
+
const currentHeadHash = currentHead._hash;
|
|
1342
|
+
const chainMap = readPayloadMapFromStore(this.chainArchivist);
|
|
1343
|
+
const result = await analyzeChain({
|
|
1344
|
+
chainMap
|
|
1345
|
+
}, [
|
|
1346
|
+
new ChainStakeIntentAnalyzer("producer")
|
|
1347
|
+
], currentHeadHash, this._lastIndexedBlockHash);
|
|
1348
|
+
const signedDeclarations = filterAs3(result.find(isChainSummaryStakeIntent)?.intents ?? [], asChainStakeIntent2);
|
|
1349
|
+
if (currentHead.block === void 0) return;
|
|
1350
|
+
const currentHeadBlockNum = currentHead.block;
|
|
1351
|
+
if (displayProgress) this.logger?.log(`Updating index through 0x${currentHeadBlockNum}`);
|
|
1352
|
+
for (const signedDeclaration of signedDeclarations) {
|
|
1353
|
+
const { exp, nbf } = signedDeclaration;
|
|
1354
|
+
const start = nbf;
|
|
1355
|
+
const stop = exp;
|
|
1356
|
+
const address = asAddress(signedDeclaration?.from);
|
|
1357
|
+
if (start !== void 0 && stop !== void 0 && address !== void 0) {
|
|
1358
|
+
this._producers.insert(address, start, stop);
|
|
1556
1359
|
}
|
|
1557
|
-
|
|
1558
|
-
|
|
1360
|
+
}
|
|
1361
|
+
this._lastIndexedBlockHash = currentHeadHash;
|
|
1362
|
+
}, {
|
|
1363
|
+
timeBudgetLimit: 1e3
|
|
1559
1364
|
});
|
|
1560
1365
|
});
|
|
1561
1366
|
}
|
|
@@ -1565,8 +1370,8 @@ XyoStakeIntentService = _ts_decorate7([
|
|
|
1565
1370
|
], XyoStakeIntentService);
|
|
1566
1371
|
|
|
1567
1372
|
// src/StepStake/BaseStepStakeService.ts
|
|
1568
|
-
import { AbstractCreatableProvider as
|
|
1569
|
-
var AbstractStepStakeService = class _AbstractStepStakeService extends
|
|
1373
|
+
import { AbstractCreatableProvider as AbstractCreatableProvider8, StepStakeViewerMoniker } from "@xyo-network/xl1-sdk";
|
|
1374
|
+
var AbstractStepStakeService = class _AbstractStepStakeService extends AbstractCreatableProvider8 {
|
|
1570
1375
|
static {
|
|
1571
1376
|
__name(this, "AbstractStepStakeService");
|
|
1572
1377
|
}
|
|
@@ -1590,8 +1395,6 @@ export {
|
|
|
1590
1395
|
BaseSchemasService,
|
|
1591
1396
|
DEFAULT_BLOCK_SIZE,
|
|
1592
1397
|
EvmBlockRewardViewer,
|
|
1593
|
-
EvmChainViewer,
|
|
1594
|
-
MemoryChainViewer,
|
|
1595
1398
|
SimpleBlockRunner,
|
|
1596
1399
|
XYO_PRODUCER_REDECLARATION_DURATION,
|
|
1597
1400
|
XYO_PRODUCER_REDECLARATION_WINDOW,
|
|
@@ -1602,8 +1405,6 @@ export {
|
|
|
1602
1405
|
canUseEvmProvider,
|
|
1603
1406
|
createBootstrapHead,
|
|
1604
1407
|
getBlockSignedStakeDeclarations,
|
|
1605
|
-
|
|
1606
|
-
initEvmProvider,
|
|
1607
|
-
initMemoryChainService
|
|
1408
|
+
initEvmProvider
|
|
1608
1409
|
};
|
|
1609
1410
|
//# sourceMappingURL=index.mjs.map
|