@xyo-network/chain-services 1.16.23 → 1.16.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/neutral/AccountBalance/BaseAccountBalanceService.d.ts +10 -3
- package/dist/neutral/AccountBalance/BaseAccountBalanceService.d.ts.map +1 -1
- package/dist/neutral/BlockProducer/BaseBlockProducerService.d.ts +9 -0
- package/dist/neutral/BlockProducer/BaseBlockProducerService.d.ts.map +1 -1
- package/dist/neutral/index.mjs +114 -78
- package/dist/neutral/index.mjs.map +1 -1
- package/package.json +11 -10
- package/src/AccountBalance/BaseAccountBalanceService.ts +30 -13
- package/src/BlockProducer/BaseBlockProducerService.ts +16 -1
|
@@ -1,9 +1,16 @@
|
|
|
1
|
-
import { Address, Hash
|
|
1
|
+
import { Address, Hash } from '@xylabs/sdk-js';
|
|
2
2
|
import { ReadArchivist } from '@xyo-network/archivist-model';
|
|
3
3
|
import { AttoXL1, XL1BlockRange } from '@xyo-network/xl1-protocol';
|
|
4
4
|
import { AccountBalanceHistoryItem, AccountBalanceViewer, BalanceStepSummaryContext, BlockViewer, EventingChainBlockNumberIteratorService, TransfersStepSummaryContext } from '@xyo-network/xl1-protocol-sdk';
|
|
5
|
+
import z from 'zod';
|
|
5
6
|
import { BaseService } from '../BaseService.ts';
|
|
6
7
|
import { BaseServiceParams } from '../model/index.ts';
|
|
8
|
+
export declare const BaseAccountBalanceServiceParamsZod: z.ZodObject<{
|
|
9
|
+
chainArchivist: z.ZodObject<{}, z.z.core.$loose>;
|
|
10
|
+
chainIterator: z.ZodObject<{}, z.z.core.$loose>;
|
|
11
|
+
context: z.ZodObject<{}, z.z.core.$loose>;
|
|
12
|
+
transferContext: z.ZodObject<{}, z.z.core.$loose>;
|
|
13
|
+
}, z.z.core.$strip>;
|
|
7
14
|
export interface BaseAccountBalanceServiceParams extends BaseServiceParams {
|
|
8
15
|
chainArchivist: ReadArchivist;
|
|
9
16
|
chainIterator: EventingChainBlockNumberIteratorService;
|
|
@@ -13,12 +20,12 @@ export interface BaseAccountBalanceServiceParams extends BaseServiceParams {
|
|
|
13
20
|
export declare class BaseAccountBalanceService extends BaseService<BaseAccountBalanceServiceParams> implements AccountBalanceViewer {
|
|
14
21
|
protected accountBalanceViewer: AccountBalanceViewer;
|
|
15
22
|
protected blockViewer: BlockViewer;
|
|
23
|
+
static paramsHandler(params?: Partial<BaseAccountBalanceServiceParams> | undefined): Promise<BaseAccountBalanceServiceParams>;
|
|
16
24
|
accountBalance(address: Address, headOrRange?: XL1BlockRange | Hash): Promise<AttoXL1>;
|
|
17
25
|
accountBalanceHistory(address: Address): Promise<AccountBalanceHistoryItem[]>;
|
|
18
26
|
accountBalanceHistory(address: Address, head: Hash): Promise<AccountBalanceHistoryItem[]>;
|
|
19
27
|
accountBalanceHistory(address: Address, range: XL1BlockRange): Promise<AccountBalanceHistoryItem[]>;
|
|
20
|
-
|
|
21
|
-
accountsBalances(address: Address[], headOrRange?: Hash | XL1BlockRange): Promisable<Partial<Record<Address, AttoXL1>>>;
|
|
28
|
+
accountsBalances(address: Address[], _headOrRange?: Hash | XL1BlockRange): Promise<Partial<Record<Address, AttoXL1>>>;
|
|
22
29
|
accountsBalancesHistory(addresses: Address[]): Promise<Partial<Record<Address, AccountBalanceHistoryItem[]>>>;
|
|
23
30
|
accountsBalancesHistory(addresses: Address[], head: Hash): Promise<Partial<Record<Address, AccountBalanceHistoryItem[]>>>;
|
|
24
31
|
accountsBalancesHistory(addresses: Address[], range: XL1BlockRange): Promise<Partial<Record<Address, AccountBalanceHistoryItem[]>>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseAccountBalanceService.d.ts","sourceRoot":"","sources":["../../../src/AccountBalance/BaseAccountBalanceService.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,
|
|
1
|
+
{"version":3,"file":"BaseAccountBalanceService.d.ts","sourceRoot":"","sources":["../../../src/AccountBalance/BaseAccountBalanceService.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAAuB,IAAI,EACnC,MAAM,gBAAgB,CAAA;AAEvB,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAClE,OAAO,EACL,yBAAyB,EACzB,oBAAoB,EAEpB,yBAAyB,EACzB,WAAW,EACX,uCAAuC,EAEvC,2BAA2B,EAC5B,MAAM,+BAA+B,CAAA;AACtC,OAAO,CAAC,MAAM,KAAK,CAAA;AAEnB,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAErD,eAAO,MAAM,kCAAkC;;;;;mBAK7C,CAAA;AAEF,MAAM,WAAW,+BAAgC,SAAQ,iBAAiB;IACxE,cAAc,EAAE,aAAa,CAAA;IAC7B,aAAa,EAAE,uCAAuC,CAAA;IACtD,OAAO,EAAE,yBAAyB,CAAA;IAClC,eAAe,EAAE,2BAA2B,CAAA;CAC7C;AAED,qBACa,yBAA0B,SAAQ,WAAW,CAAC,+BAA+B,CAAE,YAAW,oBAAoB;IACzH,SAAS,CAAC,oBAAoB,EAAG,oBAAoB,CAAA;IACrD,SAAS,CAAC,WAAW,EAAG,WAAW,CAAA;WAEb,aAAa,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,+BAA+B,CAAC,GAAG,SAAS,GAAG,OAAO,CAAC,+BAA+B,CAAC;IAOtI,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,aAAa,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;IAKtF,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAC7E,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;IACzF,qBAAqB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC;IAKnG,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,YAAY,CAAC,EAAE,IAAI,GAAG,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAqBrH,uBAAuB,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC;IAC7G,uBAAuB,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC;IACzH,uBAAuB,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,yBAAyB,EAAE,CAAC,CAAC,CAAC;IAKhI,aAAa;CAQvB"}
|
|
@@ -4,6 +4,7 @@ import { BlockRewardDiviner } from '@xyo-network/chain-modules';
|
|
|
4
4
|
import { WithStorageMeta } from '@xyo-network/payload-model';
|
|
5
5
|
import { BlockBoundWitness, ChainStakeIntent, HydratedBlock, Transfer } from '@xyo-network/xl1-protocol';
|
|
6
6
|
import { AccountBalanceViewer, BlockProducerService, Config, PendingTransactionsService, StakeIntentService, TimeSyncViewer } from '@xyo-network/xl1-protocol-sdk';
|
|
7
|
+
import z from 'zod';
|
|
7
8
|
import { BaseService } from '../BaseService.ts';
|
|
8
9
|
import { XyoValidatorParams } from '../ChainValidator/index.ts';
|
|
9
10
|
/**
|
|
@@ -19,6 +20,13 @@ export declare const XYO_PRODUCER_REDECLARATION_DURATION = 10000;
|
|
|
19
20
|
* their intent to produce blocks
|
|
20
21
|
*/
|
|
21
22
|
export declare const XYO_PRODUCER_REDECLARATION_WINDOW = 500;
|
|
23
|
+
export declare const BaseBlockProducerServiceParamsZod: z.ZodObject<{
|
|
24
|
+
balanceService: z.ZodObject<{}, z.z.core.$loose>;
|
|
25
|
+
pendingTransactionsService: z.ZodObject<{}, z.z.core.$loose>;
|
|
26
|
+
rejectedTransactionsArchivist: z.ZodObject<{}, z.z.core.$loose>;
|
|
27
|
+
rewardAddress: z.ZodPipe<z.ZodString, z.ZodTransform<Address, string>>;
|
|
28
|
+
time: z.ZodObject<{}, z.z.core.$loose>;
|
|
29
|
+
}, z.z.core.$strip>;
|
|
22
30
|
export interface BaseBlockProducerServiceParams extends XyoValidatorParams<Pick<Config, 'producer'>> {
|
|
23
31
|
balanceService: AccountBalanceViewer;
|
|
24
32
|
pendingTransactionsService: PendingTransactionsService;
|
|
@@ -55,6 +63,7 @@ export declare class BaseBlockProducerService extends BaseService<BaseBlockProdu
|
|
|
55
63
|
protected get stakeIntentService(): StakeIntentService;
|
|
56
64
|
protected get time(): TimeSyncViewer;
|
|
57
65
|
protected get validateHydratedBlockState(): import("@xyo-network/xl1-protocol-sdk").HydratedBlockStateValidationFunction;
|
|
66
|
+
static paramsHandler(params?: Partial<BaseBlockProducerServiceParams> | undefined): Promise<BaseBlockProducerServiceParams>;
|
|
58
67
|
next(head: WithStorageMeta<BlockBoundWitness>): Promise<HydratedBlock | undefined>;
|
|
59
68
|
protected getBlockRewardTransfers(block: number): Promise<Transfer[]>;
|
|
60
69
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseBlockProducerService.d.ts","sourceRoot":"","sources":["../../../src/BlockProducer/BaseBlockProducerService.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EAEP,GAAG,EAIJ,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAA;AAChE,OAAO,EACL,kBAAkB,EACnB,MAAM,4BAA4B,CAAA;AAGnC,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,EAEyB,iBAAiB,EAC/C,gBAAgB,EAAsB,aAAa,EACnD,QAAQ,EACT,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,EAAE,0BAA0B,EAAE,kBAAkB,EAAE,cAAc,EACnH,MAAM,+BAA+B,CAAA;
|
|
1
|
+
{"version":3,"file":"BaseBlockProducerService.d.ts","sourceRoot":"","sources":["../../../src/BlockProducer/BaseBlockProducerService.ts"],"names":[],"mappings":"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"}
|
package/dist/neutral/index.mjs
CHANGED
|
@@ -2,17 +2,18 @@ var __defProp = Object.defineProperty;
|
|
|
2
2
|
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
3
|
|
|
4
4
|
// src/AccountBalance/accountBalanceServiceFromArchivist.ts
|
|
5
|
-
import { assertEx } from "@xylabs/sdk-js";
|
|
5
|
+
import { assertEx as assertEx2 } from "@xylabs/sdk-js";
|
|
6
6
|
import { findMostRecentBlock } from "@xyo-network/chain-protocol";
|
|
7
7
|
import { StepSizes } from "@xyo-network/xl1-protocol";
|
|
8
8
|
import { LruCacheMap, readPayloadMapFromStore } from "@xyo-network/xl1-protocol-sdk";
|
|
9
9
|
import { Semaphore } from "async-mutex";
|
|
10
10
|
|
|
11
11
|
// src/AccountBalance/BaseAccountBalanceService.ts
|
|
12
|
-
import { creatable as creatable2 } from "@xylabs/sdk-js";
|
|
12
|
+
import { assertEx, creatable as creatable2 } from "@xylabs/sdk-js";
|
|
13
13
|
import { spanRootAsync as spanRootAsync2 } from "@xylabs/telemetry";
|
|
14
14
|
import { AttoXL1 } from "@xyo-network/xl1-protocol";
|
|
15
15
|
import { balancesSummary, SimpleAccountBalanceViewer } from "@xyo-network/xl1-protocol-sdk";
|
|
16
|
+
import z from "zod";
|
|
16
17
|
|
|
17
18
|
// src/BaseService.ts
|
|
18
19
|
import { AbstractCreatable, creatable } from "@xylabs/sdk-js";
|
|
@@ -133,24 +134,45 @@ function _ts_decorate2(decorators, target, key, desc) {
|
|
|
133
134
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
134
135
|
}
|
|
135
136
|
__name(_ts_decorate2, "_ts_decorate");
|
|
137
|
+
var BaseAccountBalanceServiceParamsZod = z.object({
|
|
138
|
+
chainArchivist: z.object().loose(),
|
|
139
|
+
chainIterator: z.object().loose(),
|
|
140
|
+
context: z.object().loose(),
|
|
141
|
+
transferContext: z.object().loose()
|
|
142
|
+
});
|
|
136
143
|
var BaseAccountBalanceService = class extends BaseService {
|
|
137
144
|
static {
|
|
138
145
|
__name(this, "BaseAccountBalanceService");
|
|
139
146
|
}
|
|
140
147
|
accountBalanceViewer;
|
|
141
148
|
blockViewer;
|
|
149
|
+
static async paramsHandler(params) {
|
|
150
|
+
BaseAccountBalanceServiceParamsZod.parse(params);
|
|
151
|
+
assertEx(params?.context?.head, () => "BalanceStepSummaryContext is required in BaseAccountBalanceServiceParams");
|
|
152
|
+
return {
|
|
153
|
+
...await super.paramsHandler(params),
|
|
154
|
+
...params
|
|
155
|
+
};
|
|
156
|
+
}
|
|
142
157
|
async accountBalance(address, headOrRange) {
|
|
143
|
-
const balances = await this.
|
|
158
|
+
const balances = await this.accountsBalances([
|
|
144
159
|
address
|
|
145
160
|
], headOrRange);
|
|
146
161
|
return balances[address] ?? AttoXL1(0n);
|
|
147
162
|
}
|
|
148
|
-
|
|
149
|
-
|
|
163
|
+
accountBalanceHistory(_address, _headOrRange) {
|
|
164
|
+
throw new Error("Method not implemented.");
|
|
150
165
|
}
|
|
151
|
-
async
|
|
166
|
+
async accountsBalances(address, _headOrRange) {
|
|
152
167
|
return await spanRootAsync2("balances", async () => {
|
|
153
|
-
const
|
|
168
|
+
const context = {
|
|
169
|
+
head: this.params.context.head,
|
|
170
|
+
stepSemaphores: this.params.context.stepSemaphores,
|
|
171
|
+
store: this.params.context.store,
|
|
172
|
+
chainId: this.params.context.chainId,
|
|
173
|
+
summaryMap: this.params.context.summaryMap
|
|
174
|
+
};
|
|
175
|
+
const summary = await balancesSummary(context);
|
|
154
176
|
const result = {};
|
|
155
177
|
for (const addr of address) {
|
|
156
178
|
const summaryBalance = summary[addr] ?? 0n;
|
|
@@ -159,12 +181,9 @@ var BaseAccountBalanceService = class extends BaseService {
|
|
|
159
181
|
return result;
|
|
160
182
|
});
|
|
161
183
|
}
|
|
162
|
-
|
|
184
|
+
accountsBalancesHistory(_addresses, _headOrRange) {
|
|
163
185
|
throw new Error("Method not implemented.");
|
|
164
186
|
}
|
|
165
|
-
async accountsBalancesHistory(addresses, headOrRange) {
|
|
166
|
-
return await this.accountBalanceViewer.accountsBalancesHistory(addresses, headOrRange);
|
|
167
|
-
}
|
|
168
187
|
createHandler() {
|
|
169
188
|
this.blockViewer = blockViewerFromChainIteratorAndArchivist(this.params.chainIterator, this.params.chainArchivist);
|
|
170
189
|
this.accountBalanceViewer = new SimpleAccountBalanceViewer(this.params.context, this.params.transferContext, this.blockViewer);
|
|
@@ -186,8 +205,8 @@ var accountBalancesServiceFromArchivist = /* @__PURE__ */ __name(async (chainId,
|
|
|
186
205
|
const headFunc = /* @__PURE__ */ __name(async () => {
|
|
187
206
|
const head = await findMostRecentBlock(archivist);
|
|
188
207
|
return [
|
|
189
|
-
|
|
190
|
-
|
|
208
|
+
assertEx2(head?._hash, () => "No head found in chainArchivist"),
|
|
209
|
+
assertEx2(head?.block, () => "No head found in chainArchivist")
|
|
191
210
|
];
|
|
192
211
|
}, "headFunc");
|
|
193
212
|
const service = await BaseAccountBalanceService.create({
|
|
@@ -242,15 +261,16 @@ BaseAccountTransfersService = _ts_decorate3([
|
|
|
242
261
|
], BaseAccountTransfersService);
|
|
243
262
|
|
|
244
263
|
// src/BlockProducer/BaseBlockProducerService.ts
|
|
245
|
-
import { asHash, assertEx as
|
|
264
|
+
import { AddressZod, asHash, assertEx as assertEx4, creatable as creatable4, exists, hexToBigInt, isDefined as isDefined2, toHex } from "@xylabs/sdk-js";
|
|
246
265
|
import { FixedPercentageBlockRewardDiviner, FixedPercentageBlockRewardDivinerConfigSchema } from "@xyo-network/chain-modules";
|
|
247
266
|
import { buildNextBlock, createDeclarationIntent } from "@xyo-network/chain-protocol";
|
|
248
267
|
import { PayloadBuilder as PayloadBuilder3 } from "@xyo-network/payload-builder";
|
|
249
268
|
import { asBlockBoundWitness, AttoXL1 as AttoXL13, BlockNumberSchema, defaultRewardRatio, TimeSchema, XYO_STEP_REWARD_ADDRESS } from "@xyo-network/xl1-protocol";
|
|
269
|
+
import z2 from "zod";
|
|
250
270
|
|
|
251
271
|
// src/BlockProducer/generateTransactionFeeTransfers.ts
|
|
252
272
|
import { hexFromBigInt } from "@xylabs/sdk-js";
|
|
253
|
-
import { assertEx as
|
|
273
|
+
import { assertEx as assertEx3 } from "@xylabs/sdk-js";
|
|
254
274
|
import { PayloadBuilder as PayloadBuilder2 } from "@xyo-network/payload-builder";
|
|
255
275
|
import { TransferSchema, XYO_ZERO_ADDRESS } from "@xyo-network/xl1-protocol";
|
|
256
276
|
import { transactionRequiredGas } from "@xyo-network/xl1-protocol-sdk";
|
|
@@ -285,7 +305,7 @@ async function generateTransactionFeeTransfers(address, transactions) {
|
|
|
285
305
|
return payload;
|
|
286
306
|
});
|
|
287
307
|
for (const [from, amount] of Object.entries(txGasCosts)) {
|
|
288
|
-
const fromPayload =
|
|
308
|
+
const fromPayload = assertEx3(payloads.find((p) => p.from === from), () => "from payload not found");
|
|
289
309
|
fromPayload.transfers[address] = hexFromBigInt(amount);
|
|
290
310
|
}
|
|
291
311
|
return payloads;
|
|
@@ -303,6 +323,13 @@ __name(_ts_decorate4, "_ts_decorate");
|
|
|
303
323
|
var DEFAULT_BLOCK_SIZE = 10;
|
|
304
324
|
var XYO_PRODUCER_REDECLARATION_DURATION = 1e4;
|
|
305
325
|
var XYO_PRODUCER_REDECLARATION_WINDOW = 500;
|
|
326
|
+
var BaseBlockProducerServiceParamsZod = z2.object({
|
|
327
|
+
balanceService: z2.object().loose(),
|
|
328
|
+
pendingTransactionsService: z2.object().loose(),
|
|
329
|
+
rejectedTransactionsArchivist: z2.object().loose(),
|
|
330
|
+
rewardAddress: AddressZod,
|
|
331
|
+
time: z2.object().loose()
|
|
332
|
+
});
|
|
306
333
|
var BaseBlockProducerService = class _BaseBlockProducerService extends BaseService {
|
|
307
334
|
static {
|
|
308
335
|
__name(this, "BaseBlockProducerService");
|
|
@@ -332,40 +359,47 @@ var BaseBlockProducerService = class _BaseBlockProducerService extends BaseServi
|
|
|
332
359
|
return this.account.address;
|
|
333
360
|
}
|
|
334
361
|
get account() {
|
|
335
|
-
return
|
|
362
|
+
return assertEx4(this.params.account, () => "account is required");
|
|
336
363
|
}
|
|
337
364
|
get balanceService() {
|
|
338
|
-
return
|
|
365
|
+
return assertEx4(this.params.balanceService, () => "balanceService is required");
|
|
339
366
|
}
|
|
340
367
|
get chainArchivist() {
|
|
341
|
-
return
|
|
368
|
+
return assertEx4(this.params.chainArchivist, () => "chainArchivist is required");
|
|
342
369
|
}
|
|
343
370
|
get chainId() {
|
|
344
|
-
return
|
|
371
|
+
return assertEx4(this.params.chainId, () => "chainId is required");
|
|
345
372
|
}
|
|
346
373
|
get electionService() {
|
|
347
|
-
return
|
|
374
|
+
return assertEx4(this.params.electionService, () => "electionService is required");
|
|
348
375
|
}
|
|
349
376
|
get pendingTransactionsService() {
|
|
350
|
-
return
|
|
377
|
+
return assertEx4(this.params.pendingTransactionsService, () => "Missing pendingTransactionsService");
|
|
351
378
|
}
|
|
352
379
|
get rejectedTransactionsArchivist() {
|
|
353
|
-
return
|
|
380
|
+
return assertEx4(this.params.rejectedTransactionsArchivist, () => "No rejected bundled transactions archivist");
|
|
354
381
|
}
|
|
355
382
|
get rewardAddress() {
|
|
356
|
-
return
|
|
383
|
+
return assertEx4(this.params.rewardAddress, () => "No reward address provided");
|
|
357
384
|
}
|
|
358
385
|
get rewardService() {
|
|
359
|
-
return
|
|
386
|
+
return assertEx4(this.params.rewardService, () => "rewardService is required");
|
|
360
387
|
}
|
|
361
388
|
get stakeIntentService() {
|
|
362
|
-
return
|
|
389
|
+
return assertEx4(this.params.stakeIntentService, () => "No StakeIntentService provided");
|
|
363
390
|
}
|
|
364
391
|
get time() {
|
|
365
|
-
return
|
|
392
|
+
return assertEx4(this.params.time, () => "No TimeSyncViewer provided");
|
|
366
393
|
}
|
|
367
394
|
get validateHydratedBlockState() {
|
|
368
|
-
return
|
|
395
|
+
return assertEx4(this.params.validateHydratedBlockState, () => "validateHydratedBlockState is required");
|
|
396
|
+
}
|
|
397
|
+
static async paramsHandler(params) {
|
|
398
|
+
BaseBlockProducerServiceParamsZod.parse(params);
|
|
399
|
+
return {
|
|
400
|
+
...await super.paramsHandler(params),
|
|
401
|
+
...params
|
|
402
|
+
};
|
|
369
403
|
}
|
|
370
404
|
async next(head) {
|
|
371
405
|
if (head.chain !== this.chainId) return;
|
|
@@ -390,7 +424,7 @@ var BaseBlockProducerService = class _BaseBlockProducerService extends BaseServi
|
|
|
390
424
|
}
|
|
391
425
|
});
|
|
392
426
|
}
|
|
393
|
-
const blockHex =
|
|
427
|
+
const blockHex = assertEx4(toHex(block), () => "Failed to convert block to hex");
|
|
394
428
|
const blockId = new PayloadBuilder3({
|
|
395
429
|
schema: BlockNumberSchema
|
|
396
430
|
}).fields({
|
|
@@ -419,7 +453,7 @@ var BaseBlockProducerService = class _BaseBlockProducerService extends BaseServi
|
|
|
419
453
|
}
|
|
420
454
|
async proposeNextValidBlock(head, validateBalances = false) {
|
|
421
455
|
return await this.spanAsync("proposeNextValidBlock", async () => {
|
|
422
|
-
const { block: previousBlock } =
|
|
456
|
+
const { block: previousBlock } = assertEx4(asBlockBoundWitness(head), () => "Invalid head block");
|
|
423
457
|
const nextBlock = previousBlock + 1;
|
|
424
458
|
const nextBlockTransactionsStart = Date.now();
|
|
425
459
|
const nextBlockTransactions = await this.pendingTransactionsService.getPendingTransactions(head._hash, _BaseBlockProducerService.DefaultBlockSize);
|
|
@@ -548,7 +582,7 @@ BaseBlockRewardService = _ts_decorate5([
|
|
|
548
582
|
], BaseBlockRewardService);
|
|
549
583
|
|
|
550
584
|
// src/BlockReward/EvmBlockRewardService.ts
|
|
551
|
-
import { assertEx as
|
|
585
|
+
import { assertEx as assertEx5, creatable as creatable6, toEthAddress } from "@xylabs/sdk-js";
|
|
552
586
|
import { XyoChainRewards__factory as XyoChainRewardsFactory } from "@xyo-network/typechain";
|
|
553
587
|
function _ts_decorate6(decorators, target, key, desc) {
|
|
554
588
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -563,13 +597,13 @@ var EvmBlockRewardService = class extends BaseBlockRewardService {
|
|
|
563
597
|
}
|
|
564
598
|
_contractAddress;
|
|
565
599
|
get chainService() {
|
|
566
|
-
return
|
|
600
|
+
return assertEx5(this.params.chainService, () => "chainService is required");
|
|
567
601
|
}
|
|
568
602
|
get contractAddress() {
|
|
569
|
-
return
|
|
603
|
+
return assertEx5(this._contractAddress, () => "contractAddress is required");
|
|
570
604
|
}
|
|
571
605
|
get provider() {
|
|
572
|
-
return
|
|
606
|
+
return assertEx5(this.params.provider, () => "provider is required");
|
|
573
607
|
}
|
|
574
608
|
async createHandler() {
|
|
575
609
|
await super.createHandler();
|
|
@@ -590,7 +624,7 @@ EvmBlockRewardService = _ts_decorate6([
|
|
|
590
624
|
], EvmBlockRewardService);
|
|
591
625
|
|
|
592
626
|
// src/BlockReward/MemoryBlockRewardService.ts
|
|
593
|
-
import { assertEx as
|
|
627
|
+
import { assertEx as assertEx6, creatable as creatable7, toFixedPoint } from "@xylabs/sdk-js";
|
|
594
628
|
import { rewardFromBlockNumber } from "@xyo-network/chain-protocol";
|
|
595
629
|
function _ts_decorate7(decorators, target, key, desc) {
|
|
596
630
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -605,22 +639,22 @@ var MemoryBlockRewardService = class extends BaseBlockRewardService {
|
|
|
605
639
|
}
|
|
606
640
|
rewardFromBlockNumber = rewardFromBlockNumber(18);
|
|
607
641
|
get creatorReward() {
|
|
608
|
-
return
|
|
642
|
+
return assertEx6(this.params.creatorReward, () => "creatorReward is required");
|
|
609
643
|
}
|
|
610
644
|
get initialReward() {
|
|
611
|
-
return
|
|
645
|
+
return assertEx6(this.params.initialStepReward, () => "initialStepReward is required");
|
|
612
646
|
}
|
|
613
647
|
get minRewardPerBlock() {
|
|
614
|
-
return
|
|
648
|
+
return assertEx6(this.params.minRewardPerBlock, () => "minRewardPerBlock is required");
|
|
615
649
|
}
|
|
616
650
|
get stepFactorDenominator() {
|
|
617
|
-
return
|
|
651
|
+
return assertEx6(this.params.stepFactorDenominator, () => "stepFactorDenominator is required");
|
|
618
652
|
}
|
|
619
653
|
get stepFactorNumerator() {
|
|
620
|
-
return
|
|
654
|
+
return assertEx6(this.params.stepFactorNumerator, () => "stepFactorNumerator is required");
|
|
621
655
|
}
|
|
622
656
|
get stepSize() {
|
|
623
|
-
return
|
|
657
|
+
return assertEx6(this.params.stepSize, () => "stepSize is required");
|
|
624
658
|
}
|
|
625
659
|
static async paramsHandler(inParams) {
|
|
626
660
|
return {
|
|
@@ -642,7 +676,7 @@ MemoryBlockRewardService = _ts_decorate7([
|
|
|
642
676
|
], MemoryBlockRewardService);
|
|
643
677
|
|
|
644
678
|
// src/ChainBlockNumberIteration/ChainBlockNumberIterationService.ts
|
|
645
|
-
import { assertEx as
|
|
679
|
+
import { assertEx as assertEx7, isDefined as isDefined3, isNull, isUndefined } from "@xylabs/sdk-js";
|
|
646
680
|
import { PayloadBuilder as PayloadBuilder4 } from "@xyo-network/payload-builder";
|
|
647
681
|
import { asBlockBoundWitness as asBlockBoundWitness2, asBlockBoundWitnessWithStorageMeta as asBlockBoundWitnessWithStorageMeta2, isBlockBoundWitnessWithHashMeta } from "@xyo-network/xl1-protocol";
|
|
648
682
|
import { LRUCache } from "lru-cache";
|
|
@@ -655,21 +689,21 @@ var ChainBlockNumberIterationService = class extends BaseService {
|
|
|
655
689
|
});
|
|
656
690
|
_currentHead;
|
|
657
691
|
get chainId() {
|
|
658
|
-
return
|
|
692
|
+
return assertEx7(this._currentHead?.chain ?? this.params?.head?.chain, () => "Current head is not set");
|
|
659
693
|
}
|
|
660
694
|
get chainMap() {
|
|
661
|
-
return
|
|
695
|
+
return assertEx7(this.params.chainMap);
|
|
662
696
|
}
|
|
663
697
|
async get(block) {
|
|
664
698
|
const head = await this.head();
|
|
665
|
-
|
|
699
|
+
assertEx7(head.block >= block, () => `Block requested is newer than the current head [${block}]`);
|
|
666
700
|
const cached = this._blocksByBlockNumber.get(block);
|
|
667
701
|
if (cached) return cached;
|
|
668
702
|
const startingBlock = head;
|
|
669
703
|
const currentBlockHash = await PayloadBuilder4.hash(startingBlock);
|
|
670
704
|
let currentBlock = await this.chainMap.get(currentBlockHash);
|
|
671
705
|
while (isDefined3(currentBlock)) {
|
|
672
|
-
|
|
706
|
+
assertEx7(asBlockBoundWitness2(currentBlock), () => `Expected hash to be a block bound witness [${currentBlock?._hash}]`);
|
|
673
707
|
if (isBlockBoundWitnessWithHashMeta(currentBlock)) {
|
|
674
708
|
this._blocksByBlockNumber.set(currentBlock.block, currentBlock);
|
|
675
709
|
if (currentBlock.block === block) {
|
|
@@ -710,7 +744,7 @@ var ChainBlockNumberIterationService = class extends BaseService {
|
|
|
710
744
|
currentBlock = asBlockBoundWitnessWithStorageMeta2(nextBlock);
|
|
711
745
|
} else {
|
|
712
746
|
const hash = PayloadBuilder4.hash(currentBlock);
|
|
713
|
-
|
|
747
|
+
assertEx7(asBlockBoundWitnessWithStorageMeta2(currentBlock), () => `Expected hash to be a block bound witness [${hash}]`);
|
|
714
748
|
}
|
|
715
749
|
}
|
|
716
750
|
return results;
|
|
@@ -734,7 +768,7 @@ var ChainBlockNumberIterationService = class extends BaseService {
|
|
|
734
768
|
};
|
|
735
769
|
|
|
736
770
|
// src/ChainService/Evm/Evm.ts
|
|
737
|
-
import { assertEx as
|
|
771
|
+
import { assertEx as assertEx8, toAddress, toEthAddress as toEthAddress2 } from "@xylabs/sdk-js";
|
|
738
772
|
import { StakedXyoChain__factory as StakedXyoChainFactory } from "@xyo-network/typechain";
|
|
739
773
|
import { getAddress } from "ethers/address";
|
|
740
774
|
var EvmChainService = class extends BaseService {
|
|
@@ -742,16 +776,16 @@ var EvmChainService = class extends BaseService {
|
|
|
742
776
|
__name(this, "EvmChainService");
|
|
743
777
|
}
|
|
744
778
|
get chainId() {
|
|
745
|
-
return
|
|
779
|
+
return assertEx8(this.params.id);
|
|
746
780
|
}
|
|
747
781
|
get contract() {
|
|
748
782
|
if (this.params.contract === void 0) {
|
|
749
783
|
this.params.contract = StakedXyoChainFactory.connect(toEthAddress2(this.chainId), this.params.runner);
|
|
750
784
|
}
|
|
751
|
-
return
|
|
785
|
+
return assertEx8(this.params.contract);
|
|
752
786
|
}
|
|
753
787
|
get runner() {
|
|
754
|
-
return
|
|
788
|
+
return assertEx8(this.params.runner);
|
|
755
789
|
}
|
|
756
790
|
async active() {
|
|
757
791
|
return await this.contract.active();
|
|
@@ -810,7 +844,7 @@ var EvmChainService = class extends BaseService {
|
|
|
810
844
|
};
|
|
811
845
|
|
|
812
846
|
// src/ChainService/Memory/Memory.ts
|
|
813
|
-
import { assertEx as
|
|
847
|
+
import { assertEx as assertEx9, toAddress as toAddress2, ZERO_ADDRESS } from "@xylabs/sdk-js";
|
|
814
848
|
var MemoryChainService = class extends BaseService {
|
|
815
849
|
static {
|
|
816
850
|
__name(this, "MemoryChainService");
|
|
@@ -818,7 +852,7 @@ var MemoryChainService = class extends BaseService {
|
|
|
818
852
|
_chainId;
|
|
819
853
|
_simulatedStake = 1n;
|
|
820
854
|
get chainId() {
|
|
821
|
-
return
|
|
855
|
+
return assertEx9(this._chainId, () => "Chain ID not set");
|
|
822
856
|
}
|
|
823
857
|
async active() {
|
|
824
858
|
return await Promise.resolve(this._simulatedStake);
|
|
@@ -879,7 +913,7 @@ var MemoryChainService = class extends BaseService {
|
|
|
879
913
|
};
|
|
880
914
|
|
|
881
915
|
// src/ChainValidator/XyoValidator.ts
|
|
882
|
-
import { assertEx as
|
|
916
|
+
import { assertEx as assertEx10, creatable as creatable8 } from "@xylabs/sdk-js";
|
|
883
917
|
function _ts_decorate8(decorators, target, key, desc) {
|
|
884
918
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
885
919
|
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
@@ -895,22 +929,22 @@ var XyoValidator = class extends BaseService {
|
|
|
895
929
|
return this.account.address;
|
|
896
930
|
}
|
|
897
931
|
get account() {
|
|
898
|
-
return
|
|
932
|
+
return assertEx10(this.params.account, () => "account is required");
|
|
899
933
|
}
|
|
900
934
|
get chainArchivist() {
|
|
901
|
-
return
|
|
935
|
+
return assertEx10(this.params.chainArchivist, () => "chainArchivist is required");
|
|
902
936
|
}
|
|
903
937
|
get chainInfo() {
|
|
904
|
-
return
|
|
938
|
+
return assertEx10(this.params.chainId, () => "chainInfo is required");
|
|
905
939
|
}
|
|
906
940
|
get electionService() {
|
|
907
|
-
return
|
|
941
|
+
return assertEx10(this.params.electionService, () => "electionService is required");
|
|
908
942
|
}
|
|
909
943
|
get pendingBundledTransactionsArchivist() {
|
|
910
|
-
return
|
|
944
|
+
return assertEx10(this.params.pendingBundledTransactionsArchivist, () => "pendingBundledTransactions is required");
|
|
911
945
|
}
|
|
912
946
|
get rewardService() {
|
|
913
|
-
return
|
|
947
|
+
return assertEx10(this.params.rewardService, () => "rewardService is required");
|
|
914
948
|
}
|
|
915
949
|
validatePendingBlock(_block) {
|
|
916
950
|
return [];
|
|
@@ -929,7 +963,7 @@ XyoValidator = _ts_decorate8([
|
|
|
929
963
|
], XyoValidator);
|
|
930
964
|
|
|
931
965
|
// src/Election/BaseElectionService.ts
|
|
932
|
-
import { assertEx as
|
|
966
|
+
import { assertEx as assertEx11, creatable as creatable9 } from "@xylabs/sdk-js";
|
|
933
967
|
import { hexToLast4BytesInt, shuffleWithSeed } from "@xyo-network/chain-utils";
|
|
934
968
|
function _ts_decorate9(decorators, target, key, desc) {
|
|
935
969
|
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
@@ -943,13 +977,13 @@ var BaseElectionService = class extends BaseService {
|
|
|
943
977
|
__name(this, "BaseElectionService");
|
|
944
978
|
}
|
|
945
979
|
get chainIterator() {
|
|
946
|
-
return
|
|
980
|
+
return assertEx11(this.params.chainIterator, () => "No chain iterator");
|
|
947
981
|
}
|
|
948
982
|
get chainStakeViewer() {
|
|
949
|
-
return
|
|
983
|
+
return assertEx11(this.params.chainStakeViewer, () => "No chain stake viewer");
|
|
950
984
|
}
|
|
951
985
|
get stakeIntentService() {
|
|
952
|
-
return
|
|
986
|
+
return assertEx11(this.params.stakeIntentService, () => "No staked intent service");
|
|
953
987
|
}
|
|
954
988
|
async getCreatorCommitteeForNextBlock(current) {
|
|
955
989
|
return await this.spanAsync("getCreatorCommitteeForNextBlock", async () => {
|
|
@@ -1044,7 +1078,7 @@ BaseNetworkStakeStepRewardService = _ts_decorate10([
|
|
|
1044
1078
|
|
|
1045
1079
|
// src/PendingTransactions/BasePendingTransactions.ts
|
|
1046
1080
|
import { ValueType } from "@opentelemetry/api";
|
|
1047
|
-
import { assertEx as
|
|
1081
|
+
import { assertEx as assertEx12, creatable as creatable11, exists as exists2, filterAs, filterAsync, forget, isDefined as isDefined4, isUndefined as isUndefined2 } from "@xylabs/sdk-js";
|
|
1048
1082
|
import { MemoryArchivist } from "@xyo-network/archivist-memory";
|
|
1049
1083
|
import { findMostRecentBlock as findMostRecentBlock2 } from "@xyo-network/chain-protocol";
|
|
1050
1084
|
import { asBlockBoundWitnessWithHashMeta, isTransactionBoundWitnessWithStorageMeta } from "@xyo-network/xl1-protocol";
|
|
@@ -1138,23 +1172,23 @@ var BasePendingTransactionsService = class _BasePendingTransactionsService exten
|
|
|
1138
1172
|
return this.params.additionalPendingTransactionValidators ?? [];
|
|
1139
1173
|
}
|
|
1140
1174
|
get chainArchivist() {
|
|
1141
|
-
return
|
|
1175
|
+
return assertEx12(this.params.chainArchivist, () => "No completed blocks with data archivist");
|
|
1142
1176
|
}
|
|
1143
1177
|
get chainId() {
|
|
1144
|
-
return
|
|
1178
|
+
return assertEx12(this.params.chainId, () => "No chain id");
|
|
1145
1179
|
}
|
|
1146
1180
|
get pendingBundledTransactionsArchivist() {
|
|
1147
|
-
return
|
|
1181
|
+
return assertEx12(this.params.pendingBundledTransactionsArchivist, () => "No pending bundled transactions archivist");
|
|
1148
1182
|
}
|
|
1149
1183
|
get pendingBundledTransactionsLocalArchivist() {
|
|
1150
|
-
return
|
|
1184
|
+
return assertEx12(this._curatedPendingBundledTransactionsArchivist, () => "No pending bundled transactions curated archivist");
|
|
1151
1185
|
}
|
|
1152
1186
|
get pendingTransactionsCount() {
|
|
1153
1187
|
forget(this.countPendingTransactions());
|
|
1154
1188
|
return this._pendingTransactionsCount;
|
|
1155
1189
|
}
|
|
1156
1190
|
get rejectedTransactionsArchivist() {
|
|
1157
|
-
return
|
|
1191
|
+
return assertEx12(this.params.rejectedTransactionsArchivist, () => "No rejected transactions archivist");
|
|
1158
1192
|
}
|
|
1159
1193
|
async createHandler() {
|
|
1160
1194
|
await super.createHandler();
|
|
@@ -1396,7 +1430,7 @@ var mapBoundWitnessToStakeIntentHashes = /* @__PURE__ */ __name((bw) => {
|
|
|
1396
1430
|
}, "mapBoundWitnessToStakeIntentHashes");
|
|
1397
1431
|
|
|
1398
1432
|
// src/StakeIntent/XyoStakeIntentService.ts
|
|
1399
|
-
import { asAddress, assertEx as
|
|
1433
|
+
import { asAddress, assertEx as assertEx13, creatable as creatable13, filterAs as filterAs3, isUndefined as isUndefined3 } from "@xylabs/sdk-js";
|
|
1400
1434
|
import { analyzeChain, ChainStakeIntentAnalyzer, isChainSummaryStakeIntent } from "@xyo-network/chain-analyze";
|
|
1401
1435
|
import { DEFAULT_FIND_FIRST_MATCHING_NEXT_OPTIONS, findFirstMatching, IntervalMap } from "@xyo-network/chain-utils";
|
|
1402
1436
|
import { PayloadBuilder as PayloadBuilder7 } from "@xyo-network/payload-builder";
|
|
@@ -1433,16 +1467,16 @@ var XyoStakeIntentService = class extends BaseService {
|
|
|
1433
1467
|
});
|
|
1434
1468
|
_updateMutex = new Mutex3();
|
|
1435
1469
|
get chainArchivist() {
|
|
1436
|
-
return
|
|
1470
|
+
return assertEx13(this.params.chainArchivist, () => "chainArchivist not set");
|
|
1437
1471
|
}
|
|
1438
1472
|
get chainIterator() {
|
|
1439
|
-
return
|
|
1473
|
+
return assertEx13(this.params.chainIterator, () => "chainIterator not set");
|
|
1440
1474
|
}
|
|
1441
1475
|
get chainStakeViewer() {
|
|
1442
|
-
return
|
|
1476
|
+
return assertEx13(this.params.chainStakeViewer, () => "chainStakeViewer not set");
|
|
1443
1477
|
}
|
|
1444
1478
|
get stakeIntentStateArchivist() {
|
|
1445
|
-
return
|
|
1479
|
+
return assertEx13(this.params.stakeIntentStateArchivist, () => "stakeIntentStateArchivist not set");
|
|
1446
1480
|
}
|
|
1447
1481
|
async createHandler() {
|
|
1448
1482
|
this.chainIterator.on("headUpdated", async () => {
|
|
@@ -1455,13 +1489,13 @@ var XyoStakeIntentService = class extends BaseService {
|
|
|
1455
1489
|
}
|
|
1456
1490
|
async getDeclaredCandidateRanges(address, intent) {
|
|
1457
1491
|
await Promise.resolve();
|
|
1458
|
-
|
|
1492
|
+
assertEx13(intent === "producer", () => `Support not yet added for intent ${intent}`);
|
|
1459
1493
|
const results = this._producers.get(address);
|
|
1460
1494
|
return results ?? [];
|
|
1461
1495
|
}
|
|
1462
1496
|
async getDeclaredCandidatesForBlock(block, intent) {
|
|
1463
1497
|
return await this.spanAsync("getDeclaredCandidatesForBlock", async () => {
|
|
1464
|
-
|
|
1498
|
+
assertEx13(intent === "producer", () => `Support not yet added for intent ${intent}`);
|
|
1465
1499
|
const results = this._producers.findAllContaining(block);
|
|
1466
1500
|
const candidates = [
|
|
1467
1501
|
...results
|
|
@@ -1527,7 +1561,7 @@ var XyoStakeIntentService = class extends BaseService {
|
|
|
1527
1561
|
}
|
|
1528
1562
|
async recoverState(current) {
|
|
1529
1563
|
return await timeBudget("XyoStakeIntentService.recoverState", console, async () => {
|
|
1530
|
-
const currentBlock =
|
|
1564
|
+
const currentBlock = assertEx13(asBlockBoundWitness3((await this.chainArchivist.get([
|
|
1531
1565
|
current
|
|
1532
1566
|
]))?.[0]), () => `Block ${current} not found`);
|
|
1533
1567
|
const currentBlockNum = currentBlock.block;
|
|
@@ -1671,9 +1705,11 @@ BaseTimeSyncService = _ts_decorate15([
|
|
|
1671
1705
|
], BaseTimeSyncService);
|
|
1672
1706
|
export {
|
|
1673
1707
|
BaseAccountBalanceService,
|
|
1708
|
+
BaseAccountBalanceServiceParamsZod,
|
|
1674
1709
|
BaseAccountTransfersService,
|
|
1675
1710
|
BaseAccountableService,
|
|
1676
1711
|
BaseBlockProducerService,
|
|
1712
|
+
BaseBlockProducerServiceParamsZod,
|
|
1677
1713
|
BaseBlockRewardService,
|
|
1678
1714
|
BaseElectionService,
|
|
1679
1715
|
BaseNetworkStakeStepRewardService,
|