@typeberry/lib 0.5.3-c402c56 → 0.5.3-edc7483

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 (86) hide show
  1. package/package.json +8 -4
  2. package/packages/core/hash/hash.d.ts.map +1 -1
  3. package/packages/core/hash/hash.js +1 -0
  4. package/packages/core/numbers/index.d.ts +4 -0
  5. package/packages/core/numbers/index.d.ts.map +1 -1
  6. package/packages/core/numbers/index.js +4 -4
  7. package/packages/core/pvm-host-calls/host-calls-executor.d.ts +23 -17
  8. package/packages/core/pvm-host-calls/host-calls-executor.d.ts.map +1 -1
  9. package/packages/core/pvm-host-calls/host-calls-executor.js +23 -31
  10. package/packages/core/pvm-interpreter/ops/math-consts.d.ts +2 -3
  11. package/packages/core/pvm-interpreter/ops/math-consts.d.ts.map +1 -1
  12. package/packages/core/pvm-interpreter/ops/math-consts.js +2 -3
  13. package/packages/core/pvm-interpreter/ops/math-ops.js +3 -3
  14. package/packages/core/pvm-interpreter/ops/math-utils.js +13 -13
  15. package/packages/core/pvm-interpreter/ops/math-utils.test.js +17 -16
  16. package/packages/jam/block/work-item.d.ts +13 -4
  17. package/packages/jam/block/work-item.d.ts.map +1 -1
  18. package/packages/jam/block/work-result.d.ts +3 -5
  19. package/packages/jam/block/work-result.d.ts.map +1 -1
  20. package/packages/jam/block/work-result.js +6 -0
  21. package/packages/jam/block-json/work-result.d.ts.map +1 -1
  22. package/packages/jam/block-json/work-result.js +6 -6
  23. package/packages/jam/database-lmdb/states.test.js +4 -3
  24. package/packages/jam/executor/index.d.ts +4 -0
  25. package/packages/jam/executor/index.d.ts.map +1 -0
  26. package/packages/jam/executor/index.js +2 -0
  27. package/packages/jam/{transition/accumulate → executor}/pvm-executor.d.ts +19 -16
  28. package/packages/jam/executor/pvm-executor.d.ts.map +1 -0
  29. package/packages/jam/{transition/accumulate → executor}/pvm-executor.js +46 -3
  30. package/packages/jam/in-core/externalities/refine.d.ts +24 -0
  31. package/packages/jam/in-core/externalities/refine.d.ts.map +1 -0
  32. package/packages/jam/in-core/externalities/refine.js +36 -0
  33. package/packages/jam/in-core/in-core.d.ts +60 -0
  34. package/packages/jam/in-core/in-core.d.ts.map +1 -0
  35. package/packages/jam/in-core/in-core.js +294 -0
  36. package/packages/jam/in-core/in-core.test.d.ts +2 -0
  37. package/packages/jam/in-core/in-core.test.d.ts.map +1 -0
  38. package/packages/jam/in-core/in-core.test.js +81 -0
  39. package/packages/jam/in-core/index.d.ts +2 -0
  40. package/packages/jam/in-core/index.d.ts.map +1 -0
  41. package/packages/jam/in-core/index.js +1 -0
  42. package/packages/jam/jam-host-calls/accumulate/bless.test.js +4 -5
  43. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +3 -3
  44. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts.map +1 -1
  45. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.test.js +2 -2
  46. package/packages/jam/node/jam-config.d.ts +4 -1
  47. package/packages/jam/node/jam-config.d.ts.map +1 -1
  48. package/packages/jam/node/jam-config.js +6 -2
  49. package/packages/jam/node/main.d.ts.map +1 -1
  50. package/packages/jam/node/main.js +5 -4
  51. package/packages/jam/rpc-validation/types.d.ts +7 -3
  52. package/packages/jam/rpc-validation/types.d.ts.map +1 -1
  53. package/packages/jam/rpc-validation/validation.d.ts +254 -36
  54. package/packages/jam/rpc-validation/validation.d.ts.map +1 -1
  55. package/packages/jam/rpc-validation/validation.js +20 -2
  56. package/packages/jam/state/in-memory-state.d.ts.map +1 -1
  57. package/packages/jam/state/in-memory-state.js +2 -3
  58. package/packages/jam/state/test.utils.d.ts.map +1 -1
  59. package/packages/jam/state/test.utils.js +2 -3
  60. package/packages/jam/transition/accumulate/accumulate-data.d.ts.map +1 -1
  61. package/packages/jam/transition/accumulate/accumulate-data.js +1 -2
  62. package/packages/jam/transition/accumulate/accumulate-queue.test.js +2 -2
  63. package/packages/jam/transition/accumulate/accumulate-utils.test.js +2 -2
  64. package/packages/jam/transition/accumulate/accumulate.d.ts.map +1 -1
  65. package/packages/jam/transition/accumulate/accumulate.js +8 -13
  66. package/packages/jam/transition/accumulate/accumulate.test.js +2 -2
  67. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.d.ts.map +1 -1
  68. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.js +1 -2
  69. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.test.js +1 -2
  70. package/packages/jam/transition/accumulate/deferred-transfers.d.ts +1 -1
  71. package/packages/jam/transition/accumulate/deferred-transfers.d.ts.map +1 -1
  72. package/packages/jam/transition/accumulate/deferred-transfers.js +6 -7
  73. package/packages/jam/transition/disputes/disputes.test.data2.js +2 -2
  74. package/packages/jam/transition/externalities/fetch-externalities.d.ts +7 -1
  75. package/packages/jam/transition/externalities/fetch-externalities.d.ts.map +1 -1
  76. package/packages/jam/transition/externalities/fetch-externalities.js +4 -0
  77. package/packages/jam/transition/externalities/fetch-externalities.test.js +2 -2
  78. package/packages/jam/transition/hasher.test.js +2 -2
  79. package/packages/jam/transition/reports/test.utils.d.ts.map +1 -1
  80. package/packages/jam/transition/reports/test.utils.js +2 -2
  81. package/packages/workers/block-authorship/main.d.ts.map +1 -1
  82. package/packages/workers/block-authorship/main.js +23 -4
  83. package/packages/workers/block-authorship/protocol.d.ts +3 -1
  84. package/packages/workers/block-authorship/protocol.d.ts.map +1 -1
  85. package/packages/workers/block-authorship/protocol.js +6 -3
  86. package/packages/jam/transition/accumulate/pvm-executor.d.ts.map +0 -1
