@typeberry/lib 0.5.3-fb6e98a → 0.5.4-9233977

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.
Files changed (76) hide show
  1. package/package.json +1 -1
  2. package/packages/core/networking/certificate.d.ts.map +1 -1
  3. package/packages/core/networking/certificate.js +1 -0
  4. package/packages/core/networking/package.json +1 -1
  5. package/packages/core/networking/setup.d.ts.map +1 -1
  6. package/packages/core/networking/setup.js +16 -12
  7. package/packages/core/telemetry/package.json +1 -1
  8. package/packages/extensions/ipc/jamnp/handler.d.ts +5 -4
  9. package/packages/extensions/ipc/jamnp/handler.d.ts.map +1 -1
  10. package/packages/extensions/ipc/jamnp/handler.js +59 -34
  11. package/packages/extensions/ipc/jamnp/stream.d.ts +6 -4
  12. package/packages/extensions/ipc/jamnp/stream.d.ts.map +1 -1
  13. package/packages/jam/block/work-package.d.ts +3 -1
  14. package/packages/jam/block/work-package.d.ts.map +1 -1
  15. package/packages/jam/block/work-package.js +6 -2
  16. package/packages/jam/block-json/block.d.ts +125 -0
  17. package/packages/jam/block-json/block.d.ts.map +1 -1
  18. package/packages/jam/block-json/block.js +9 -2
  19. package/packages/jam/fuzz-proto/v1/handler.d.ts +1 -1
  20. package/packages/jam/fuzz-proto/v1/handler.d.ts.map +1 -1
  21. package/packages/jam/fuzz-proto/v1/handler.js +43 -19
  22. package/packages/jam/jamnp-s/peers.d.ts.map +1 -1
  23. package/packages/jam/jamnp-s/peers.js +10 -0
  24. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts +1 -1
  25. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts.map +1 -1
  26. package/packages/jam/jamnp-s/protocol/ce-128-block-request.js +10 -8
  27. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts.map +1 -1
  28. package/packages/jam/jamnp-s/protocol/ce-129-state-request.js +11 -9
  29. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +3 -3
  30. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts.map +1 -1
  31. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.js +2 -2
  32. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +2 -2
  33. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts.map +1 -1
  34. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.js +2 -2
  35. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts.map +1 -1
  36. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.js +8 -6
  37. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +3 -3
  38. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts.map +1 -1
  39. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.js +2 -2
  40. package/packages/jam/jamnp-s/protocol/stream.d.ts +13 -7
  41. package/packages/jam/jamnp-s/protocol/stream.d.ts.map +1 -1
  42. package/packages/jam/jamnp-s/protocol/stream.js +5 -4
  43. package/packages/jam/jamnp-s/protocol/test-utils.d.ts +1 -1
  44. package/packages/jam/jamnp-s/protocol/test-utils.d.ts.map +1 -1
  45. package/packages/jam/jamnp-s/protocol/test-utils.js +9 -12
  46. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +1 -1
  47. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts.map +1 -1
  48. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.js +1 -1
  49. package/packages/jam/jamnp-s/stream-manager.d.ts.map +1 -1
  50. package/packages/jam/jamnp-s/stream-manager.js +7 -5
  51. package/packages/jam/jamnp-s/stream-manager.test.js +8 -5
  52. package/packages/jam/jamnp-s/tasks/sync.js +1 -1
  53. package/packages/jam/node/jam-config.d.ts +4 -1
  54. package/packages/jam/node/jam-config.d.ts.map +1 -1
  55. package/packages/jam/node/jam-config.js +6 -2
  56. package/packages/jam/node/main.d.ts.map +1 -1
  57. package/packages/jam/node/main.js +5 -4
  58. package/packages/jam/node/package.json +1 -1
  59. package/packages/jam/state-vectors/index.d.ts +377 -5
  60. package/packages/jam/state-vectors/index.d.ts.map +1 -1
  61. package/packages/jam/state-vectors/index.js +3 -3
  62. package/packages/jam/transition/reports/error.d.ts +3 -1
  63. package/packages/jam/transition/reports/error.d.ts.map +1 -1
  64. package/packages/jam/transition/reports/error.js +2 -0
  65. package/packages/jam/transition/reports/verify-basic.d.ts.map +1 -1
  66. package/packages/jam/transition/reports/verify-basic.js +10 -0
  67. package/packages/jam/transition/reports/verify-basic.test.js +29 -0
  68. package/packages/workers/block-authorship/main.d.ts.map +1 -1
  69. package/packages/workers/block-authorship/main.js +23 -4
  70. package/packages/workers/block-authorship/package.json +1 -1
  71. package/packages/workers/block-authorship/protocol.d.ts +3 -1
  72. package/packages/workers/block-authorship/protocol.d.ts.map +1 -1
  73. package/packages/workers/block-authorship/protocol.js +6 -3
  74. package/packages/workers/importer/importer.d.ts.map +1 -1
  75. package/packages/workers/importer/importer.js +0 -1
  76. package/packages/workers/importer/package.json +1 -1
