@xyo-network/chain-services 1.18.0 → 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 +1 -2
- package/dist/neutral/AccountBalance/accountBalanceServiceFromArchivist.d.ts.map +1 -1
- package/dist/neutral/BlockReward/EvmBlockRewardViewer.d.ts +1 -2
- package/dist/neutral/BlockReward/EvmBlockRewardViewer.d.ts.map +1 -1
- package/dist/neutral/ChainValidator/XyoValidator.d.ts +8 -8
- package/dist/neutral/ChainValidator/XyoValidator.d.ts.map +1 -1
- package/dist/neutral/ChainValidator/model/Validator.d.ts +1 -1
- package/dist/neutral/ChainValidator/model/Validator.d.ts.map +1 -1
- package/dist/neutral/Election/BaseElectionService.d.ts +8 -5
- package/dist/neutral/Election/BaseElectionService.d.ts.map +1 -1
- package/dist/neutral/NetworkStakeStepReward/BaseNetworkStakeStepRewardService.d.ts +16 -17
- package/dist/neutral/NetworkStakeStepReward/BaseNetworkStakeStepRewardService.d.ts.map +1 -1
- package/dist/neutral/PendingTransactions/BasePendingTransactions.d.ts +3 -4
- package/dist/neutral/PendingTransactions/BasePendingTransactions.d.ts.map +1 -1
- package/dist/neutral/PendingTransactions/bundledPayloadToHydratedTransaction.d.ts +1 -1
- package/dist/neutral/PendingTransactions/bundledPayloadToHydratedTransaction.d.ts.map +1 -1
- package/dist/neutral/PendingTransactions/hydratedTransactionToPayloadBundle.d.ts +1 -1
- package/dist/neutral/PendingTransactions/hydratedTransactionToPayloadBundle.d.ts.map +1 -1
- package/dist/neutral/Schemas/BaseSchemasService.d.ts +6 -3
- package/dist/neutral/Schemas/BaseSchemasService.d.ts.map +1 -1
- package/dist/neutral/StakeIntent/XyoStakeIntentService.d.ts +13 -6
- package/dist/neutral/StakeIntent/XyoStakeIntentService.d.ts.map +1 -1
- package/dist/neutral/StakeIntent/lib/getBlockSignedStakeDeclarations.d.ts +1 -1
- package/dist/neutral/StakeIntent/lib/getBlockSignedStakeDeclarations.d.ts.map +1 -1
- package/dist/neutral/StepStake/BaseStepStakeService.d.ts +6 -7
- package/dist/neutral/StepStake/BaseStepStakeService.d.ts.map +1 -1
- package/dist/neutral/blockViewerFromChainIteratorAndArchivist.d.ts +1 -1
- package/dist/neutral/blockViewerFromChainIteratorAndArchivist.d.ts.map +1 -1
- package/dist/neutral/implementation/evm/initChainId.d.ts +1 -1
- package/dist/neutral/implementation/evm/initChainId.d.ts.map +1 -1
- package/dist/neutral/implementation/evm/initEvmProvider.d.ts +1 -1
- package/dist/neutral/implementation/evm/initEvmProvider.d.ts.map +1 -1
- package/dist/neutral/implementation/evm/initInfuraProvider.d.ts +1 -1
- package/dist/neutral/implementation/evm/initInfuraProvider.d.ts.map +1 -1
- package/dist/neutral/implementation/evm/initJsonRpcProvider.d.ts +1 -1
- package/dist/neutral/implementation/evm/initJsonRpcProvider.d.ts.map +1 -1
- package/dist/neutral/implementation/head/createBootstrapHead.d.ts +1 -1
- package/dist/neutral/implementation/head/createBootstrapHead.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 -2
- package/dist/neutral/index.d.ts.map +1 -1
- package/dist/neutral/index.mjs +180 -415
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/model/Params.d.ts +1 -2
- package/dist/neutral/model/Params.d.ts.map +1 -1
- package/dist/neutral/simple/block/runner/SimpleBlockRunner.d.ts +34 -20
- package/dist/neutral/simple/block/runner/SimpleBlockRunner.d.ts.map +1 -1
- package/dist/neutral/simple/block/runner/generateTransactionFeeTransfers.d.ts +1 -1
- package/dist/neutral/simple/block/runner/generateTransactionFeeTransfers.d.ts.map +1 -1
- package/package.json +29 -32
- package/src/AccountBalance/accountBalanceServiceFromArchivist.ts +12 -9
- package/src/BlockReward/EvmBlockRewardViewer.ts +5 -7
- package/src/ChainValidator/XyoValidator.ts +9 -14
- package/src/ChainValidator/model/Validator.ts +1 -1
- package/src/Election/BaseElectionService.ts +15 -10
- package/src/NetworkStakeStepReward/BaseNetworkStakeStepRewardService.ts +24 -24
- package/src/PendingTransactions/BasePendingTransactions.ts +14 -14
- package/src/PendingTransactions/bundledPayloadToHydratedTransaction.ts +2 -2
- package/src/PendingTransactions/hydratedTransactionToPayloadBundle.ts +2 -2
- package/src/Schemas/BaseSchemasService.ts +12 -9
- package/src/StakeIntent/XyoStakeIntentService.ts +32 -29
- package/src/StakeIntent/lib/getBlockSignedStakeDeclarations.ts +2 -2
- package/src/StepStake/BaseStepStakeService.ts +7 -11
- package/src/blockViewerFromChainIteratorAndArchivist.ts +14 -4
- package/src/implementation/evm/initChainId.ts +1 -1
- package/src/implementation/evm/initEvmProvider.ts +1 -1
- package/src/implementation/evm/initInfuraProvider.ts +1 -1
- package/src/implementation/evm/initJsonRpcProvider.ts +1 -1
- package/src/implementation/head/createBootstrapHead.ts +2 -2
- package/src/implementation/index.ts +0 -1
- package/src/index.ts +0 -2
- package/src/model/Params.ts +1 -2
- package/src/simple/block/runner/SimpleBlockRunner.ts +39 -36
- package/src/simple/block/runner/generateTransactionFeeTransfers.ts +5 -4
- package/dist/neutral/BaseService.d.ts +0 -19
- package/dist/neutral/BaseService.d.ts.map +0 -1
- package/dist/neutral/ChainService/Evm/Evm.d.ts +0 -39
- 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 -38
- 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 -7
- package/dist/neutral/implementation/chain/evm.d.ts.map +0 -1
- package/dist/neutral/implementation/chain/index.d.ts +0 -6
- package/dist/neutral/implementation/chain/index.d.ts.map +0 -1
- package/src/BaseService.ts +0 -45
- package/src/ChainService/Evm/Evm.ts +0 -105
- package/src/ChainService/Evm/index.ts +0 -1
- package/src/ChainService/Memory/Memory.ts +0 -106
- package/src/ChainService/Memory/index.ts +0 -1
- package/src/ChainService/index.ts +0 -2
- package/src/implementation/chain/evm.ts +0 -39
- package/src/implementation/chain/index.ts +0 -44
package/dist/neutral/index.mjs
CHANGED
|
@@ -3,8 +3,7 @@ var __name = (target, value) => __defProp(target, "name", { value, configurable:
|
|
|
3
3
|
|
|
4
4
|
// src/AccountBalance/accountBalanceServiceFromArchivist.ts
|
|
5
5
|
import { assertEx } from "@xylabs/sdk-js";
|
|
6
|
-
import { StepSizes } from "@xyo-network/xl1-
|
|
7
|
-
import { findMostRecentBlock, LruCacheMap, payloadMapFromStore, SimpleAccountBalanceViewer } from "@xyo-network/xl1-protocol-sdk";
|
|
6
|
+
import { findMostRecentBlock, LruCacheMap, payloadMapFromStore, SimpleAccountBalanceViewer, StepSizes } from "@xyo-network/xl1-sdk";
|
|
8
7
|
import { Semaphore } from "async-mutex";
|
|
9
8
|
var accountBalancesViewerFromArchivist = /* @__PURE__ */ __name(async (context, chainId, archivist) => {
|
|
10
9
|
const summaryMap = new LruCacheMap({
|
|
@@ -37,7 +36,8 @@ var accountBalancesViewerFromArchivist = /* @__PURE__ */ __name(async (context,
|
|
|
37
36
|
stepSemaphores: StepSizes.map(() => new Semaphore(20)),
|
|
38
37
|
summaryMap,
|
|
39
38
|
head: headFunc,
|
|
40
|
-
singletons: context.singletons
|
|
39
|
+
singletons: context.singletons,
|
|
40
|
+
caches: context.caches
|
|
41
41
|
},
|
|
42
42
|
transfersSummaryContext: {
|
|
43
43
|
chainId,
|
|
@@ -47,16 +47,17 @@ var accountBalancesViewerFromArchivist = /* @__PURE__ */ __name(async (context,
|
|
|
47
47
|
stepSemaphores: StepSizes.map(() => new Semaphore(20)),
|
|
48
48
|
summaryMap: transferSummaryMap,
|
|
49
49
|
head: headFunc,
|
|
50
|
-
singletons: context.singletons
|
|
50
|
+
singletons: context.singletons,
|
|
51
|
+
caches: context.caches
|
|
51
52
|
}
|
|
52
53
|
});
|
|
53
54
|
return service;
|
|
54
55
|
}, "accountBalancesViewerFromArchivist");
|
|
55
56
|
|
|
56
|
-
// src/
|
|
57
|
-
import { creatable } from "@xylabs/sdk-js";
|
|
58
|
-
import {
|
|
59
|
-
import {
|
|
57
|
+
// src/BlockReward/EvmBlockRewardViewer.ts
|
|
58
|
+
import { AbstractCreatable, assertEx as assertEx2, creatable, toEthAddress } from "@xylabs/sdk-js";
|
|
59
|
+
import { IXyoChainRewards__factory } from "@xyo-network/typechain";
|
|
60
|
+
import { asAttoXL1, BlockRewardViewerMoniker } from "@xyo-network/xl1-sdk";
|
|
60
61
|
function _ts_decorate(decorators, target, key, desc) {
|
|
61
62
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
62
63
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -64,48 +65,6 @@ function _ts_decorate(decorators, target, key, desc) {
|
|
|
64
65
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
65
66
|
}
|
|
66
67
|
__name(_ts_decorate, "_ts_decorate");
|
|
67
|
-
var BaseService = class extends AbstractCreatableProvider {
|
|
68
|
-
static {
|
|
69
|
-
__name(this, "BaseService");
|
|
70
|
-
}
|
|
71
|
-
static singletonInitMutex = new Mutex();
|
|
72
|
-
static get singletons() {
|
|
73
|
-
return globalThis["xyoServiceSingletons"] ?? (globalThis["xyoServiceSingletons"] = {});
|
|
74
|
-
}
|
|
75
|
-
static initSingleton(params) {
|
|
76
|
-
if (this.singletons[this.name]) throw new Error(`Singleton already initialized for ${this.name}`);
|
|
77
|
-
return this.singletonInitMutex.runExclusive(async () => {
|
|
78
|
-
return await this.create(params);
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
BaseService = _ts_decorate([
|
|
83
|
-
creatable()
|
|
84
|
-
], BaseService);
|
|
85
|
-
var BaseAccountableService = class extends BaseService {
|
|
86
|
-
static {
|
|
87
|
-
__name(this, "BaseAccountableService");
|
|
88
|
-
}
|
|
89
|
-
};
|
|
90
|
-
function creatableService() {
|
|
91
|
-
return (constructor) => {
|
|
92
|
-
constructor;
|
|
93
|
-
};
|
|
94
|
-
}
|
|
95
|
-
__name(creatableService, "creatableService");
|
|
96
|
-
|
|
97
|
-
// src/BlockReward/EvmBlockRewardViewer.ts
|
|
98
|
-
import { AbstractCreatable, assertEx as assertEx2, creatable as creatable2, toEthAddress } from "@xylabs/sdk-js";
|
|
99
|
-
import { XyoChainRewards__factory as XyoChainRewardsFactory } from "@xyo-network/typechain";
|
|
100
|
-
import { asAttoXL1 } from "@xyo-network/xl1-protocol";
|
|
101
|
-
import { BlockRewardViewerMoniker } from "@xyo-network/xl1-protocol-sdk";
|
|
102
|
-
function _ts_decorate2(decorators, target, key, desc) {
|
|
103
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
104
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
105
|
-
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;
|
|
106
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
107
|
-
}
|
|
108
|
-
__name(_ts_decorate2, "_ts_decorate");
|
|
109
68
|
var EvmBlockRewardViewer = class _EvmBlockRewardViewer extends AbstractCreatable {
|
|
110
69
|
static {
|
|
111
70
|
__name(this, "EvmBlockRewardViewer");
|
|
@@ -126,7 +85,7 @@ var EvmBlockRewardViewer = class _EvmBlockRewardViewer extends AbstractCreatable
|
|
|
126
85
|
return assertEx2(this.params.provider, () => "provider is required");
|
|
127
86
|
}
|
|
128
87
|
async allowedRewardForBlock(blockNumber) {
|
|
129
|
-
const contract =
|
|
88
|
+
const contract = IXyoChainRewards__factory.connect(toEthAddress(this.contractAddress), this.provider);
|
|
130
89
|
return asAttoXL1(await contract.calcBlockReward(blockNumber));
|
|
131
90
|
}
|
|
132
91
|
async createHandler() {
|
|
@@ -139,15 +98,14 @@ var EvmBlockRewardViewer = class _EvmBlockRewardViewer extends AbstractCreatable
|
|
|
139
98
|
}
|
|
140
99
|
}
|
|
141
100
|
};
|
|
142
|
-
EvmBlockRewardViewer =
|
|
143
|
-
|
|
101
|
+
EvmBlockRewardViewer = _ts_decorate([
|
|
102
|
+
creatable()
|
|
144
103
|
], EvmBlockRewardViewer);
|
|
145
104
|
|
|
146
105
|
// src/blockViewerFromChainIteratorAndArchivist.ts
|
|
147
106
|
import { isDefined } from "@xylabs/sdk-js";
|
|
148
107
|
import { PayloadBuilder } from "@xyo-network/payload-builder";
|
|
149
|
-
import { asSignedBlockBoundWitness, asSignedBlockBoundWitnessWithStorageMeta } from "@xyo-network/xl1-
|
|
150
|
-
import { BlockViewerMoniker } from "@xyo-network/xl1-protocol-sdk";
|
|
108
|
+
import { asSignedBlockBoundWitness, asSignedBlockBoundWitnessWithStorageMeta, BlockViewerMoniker } from "@xyo-network/xl1-sdk";
|
|
151
109
|
function blockViewerFromChainIteratorAndArchivist(chainIterator, chainArchivist) {
|
|
152
110
|
const result = {
|
|
153
111
|
blockByHash: /* @__PURE__ */ __name(async function(hash) {
|
|
@@ -225,176 +183,28 @@ function blockViewerFromChainIteratorAndArchivist(chainIterator, chainArchivist)
|
|
|
225
183
|
}, "payloadByHash"),
|
|
226
184
|
payloadsByHash: /* @__PURE__ */ __name(function(_hashes) {
|
|
227
185
|
throw new Error("Function not implemented.");
|
|
228
|
-
}, "payloadsByHash")
|
|
186
|
+
}, "payloadsByHash"),
|
|
187
|
+
rate(..._args) {
|
|
188
|
+
throw new Error("Function not implemented.");
|
|
189
|
+
},
|
|
190
|
+
stepSizeRate(..._args) {
|
|
191
|
+
throw new Error("Function not implemented.");
|
|
192
|
+
},
|
|
193
|
+
timeDurationRate(..._args) {
|
|
194
|
+
throw new Error("Function not implemented.");
|
|
195
|
+
}
|
|
229
196
|
};
|
|
230
197
|
return result;
|
|
231
198
|
}
|
|
232
199
|
__name(blockViewerFromChainIteratorAndArchivist, "blockViewerFromChainIteratorAndArchivist");
|
|
233
200
|
|
|
234
|
-
// src/ChainService/Evm/Evm.ts
|
|
235
|
-
import { toAddress, toEthAddress as toEthAddress2 } from "@xylabs/sdk-js";
|
|
236
|
-
import { ChainContractViewerMoniker } from "@xyo-network/xl1-protocol-sdk";
|
|
237
|
-
import { getAddress } from "ethers/address";
|
|
238
|
-
var EvmChainViewer = class _EvmChainViewer extends BaseService {
|
|
239
|
-
static {
|
|
240
|
-
__name(this, "EvmChainViewer");
|
|
241
|
-
}
|
|
242
|
-
static defaultMoniker = ChainContractViewerMoniker;
|
|
243
|
-
static monikers = [
|
|
244
|
-
ChainContractViewerMoniker
|
|
245
|
-
];
|
|
246
|
-
moniker = _EvmChainViewer.defaultMoniker;
|
|
247
|
-
get contract() {
|
|
248
|
-
return this.params.contract;
|
|
249
|
-
}
|
|
250
|
-
async active() {
|
|
251
|
-
return await this.contract.active();
|
|
252
|
-
}
|
|
253
|
-
async activeByStaked(staked) {
|
|
254
|
-
return await this.contract.activeByAddressStaked(getAddress(toEthAddress2(staked)));
|
|
255
|
-
}
|
|
256
|
-
async activeByStaker(address) {
|
|
257
|
-
return await this.contract.activeByStaker(getAddress(toEthAddress2(address)));
|
|
258
|
-
}
|
|
259
|
-
async addStake(staked, amount) {
|
|
260
|
-
const result = await this.contract.addStake(getAddress(toEthAddress2(staked)), amount);
|
|
261
|
-
await result.wait();
|
|
262
|
-
return true;
|
|
263
|
-
}
|
|
264
|
-
async forkedAtBlockNumber() {
|
|
265
|
-
return await this.contract.forkedAtBlockNumber();
|
|
266
|
-
}
|
|
267
|
-
async forkedAtHash() {
|
|
268
|
-
return await this.contract.forkedAtHash();
|
|
269
|
-
}
|
|
270
|
-
async forkedChainId() {
|
|
271
|
-
return toAddress(await this.contract.forkedChainId());
|
|
272
|
-
}
|
|
273
|
-
async minWithdrawalBlocks() {
|
|
274
|
-
return await this.contract.minWithdrawalBlocks();
|
|
275
|
-
}
|
|
276
|
-
async pending() {
|
|
277
|
-
return await this.contract.pending();
|
|
278
|
-
}
|
|
279
|
-
async pendingByStaker(staker) {
|
|
280
|
-
return await this.contract.pendingByStaker(getAddress(toEthAddress2(staker)));
|
|
281
|
-
}
|
|
282
|
-
async removeStake(slot) {
|
|
283
|
-
const result = await this.contract.removeStake(slot);
|
|
284
|
-
await result.wait();
|
|
285
|
-
return true;
|
|
286
|
-
}
|
|
287
|
-
rewardForBlock(_block) {
|
|
288
|
-
throw new Error("Method not implemented.");
|
|
289
|
-
}
|
|
290
|
-
async rewardsContract() {
|
|
291
|
-
return await this.contract.rewardsContract();
|
|
292
|
-
}
|
|
293
|
-
async stakingTokenAddress() {
|
|
294
|
-
return await this.contract.stakingTokenAddress();
|
|
295
|
-
}
|
|
296
|
-
async withdrawStake(slot) {
|
|
297
|
-
const result = await this.contract.withdrawStake(slot);
|
|
298
|
-
await result.wait();
|
|
299
|
-
return true;
|
|
300
|
-
}
|
|
301
|
-
async withdrawn() {
|
|
302
|
-
return await this.contract.withdrawn();
|
|
303
|
-
}
|
|
304
|
-
async withdrawnByStaker(staker) {
|
|
305
|
-
return await this.contract.withdrawnByStaker(getAddress(staker));
|
|
306
|
-
}
|
|
307
|
-
};
|
|
308
|
-
|
|
309
|
-
// src/ChainService/Memory/Memory.ts
|
|
310
|
-
import { toAddress as toAddress2, ZERO_ADDRESS } from "@xylabs/sdk-js";
|
|
311
|
-
import { ChainContractViewerMoniker as ChainContractViewerMoniker2 } from "@xyo-network/xl1-protocol-sdk";
|
|
312
|
-
var MemoryChainViewer = class _MemoryChainViewer extends BaseService {
|
|
313
|
-
static {
|
|
314
|
-
__name(this, "MemoryChainViewer");
|
|
315
|
-
}
|
|
316
|
-
static defaultMoniker = ChainContractViewerMoniker2;
|
|
317
|
-
static monikers = [
|
|
318
|
-
ChainContractViewerMoniker2
|
|
319
|
-
];
|
|
320
|
-
moniker = _MemoryChainViewer.defaultMoniker;
|
|
321
|
-
_chainId;
|
|
322
|
-
_simulatedStake = 1n;
|
|
323
|
-
async active() {
|
|
324
|
-
return await Promise.resolve(this._simulatedStake);
|
|
325
|
-
}
|
|
326
|
-
async activeByStaked(_staked) {
|
|
327
|
-
return await Promise.resolve(this._simulatedStake);
|
|
328
|
-
}
|
|
329
|
-
async activeByStaker(_address) {
|
|
330
|
-
return await Promise.resolve(this._simulatedStake);
|
|
331
|
-
}
|
|
332
|
-
async addStake(_staked, _amount) {
|
|
333
|
-
return await Promise.resolve(true);
|
|
334
|
-
}
|
|
335
|
-
createHandler() {
|
|
336
|
-
const { minStake = 1 } = this.params.context.config.producer ?? {};
|
|
337
|
-
this._simulatedStake = BigInt(minStake);
|
|
338
|
-
}
|
|
339
|
-
async forkedAtBlockNumber() {
|
|
340
|
-
return await Promise.resolve(0n);
|
|
341
|
-
}
|
|
342
|
-
async forkedAtHash() {
|
|
343
|
-
return await Promise.resolve(0n);
|
|
344
|
-
}
|
|
345
|
-
async forkedChainId() {
|
|
346
|
-
return await Promise.resolve(ZERO_ADDRESS);
|
|
347
|
-
}
|
|
348
|
-
async minWithdrawalBlocks() {
|
|
349
|
-
return await Promise.resolve(1n);
|
|
350
|
-
}
|
|
351
|
-
async pending() {
|
|
352
|
-
return await Promise.resolve(0n);
|
|
353
|
-
}
|
|
354
|
-
async pendingByStaker(_staker) {
|
|
355
|
-
return await Promise.resolve(0n);
|
|
356
|
-
}
|
|
357
|
-
async removeStake(_slot) {
|
|
358
|
-
return await Promise.resolve(true);
|
|
359
|
-
}
|
|
360
|
-
rewardForBlock(_block) {
|
|
361
|
-
throw new Error("Method not implemented.");
|
|
362
|
-
}
|
|
363
|
-
async rewardsContract() {
|
|
364
|
-
return await Promise.resolve("");
|
|
365
|
-
}
|
|
366
|
-
async stakingTokenAddress() {
|
|
367
|
-
return await Promise.resolve("");
|
|
368
|
-
}
|
|
369
|
-
async withdrawStake(_slot) {
|
|
370
|
-
return await Promise.resolve(true);
|
|
371
|
-
}
|
|
372
|
-
async withdrawn() {
|
|
373
|
-
return await Promise.resolve(0n);
|
|
374
|
-
}
|
|
375
|
-
async withdrawnByStaker(_staker) {
|
|
376
|
-
return await Promise.resolve(0n);
|
|
377
|
-
}
|
|
378
|
-
async startHandler() {
|
|
379
|
-
await super.startHandler();
|
|
380
|
-
this._chainId = this.params.chainId ?? toAddress2(1n);
|
|
381
|
-
}
|
|
382
|
-
};
|
|
383
|
-
|
|
384
201
|
// src/ChainValidator/XyoValidator.ts
|
|
385
|
-
import {
|
|
386
|
-
|
|
387
|
-
function _ts_decorate3(decorators, target, key, desc) {
|
|
388
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
389
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
390
|
-
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;
|
|
391
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
392
|
-
}
|
|
393
|
-
__name(_ts_decorate3, "_ts_decorate");
|
|
394
|
-
var XyoValidator = class extends BaseService {
|
|
202
|
+
import { AbstractCreatableProvider, BlockViewerMoniker as BlockViewerMoniker2 } from "@xyo-network/xl1-sdk";
|
|
203
|
+
var XyoValidator = class extends AbstractCreatableProvider {
|
|
395
204
|
static {
|
|
396
205
|
__name(this, "XyoValidator");
|
|
397
206
|
}
|
|
207
|
+
moniker = "Validator";
|
|
398
208
|
_blockViewer;
|
|
399
209
|
// get address() {
|
|
400
210
|
// return this.account.address
|
|
@@ -430,24 +240,28 @@ var XyoValidator = class extends BaseService {
|
|
|
430
240
|
return await Promise.resolve(true);
|
|
431
241
|
}
|
|
432
242
|
};
|
|
433
|
-
XyoValidator = _ts_decorate3([
|
|
434
|
-
creatable3()
|
|
435
|
-
], XyoValidator);
|
|
436
243
|
|
|
437
244
|
// src/Election/BaseElectionService.ts
|
|
438
|
-
import { assertEx as assertEx3
|
|
245
|
+
import { assertEx as assertEx3 } from "@xylabs/sdk-js";
|
|
439
246
|
import { hexToLast4BytesInt, shuffleWithSeed } from "@xyo-network/chain-utils";
|
|
440
|
-
|
|
247
|
+
import { AbstractCreatableProvider as AbstractCreatableProvider2, creatableProvider } from "@xyo-network/xl1-sdk";
|
|
248
|
+
function _ts_decorate2(decorators, target, key, desc) {
|
|
441
249
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
442
250
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
443
251
|
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;
|
|
444
252
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
445
253
|
}
|
|
446
|
-
__name(
|
|
447
|
-
var BaseElectionService = class extends
|
|
254
|
+
__name(_ts_decorate2, "_ts_decorate");
|
|
255
|
+
var BaseElectionService = class _BaseElectionService extends AbstractCreatableProvider2 {
|
|
448
256
|
static {
|
|
449
257
|
__name(this, "BaseElectionService");
|
|
450
258
|
}
|
|
259
|
+
static defaultMoniker = "Election";
|
|
260
|
+
static dependencies = [];
|
|
261
|
+
static monikers = [
|
|
262
|
+
"Election"
|
|
263
|
+
];
|
|
264
|
+
moniker = _BaseElectionService.defaultMoniker;
|
|
451
265
|
get blockViewer() {
|
|
452
266
|
return assertEx3(this.params.blockViewer, () => "No block viewer");
|
|
453
267
|
}
|
|
@@ -463,6 +277,8 @@ var BaseElectionService = class extends BaseService {
|
|
|
463
277
|
const candidates = await this.stakeIntentService.getDeclaredCandidatesForBlock(nextBlock, "producer");
|
|
464
278
|
const previousBlockHash = current._hash;
|
|
465
279
|
return this.generateCreatorCommittee(candidates, previousBlockHash);
|
|
280
|
+
}, {
|
|
281
|
+
timeBudgetLimit: 200
|
|
466
282
|
});
|
|
467
283
|
}
|
|
468
284
|
generateCreatorCommittee(candidates, previousBlockHash, maxSize = 3) {
|
|
@@ -472,17 +288,10 @@ var BaseElectionService = class extends BaseService {
|
|
|
472
288
|
return creatorArray.slice(0, maxSize);
|
|
473
289
|
}
|
|
474
290
|
};
|
|
475
|
-
BaseElectionService =
|
|
476
|
-
|
|
291
|
+
BaseElectionService = _ts_decorate2([
|
|
292
|
+
creatableProvider()
|
|
477
293
|
], BaseElectionService);
|
|
478
294
|
|
|
479
|
-
// src/implementation/chain/index.ts
|
|
480
|
-
import { assertEx as assertEx9 } from "@xylabs/sdk-js";
|
|
481
|
-
|
|
482
|
-
// src/implementation/chain/evm.ts
|
|
483
|
-
import { asAddress, assertEx as assertEx8, isDefined as isDefined5, ZERO_ADDRESS as ZERO_ADDRESS2 } from "@xylabs/sdk-js";
|
|
484
|
-
import { Wallet } from "ethers/wallet";
|
|
485
|
-
|
|
486
295
|
// src/implementation/evm/initEvmProvider.ts
|
|
487
296
|
import { assertEx as assertEx7 } from "@xylabs/sdk-js";
|
|
488
297
|
|
|
@@ -563,69 +372,9 @@ var canUseEvmProvider = /* @__PURE__ */ __name(({ config }) => {
|
|
|
563
372
|
return canUseInfuraProvider(config) || canUseJsonRpcProvider(config);
|
|
564
373
|
}, "canUseEvmProvider");
|
|
565
374
|
|
|
566
|
-
// src/implementation/chain/evm.ts
|
|
567
|
-
var chainStakeServiceSingleton;
|
|
568
|
-
var canUseEvmContractChainService = /* @__PURE__ */ __name((config) => {
|
|
569
|
-
const { id } = config.chain;
|
|
570
|
-
return isDefined5(id) && id !== ZERO_ADDRESS2 && canUseEvmProvider({
|
|
571
|
-
config
|
|
572
|
-
});
|
|
573
|
-
}, "canUseEvmContractChainService");
|
|
574
|
-
var initEvmContractChainService = /* @__PURE__ */ __name(async ({ account, context: { config }, traceProvider, meterProvider, logger }) => {
|
|
575
|
-
if (chainStakeServiceSingleton) return chainStakeServiceSingleton;
|
|
576
|
-
const emvStakingContractAddress = assertEx8(config.chain.id, () => "config.chain.id is required");
|
|
577
|
-
const id = assertEx8(asAddress(emvStakingContractAddress), () => "config.chain.id is not a valid address");
|
|
578
|
-
const provider2 = assertEx8(await initEvmProvider({
|
|
579
|
-
config
|
|
580
|
-
}));
|
|
581
|
-
const privateKey = assertEx8(account.private?.hex, () => "Account does not have a private key");
|
|
582
|
-
const runner = new Wallet(privateKey, provider2);
|
|
583
|
-
chainStakeServiceSingleton = EvmChainViewer.create({
|
|
584
|
-
id,
|
|
585
|
-
runner,
|
|
586
|
-
traceProvider,
|
|
587
|
-
meterProvider,
|
|
588
|
-
logger
|
|
589
|
-
});
|
|
590
|
-
const result = await chainStakeServiceSingleton;
|
|
591
|
-
await result.start();
|
|
592
|
-
return result;
|
|
593
|
-
}, "initEvmContractChainService");
|
|
594
|
-
|
|
595
|
-
// src/implementation/chain/index.ts
|
|
596
|
-
var chainStakeServiceSingleton2;
|
|
597
|
-
var initChainService = /* @__PURE__ */ __name(({ account, context }) => {
|
|
598
|
-
const { logger } = context;
|
|
599
|
-
logger?.log("ChainService: Initializing...");
|
|
600
|
-
const result = init({
|
|
601
|
-
context,
|
|
602
|
-
name: "ChainService",
|
|
603
|
-
account
|
|
604
|
-
});
|
|
605
|
-
logger?.log("ChainService: Initialized");
|
|
606
|
-
return result;
|
|
607
|
-
}, "initChainService");
|
|
608
|
-
var initMemoryChainService = /* @__PURE__ */ __name(async ({ context }) => {
|
|
609
|
-
const result = await MemoryChainViewer.create({
|
|
610
|
-
context,
|
|
611
|
-
name: "MemoryChainService"
|
|
612
|
-
});
|
|
613
|
-
assertEx9(await result.start(), () => "Failed to start MemoryChainService");
|
|
614
|
-
return result;
|
|
615
|
-
}, "initMemoryChainService");
|
|
616
|
-
var init = /* @__PURE__ */ __name(async (params) => {
|
|
617
|
-
if (chainStakeServiceSingleton2) return chainStakeServiceSingleton2;
|
|
618
|
-
const { config } = params.context;
|
|
619
|
-
chainStakeServiceSingleton2 = canUseEvmContractChainService(config) ? await initEvmContractChainService({
|
|
620
|
-
...params,
|
|
621
|
-
name: "ChainStakeService"
|
|
622
|
-
}) : await initMemoryChainService(params);
|
|
623
|
-
return chainStakeServiceSingleton2;
|
|
624
|
-
}, "init");
|
|
625
|
-
|
|
626
375
|
// src/implementation/head/createBootstrapHead.ts
|
|
627
376
|
import { buildNextBlock, createGenesisBlock } from "@xyo-network/chain-protocol";
|
|
628
|
-
import { createDeclarationIntent } from "@xyo-network/xl1-
|
|
377
|
+
import { createDeclarationIntent } from "@xyo-network/xl1-sdk";
|
|
629
378
|
var createBootstrapHead = /* @__PURE__ */ __name(async (account, chainId, genesisBlockRewardAmount, genesisBlockRewardAddress) => {
|
|
630
379
|
const chain = [];
|
|
631
380
|
const genesisBlock = await createGenesisBlock(account, chainId, genesisBlockRewardAmount, genesisBlockRewardAddress);
|
|
@@ -641,20 +390,20 @@ var createBootstrapHead = /* @__PURE__ */ __name(async (account, chainId, genesi
|
|
|
641
390
|
}, "createBootstrapHead");
|
|
642
391
|
|
|
643
392
|
// src/NetworkStakeStepReward/BaseNetworkStakeStepRewardService.ts
|
|
644
|
-
import {
|
|
645
|
-
|
|
646
|
-
function _ts_decorate5(decorators, target, key, desc) {
|
|
393
|
+
import { AbstractCreatableProvider as AbstractCreatableProvider3, creatableProvider as creatableProvider2, NetworkStakeStepRewardViewerMoniker } from "@xyo-network/xl1-sdk";
|
|
394
|
+
function _ts_decorate3(decorators, target, key, desc) {
|
|
647
395
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
648
396
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
649
397
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
650
398
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
651
399
|
}
|
|
652
|
-
__name(
|
|
653
|
-
var BaseNetworkStakeStepRewardService = class _BaseNetworkStakeStepRewardService extends
|
|
400
|
+
__name(_ts_decorate3, "_ts_decorate");
|
|
401
|
+
var BaseNetworkStakeStepRewardService = class _BaseNetworkStakeStepRewardService extends AbstractCreatableProvider3 {
|
|
654
402
|
static {
|
|
655
403
|
__name(this, "BaseNetworkStakeStepRewardService");
|
|
656
404
|
}
|
|
657
405
|
static defaultMoniker = NetworkStakeStepRewardViewerMoniker;
|
|
406
|
+
static dependencies = [];
|
|
658
407
|
static monikers = [
|
|
659
408
|
NetworkStakeStepRewardViewerMoniker
|
|
660
409
|
];
|
|
@@ -714,22 +463,20 @@ var BaseNetworkStakeStepRewardService = class _BaseNetworkStakeStepRewardService
|
|
|
714
463
|
throw new Error("Method [networkStakeStepRewardsForStepLevel] not implemented.");
|
|
715
464
|
}
|
|
716
465
|
};
|
|
717
|
-
BaseNetworkStakeStepRewardService =
|
|
718
|
-
|
|
466
|
+
BaseNetworkStakeStepRewardService = _ts_decorate3([
|
|
467
|
+
creatableProvider2()
|
|
719
468
|
], BaseNetworkStakeStepRewardService);
|
|
720
469
|
|
|
721
470
|
// src/PendingTransactions/BasePendingTransactions.ts
|
|
722
471
|
import { ValueType } from "@opentelemetry/api";
|
|
723
|
-
import { assertEx as
|
|
472
|
+
import { assertEx as assertEx8, exists, filterAs, filterAsync, forget, isDefined as isDefined5, isUndefined } from "@xylabs/sdk-js";
|
|
724
473
|
import { MemoryArchivist } from "@xyo-network/archivist-memory";
|
|
725
|
-
import { asBlockBoundWitnessWithHashMeta, asXL1BlockNumber, isTransactionBoundWitnessWithStorageMeta } from "@xyo-network/xl1-
|
|
726
|
-
import {
|
|
727
|
-
import { TransactionJsonSchemaValidator, validateTransaction } from "@xyo-network/xl1-validation";
|
|
728
|
-
import { Mutex as Mutex2 } from "async-mutex";
|
|
474
|
+
import { AbstractCreatableProvider as AbstractCreatableProvider4, asBlockBoundWitnessWithHashMeta, asXL1BlockNumber, creatableProvider as creatableProvider3, findMostRecentBlock as findMostRecentBlock2, isTransactionBoundWitnessWithStorageMeta, MempoolViewerMoniker, TransactionJsonSchemaValidator, validateTransaction } from "@xyo-network/xl1-sdk";
|
|
475
|
+
import { Mutex } from "async-mutex";
|
|
729
476
|
|
|
730
477
|
// src/PendingTransactions/bundledPayloadToHydratedTransaction.ts
|
|
731
478
|
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
|
|
732
|
-
import { asSignedTransactionBoundWitnessWithHashMeta } from "@xyo-network/xl1-
|
|
479
|
+
import { asSignedTransactionBoundWitnessWithHashMeta } from "@xyo-network/xl1-sdk";
|
|
733
480
|
var bundledPayloadToHydratedTransaction = /* @__PURE__ */ __name(async (payload) => {
|
|
734
481
|
const withHashMeta = await PayloadBuilder2.addHashMeta(payload.payloads);
|
|
735
482
|
const tx = asSignedTransactionBoundWitnessWithHashMeta(withHashMeta.find((p) => p._hash === payload.root));
|
|
@@ -744,7 +491,7 @@ var bundledPayloadToHydratedTransaction = /* @__PURE__ */ __name(async (payload)
|
|
|
744
491
|
// src/PendingTransactions/hydratedTransactionToPayloadBundle.ts
|
|
745
492
|
import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder";
|
|
746
493
|
import { PayloadBundleSchema } from "@xyo-network/payload-model";
|
|
747
|
-
import { flattenHydratedTransaction } from "@xyo-network/xl1-
|
|
494
|
+
import { flattenHydratedTransaction } from "@xyo-network/xl1-sdk";
|
|
748
495
|
var hydratedTransactionToPayloadBundle = /* @__PURE__ */ __name((transaction) => {
|
|
749
496
|
const root = transaction[0]._hash;
|
|
750
497
|
return bundle(root, transaction);
|
|
@@ -760,18 +507,19 @@ var bundle = /* @__PURE__ */ __name((root, transaction) => {
|
|
|
760
507
|
}, "bundle");
|
|
761
508
|
|
|
762
509
|
// src/PendingTransactions/BasePendingTransactions.ts
|
|
763
|
-
function
|
|
510
|
+
function _ts_decorate4(decorators, target, key, desc) {
|
|
764
511
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
765
512
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
766
513
|
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;
|
|
767
514
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
768
515
|
}
|
|
769
|
-
__name(
|
|
770
|
-
var BasePendingTransactionsService = class _BasePendingTransactionsService extends
|
|
516
|
+
__name(_ts_decorate4, "_ts_decorate");
|
|
517
|
+
var BasePendingTransactionsService = class _BasePendingTransactionsService extends AbstractCreatableProvider4 {
|
|
771
518
|
static {
|
|
772
519
|
__name(this, "BasePendingTransactionsService");
|
|
773
520
|
}
|
|
774
521
|
static defaultMoniker = MempoolViewerMoniker;
|
|
522
|
+
static dependencies = [];
|
|
775
523
|
static monikers = [
|
|
776
524
|
MempoolViewerMoniker
|
|
777
525
|
];
|
|
@@ -794,7 +542,7 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
|
|
|
794
542
|
* A mutex to ensure that the counting the number of pending transactions is
|
|
795
543
|
* not called concurrently
|
|
796
544
|
*/
|
|
797
|
-
_countPendingTransactionsMutex = new
|
|
545
|
+
_countPendingTransactionsMutex = new Mutex();
|
|
798
546
|
/**
|
|
799
547
|
* A local Archivist optimized for fast retrieval that stores only validated
|
|
800
548
|
* pending transactions
|
|
@@ -814,25 +562,25 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
|
|
|
814
562
|
* A mutex to ensure that the curated pending transactions archivist is
|
|
815
563
|
* updated in a thread-safe manner
|
|
816
564
|
*/
|
|
817
|
-
_updateCuratedPendingTransactionsArchivistMutex = new
|
|
565
|
+
_updateCuratedPendingTransactionsArchivistMutex = new Mutex();
|
|
818
566
|
get additionalPendingTransactionValidators() {
|
|
819
567
|
return this.params.additionalPendingTransactionValidators ?? [];
|
|
820
568
|
}
|
|
821
569
|
get chainArchivist() {
|
|
822
|
-
return
|
|
570
|
+
return assertEx8(this.params.chainArchivist, () => "No completed blocks with data archivist");
|
|
823
571
|
}
|
|
824
572
|
get pendingBundledTransactionsArchivist() {
|
|
825
|
-
return
|
|
573
|
+
return assertEx8(this.params.pendingBundledTransactionsArchivist, () => "No pending bundled transactions archivist");
|
|
826
574
|
}
|
|
827
575
|
get pendingBundledTransactionsLocalArchivist() {
|
|
828
|
-
return
|
|
576
|
+
return assertEx8(this._curatedPendingBundledTransactionsArchivist, () => "No pending bundled transactions curated archivist");
|
|
829
577
|
}
|
|
830
578
|
get pendingTransactionsCount() {
|
|
831
579
|
forget(this.countPendingTransactions());
|
|
832
580
|
return this._pendingTransactionsCount;
|
|
833
581
|
}
|
|
834
582
|
get rejectedTransactionsArchivist() {
|
|
835
|
-
return
|
|
583
|
+
return assertEx8(this.params.rejectedTransactionsArchivist, () => "No rejected transactions archivist");
|
|
836
584
|
}
|
|
837
585
|
async createHandler() {
|
|
838
586
|
await super.createHandler();
|
|
@@ -907,12 +655,14 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
|
|
|
907
655
|
}
|
|
908
656
|
return foundPendingTransactions;
|
|
909
657
|
}, _BasePendingTransactionsService.MutexPriority.ReadTransactions);
|
|
658
|
+
}, {
|
|
659
|
+
timeBudgetLimit: 100
|
|
910
660
|
});
|
|
911
661
|
}
|
|
912
662
|
async cleanupWorker() {
|
|
913
663
|
return await this._updateCuratedPendingTransactionsArchivistMutex.runExclusive(async () => {
|
|
914
664
|
const lastHead = await findMostRecentBlock2(this.chainArchivist);
|
|
915
|
-
if (
|
|
665
|
+
if (isDefined5(lastHead)) await this.pruneCuratedPendingTransactionsArchivist(lastHead._hash);
|
|
916
666
|
}, _BasePendingTransactionsService.MutexPriority.PurgeTransactions);
|
|
917
667
|
}
|
|
918
668
|
async countPendingTransactions() {
|
|
@@ -953,6 +703,8 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
|
|
|
953
703
|
await this.pendingBundledTransactionsLocalArchivist.insert(bundledTransactions);
|
|
954
704
|
}
|
|
955
705
|
}, _BasePendingTransactionsService.MutexPriority.InsertNewTransactions);
|
|
706
|
+
}, {
|
|
707
|
+
timeBudgetLimit: 200
|
|
956
708
|
});
|
|
957
709
|
}
|
|
958
710
|
/**
|
|
@@ -974,7 +726,7 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
|
|
|
974
726
|
let [lastHead] = filterAs(await this.chainArchivist.get([
|
|
975
727
|
head
|
|
976
728
|
]), (x) => asBlockBoundWitnessWithHashMeta(x));
|
|
977
|
-
while (
|
|
729
|
+
while (isDefined5(lastHead)) {
|
|
978
730
|
const pendingBundledTransactions = await this.pendingBundledTransactionsLocalArchivist.next({
|
|
979
731
|
limit: 100,
|
|
980
732
|
order: "asc",
|
|
@@ -1005,36 +757,43 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
|
|
|
1005
757
|
this.logger?.log(payload._hash);
|
|
1006
758
|
}
|
|
1007
759
|
}
|
|
760
|
+
}, {
|
|
761
|
+
timeBudgetLimit: 200
|
|
1008
762
|
});
|
|
1009
763
|
}
|
|
1010
764
|
};
|
|
1011
|
-
BasePendingTransactionsService =
|
|
1012
|
-
|
|
765
|
+
BasePendingTransactionsService = _ts_decorate4([
|
|
766
|
+
creatableProvider3()
|
|
1013
767
|
], BasePendingTransactionsService);
|
|
1014
768
|
var isTransactionExpired = /* @__PURE__ */ __name((block) => ([txBw]) => txBw.exp < block, "isTransactionExpired");
|
|
1015
769
|
var isTransactionActive = /* @__PURE__ */ __name((block) => ([txBw]) => txBw.nbf <= block && txBw.exp >= block, "isTransactionActive");
|
|
1016
770
|
|
|
1017
771
|
// src/Schemas/BaseSchemasService.ts
|
|
1018
|
-
import {
|
|
1019
|
-
|
|
1020
|
-
function _ts_decorate7(decorators, target, key, desc) {
|
|
772
|
+
import { AbstractCreatableProvider as AbstractCreatableProvider5, creatableProvider as creatableProvider4, schemasSummary } from "@xyo-network/xl1-sdk";
|
|
773
|
+
function _ts_decorate5(decorators, target, key, desc) {
|
|
1021
774
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1022
775
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1023
776
|
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;
|
|
1024
777
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1025
778
|
}
|
|
1026
|
-
__name(
|
|
1027
|
-
var BaseSchemasService = class extends
|
|
779
|
+
__name(_ts_decorate5, "_ts_decorate");
|
|
780
|
+
var BaseSchemasService = class _BaseSchemasService extends AbstractCreatableProvider5 {
|
|
1028
781
|
static {
|
|
1029
782
|
__name(this, "BaseSchemasService");
|
|
1030
783
|
}
|
|
784
|
+
static defaultMoniker = "SchemasService";
|
|
785
|
+
static dependencies = [];
|
|
786
|
+
static monikers = [
|
|
787
|
+
_BaseSchemasService.defaultMoniker
|
|
788
|
+
];
|
|
789
|
+
moniker = _BaseSchemasService.defaultMoniker;
|
|
1031
790
|
async schema(head, schema) {
|
|
1032
791
|
return (await this.schemas(head, [
|
|
1033
792
|
schema
|
|
1034
793
|
]))[schema] ?? 0;
|
|
1035
794
|
}
|
|
1036
795
|
async schemas(head, schemas) {
|
|
1037
|
-
return await
|
|
796
|
+
return await this.spanAsync("schemas", async () => {
|
|
1038
797
|
const [summary] = await schemasSummary(this.params.schemasStepSummaryContext);
|
|
1039
798
|
const result = {};
|
|
1040
799
|
for (const schema of schemas) {
|
|
@@ -1042,29 +801,28 @@ var BaseSchemasService = class extends BaseService {
|
|
|
1042
801
|
result[schema] = count;
|
|
1043
802
|
}
|
|
1044
803
|
return result;
|
|
804
|
+
}, {
|
|
805
|
+
timeBudgetLimit: 100
|
|
1045
806
|
});
|
|
1046
807
|
}
|
|
1047
808
|
};
|
|
1048
|
-
BaseSchemasService =
|
|
1049
|
-
|
|
809
|
+
BaseSchemasService = _ts_decorate5([
|
|
810
|
+
creatableProvider4()
|
|
1050
811
|
], BaseSchemasService);
|
|
1051
812
|
|
|
1052
813
|
// src/simple/block/runner/SimpleBlockRunner.ts
|
|
1053
|
-
import { assertEx as
|
|
814
|
+
import { assertEx as assertEx10, exists as exists2, hexToBigInt, isDefined as isDefined6 } from "@xylabs/sdk-js";
|
|
1054
815
|
import { MemoryArchivist as MemoryArchivist2 } from "@xyo-network/archivist-memory";
|
|
1055
816
|
import { FixedPercentageBlockRewardDiviner, FixedPercentageBlockRewardDivinerConfigSchema } from "@xyo-network/chain-modules";
|
|
1056
817
|
import { buildNextBlock as buildNextBlock2 } from "@xyo-network/chain-protocol";
|
|
1057
818
|
import { PayloadBuilder as PayloadBuilder5 } from "@xyo-network/payload-builder";
|
|
1058
|
-
import { asBlockBoundWitness, AttoXL1, BlockNumberSchema, defaultRewardRatio, XYO_STEP_REWARD_ADDRESS } from "@xyo-network/xl1-
|
|
1059
|
-
import { AbstractCreatableProvider as AbstractCreatableProvider2, AccountBalanceViewerMoniker, BlockRewardViewerMoniker as BlockRewardViewerMoniker2, BlockRunnerMoniker, BlockValidationViewerMoniker, creatableProvider, createDeclarationIntent as createDeclarationIntent2, MempoolRunnerMoniker, MempoolViewerMoniker as MempoolViewerMoniker2, TimeSyncViewerMoniker } from "@xyo-network/xl1-protocol-sdk";
|
|
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";
|
|
1060
820
|
|
|
1061
821
|
// src/simple/block/runner/generateTransactionFeeTransfers.ts
|
|
1062
822
|
import { hexFromBigInt } from "@xylabs/sdk-js";
|
|
1063
|
-
import { assertEx as
|
|
823
|
+
import { assertEx as assertEx9 } from "@xylabs/sdk-js";
|
|
1064
824
|
import { PayloadBuilder as PayloadBuilder4 } from "@xyo-network/payload-builder";
|
|
1065
|
-
import { TransferSchema, XYO_ZERO_ADDRESS } from "@xyo-network/xl1-
|
|
1066
|
-
import { transactionRequiredGas } from "@xyo-network/xl1-protocol-sdk";
|
|
1067
|
-
import { HydratedTransactionWrapper } from "@xyo-network/xl1-wrappers";
|
|
825
|
+
import { HydratedTransactionWrapper, transactionRequiredGas, TransferSchema, XYO_ZERO_ADDRESS } from "@xyo-network/xl1-sdk";
|
|
1068
826
|
async function generateTransactionFeeTransfers(address, transactions) {
|
|
1069
827
|
const txs = await Promise.all(transactions.map(async (tx) => {
|
|
1070
828
|
return HydratedTransactionWrapper.parse([
|
|
@@ -1095,7 +853,7 @@ async function generateTransactionFeeTransfers(address, transactions) {
|
|
|
1095
853
|
return payload;
|
|
1096
854
|
});
|
|
1097
855
|
for (const [from, amount] of Object.entries(txGasCosts)) {
|
|
1098
|
-
const fromPayload =
|
|
856
|
+
const fromPayload = assertEx9(payloads.find((p) => p.from === from), () => "from payload not found");
|
|
1099
857
|
fromPayload.transfers[address] = hexFromBigInt(amount);
|
|
1100
858
|
}
|
|
1101
859
|
return payloads;
|
|
@@ -1103,21 +861,29 @@ async function generateTransactionFeeTransfers(address, transactions) {
|
|
|
1103
861
|
__name(generateTransactionFeeTransfers, "generateTransactionFeeTransfers");
|
|
1104
862
|
|
|
1105
863
|
// src/simple/block/runner/SimpleBlockRunner.ts
|
|
1106
|
-
function
|
|
864
|
+
function _ts_decorate6(decorators, target, key, desc) {
|
|
1107
865
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1108
866
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1109
867
|
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;
|
|
1110
868
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1111
869
|
}
|
|
1112
|
-
__name(
|
|
870
|
+
__name(_ts_decorate6, "_ts_decorate");
|
|
1113
871
|
var DEFAULT_BLOCK_SIZE = 10;
|
|
1114
872
|
var XYO_PRODUCER_REDECLARATION_DURATION = 1e4;
|
|
1115
873
|
var XYO_PRODUCER_REDECLARATION_WINDOW = 500;
|
|
1116
|
-
var SimpleBlockRunner = class _SimpleBlockRunner extends
|
|
874
|
+
var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvider6 {
|
|
1117
875
|
static {
|
|
1118
876
|
__name(this, "SimpleBlockRunner");
|
|
1119
877
|
}
|
|
1120
878
|
static defaultMoniker = BlockRunnerMoniker;
|
|
879
|
+
static dependencies = [
|
|
880
|
+
AccountBalanceViewerMoniker,
|
|
881
|
+
BlockRewardViewerMoniker2,
|
|
882
|
+
BlockValidationViewerMoniker,
|
|
883
|
+
MempoolRunnerMoniker,
|
|
884
|
+
MempoolViewerMoniker2,
|
|
885
|
+
TimeSyncViewerMoniker
|
|
886
|
+
];
|
|
1121
887
|
static monikers = [
|
|
1122
888
|
BlockRunnerMoniker
|
|
1123
889
|
];
|
|
@@ -1130,6 +896,7 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1130
896
|
_address;
|
|
1131
897
|
_blockRewardViewer;
|
|
1132
898
|
_blockValidationViewer;
|
|
899
|
+
_chainId;
|
|
1133
900
|
_mempoolRunner;
|
|
1134
901
|
_mempoolViewer;
|
|
1135
902
|
_rewardAddress;
|
|
@@ -1169,6 +936,9 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1169
936
|
get blockValidationViewer() {
|
|
1170
937
|
return this._blockValidationViewer;
|
|
1171
938
|
}
|
|
939
|
+
get chainId() {
|
|
940
|
+
return this._chainId;
|
|
941
|
+
}
|
|
1172
942
|
// protected get electionService() {
|
|
1173
943
|
// return assertEx(this.params.electionService, () => 'electionService is required')
|
|
1174
944
|
// }
|
|
@@ -1185,7 +955,7 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1185
955
|
return this._rejectedTransactionsArchivist;
|
|
1186
956
|
}
|
|
1187
957
|
get rewardAddress() {
|
|
1188
|
-
return
|
|
958
|
+
return this._rewardAddress;
|
|
1189
959
|
}
|
|
1190
960
|
// protected get stakeIntentService(): StakeIntentService {
|
|
1191
961
|
// return assertEx(this.params.stakeIntentService, () => 'No StakeIntentService provided')
|
|
@@ -1198,14 +968,15 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1198
968
|
// }
|
|
1199
969
|
async createHandler() {
|
|
1200
970
|
this._rejectedTransactionsArchivist = this.params.rejectedTransactionsArchivist ?? await MemoryArchivist2.create();
|
|
1201
|
-
this._account =
|
|
1202
|
-
this._rewardAddress = assertEx12(this.params.rewardAddress, () => "No reward address provided");
|
|
971
|
+
this._account = assertEx10(this.params.account, () => "Account is required");
|
|
1203
972
|
this._address = this.account.address;
|
|
1204
973
|
this._accountBalanceViewer = await this.locateAndCreate(AccountBalanceViewerMoniker);
|
|
1205
974
|
this._blockRewardViewer = await this.locateAndCreate(BlockRewardViewerMoniker2);
|
|
1206
975
|
this._blockValidationViewer = await this.locator.getInstance(BlockValidationViewerMoniker);
|
|
976
|
+
this._chainId = this.context.config.chain.id;
|
|
1207
977
|
this._mempoolRunner = await this.locateAndCreate(MempoolRunnerMoniker);
|
|
1208
978
|
this._mempoolViewer = await this.locateAndCreate(MempoolViewerMoniker2);
|
|
979
|
+
this._rewardAddress = this.params.rewardAddress ?? this.context.config.producer.rewardAddress;
|
|
1209
980
|
this._timeSyncViewer = await this.locateAndCreate(TimeSyncViewerMoniker);
|
|
1210
981
|
}
|
|
1211
982
|
async next(head) {
|
|
@@ -1213,7 +984,7 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1213
984
|
}
|
|
1214
985
|
async produceNextBlock(head, force) {
|
|
1215
986
|
const result = await this.proposeNextValidBlock(head);
|
|
1216
|
-
return force ?
|
|
987
|
+
return force ? assertEx10(result, () => "Failed to produce next block") : result;
|
|
1217
988
|
}
|
|
1218
989
|
async getBlockRewardTransfers(block) {
|
|
1219
990
|
if (!this._blockRewardDiviner) {
|
|
@@ -1250,7 +1021,7 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1250
1021
|
async proposeNextValidBlock(head, validateBalances = false, force = false) {
|
|
1251
1022
|
return await this.spanAsync("proposeNextValidBlock", async () => {
|
|
1252
1023
|
try {
|
|
1253
|
-
const { block: previousBlock } =
|
|
1024
|
+
const { block: previousBlock } = assertEx10(asBlockBoundWitness(head), () => "Invalid head block");
|
|
1254
1025
|
const nextBlock = previousBlock + 1;
|
|
1255
1026
|
const nextBlockTransactions = await this.mempoolViewer.pendingTransactions({
|
|
1256
1027
|
limit: _SimpleBlockRunner.DefaultBlockSize
|
|
@@ -1264,7 +1035,7 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1264
1035
|
blockPayloads.push(...rewardTransferPayloads);
|
|
1265
1036
|
const transactionTransfers = await generateTransactionFeeTransfers(this.address, nextBlockTransactions);
|
|
1266
1037
|
const timeStart = Date.now();
|
|
1267
|
-
const timePayload = await this.generateTimePayload(
|
|
1038
|
+
const timePayload = await this.generateTimePayload();
|
|
1268
1039
|
const timeDuration = Date.now() - timeStart;
|
|
1269
1040
|
if (timeDuration > 100) {
|
|
1270
1041
|
this.logger?.warn(`[Slow] Generated time payload in ${timeDuration}ms`);
|
|
@@ -1278,11 +1049,13 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1278
1049
|
]))[XYO_STEP_REWARD_ADDRESS];
|
|
1279
1050
|
const block = await buildNextBlock2(head, fundedNextBlockTransactions, blockPayloads, [
|
|
1280
1051
|
this.account
|
|
1281
|
-
], XYO_STEP_REWARD_ADDRESS, stepRewardPoolBalance);
|
|
1052
|
+
], XYO_STEP_REWARD_ADDRESS, stepRewardPoolBalance, void 0, this.chainId);
|
|
1282
1053
|
this.logger?.info(`Built block ${block[0].block} in ${Date.now() - startBuild}ms with ${block[1].length} payloads`);
|
|
1283
1054
|
this.logger?.info(`Validating block ${block[0].block} with ${block[1].length} payloads`);
|
|
1284
1055
|
const startValidate = Date.now();
|
|
1285
|
-
const errors = await this.blockValidationViewer.validateBlock(block
|
|
1056
|
+
const errors = await this.blockValidationViewer.validateBlock(block, {
|
|
1057
|
+
head: head._hash
|
|
1058
|
+
});
|
|
1286
1059
|
this.logger?.info(`Validated block ${block[0].block} in ${Date.now() - startValidate}ms with ${block[1].length} payloads`);
|
|
1287
1060
|
if (errors.length > 0) {
|
|
1288
1061
|
this.logger?.warn(`Validation of produced block failed: ${errors.at(0)?.message}`);
|
|
@@ -1298,6 +1071,8 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1298
1071
|
this.logger?.error(`Error proposing next valid block: ${error.message}`);
|
|
1299
1072
|
throw error;
|
|
1300
1073
|
}
|
|
1074
|
+
}, {
|
|
1075
|
+
timeBudgetLimit: 200
|
|
1301
1076
|
});
|
|
1302
1077
|
}
|
|
1303
1078
|
// remove unfunded transactions and block transfers
|
|
@@ -1325,7 +1100,7 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1325
1100
|
fundedTransfers
|
|
1326
1101
|
];
|
|
1327
1102
|
}
|
|
1328
|
-
async generateTimePayload(
|
|
1103
|
+
async generateTimePayload() {
|
|
1329
1104
|
return await this.timeSyncViewer.currentTimePayload();
|
|
1330
1105
|
}
|
|
1331
1106
|
/**
|
|
@@ -1335,7 +1110,7 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1335
1110
|
*/
|
|
1336
1111
|
heartbeatRequired(head) {
|
|
1337
1112
|
const epoch = head.$epoch;
|
|
1338
|
-
if (
|
|
1113
|
+
if (isDefined6(epoch)) {
|
|
1339
1114
|
const { heartbeatInterval } = this.params.context.config.producer;
|
|
1340
1115
|
if (Date.now() - epoch > heartbeatInterval) {
|
|
1341
1116
|
return true;
|
|
@@ -1344,8 +1119,8 @@ var SimpleBlockRunner = class _SimpleBlockRunner extends AbstractCreatableProvid
|
|
|
1344
1119
|
return false;
|
|
1345
1120
|
}
|
|
1346
1121
|
};
|
|
1347
|
-
SimpleBlockRunner =
|
|
1348
|
-
|
|
1122
|
+
SimpleBlockRunner = _ts_decorate6([
|
|
1123
|
+
creatableProvider5()
|
|
1349
1124
|
], SimpleBlockRunner);
|
|
1350
1125
|
|
|
1351
1126
|
// src/StakeIntent/lib/getBlockSignedStakeDeclarations.ts
|
|
@@ -1353,7 +1128,7 @@ import { exists as exists3, filterAs as filterAs2 } from "@xylabs/sdk-js";
|
|
|
1353
1128
|
import { isBoundWitness } from "@xyo-network/boundwitness-model";
|
|
1354
1129
|
import { payloadSchemasContains } from "@xyo-network/boundwitness-validator";
|
|
1355
1130
|
import { BoundWitnessWrapper } from "@xyo-network/boundwitness-wrapper";
|
|
1356
|
-
import { asChainStakeIntent, ChainStakeIntentSchema } from "@xyo-network/xl1-
|
|
1131
|
+
import { asChainStakeIntent, ChainStakeIntentSchema } from "@xyo-network/xl1-sdk";
|
|
1357
1132
|
var getBlockSignedStakeDeclarations = /* @__PURE__ */ __name(async (block, archivist, intent) => {
|
|
1358
1133
|
const blockData = await archivist.get(block.payload_hashes);
|
|
1359
1134
|
const bwsFromBlock = blockData.filter((x) => isBoundWitness(x));
|
|
@@ -1375,28 +1150,34 @@ var mapBoundWitnessToStakeIntentHashes = /* @__PURE__ */ __name((bw) => {
|
|
|
1375
1150
|
}, "mapBoundWitnessToStakeIntentHashes");
|
|
1376
1151
|
|
|
1377
1152
|
// src/StakeIntent/XyoStakeIntentService.ts
|
|
1378
|
-
import { asAddress
|
|
1153
|
+
import { asAddress, assertEx as assertEx11, filterAs as filterAs3, isUndefined as isUndefined2 } from "@xylabs/sdk-js";
|
|
1379
1154
|
import { analyzeChain, ChainStakeIntentAnalyzer, isChainSummaryStakeIntent } from "@xyo-network/chain-analyze";
|
|
1380
1155
|
import { DEFAULT_FIND_FIRST_MATCHING_NEXT_OPTIONS, findFirstMatching, IntervalMap } from "@xyo-network/chain-utils";
|
|
1381
1156
|
import { PayloadBuilder as PayloadBuilder6 } from "@xyo-network/payload-builder";
|
|
1382
|
-
import {
|
|
1383
|
-
import {
|
|
1384
|
-
import { Mutex as
|
|
1157
|
+
import { AbstractCreatableProvider as AbstractCreatableProvider7, asChainIndexingServiceStateWithStorageMeta, BlockViewerMoniker as BlockViewerMoniker3, ChainIndexingServiceStateSchema, ChainStakeViewerMoniker, creatableProvider as creatableProvider6, isChainIndexingServiceState, readPayloadMapFromStore, timeBudget } from "@xyo-network/xl1-sdk";
|
|
1158
|
+
import { asBlockBoundWitness as asBlockBoundWitness2, asBlockBoundWitnessWithStorageMeta, asChainStakeIntent as asChainStakeIntent2 } from "@xyo-network/xl1-sdk";
|
|
1159
|
+
import { Mutex as Mutex2 } from "async-mutex";
|
|
1385
1160
|
import { LRUCache } from "lru-cache";
|
|
1386
|
-
function
|
|
1161
|
+
function _ts_decorate7(decorators, target, key, desc) {
|
|
1387
1162
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1388
1163
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1389
1164
|
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;
|
|
1390
1165
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1391
1166
|
}
|
|
1392
|
-
__name(
|
|
1167
|
+
__name(_ts_decorate7, "_ts_decorate");
|
|
1393
1168
|
var ACTIVE_STAKE_TTL = 1e3 * 60 * 60 * 2;
|
|
1394
1169
|
var NO_ACTIVE_STAKE_TTL = 1e3 * 2;
|
|
1395
1170
|
var STAKE_CACHE_MAX_ENTRIES = 1e4;
|
|
1396
|
-
var XyoStakeIntentService = class extends
|
|
1171
|
+
var XyoStakeIntentService = class _XyoStakeIntentService extends AbstractCreatableProvider7 {
|
|
1397
1172
|
static {
|
|
1398
1173
|
__name(this, "XyoStakeIntentService");
|
|
1399
1174
|
}
|
|
1175
|
+
static defaultMoniker = "StakeIntent";
|
|
1176
|
+
static dependencies = [];
|
|
1177
|
+
static monikers = [
|
|
1178
|
+
_XyoStakeIntentService.defaultMoniker
|
|
1179
|
+
];
|
|
1180
|
+
moniker = "StakeIntent";
|
|
1400
1181
|
// TODO: Use hash instead of block number to handle chain reorgs
|
|
1401
1182
|
_lastIndexedBlockHash = void 0;
|
|
1402
1183
|
// TODO: Interval tree per declaration (bank, validator, etc.)
|
|
@@ -1410,26 +1191,26 @@ var XyoStakeIntentService = class extends BaseService {
|
|
|
1410
1191
|
_stakeCache = new LRUCache({
|
|
1411
1192
|
max: STAKE_CACHE_MAX_ENTRIES
|
|
1412
1193
|
});
|
|
1413
|
-
_updateMutex = new
|
|
1194
|
+
_updateMutex = new Mutex2();
|
|
1414
1195
|
_blockViewer;
|
|
1415
1196
|
_chainStakeViewer;
|
|
1416
1197
|
get blockViewer() {
|
|
1417
1198
|
return this._blockViewer;
|
|
1418
1199
|
}
|
|
1419
1200
|
get chainArchivist() {
|
|
1420
|
-
return
|
|
1201
|
+
return assertEx11(this.params.chainArchivist, () => "chainArchivist not set");
|
|
1421
1202
|
}
|
|
1422
1203
|
get chainStakeViewer() {
|
|
1423
1204
|
return this._chainStakeViewer;
|
|
1424
1205
|
}
|
|
1425
1206
|
get stakeIntentStateArchivist() {
|
|
1426
|
-
return
|
|
1207
|
+
return assertEx11(this.params.stakeIntentStateArchivist, () => "stakeIntentStateArchivist not set");
|
|
1427
1208
|
}
|
|
1428
1209
|
static async paramsHandler(params) {
|
|
1429
1210
|
return {
|
|
1430
1211
|
...await super.paramsHandler(params),
|
|
1431
|
-
chainArchivist:
|
|
1432
|
-
stakeIntentStateArchivist:
|
|
1212
|
+
chainArchivist: assertEx11(params?.chainArchivist, () => "chainArchivist is required"),
|
|
1213
|
+
stakeIntentStateArchivist: assertEx11(params?.stakeIntentStateArchivist, () => "stakeIntentStateArchivist is required")
|
|
1433
1214
|
};
|
|
1434
1215
|
}
|
|
1435
1216
|
async createHandler() {
|
|
@@ -1441,13 +1222,13 @@ var XyoStakeIntentService = class extends BaseService {
|
|
|
1441
1222
|
}
|
|
1442
1223
|
async getDeclaredCandidateRanges(address, intent) {
|
|
1443
1224
|
await Promise.resolve();
|
|
1444
|
-
|
|
1225
|
+
assertEx11(intent === "producer", () => `Support not yet added for intent ${intent}`);
|
|
1445
1226
|
const results = this._producers.get(address);
|
|
1446
1227
|
return results ?? [];
|
|
1447
1228
|
}
|
|
1448
1229
|
async getDeclaredCandidatesForBlock(block, intent) {
|
|
1449
1230
|
return await this.spanAsync("getDeclaredCandidatesForBlock", async () => {
|
|
1450
|
-
|
|
1231
|
+
assertEx11(intent === "producer", () => `Support not yet added for intent ${intent}`);
|
|
1451
1232
|
const results = this._producers.findAllContaining(block);
|
|
1452
1233
|
const candidates = [
|
|
1453
1234
|
...results
|
|
@@ -1455,6 +1236,8 @@ var XyoStakeIntentService = class extends BaseService {
|
|
|
1455
1236
|
const requiredMinimumStake = this.getRequiredMinimumStakeForIntent(intent);
|
|
1456
1237
|
const validCandidates = await this.filterToValidStake(candidates, this.chainStakeViewer, requiredMinimumStake);
|
|
1457
1238
|
return validCandidates;
|
|
1239
|
+
}, {
|
|
1240
|
+
timeBudgetLimit: 200
|
|
1458
1241
|
});
|
|
1459
1242
|
}
|
|
1460
1243
|
getRequiredMinimumStakeForIntent(intent) {
|
|
@@ -1513,7 +1296,7 @@ var XyoStakeIntentService = class extends BaseService {
|
|
|
1513
1296
|
}
|
|
1514
1297
|
async recoverState(current) {
|
|
1515
1298
|
return await timeBudget("XyoStakeIntentService.recoverState", console, async () => {
|
|
1516
|
-
const currentBlock =
|
|
1299
|
+
const currentBlock = assertEx11(asBlockBoundWitness2((await this.chainArchivist.get([
|
|
1517
1300
|
current
|
|
1518
1301
|
]))?.[0]), () => `Block ${current} not found`);
|
|
1519
1302
|
const currentBlockNum = currentBlock.block;
|
|
@@ -1555,56 +1338,48 @@ var XyoStakeIntentService = class extends BaseService {
|
|
|
1555
1338
|
return await this.spanAsync("updateIndex", async () => {
|
|
1556
1339
|
const currentHead = (await this.blockViewer.currentBlock())[0];
|
|
1557
1340
|
if (isUndefined2(currentHead)) return;
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
this._producers.insert(address, start, stop);
|
|
1577
|
-
}
|
|
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);
|
|
1578
1359
|
}
|
|
1579
|
-
|
|
1580
|
-
|
|
1360
|
+
}
|
|
1361
|
+
this._lastIndexedBlockHash = currentHeadHash;
|
|
1362
|
+
}, {
|
|
1363
|
+
timeBudgetLimit: 1e3
|
|
1581
1364
|
});
|
|
1582
1365
|
});
|
|
1583
1366
|
}
|
|
1584
1367
|
};
|
|
1585
|
-
XyoStakeIntentService =
|
|
1586
|
-
|
|
1368
|
+
XyoStakeIntentService = _ts_decorate7([
|
|
1369
|
+
creatableProvider6()
|
|
1587
1370
|
], XyoStakeIntentService);
|
|
1588
1371
|
|
|
1589
1372
|
// src/StepStake/BaseStepStakeService.ts
|
|
1590
|
-
import {
|
|
1591
|
-
|
|
1592
|
-
function _ts_decorate10(decorators, target, key, desc) {
|
|
1593
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
1594
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
1595
|
-
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;
|
|
1596
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
1597
|
-
}
|
|
1598
|
-
__name(_ts_decorate10, "_ts_decorate");
|
|
1599
|
-
var BaseStepStakeService = class _BaseStepStakeService extends BaseService {
|
|
1373
|
+
import { AbstractCreatableProvider as AbstractCreatableProvider8, StepStakeViewerMoniker } from "@xyo-network/xl1-sdk";
|
|
1374
|
+
var AbstractStepStakeService = class _AbstractStepStakeService extends AbstractCreatableProvider8 {
|
|
1600
1375
|
static {
|
|
1601
|
-
__name(this, "
|
|
1376
|
+
__name(this, "AbstractStepStakeService");
|
|
1602
1377
|
}
|
|
1603
1378
|
static defaultMoniker = StepStakeViewerMoniker;
|
|
1604
1379
|
static monikers = [
|
|
1605
1380
|
StepStakeViewerMoniker
|
|
1606
1381
|
];
|
|
1607
|
-
moniker =
|
|
1382
|
+
moniker = _AbstractStepStakeService.defaultMoniker;
|
|
1608
1383
|
stepStake(_step) {
|
|
1609
1384
|
throw new Error("Method [stepStake] not implemented.");
|
|
1610
1385
|
}
|
|
@@ -1612,21 +1387,14 @@ var BaseStepStakeService = class _BaseStepStakeService extends BaseService {
|
|
|
1612
1387
|
throw new Error("Method [stepStakeForAddress] not implemented.");
|
|
1613
1388
|
}
|
|
1614
1389
|
};
|
|
1615
|
-
BaseStepStakeService = _ts_decorate10([
|
|
1616
|
-
creatable9()
|
|
1617
|
-
], BaseStepStakeService);
|
|
1618
1390
|
export {
|
|
1619
|
-
|
|
1391
|
+
AbstractStepStakeService,
|
|
1620
1392
|
BaseElectionService,
|
|
1621
1393
|
BaseNetworkStakeStepRewardService,
|
|
1622
1394
|
BasePendingTransactionsService,
|
|
1623
1395
|
BaseSchemasService,
|
|
1624
|
-
BaseService,
|
|
1625
|
-
BaseStepStakeService,
|
|
1626
1396
|
DEFAULT_BLOCK_SIZE,
|
|
1627
1397
|
EvmBlockRewardViewer,
|
|
1628
|
-
EvmChainViewer,
|
|
1629
|
-
MemoryChainViewer,
|
|
1630
1398
|
SimpleBlockRunner,
|
|
1631
1399
|
XYO_PRODUCER_REDECLARATION_DURATION,
|
|
1632
1400
|
XYO_PRODUCER_REDECLARATION_WINDOW,
|
|
@@ -1635,11 +1403,8 @@ export {
|
|
|
1635
1403
|
accountBalancesViewerFromArchivist,
|
|
1636
1404
|
blockViewerFromChainIteratorAndArchivist,
|
|
1637
1405
|
canUseEvmProvider,
|
|
1638
|
-
creatableService,
|
|
1639
1406
|
createBootstrapHead,
|
|
1640
1407
|
getBlockSignedStakeDeclarations,
|
|
1641
|
-
|
|
1642
|
-
initEvmProvider,
|
|
1643
|
-
initMemoryChainService
|
|
1408
|
+
initEvmProvider
|
|
1644
1409
|
};
|
|
1645
1410
|
//# sourceMappingURL=index.mjs.map
|