@@ -0,0 +1,81 @@
1
+ import assert from "node:assert";
2
+ import { before, describe, it } from "node:test";
3
+ import { tryAsCoreIndex, tryAsServiceGas, tryAsServiceId, tryAsTimeSlot } from "#@typeberry/block";
4
+ import { RefineContext } from "#@typeberry/block/refine-context.js";
5
+ import { WorkItem } from "#@typeberry/block/work-item.js";
6
+ import { tryAsWorkItemsCount, WorkPackage } from "#@typeberry/block/work-package.js";
7
+ import { Bytes, BytesBlob } from "#@typeberry/bytes";
8
+ import { Encoder } from "#@typeberry/codec";
9
+ import { asKnownSize, FixedSizeArray } from "#@typeberry/collections";
10
+ import { PvmBackend, tinyChainSpec } from "#@typeberry/config";
11
+ import { InMemoryStates } from "#@typeberry/database";
12
+ import { Blake2b, HASH_SIZE, WithHash } from "#@typeberry/hash";
13
+ import { tryAsU16 } from "#@typeberry/numbers";
14
+ import { testState } from "#@typeberry/state/test.utils.js";
15
+ import { InCore, RefineError } from "./in-core.js";
16
+ let blake2b;
17
+ before(async () => {
18
+ blake2b = await Blake2b.createHasher();
19
+ });
20
+ function createWorkItem(serviceId = 1) {
21
+ return WorkItem.create({
22
+ service: tryAsServiceId(serviceId),
23
+ codeHash: Bytes.zero(HASH_SIZE).asOpaque(),
24
+ payload: BytesBlob.empty(),
25
+ refineGasLimit: tryAsServiceGas(1_000_000),
26
+ accumulateGasLimit: tryAsServiceGas(1_000_000),
27
+ importSegments: asKnownSize([]),
28
+ extrinsic: [],
29
+ exportCount: tryAsU16(0),
30
+ });
31
+ }
32
+ function createWorkPackage(anchorHash, stateRoot, lookupAnchorSlot = 0) {
33
+ return WorkPackage.create({
34
+ authorization: BytesBlob.empty(),
35
+ authCodeHost: tryAsServiceId(1),
36
+ authCodeHash: Bytes.zero(HASH_SIZE).asOpaque(),
37
+ parametrization: BytesBlob.empty(),
38
+ context: RefineContext.create({
39
+ anchor: anchorHash,
40
+ stateRoot,
41
+ beefyRoot: Bytes.zero(HASH_SIZE).asOpaque(),
42
+ lookupAnchor: anchorHash,
43
+ lookupAnchorSlot: tryAsTimeSlot(lookupAnchorSlot),
44
+ prerequisites: [],
45
+ }),
46
+ items: FixedSizeArray.new([createWorkItem()], tryAsWorkItemsCount(1)),
47
+ });
48
+ }
49
+ function hashWorkPackage(spec, workPackage) {
50
+ const workPackageHash = blake2b
51
+ .hashBytes(Encoder.encodeObject(WorkPackage.Codec, workPackage, spec))
52
+ .asOpaque();
53
+ return new WithHash(workPackageHash, workPackage);
54
+ }
55
+ describe("InCore", () => {
56
+ it("should return StateMissing error when anchor block state is not in DB", async () => {
57
+ const spec = tinyChainSpec;
58
+ const states = new InMemoryStates(spec);
59
+ const inCore = new InCore(spec, states, PvmBackend.BuiltIn, blake2b);
60
+ const anchorHash = Bytes.fill(HASH_SIZE, 1).asOpaque();
61
+ const stateRoot = Bytes.zero(HASH_SIZE).asOpaque();
62
+ const workPackage = createWorkPackage(anchorHash, stateRoot);
63
+ const result = await inCore.refine(hashWorkPackage(spec, workPackage), tryAsCoreIndex(0), asKnownSize([[]]), asKnownSize([[]]));
64
+ assert.strictEqual(result.isError, true);
65
+ assert.strictEqual(result.error, RefineError.StateMissing);
66
+ });
67
+ it("should refine work package and produce a report when state is set up", async () => {
68
+ const spec = tinyChainSpec;
69
+ const states = new InMemoryStates(spec);
70
+ const inCore = new InCore(spec, states, PvmBackend.BuiltIn, blake2b);
71
+ const anchorHash = Bytes.fill(HASH_SIZE, 1).asOpaque();
72
+ const state = testState();
73
+ await states.insertInitialState(anchorHash, state);
74
+ const correctStateRoot = await states.getStateRoot(state);
75
+ const workPackage = createWorkPackage(anchorHash, correctStateRoot, state.timeslot);
76
+ const result = await inCore.refine(hashWorkPackage(spec, workPackage), tryAsCoreIndex(0), asKnownSize([[]]), asKnownSize([[]]));
77
+ assert.strictEqual(result.isOk, true);
78
+ assert.strictEqual(result.ok.report.coreIndex, 0);
79
+ assert.strictEqual(result.ok.report.results.length, 1);
80
+ });
81
+ });
@@ -0,0 +1,2 @@
1
+ export * from "./in-core.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/in-core/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ export * from "./in-core.js";
@@ -3,14 +3,13 @@ import { describe, it } from "node:test";
3
3
  import { tryAsServiceGas, tryAsServiceId } from "#@typeberry/block";