@@ -1,4 +1,5 @@
1
1
  import { MAX_REPORT_DEPENDENCIES } from "#@typeberry/block/gp-constants.js";
2
+ import { isWorkItemsCount, MAX_NUMBER_OF_WORK_ITEMS, MIN_NUMBER_OF_WORK_ITEMS } from "#@typeberry/block/work-package.js";
2
3
  import { WorkExecResultKind } from "#@typeberry/block/work-result.js";
3
4
  import { OK, Result } from "#@typeberry/utils";
4
5
  import { ReportsError } from "./error.js";
@@ -11,6 +12,15 @@ export const MAX_WORK_REPORT_SIZE_BYTES = 48 * 2 ** 10;
11
12
  export function verifyReportsBasic(input) {
12
13
  for (const guarantee of input) {
13
14
  const reportView = guarantee.view().report.view();
15
+ /**
16
+ * Make sure number of results is within correct range.
17
+ */
18
+ if (!isWorkItemsCount(reportView.results.view().length)) {
19
+ return Result.error(ReportsError.InvalidWorkItemsCount, () => `Number of work results is invalid.
20
+ Got: ${reportView.results.view().length},
21
+ expected between ${MIN_NUMBER_OF_WORK_ITEMS} and ${MAX_NUMBER_OF_WORK_ITEMS}
22
+ `);
23
+ }
14
24
  /**
15
25
  * We limit the sum of the number of items in the
16
26
  * segment-root lookup dictionary and the number of
@@ -2,8 +2,10 @@ import { describe, it } from "node:test";
2
2
  import { tryAsTimeSlot } from "#@typeberry/block";
3
3
  import { ReportGuarantee } from "#@typeberry/block/guarantees.js";
4
4
  import { Bytes } from "#@typeberry/bytes";
5
+ import { FixedSizeArray } from "#@typeberry/collections";
5
6
  import { tinyChainSpec } from "#@typeberry/config";
6
7
  import { HASH_SIZE } from "#@typeberry/hash";
8
+ import { tryAsU8 } from "#@typeberry/numbers";
7
9
  import { asOpaqueType, deepEqual, OK } from "#@typeberry/utils";
8
10
  import { ReportsError } from "./error.js";
9
11
  import { guaranteesAsView, newCredential, newWorkReport } from "./test.utils.js";
@@ -44,6 +46,33 @@ describe("Reports.verifyReportsBasic", () => {
44
46
  details: () => "Work report at 0 too big. Got 0 + 49153, max: 49152",
45
47
  });
46
48
  });
49
+ it("should reject if report has invalid number of work results (0)", () => {
50
+ // Create a minimal work report with 0 results by manually constructing it
51
+ const emptyResults = FixedSizeArray.new([], tryAsU8(0));
52
+ const report = newWorkReport({ core: 0 });
53
+ // Bypass the type system to set 0 results
54
+ const invalidReport = {
55
+ ...report,
56
+ results: emptyResults,
57
+ };
58
+ const guarantees = guaranteesAsView(tinyChainSpec, [
59
+ ReportGuarantee.create({
60
+ slot: tryAsTimeSlot(10),
61
+ report: invalidReport,
62
+ credentials: asOpaqueType([0, 3].map((x) => newCredential(x))),
63
+ }),
64
+ ]);
65
+ const result = verifyReportsBasic(guarantees);
66
+ deepEqual(result, {
67
+ isOk: false,
68
+ isError: true,
69
+ error: ReportsError.InvalidWorkItemsCount,
70
+ details: () => `Number of work results is invalid.
71
+ Got: 0,
72
+ expected between 1 and 16
73
+ `,
74
+ });
75
+ });
47
76
  it("should verify correctly", () => {
48
77
  const guarantees = guaranteesAsView(tinyChainSpec, [
49
78
  ReportGuarantee.create({
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../../packages/workers/block-authorship/main.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAI9E,KAAK,MAAM,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAC;AAkBlD,wBAAsB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,iBAyIlE"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../../packages/workers/block-authorship/main.ts"],"names":[],"mappings":"AAyBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAE3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAI9E,KAAK,MAAM,GAAG,YAAY,CAAC,qBAAqB,CAAC,CAAC;AAkBlD,wBAAsB,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,iBAgKlE"}
@@ -86,6 +86,8 @@ export async function main(config, comms) {
86
86
  }
87
87
  return Result.ok(state.sealingKeySeries);
88
88
  }
89
+ const isFastForward = config.workerParams.isFastForward;
90
+ let lastGeneratedSlot = startTimeSlot;
89
91
  while (!isFinished) {
90
92
  const hash = blocks.getBestHeaderHash();
91
93
  const state = states.getState(hash);
@@ -93,10 +95,20 @@ export async function main(config, comms) {
93
95
  if (state === null) {
94
96
  continue;
95
97
  }
96
- const time = getTime();
97
- /** Assuming `slotDuration` is 6 sec it is safe till year 2786. If `slotDuration` is 1 sec then it is safe till 2106 */
98
- const timeSlot = tryAsTimeSlot(Number(time / 1000n / BigInt(chainSpec.slotDuration)));
99
98
  const lastTimeSlot = state.timeslot;
99
+ /**
100
+ * In fastForward mode, use simulated time (next slot after current state).
101
+ * In normal mode, use wall clock time.
102
+ * Assuming `slotDuration` is 6 sec it is safe till year 2786.
103
+ * If `slotDuration` is 1 sec then it is safe till 2106.
104
+ */
105
+ const timeSlot = isFastForward === true
106
+ ? tryAsTimeSlot(lastTimeSlot + 1)
107
+ : tryAsTimeSlot(Number(getTime() / 1000n / BigInt(chainSpec.slotDuration)));
108
+ // In fastForward mode, skip if we already generated for this slot (waiting for import)
109
+ if (isFastForward === true && timeSlot <= lastGeneratedSlot) {
110
+ continue;
111
+ }
100
112
  const isNewEpoch = isEpochChanged(lastTimeSlot, timeSlot);
101
113
  const selingKeySeriesResult = await getSealingKeySeries(isNewEpoch, timeSlot, state);
102
114
  if (selingKeySeriesResult.isError) {
@@ -113,10 +125,17 @@ export async function main(config, comms) {
113
125
  const sealPayload = getSealPayload(selingKeySeriesResult.ok, entropy);
114
126
  const newBlock = await generator.nextBlockView(validatorIndex, key.bandersnatchSecret, sealPayload, timeSlot);
115
127
  counter += 1;
128
+ lastGeneratedSlot = timeSlot;
116
129
  logger.trace `Sending block ${counter}`;
117
130
  await comms.sendBlock(newBlock);
118
131
  }
119
- await setTimeout(chainSpec.slotDuration * 1000);
132
+ else if (isFastForward === true) {
133
+ // In fast-forward mode, if this slot is not ours, wait briefly for other validators to produce blocks
134
+ await setTimeout(10);
135
+ }
136
+ if (isFastForward === false) {
137
+ await setTimeout(chainSpec.slotDuration * 1000);
138
+ }
120
139
  }
121
140
  logger.info `🎁 Block Authorship finished. Closing channel.`;
122
141
  await db.close();
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typeberry/block-authorship",
3
- "version": "0.5.3",
3
+ "version": "0.5.4",
4
4
  "description": "A test block generator simulating blocks received over the network.",
5
5
  "main": "index.ts",
6
6
  "dependencies": {
@@ -275,13 +275,15 @@ export declare class ValidatorSecrets {
275
275
  }
276
276
  export declare class BlockAuthorshipConfig {
277
277
  readonly keys: ValidatorSecrets[];
278
+ readonly isFastForward: boolean;
278
279
  static Codec: import("@typeberry/codec").Descriptor<BlockAuthorshipConfig, import("@typeberry/codec").ViewOf<BlockAuthorshipConfig, {
279
280
  keys: import("@typeberry/codec").Descriptor<ValidatorSecrets[], import("@typeberry/codec").SequenceView<ValidatorSecrets, import("@typeberry/codec").ViewOf<ValidatorSecrets, {
280
281
  bandersnatch: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"BandersnatchSecretSeed">, import("@typeberry/bytes").Bytes<32>>;
281
282
  ed25519: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"Ed25519SecretSeed">, import("@typeberry/bytes").Bytes<32>>;
282
283
  }>>>;
284
+ isFastForward: import("@typeberry/codec").Descriptor<boolean, boolean>;
283
285
  }>>;
284
- static create({ keys }: CodecRecord<BlockAuthorshipConfig>): BlockAuthorshipConfig;
286
+ static create({ keys, isFastForward }: CodecRecord<BlockAuthorshipConfig>): BlockAuthorshipConfig;
285
287
  private constructor();
286
288
  }
287
289
  //# sourceMappingURL=protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../../../packages/workers/block-authorship/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,KAAK,WAAW,EAAS,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAEL,KAAK,sBAAsB,EAE3B,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,GAAG,EAAkB,KAAK,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEjF,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAanB,CAAC;AAEH,qBAAa,gBAAgB;aAWT,YAAY,EAAE,sBAAsB;aACpC,OAAO,EAAE,iBAAiB;IAX5C,MAAM,CAAC,KAAK;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,WAAW,CAAC,gBAAgB,CAAC;IAItE,OAAO;CAIR;AAED,qBAAa,qBAAqB;aASI,IAAI,EAAE,gBAAgB,EAAE;IAR5D,MAAM,CAAC,KAAK;;;;;QAET;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,WAAW,CAAC,qBAAqB,CAAC;IAI1D,OAAO;CACR"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../../../packages/workers/block-authorship/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,KAAK,WAAW,EAAS,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAEL,KAAK,sBAAsB,EAE3B,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,GAAG,EAAkB,KAAK,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAEjF,MAAM,MAAM,iBAAiB,GAAG,QAAQ,CAAC,OAAO,QAAQ,CAAC,CAAC;AAC1D,MAAM,MAAM,YAAY,GAAG,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAanB,CAAC;AAEH,qBAAa,gBAAgB;aAWT,YAAY,EAAE,sBAAsB;aACpC,OAAO,EAAE,iBAAiB;IAX5C,MAAM,CAAC,KAAK;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,WAAW,CAAC,gBAAgB,CAAC;IAItE,OAAO;CAIR;AAED,qBAAa,qBAAqB;aAWd,IAAI,EAAE,gBAAgB,EAAE;aACxB,aAAa,EAAE,OAAO;IAXxC,MAAM,CAAC,KAAK;;;;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,WAAW,CAAC,qBAAqB,CAAC;IAIzE,OAAO;CAIR"}
@@ -33,13 +33,16 @@ export class ValidatorSecrets {
33
33
  }
34
34
  export class BlockAuthorshipConfig {
35
35
  keys;
36
+ isFastForward;
36
37
  static Codec = codec.Class(BlockAuthorshipConfig, {
37
38
  keys: codec.sequenceVarLen(ValidatorSecrets.Codec),
39
+ isFastForward: codec.bool,
38
40
  });
39
- static create({ keys }) {
40
- return new BlockAuthorshipConfig(keys);
41
+ static create({ keys, isFastForward }) {
42
+ return new BlockAuthorshipConfig(keys, isFastForward);
41
43
  }
42
- constructor(keys) {
44
+ constructor(keys, isFastForward) {
43
45
  this.keys = keys;
46
+ this.isFastForward = isFastForward;
44
47
  }
45
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../../../../../packages/workers/importer/importer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAiB,MAAM,kBAAkB,CAAC;AACvH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAiB,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,EAA0B,KAAK,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAkC,MAAM,EAAkB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG5G,oBAAY,iBAAiB;IAC3B,QAAQ,IAAI;IACZ,GAAG,IAAI;IACP,MAAM,IAAI;CACX;AAED,MAAM,MAAM,aAAa,GACrB,WAAW,CAAC,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,GAC3D,WAAW,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,GAC5C,WAAW,CAAC,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAO5D,MAAM,MAAM,eAAe,GAAG;IAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF,qBAAa,QAAQ;IAajB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAhB1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAG9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAEhD,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2C;gBAGjE,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,UAAU,EACE,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EACzC,OAAO,GAAE,eAAoB;IAkBhD,6DAA6D;IAChD,mBAAmB;IASnB,wBAAwB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAQzF,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC;YAwB9F,mBAAmB;IAkFjC,oBAAoB;IAMpB,gBAAgB;IAIhB,eAAe,CAAC,UAAU,EAAE,UAAU;IAKhC,KAAK;CAIZ"}
1
+ {"version":3,"file":"importer.d.ts","sourceRoot":"","sources":["../../../../../packages/workers/importer/importer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAiB,MAAM,kBAAkB,CAAC;AACvH,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAiB,kBAAkB,EAAE,MAAM,yCAAyC,CAAC;AAC5F,OAAO,EAA0B,KAAK,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAC3F,OAAO,EAAkC,MAAM,EAAkB,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAG5G,oBAAY,iBAAiB;IAC3B,QAAQ,IAAI;IACZ,GAAG,IAAI;IACP,MAAM,IAAI;CACX;AAED,MAAM,MAAM,aAAa,GACrB,WAAW,CAAC,iBAAiB,CAAC,QAAQ,EAAE,kBAAkB,CAAC,GAC3D,WAAW,CAAC,iBAAiB,CAAC,GAAG,EAAE,QAAQ,CAAC,GAC5C,WAAW,CAAC,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;AAO5D,MAAM,MAAM,eAAe,GAAG;IAC5B,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF,qBAAa,QAAQ;IAajB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAhB1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAU;IAG9B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0B;IAEhD,OAAO,CAAC,WAAW,CAAa;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA2C;gBAGjE,IAAI,EAAE,SAAS,EACf,GAAG,EAAE,UAAU,EACE,MAAM,EAAE,gBAAgB,EACxB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EACzC,OAAO,GAAE,eAAoB;IAkBhD,6DAA6D;IAChD,mBAAmB;IAQnB,wBAAwB,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;IAQzF,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,aAAa,CAAC,CAAC;YAwB9F,mBAAmB;IAkFjC,oBAAoB;IAMpB,gBAAgB;IAIhB,eAAe,CAAC,UAAU,EAAE,UAAU;IAKhC,KAAK;CAIZ"}
@@ -52,7 +52,6 @@ export class Importer {
52
52
  this.logger.error `Unable to prepare for next epoch: ${e}`;
53
53
  }
54
54
  }
55
- // TODO [ToDr] import block and get state root
56
55
  async importBlockWithStateRoot(block) {
57
56
  const res = await this.importBlock(block);
58
57
  if (res.isOk) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typeberry/importer",
3
- "version": "0.5.3",
3
+ "version": "0.5.4",
4
4
  "description": "A JAM block importer queue.",
5
5
  "main": "index.ts",
6
6
  "dependencies": {