4
4
  import { codec, Encoder } from "#@typeberry/codec";
5
5
  import { tinyChainSpec } from "#@typeberry/config";
6
- import { tryAsU64 } from "#@typeberry/numbers";
6
+ import { MAX_VALUE_U32, MAX_VALUE_U64, tryAsU64 } from "#@typeberry/numbers";
7
7
  import { HostCallMemory, HostCallRegisters, PvmExecution } from "#@typeberry/pvm-host-calls";
8
8
  import { tryAsGas } from "#@typeberry/pvm-interface";
9
9
  import { gasCounter } from "#@typeberry/pvm-interpreter/gas.js";
10
10
  import { MemoryBuilder, tryAsMemoryIndex } from "#@typeberry/pvm-interpreter/memory/index.js";
11
11
  import { PAGE_SIZE } from "#@typeberry/pvm-interpreter/memory/memory-consts.js";
12
12
  import { tryAsSbrkIndex } from "#@typeberry/pvm-interpreter/memory/memory-index.js";
13
- import { MAX_VALUE, MAX_VALUE_U64 } from "#@typeberry/pvm-interpreter/ops/math-consts.js";
14
13
  import { codecPerCore, tryAsPerCore } from "#@typeberry/state";
15
14
  import { Compatibility, deepEqual, GpVersion, Result } from "#@typeberry/utils";
16
15
  import { UpdatePrivilegesError } from "../externalities/partial-state.js";
@@ -99,7 +98,7 @@ describe("HostCalls: Bless", () => {
99
98
  tryAsServiceId(5),
100
99
  tryAsPerCore([tryAsServiceId(10), tryAsServiceId(15)], tinyChainSpec),
101
100
  tryAsServiceId(20),
102
- tryAsServiceId(MAX_VALUE),
101
+ tryAsServiceId(MAX_VALUE_U32),
103
102
  new Map(entries),
104
103
  ],
105
104
  ]);
@@ -161,7 +160,7 @@ describe("HostCalls: Bless", () => {
161
160
  tryAsServiceId(5),
162
161
  tryAsPerCore([tryAsServiceId(10), tryAsServiceId(15)], tinyChainSpec),
163
162
  tryAsServiceId(20),
164
- tryAsServiceId(MAX_VALUE),
163
+ tryAsServiceId(MAX_VALUE_U32),
165
164
  new Map(entries),
166
165
  ],
167
166
  ]);
@@ -197,7 +196,7 @@ describe("HostCalls: Bless", () => {
197
196
  tryAsServiceId(5),
198
197
  tryAsPerCore([tryAsServiceId(10), tryAsServiceId(15)], tinyChainSpec),
199
198
  tryAsServiceId(20),
200
- tryAsServiceId(MAX_VALUE),
199
+ tryAsServiceId(MAX_VALUE_U32),
201
200
  new Map(entries),
202
201
  ],
203
202
  ]);
@@ -1,5 +1,5 @@
1
1
  import type { CoreIndex } from "#@typeberry/block";
2
- import { type WorkItemExtrinsics } from "#@typeberry/block/work-item.js";
2
+ import { type WorkPackageExtrinsics } from "#@typeberry/block/work-item.js";
3
3
  import { WorkPackage } from "#@typeberry/block/work-package.js";
4
4
  import type { BytesBlob } from "#@typeberry/bytes";
5
5
  import { type CodecRecord } from "#@typeberry/codec";
@@ -55,7 +55,7 @@ export declare class CoreWorkPackage extends WithDebug {
55
55
  export declare class ServerHandler implements StreamHandler<typeof STREAM_KIND> {
56
56
  private readonly onWorkPackage;
57
57
  kind: 133 & import("@typeberry/numbers").WithBytesRepresentation<1>;
58
- constructor(onWorkPackage: (i: CoreIndex, w: WorkPackage, e: WorkItemExtrinsics) => void);
58
+ constructor(onWorkPackage: (i: CoreIndex, w: WorkPackage, e: WorkPackageExtrinsics) => void);
59
59
  readonly workPackages: Map<import("@typeberry/numbers").U32, CoreWorkPackage>;
60
60
  onStreamMessage(sender: StreamMessageSender, message: BytesBlob): void;
61
61
  onClose(streamId: StreamId): void;
@@ -64,6 +64,6 @@ export declare class ClientHandler implements StreamHandler<typeof STREAM_KIND>
64
64
  kind: 133 & import("@typeberry/numbers").WithBytesRepresentation<1>;
65
65
  onStreamMessage(sender: StreamMessageSender): void;
66
66
  onClose(): void;
67
- sendWorkPackage(sender: StreamMessageSender, coreIndex: CoreIndex, workPackage: WorkPackage, extrinsic: WorkItemExtrinsics): void;
67
+ sendWorkPackage(sender: StreamMessageSender, coreIndex: CoreIndex, workPackage: WorkPackage, extrinsic: WorkPackageExtrinsics): void;
68
68
  }
69
69
  //# sourceMappingURL=ce-133-work-package-submission.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ce-133-work-package-submission.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jamnp-s/protocol/ce-133-work-package-submission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,kBAAkB,EAA2B,MAAM,+BAA+B,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAE3G;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,+DAAuB,CAAC;AAEhD,qBAAa,eAAgB,SAAQ,SAAS;aAW1B,SAAS,EAAE,SAAS;aACpB,WAAW,EAAE,WAAW;IAX1C,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,eAAe,CAAC;IAItE,OAAO;CAMR;AAID,qBAAa,aAAc,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IAGzD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAF1C,IAAI,gEAAe;gBAEU,aAAa,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,kBAAkB,KAAK,IAAI;IAEzG,SAAgB,YAAY,yDAAwC;IAEpE,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IAiBtE,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;CAGlC;AAED,qBAAa,aAAc,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IACrE,IAAI,gEAAe;IAEnB,eAAe,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAKlD,OAAO,IAAI,IAAI;IAEf,eAAe,CACb,MAAM,EAAE,mBAAmB,EAC3B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,kBAAkB;CAUhC"}
1
+ {"version":3,"file":"ce-133-work-package-submission.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jamnp-s/protocol/ce-133-work-package-submission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,qBAAqB,EAA2B,MAAM,+BAA+B,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAE3G;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,+DAAuB,CAAC;AAEhD,qBAAa,eAAgB,SAAQ,SAAS;aAW1B,SAAS,EAAE,SAAS;aACpB,WAAW,EAAE,WAAW;IAX1C,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,eAAe,CAAC;IAItE,OAAO;CAMR;AAID,qBAAa,aAAc,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IAGzD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAF1C,IAAI,gEAAe;gBAEU,aAAa,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,qBAAqB,KAAK,IAAI;IAE5G,SAAgB,YAAY,yDAAwC;IAEpE,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IAiBtE,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;CAGlC;AAED,qBAAa,aAAc,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IACrE,IAAI,gEAAe;IAEnB,eAAe,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAKlD,OAAO,IAAI,IAAI;IAEf,eAAe,CACb,MAAM,EAAE,mBAAmB,EAC3B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,qBAAqB;CAUnC"}
@@ -5,7 +5,7 @@ import { Credential } from "#@typeberry/block/guarantees.js";
5
5
  import { RefineContext } from "#@typeberry/block/refine-context.js";
6
6
  import { tryAsWorkItemsCount } from "#@typeberry/block/work-package.js";
7
7
  import { WorkPackageSpec, WorkReport } from "#@typeberry/block/work-report.js";
8
- import { WorkExecResult, WorkExecResultKind, WorkRefineLoad, WorkResult } from "#@typeberry/block/work-result.js";
8
+ import { WorkExecResult, WorkRefineLoad, WorkResult } from "#@typeberry/block/work-result.js";
9
9
  import { Bytes, BytesBlob } from "#@typeberry/bytes";
10
10
  import { asKnownSize, FixedSizeArray } from "#@typeberry/collections";
11
11
  import { tinyChainSpec } from "#@typeberry/config";
@@ -36,7 +36,7 @@ const MOCK_WORK_RESULT = WorkResult.create({
36
36
  codeHash: Bytes.zero(HASH_SIZE).asOpaque(),
37
37
  payloadHash: Bytes.zero(HASH_SIZE),
38
38
  gas: tryAsServiceGas(1000n),
39
- result: new WorkExecResult(WorkExecResultKind.ok, BytesBlob.blobFrom(new Uint8Array())),
39
+ result: WorkExecResult.ok(BytesBlob.empty()),
40
40
  load: WorkRefineLoad.create({
41
41
  gasUsed: tryAsServiceGas(10000n),
42
42
  importedSegments: tryAsU32(1),
@@ -14,6 +14,8 @@ export declare const DEFAULT_DEV_CONFIG: {
14
14
  export declare class JamConfig {
15
15
  /** Whether we should be authoring blocks. */
16
16
  readonly isAuthoring: boolean;
17
+ /** Fast forward mode - generate blocks as fast as possible without waiting for real time. */
18
+ readonly isFastForward: boolean;
17
19
  /** Node name. */
18
20
  readonly nodeName: string;
19
21
  /** Node starting configuration. */
@@ -28,8 +30,9 @@ export declare class JamConfig {
28
30
  readonly ancestry: [HeaderHash, TimeSlot][];
29
31
  /** Validator index for dev mode authorship. Use "all" to author as all validators. */
30
32
  readonly devValidatorIndex: U16 | "all" | null;
31
- static new({ isAuthoring, nodeName, nodeConfig, pvmBackend, devConfig, networkConfig, ancestry, devValidatorIndex, }: {
33
+ static new({ isAuthoring, isFastForward, nodeName, nodeConfig, pvmBackend, devConfig, networkConfig, ancestry, devValidatorIndex, }: {
32
34
  isAuthoring?: boolean;
35
+ isFastForward?: boolean;
33
36
  nodeName: string;
34
37
  nodeConfig: NodeConfiguration;
35
38
  pvmBackend: PvmBackend;
@@ -1 +1 @@
1
- {"version":3,"file":"jam-config.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/node/jam-config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,QAAQ,EAGb,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE9C,eAAO,MAAM,kBAAkB;;;;CAI9B,CAAC;AAEF;;GAEG;AACH,qBAAa,SAAS;IAkClB,6CAA6C;aAC7B,WAAW,EAAE,OAAO;IACpC,iBAAiB;aACD,QAAQ,EAAE,MAAM;IAChC,mCAAmC;aACnB,IAAI,EAAE,iBAAiB;IACvC,4BAA4B;aACZ,UAAU,EAAE,UAAU;IACtC,wCAAwC;aACxB,GAAG,EAAE,SAAS,GAAG,IAAI;IACrC,0BAA0B;aACV,OAAO,EAAE,aAAa,GAAG,IAAI;IAC7C,iDAAiD;aACjC,QAAQ,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;IAClD,sFAAsF;aACtE,iBAAiB,EAAE,GAAG,GAAG,KAAK,GAAG,IAAI;IAhDvD,MAAM,CAAC,GAAG,CAAC,EACT,WAAW,EACX,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAgB,EAChB,aAAoB,EACpB,QAAa,EACb,iBAAwB,GACzB,EAAE;QACD,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,iBAAiB,CAAC;QAC9B,UAAU,EAAE,UAAU,CAAC;QACvB,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;QAC7B,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;QACrC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;QACpC,sFAAsF;QACtF,iBAAiB,CAAC,EAAE,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC;KACxC;IAaD,OAAO;CAkBR;AAED,6CAA6C;AAC7C,MAAM,MAAM,aAAa,GAAG;IAC1B,uCAAuC;IACvC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,8BAA8B;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,kCAAkC;IAClC,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,oCAAoC;AACpC,MAAM,MAAM,SAAS,GAAG;IAGtB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,wCAAwC;IACxC,cAAc,EAAE,cAAc,CAAC;IAC/B,2CAA2C;IAC3C,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,gCAAgC;AAChC,MAAM,MAAM,aAAa,GAAG;IAC1B,2BAA2B;IAC3B,GAAG,EAAE,iBAAiB,CAAC;IACvB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB,CAAC"}
1
+ {"version":3,"file":"jam-config.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/node/jam-config.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,QAAQ,EAGb,KAAK,cAAc,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,qCAAqC,CAAC;AACtF,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE9C,eAAO,MAAM,kBAAkB;;;;CAI9B,CAAC;AAEF;;GAEG;AACH,qBAAa,SAAS;IAqClB,6CAA6C;aAC7B,WAAW,EAAE,OAAO;IACpC,6FAA6F;aAC7E,aAAa,EAAE,OAAO;IACtC,iBAAiB;aACD,QAAQ,EAAE,MAAM;IAChC,mCAAmC;aACnB,IAAI,EAAE,iBAAiB;IACvC,4BAA4B;aACZ,UAAU,EAAE,UAAU;IACtC,wCAAwC;aACxB,GAAG,EAAE,SAAS,GAAG,IAAI;IACrC,0BAA0B;aACV,OAAO,EAAE,aAAa,GAAG,IAAI;IAC7C,iDAAiD;aACjC,QAAQ,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE;IAClD,sFAAsF;aACtE,iBAAiB,EAAE,GAAG,GAAG,KAAK,GAAG,IAAI;IArDvD,MAAM,CAAC,GAAG,CAAC,EACT,WAAW,EACX,aAAa,EACb,QAAQ,EACR,UAAU,EACV,UAAU,EACV,SAAgB,EAChB,aAAoB,EACpB,QAAa,EACb,iBAAwB,GACzB,EAAE;QACD,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,iBAAiB,CAAC;QAC9B,UAAU,EAAE,UAAU,CAAC;QACvB,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;QAC7B,aAAa,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;QACrC,QAAQ,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,EAAE,CAAC;QACpC,sFAAsF;QACtF,iBAAiB,CAAC,EAAE,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC;KACxC;IAcD,OAAO;CAoBR;AAED,6CAA6C;AAC7C,MAAM,MAAM,aAAa,GAAG;IAC1B,uCAAuC;IACvC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,8BAA8B;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,kCAAkC;IAClC,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,oCAAoC;AACpC,MAAM,MAAM,SAAS,GAAG;IAGtB,mDAAmD;IACnD,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,wCAAwC;IACxC,cAAc,EAAE,cAAc,CAAC;IAC/B,2CAA2C;IAC3C,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,CAAC;AAEF,gCAAgC;AAChC,MAAM,MAAM,aAAa,GAAG;IAC1B,2BAA2B;IAC3B,GAAG,EAAE,iBAAiB,CAAC;IACvB,8CAA8C;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,SAAS,EAAE,QAAQ,EAAE,CAAC;CACvB,CAAC"}
@@ -9,6 +9,7 @@ export const DEFAULT_DEV_CONFIG = {
9
9
  */
10
10
  export class JamConfig {
11
11
  isAuthoring;
12
+ isFastForward;
12
13
  nodeName;
13
14
  node;
14
15
  pvmBackend;
@@ -16,12 +17,14 @@ export class JamConfig {
16
17
  network;
17
18
  ancestry;
18
19
  devValidatorIndex;
19
- static new({ isAuthoring, nodeName, nodeConfig, pvmBackend, devConfig = null, networkConfig = null, ancestry = [], devValidatorIndex = null, }) {
20
- return new JamConfig(isAuthoring ?? false, nodeName, nodeConfig, pvmBackend, devConfig, networkConfig, ancestry, devValidatorIndex);
20
+ static new({ isAuthoring, isFastForward, nodeName, nodeConfig, pvmBackend, devConfig = null, networkConfig = null, ancestry = [], devValidatorIndex = null, }) {
21
+ return new JamConfig(isAuthoring ?? false, isFastForward ?? false, nodeName, nodeConfig, pvmBackend, devConfig, networkConfig, ancestry, devValidatorIndex);
21
22
  }
22
23
  constructor(
23
24
  /** Whether we should be authoring blocks. */
24
25
  isAuthoring,
26
+ /** Fast forward mode - generate blocks as fast as possible without waiting for real time. */
27
+ isFastForward,
25
28
  /** Node name. */
26
29
  nodeName,
27
30
  /** Node starting configuration. */
@@ -37,6 +40,7 @@ export class JamConfig {
37
40
  /** Validator index for dev mode authorship. Use "all" to author as all validators. */
38
41
  devValidatorIndex) {
39
42
  this.isAuthoring = isAuthoring;
43
+ this.isFastForward = isFastForward;
40
44
  this.nodeName = nodeName;
41
45
  this.node = node;
42
46
  this.pvmBackend = pvmBackend;
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/node/main.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAc,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,KAAK,SAAS,EAAc,MAAM,mBAAmB,CAAC;AAe/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAkC,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAK1E,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAYhE,MAAM,MAAM,OAAO,GAAG;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAChE,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,oBAAoB,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC;AAEF,wBAAsB,IAAI,CACxB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAClC,SAAS,EAAE,SAAS,GAAG,IAAI,GAC1B,OAAO,CAAC,OAAO,CAAC,CAsJlB"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/node/main.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAc,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACzF,OAAO,EAAE,KAAK,SAAS,EAAc,MAAM,mBAAmB,CAAC;AAe/D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAkC,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAK1E,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAYhE,MAAM,MAAM,OAAO,GAAG;IACpB,SAAS,EAAE,SAAS,CAAC;IACrB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAChE,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;IACtE,oBAAoB,IAAI,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC;AAEF,wBAAsB,IAAI,CACxB,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,EAClC,SAAS,EAAE,SAAS,GAAG,IAAI,GAC1B,OAAO,CAAC,OAAO,CAAC,CAuJlB"}
@@ -92,7 +92,7 @@ export async function main(config, withRelPath, telemetry) {
92
92
  },
93
93
  ],
94
94
  };
95
- const closeAuthorship = await initAuthorship(importer, config.isAuthoring, rootDb, baseConfig, authorshipKeys, isInMemory);
95
+ const closeAuthorship = await initAuthorship(importer, config.isAuthoring, config.isFastForward, rootDb, baseConfig, authorshipKeys, isInMemory);
96
96
  // Networking initialization
97
97
  const closeNetwork = await initNetwork(importer, rootDb, baseConfig, genesisHeaderHash, config.network, bestHeader, isInMemory);
98
98
  const api = {
@@ -128,22 +128,23 @@ export async function main(config, withRelPath, telemetry) {
128
128
  };
129
129
  return api;
130
130
  }
131
- const initAuthorship = async (importer, isAuthoring, rootDb, baseConfig, authorshipKeys, isInMemory) => {
131
+ const initAuthorship = async (importer, isAuthoring, isFastForward, rootDb, baseConfig, authorshipKeys, isInMemory) => {
132
132
  if (!isAuthoring) {
133
133
  logger.log `✍️ Authorship off: disabled`;
134
134
  return () => Promise.resolve();
135
135
  }
136
136
  logger.info `✍️ Starting block generator.`;
137
+ const workerParams = { ...authorshipKeys, isFastForward };
137
138
  const { generator, finish } = isInMemory
138
139
  ? await startBlockGenerator(DirectWorkerConfig.new({
139
140
  ...baseConfig,
140
141
  blocksDb: rootDb.getBlocksDb(),
141
142
  statesDb: rootDb.getStatesDb(),
142
- workerParams: authorshipKeys,
143
+ workerParams,
143
144
  }))
144
145
  : await spawnBlockGeneratorWorker(LmdbWorkerConfig.new({
145
146
  ...baseConfig,
146
- workerParams: authorshipKeys,
147
+ workerParams,
147
148
  }));
148
149
  // relay blocks from generator to importer
149
150
  generator.setOnBlock(async (block) => {
@@ -1,5 +1,6 @@
1
- import type { ChainSpec } from "#@typeberry/config";
1
+ import type { ChainSpec, PvmBackend } from "#@typeberry/config";
2
2
  import type { BlocksDb, StatesDb } from "#@typeberry/database";
3
+ import type { Blake2b } from "#@typeberry/hash";
3
4
  import type { EnumerableState, State } from "#@typeberry/state";
4
5
  import type WebSocket from "ws";
5
6
  import type { z } from "zod";
@@ -62,11 +63,14 @@ export type SchemaMapUnknown = Record<MethodName, {
62
63
  }>;
63
64
  export type InputOf<M extends MethodName> = z.infer<SchemaMap[M]["input"]>;
64
65
  export type OutputOf<M extends MethodName> = z.infer<SchemaMap[M]["output"]>;
65
- export type GenericHandler<I, O> = (input: I, context: {
66
+ export interface HandlerContext {
66
67
  db: DatabaseContext;
67
68
  chainSpec: ChainSpec;
69
+ pvmBackend: PvmBackend;
70
+ blake2b: Blake2b;
68
71
  subscription: SubscriptionHandlerApi;
69
- }) => Promise<O>;
72
+ }
73
+ export type GenericHandler<I, O> = (input: I, context: HandlerContext) => Promise<O>;
70
74
  export type Handler<M extends MethodName> = GenericHandler<InputOf<M>, OutputOf<M>>;
71
75
  export type HandlerMap = {
72
76
  [N in MethodName]: Handler<N>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/rpc-validation/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/rpc-validation/types.ts"],"names":[],"mappings":"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"}