@typeberry/lib 0.5.3 → 0.5.4-472e282
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/package.json +8 -4
- package/packages/core/hash/hash.d.ts.map +1 -1
- package/packages/core/hash/hash.js +1 -0
- package/packages/core/networking/certificate.d.ts.map +1 -1
- package/packages/core/networking/certificate.js +1 -0
- package/packages/core/networking/package.json +1 -1
- package/packages/core/networking/setup.d.ts.map +1 -1
- package/packages/core/networking/setup.js +16 -12
- package/packages/core/numbers/index.d.ts +4 -0
- package/packages/core/numbers/index.d.ts.map +1 -1
- package/packages/core/numbers/index.js +4 -4
- package/packages/core/pvm-host-calls/host-calls-executor.d.ts +23 -17
- package/packages/core/pvm-host-calls/host-calls-executor.d.ts.map +1 -1
- package/packages/core/pvm-host-calls/host-calls-executor.js +23 -31
- package/packages/core/pvm-interpreter/ops/math-consts.d.ts +2 -3
- package/packages/core/pvm-interpreter/ops/math-consts.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/math-consts.js +2 -3
- package/packages/core/pvm-interpreter/ops/math-ops.js +3 -3
- package/packages/core/pvm-interpreter/ops/math-utils.js +13 -13
- package/packages/core/pvm-interpreter/ops/math-utils.test.js +17 -16
- package/packages/core/telemetry/package.json +1 -1
- package/packages/core/utils/compatibility.d.ts +0 -1
- package/packages/core/utils/compatibility.d.ts.map +1 -1
- package/packages/core/utils/compatibility.js +1 -2
- package/packages/core/utils/compatibility.test.js +6 -10
- package/packages/extensions/ipc/jamnp/handler.d.ts +5 -4
- package/packages/extensions/ipc/jamnp/handler.d.ts.map +1 -1
- package/packages/extensions/ipc/jamnp/handler.js +59 -34
- package/packages/extensions/ipc/jamnp/stream.d.ts +6 -4
- package/packages/extensions/ipc/jamnp/stream.d.ts.map +1 -1
- package/packages/jam/block/index.d.ts +11 -11
- package/packages/jam/block/index.d.ts.map +1 -1
- package/packages/jam/block/index.js +11 -11
- package/packages/jam/block/work-item.d.ts +13 -4
- package/packages/jam/block/work-item.d.ts.map +1 -1
- package/packages/jam/block/work-package.d.ts +3 -1
- package/packages/jam/block/work-package.d.ts.map +1 -1
- package/packages/jam/block/work-package.js +6 -2
- package/packages/jam/block/work-result.d.ts +3 -5
- package/packages/jam/block/work-result.d.ts.map +1 -1
- package/packages/jam/block/work-result.js +6 -0
- package/packages/jam/block-json/block.d.ts +125 -0
- package/packages/jam/block-json/block.d.ts.map +1 -1
- package/packages/jam/block-json/block.js +9 -2
- package/packages/jam/block-json/work-result.d.ts.map +1 -1
- package/packages/jam/block-json/work-result.js +6 -6
- package/packages/jam/database-lmdb/states.test.js +2 -3
- package/packages/jam/executor/index.d.ts +4 -0
- package/packages/jam/executor/index.d.ts.map +1 -0
- package/packages/jam/executor/index.js +2 -0
- package/packages/jam/{transition/accumulate → executor}/pvm-executor.d.ts +19 -16
- package/packages/jam/executor/pvm-executor.d.ts.map +1 -0
- package/packages/jam/{transition/accumulate → executor}/pvm-executor.js +46 -3
- package/packages/jam/fuzz-proto/v1/handler.d.ts +1 -1
- package/packages/jam/fuzz-proto/v1/handler.d.ts.map +1 -1
- package/packages/jam/fuzz-proto/v1/handler.js +43 -19
- package/packages/jam/fuzz-proto/v1/types.d.ts +1 -1
- package/packages/jam/in-core/externalities/refine.d.ts +24 -0
- package/packages/jam/in-core/externalities/refine.d.ts.map +1 -0
- package/packages/jam/in-core/externalities/refine.js +36 -0
- package/packages/jam/in-core/in-core.d.ts +60 -0
- package/packages/jam/in-core/in-core.d.ts.map +1 -0
- package/packages/jam/in-core/in-core.js +294 -0
- package/packages/jam/in-core/in-core.test.d.ts +2 -0
- package/packages/jam/in-core/in-core.test.d.ts.map +1 -0
- package/packages/jam/in-core/in-core.test.js +81 -0
- package/packages/jam/in-core/index.d.ts +2 -0
- package/packages/jam/in-core/index.d.ts.map +1 -0
- package/packages/jam/in-core/index.js +1 -0
- package/packages/jam/jam-host-calls/accumulate/bless.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/bless.js +6 -10
- package/packages/jam/jam-host-calls/accumulate/bless.test.js +32 -73
- package/packages/jam/jam-host-calls/accumulate/new.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/new.js +2 -4
- package/packages/jam/jam-host-calls/accumulate/new.test.js +4 -5
- package/packages/jam/jam-host-calls/general/fetch.d.ts +1 -57
- package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/fetch.js +6 -29
- package/packages/jam/jam-host-calls/general/fetch.test.js +2 -58
- package/packages/jam/jamnp-s/peers.d.ts.map +1 -1
- package/packages/jam/jamnp-s/peers.js +10 -0
- package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts +1 -1
- package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-128-block-request.js +10 -8
- package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-129-state-request.js +11 -9
- package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +3 -3
- package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.js +2 -2
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +9 -9
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.js +2 -2
- package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.js +8 -6
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +16 -16
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.js +2 -2
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/stream.d.ts +13 -7
- package/packages/jam/jamnp-s/protocol/stream.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/stream.js +5 -4
- package/packages/jam/jamnp-s/protocol/test-utils.d.ts +1 -1
- package/packages/jam/jamnp-s/protocol/test-utils.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/test-utils.js +9 -12
- package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +2 -2
- package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/up-0-block-announcement.js +1 -1
- package/packages/jam/jamnp-s/stream-manager.d.ts.map +1 -1
- package/packages/jam/jamnp-s/stream-manager.js +7 -5
- package/packages/jam/jamnp-s/stream-manager.test.js +8 -5
- package/packages/jam/jamnp-s/tasks/sync.js +1 -1
- package/packages/jam/node/jam-config.d.ts +4 -1
- package/packages/jam/node/jam-config.d.ts.map +1 -1
- package/packages/jam/node/jam-config.js +6 -2
- package/packages/jam/node/main.d.ts.map +1 -1
- package/packages/jam/node/main.js +5 -4
- package/packages/jam/node/package.json +1 -1
- package/packages/jam/node/reader.d.ts +25 -25
- package/packages/jam/node/workers.d.ts +183 -183
- package/packages/jam/rpc-validation/types.d.ts +7 -3
- package/packages/jam/rpc-validation/types.d.ts.map +1 -1
- package/packages/jam/rpc-validation/validation.d.ts +254 -36
- package/packages/jam/rpc-validation/validation.d.ts.map +1 -1
- package/packages/jam/rpc-validation/validation.js +20 -2
- package/packages/jam/state/accumulation-queue.d.ts +26 -26
- package/packages/jam/state/assurances.d.ts +26 -26
- package/packages/jam/state/in-memory-state.d.ts.map +1 -1
- package/packages/jam/state/in-memory-state.js +2 -3
- package/packages/jam/state/privileged-services.d.ts +1 -1
- package/packages/jam/state/privileged-services.d.ts.map +1 -1
- package/packages/jam/state/privileged-services.js +1 -6
- package/packages/jam/state/service.d.ts +1 -1
- package/packages/jam/state/service.d.ts.map +1 -1
- package/packages/jam/state/statistics.d.ts +0 -8
- package/packages/jam/state/statistics.d.ts.map +1 -1
- package/packages/jam/state/statistics.js +14 -44
- package/packages/jam/state/statistics.test.js +1 -8
- package/packages/jam/state/test.utils.d.ts +1 -1
- package/packages/jam/state/test.utils.d.ts.map +1 -1
- package/packages/jam/state/test.utils.js +6 -25
- package/packages/jam/state-json/accounts.d.ts +10 -0
- package/packages/jam/state-json/accounts.d.ts.map +1 -1
- package/packages/jam/state-json/accounts.js +47 -19
- package/packages/jam/state-json/dump.d.ts.map +1 -1
- package/packages/jam/state-json/dump.js +5 -9
- package/packages/jam/state-json/dump.test.js +2 -10
- package/packages/jam/state-json/statistics.d.ts +1 -1
- package/packages/jam/state-json/statistics.d.ts.map +1 -1
- package/packages/jam/state-json/statistics.js +1 -13
- package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +29 -31
- package/packages/jam/state-merkleization/in-memory-state-codec.d.ts.map +1 -1
- package/packages/jam/state-merkleization/serialize.d.ts +4 -4
- package/packages/jam/state-merkleization/serialize.d.ts.map +1 -1
- package/packages/jam/state-merkleization/serialize.js +5 -8
- package/packages/jam/state-merkleization/serialized-state-view.d.ts.map +1 -1
- package/packages/jam/state-merkleization/state-entries.test.js +1 -7
- package/packages/jam/state-vectors/index.d.ts +377 -5
- package/packages/jam/state-vectors/index.d.ts.map +1 -1
- package/packages/jam/state-vectors/index.js +3 -3
- package/packages/jam/transition/accumulate/accumulate-data.d.ts.map +1 -1
- package/packages/jam/transition/accumulate/accumulate-data.js +1 -2
- package/packages/jam/transition/accumulate/accumulate-queue.test.js +2 -2
- package/packages/jam/transition/accumulate/accumulate-state.d.ts +1 -2
- package/packages/jam/transition/accumulate/accumulate-state.d.ts.map +1 -1
- package/packages/jam/transition/accumulate/accumulate-utils.d.ts.map +1 -1
- package/packages/jam/transition/accumulate/accumulate-utils.js +2 -6
- package/packages/jam/transition/accumulate/accumulate-utils.test.js +4 -6
- package/packages/jam/transition/accumulate/accumulate.d.ts.map +1 -1
- package/packages/jam/transition/accumulate/accumulate.js +19 -33
- package/packages/jam/transition/accumulate/accumulate.test.js +2 -2
- package/packages/jam/transition/accumulate/accumulation-result-merge-utils.d.ts.map +1 -1
- package/packages/jam/transition/accumulate/accumulation-result-merge-utils.js +1 -2
- package/packages/jam/transition/accumulate/accumulation-result-merge-utils.test.js +1 -2
- package/packages/jam/transition/accumulate/index.d.ts +0 -1
- package/packages/jam/transition/accumulate/index.d.ts.map +1 -1
- package/packages/jam/transition/accumulate/index.js +0 -1
- package/packages/jam/transition/accumulate/operand.d.ts +7 -7
- package/packages/jam/transition/chain-stf.d.ts +3 -5
- package/packages/jam/transition/chain-stf.d.ts.map +1 -1
- package/packages/jam/transition/chain-stf.js +5 -29
- package/packages/jam/transition/disputes/disputes.test.data2.d.ts +3 -3
- package/packages/jam/transition/disputes/disputes.test.data2.d.ts.map +1 -1
- package/packages/jam/transition/disputes/disputes.test.data2.js +2 -2
- package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
- package/packages/jam/transition/externalities/accumulate-externalities.js +22 -49
- package/packages/jam/transition/externalities/accumulate-externalities.test.js +8 -72
- package/packages/jam/transition/externalities/fetch-externalities.d.ts +8 -21
- package/packages/jam/transition/externalities/fetch-externalities.d.ts.map +1 -1
- package/packages/jam/transition/externalities/fetch-externalities.js +5 -53
- package/packages/jam/transition/externalities/fetch-externalities.test.js +201 -114
- package/packages/jam/transition/hasher.test.js +2 -2
- package/packages/jam/transition/reports/error.d.ts +3 -1
- package/packages/jam/transition/reports/error.d.ts.map +1 -1
- package/packages/jam/transition/reports/error.js +2 -0
- package/packages/jam/transition/reports/test.utils.d.ts.map +1 -1
- package/packages/jam/transition/reports/test.utils.js +2 -2
- package/packages/jam/transition/reports/verify-basic.d.ts.map +1 -1
- package/packages/jam/transition/reports/verify-basic.js +10 -0
- package/packages/jam/transition/reports/verify-basic.test.js +29 -0
- package/packages/jam/transition/statistics.d.ts +0 -7
- package/packages/jam/transition/statistics.d.ts.map +1 -1
- package/packages/jam/transition/statistics.js +2 -11
- package/packages/jam/transition/statistics.test.js +0 -40
- package/packages/workers/block-authorship/generator.test.d.ts +2 -0
- package/packages/workers/block-authorship/generator.test.d.ts.map +1 -0
- package/packages/workers/block-authorship/generator.test.js +200 -0
- package/packages/workers/block-authorship/main.d.ts.map +1 -1
- package/packages/workers/block-authorship/main.js +23 -4
- package/packages/workers/block-authorship/package.json +1 -1
- package/packages/workers/block-authorship/protocol.d.ts +53 -51
- package/packages/workers/block-authorship/protocol.d.ts.map +1 -1
- package/packages/workers/block-authorship/protocol.js +6 -3
- package/packages/workers/importer/importer.d.ts.map +1 -1
- package/packages/workers/importer/importer.js +0 -1
- package/packages/workers/importer/package.json +1 -1
- package/packages/workers/importer/protocol.d.ts +54 -54
- package/packages/workers/jam-network/protocol.d.ts +79 -79
- package/packages/jam/transition/accumulate/deferred-transfers.d.ts +0 -36
- package/packages/jam/transition/accumulate/deferred-transfers.d.ts.map +0 -1
- package/packages/jam/transition/accumulate/deferred-transfers.js +0 -95
- package/packages/jam/transition/accumulate/pvm-executor.d.ts.map +0 -1
|
@@ -2,6 +2,7 @@ import assert from "node:assert";
|
|
|
2
2
|
import { describe, it } from "node:test";
|
|
3
3
|
import { createDisconnectedPeer, TestManualStream } from "#@typeberry/networking/testing.js";
|
|
4
4
|
import { OK } from "#@typeberry/utils";
|
|
5
|
+
import { tryAsStreamId, } from "./protocol/stream.js";
|
|
5
6
|
import { StreamManager } from "./stream-manager.js";
|
|
6
7
|
// Test StreamHandler implementation
|
|
7
8
|
class TestStreamHandler {
|
|
@@ -25,7 +26,7 @@ describe("StreamManager", () => {
|
|
|
25
26
|
describe("stream management", () => {
|
|
26
27
|
it("should return null for unknown stream ID", () => {
|
|
27
28
|
const manager = new StreamManager();
|
|
28
|
-
const peer = manager.getPeer(123);
|
|
29
|
+
const peer = manager.getPeer(tryAsStreamId("peer1:123"));
|
|
29
30
|
assert.strictEqual(peer, null);
|
|
30
31
|
});
|
|
31
32
|
it("should open new stream and call work function", async () => {
|
|
@@ -38,7 +39,7 @@ describe("StreamManager", () => {
|
|
|
38
39
|
manager.withNewStream(peer, 1, (h, sender) => {
|
|
39
40
|
workCalled = true;
|
|
40
41
|
assert.strictEqual(h, handler);
|
|
41
|
-
assert.strictEqual(typeof sender.streamId, "
|
|
42
|
+
assert.strictEqual(typeof sender.streamId, "string");
|
|
42
43
|
senderFlush = sender.flush();
|
|
43
44
|
return OK;
|
|
44
45
|
});
|
|
@@ -88,17 +89,19 @@ describe("StreamManager", () => {
|
|
|
88
89
|
describe("incoming streams", () => {
|
|
89
90
|
it("should handle incoming stream with valid kind", async () => {
|
|
90
91
|
const manager = new StreamManager();
|
|
91
|
-
const
|
|
92
|
+
const peerId = "peer1";
|
|
93
|
+
const peer = createDisconnectedPeer(peerId);
|
|
92
94
|
const handler = createTestHandler(1);
|
|
93
95
|
manager.registerIncomingHandlers(handler);
|
|
94
|
-
const
|
|
96
|
+
const quicStreamId = 42;
|
|
97
|
+
const stream = new TestManualStream(quicStreamId);
|
|
95
98
|
// Simulate incoming stream with kind byte
|
|
96
99
|
const kindData = new Uint8Array([1, 0x41, 0x42]); // kind=1, followed by some data
|
|
97
100
|
stream._simulateIncomingData(kindData);
|
|
98
101
|
stream._incomingData.close();
|
|
99
102
|
await manager.onIncomingStream(peer, stream);
|
|
100
103
|
// Check that peer is tracked
|
|
101
|
-
const retrievedPeer = manager.getPeer(
|
|
104
|
+
const retrievedPeer = manager.getPeer(tryAsStreamId(`${peerId}:${quicStreamId}`));
|
|
102
105
|
assert.strictEqual(retrievedPeer, peer);
|
|
103
106
|
});
|
|
104
107
|
it("should throw error for stream without kind byte", async () => {
|
|
@@ -48,7 +48,7 @@ export class SyncTask {
|
|
|
48
48
|
// server mode
|
|
49
49
|
streamManager.registerIncomingHandlers(up0Handler);
|
|
50
50
|
streamManager.registerIncomingHandlers(new ce128.ServerHandler(spec, (streamId, hash, direction, maxBlocks) => {
|
|
51
|
-
const peer =
|
|
51
|
+
const peer = streamManager.getPeer(streamId);
|
|
52
52
|
if (peer !== null) {
|
|
53
53
|
return syncTask.handleGetBlockSequence(peer, hash, direction, maxBlocks);
|
|
54
54
|
}
|
|
@@ -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;
|
|
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,
|
|
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
|
|
143
|
+
workerParams,
|
|
143
144
|
}))
|
|
144
145
|
: await spawnBlockGeneratorWorker(LmdbWorkerConfig.new({
|
|
145
146
|
...baseConfig,
|
|
146
|
-
workerParams
|
|
147
|
+
workerParams,
|
|
147
148
|
}));
|
|
148
149
|
// relay blocks from generator to importer
|
|
149
150
|
generator.setOnBlock(async (block) => {
|
|
@@ -28,7 +28,7 @@ export declare function startBlocksReader(options: BlocksImporterConfig, logger:
|
|
|
28
28
|
}>>>;
|
|
29
29
|
}> | null>;
|
|
30
30
|
ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
|
|
31
|
-
tickets: import("@typeberry/codec").Descriptor<readonly import("@typeberry/block
|
|
31
|
+
tickets: import("@typeberry/codec").Descriptor<readonly import("@typeberry/block").Ticket[] & import("@typeberry/utils").WithOpaque<"EpochLength">, import("@typeberry/codec").SequenceView<import("@typeberry/block").Ticket, import("@typeberry/codec").ViewOf<import("@typeberry/block").Ticket, {
|
|
32
32
|
id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
|
|
33
33
|
attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
|
|
34
34
|
}>>>;
|
|
@@ -39,24 +39,24 @@ export declare function startBlocksReader(options: BlocksImporterConfig, logger:
|
|
|
39
39
|
seal: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<96> & import("@typeberry/utils").WithOpaque<"BandersnatchVrfSignature">, import("@typeberry/bytes").Bytes<96>>;
|
|
40
40
|
}>>;
|
|
41
41
|
extrinsic: import("@typeberry/codec").Descriptor<import("@typeberry/block").Extrinsic, import("@typeberry/codec").ViewOf<import("@typeberry/block").Extrinsic, {
|
|
42
|
-
tickets: import("@typeberry/codec").Descriptor<readonly import("@typeberry/block
|
|
42
|
+
tickets: import("@typeberry/codec").Descriptor<readonly import("@typeberry/block").SignedTicket[] & import("@typeberry/utils").WithOpaque<"Size: [0..chainSpec.maxTicketsPerExtrinsic)">, import("@typeberry/codec").SequenceView<import("@typeberry/block").SignedTicket, import("@typeberry/codec").ViewOf<import("@typeberry/block").SignedTicket, {
|
|
43
43
|
attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
|
|
44
44
|
signature: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<784> & import("@typeberry/utils").WithOpaque<"BandersnatchRingSignature">, import("@typeberry/bytes").Bytes<784>>;
|
|
45
45
|
}>>>;
|
|
46
|
-
preimages: import("@typeberry/codec").Descriptor<import("@typeberry/block
|
|
46
|
+
preimages: import("@typeberry/codec").Descriptor<import("@typeberry/block").Preimage[], import("@typeberry/codec").SequenceView<import("@typeberry/block").Preimage, import("@typeberry/codec").ViewOf<import("@typeberry/block").Preimage, {
|
|
47
47
|
requester: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"ServiceId[u32]">, import("@typeberry/bytes").Bytes<4>>;
|
|
48
48
|
blob: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").BytesBlob, import("@typeberry/bytes").BytesBlob>;
|
|
49
49
|
}>>>;
|
|
50
|
-
guarantees: import("@typeberry/codec").Descriptor<readonly import("@typeberry/block
|
|
51
|
-
report: import("@typeberry/codec").Descriptor<import("@typeberry/block
|
|
52
|
-
workPackageSpec: import("@typeberry/codec").Descriptor<import("@typeberry/block
|
|
50
|
+
guarantees: import("@typeberry/codec").Descriptor<readonly import("@typeberry/block").ReportGuarantee[] & import("@typeberry/utils").WithOpaque<"[0..CoresCount)">, import("@typeberry/codec").SequenceView<import("@typeberry/block").ReportGuarantee, import("@typeberry/codec").ViewOf<import("@typeberry/block").ReportGuarantee, {
|
|
51
|
+
report: import("@typeberry/codec").Descriptor<import("@typeberry/block").WorkReport, import("@typeberry/codec").ViewOf<import("@typeberry/block").WorkReport, {
|
|
52
|
+
workPackageSpec: import("@typeberry/codec").Descriptor<import("@typeberry/block").WorkPackageSpec, import("@typeberry/codec").ViewOf<import("@typeberry/block").WorkPackageSpec, {
|
|
53
53
|
hash: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"WorkPackageHash">, import("@typeberry/bytes").Bytes<32>>;
|
|
54
54
|
length: import("@typeberry/codec").Descriptor<import("@typeberry/numbers").U32, import("@typeberry/bytes").Bytes<4>>;
|
|
55
55
|
erasureRoot: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
|
|
56
56
|
exportsRoot: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"ExportsRootHash">, import("@typeberry/bytes").Bytes<32>>;
|
|
57
57
|
exportsCount: import("@typeberry/codec").Descriptor<import("@typeberry/numbers").U16, import("@typeberry/bytes").Bytes<2>>;
|
|
58
58
|
}>>;
|
|
59
|
-
context: import("@typeberry/codec").Descriptor<import("@typeberry/block
|
|
59
|
+
context: import("@typeberry/codec").Descriptor<import("@typeberry/block").RefineContext, import("@typeberry/codec").ViewOf<import("@typeberry/block").RefineContext, {
|
|
60
60
|
anchor: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"HeaderHash">, import("@typeberry/bytes").Bytes<32>>;
|
|
61
61
|
stateRoot: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"StateRootHash">, import("@typeberry/bytes").Bytes<32>>;
|
|
62
62
|
beefyRoot: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"BeefyHash">, import("@typeberry/bytes").Bytes<32>>;
|
|
@@ -68,32 +68,32 @@ export declare function startBlocksReader(options: BlocksImporterConfig, logger:
|
|
|
68
68
|
authorizerHash: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"AuthorizerHash">, import("@typeberry/bytes").Bytes<32>>;
|
|
69
69
|
authorizationGasUsed: import("@typeberry/codec").Descriptor<bigint & import("@typeberry/numbers").WithBytesRepresentation<8> & import("@typeberry/utils").WithOpaque<"ServiceGas[u64]">, import("@typeberry/numbers").U64>;
|
|
70
70
|
authorizationOutput: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").BytesBlob, import("@typeberry/bytes").BytesBlob>;
|
|
71
|
-
segmentRootLookup: import("@typeberry/codec").Descriptor<readonly import("@typeberry/block
|
|
71
|
+
segmentRootLookup: import("@typeberry/codec").Descriptor<readonly import("@typeberry/block").WorkPackageInfo[], import("@typeberry/codec").SequenceView<import("@typeberry/block").WorkPackageInfo, import("@typeberry/codec").ViewOf<import("@typeberry/block").WorkPackageInfo, {
|
|
72
72
|
workPackageHash: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"WorkPackageHash">, import("@typeberry/bytes").Bytes<32>>;
|
|
73
73
|
segmentTreeRoot: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"ExportsRootHash">, import("@typeberry/bytes").Bytes<32>>;
|
|
74
74
|
}>>>;
|
|
75
|
-
results: import("@typeberry/codec").Descriptor<import("@typeberry/collections").FixedSizeArray<import("@typeberry/block
|
|
75
|
+
results: import("@typeberry/codec").Descriptor<import("@typeberry/collections").FixedSizeArray<import("@typeberry/block").WorkResult, import("@typeberry/numbers").U8>, import("@typeberry/codec").SequenceView<import("@typeberry/block").WorkResult, import("@typeberry/codec").ViewOf<import("@typeberry/block").WorkResult, {
|
|
76
76
|
serviceId: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"ServiceId[u32]">, import("@typeberry/bytes").Bytes<4>>;
|
|
77
77
|
codeHash: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"CodeHash">, import("@typeberry/bytes").Bytes<32>>;
|
|
78
78
|
payloadHash: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
|
|
79
79
|
gas: import("@typeberry/codec").Descriptor<bigint & import("@typeberry/numbers").WithBytesRepresentation<8> & import("@typeberry/utils").WithOpaque<"ServiceGas[u64]">, import("@typeberry/bytes").Bytes<8>>;
|
|
80
|
-
result: import("@typeberry/codec").Descriptor<import("@typeberry/block
|
|
81
|
-
kind: import("@typeberry/block
|
|
80
|
+
result: import("@typeberry/codec").Descriptor<import("@typeberry/block").WorkExecResult, {
|
|
81
|
+
kind: import("@typeberry/block").WorkExecResultKind.ok;
|
|
82
82
|
okBlob: import("@typeberry/bytes").BytesBlob;
|
|
83
83
|
} | {
|
|
84
|
-
kind: import("@typeberry/block
|
|
84
|
+
kind: import("@typeberry/block").WorkExecResultKind.outOfGas;
|
|
85
85
|
} | {
|
|
86
|
-
kind: import("@typeberry/block
|
|
86
|
+
kind: import("@typeberry/block").WorkExecResultKind.panic;
|
|
87
87
|
} | {
|
|
88
|
-
kind: import("@typeberry/block
|
|
88
|
+
kind: import("@typeberry/block").WorkExecResultKind.incorrectNumberOfExports;
|
|
89
89
|
} | {
|
|
90
|
-
kind: import("@typeberry/block
|
|
90
|
+
kind: import("@typeberry/block").WorkExecResultKind.digestTooBig;
|
|
91
91
|
} | {
|
|
92
|
-
kind: import("@typeberry/block
|
|
92
|
+
kind: import("@typeberry/block").WorkExecResultKind.badCode;
|
|
93
93
|
} | {
|
|
94
|
-
kind: import("@typeberry/block
|
|
94
|
+
kind: import("@typeberry/block").WorkExecResultKind.codeOversize;
|
|
95
95
|
}>;
|
|
96
|
-
load: import("@typeberry/codec").Descriptor<import("@typeberry/block
|
|
96
|
+
load: import("@typeberry/codec").Descriptor<import("@typeberry/block").WorkRefineLoad, import("@typeberry/codec").ViewOf<import("@typeberry/block").WorkRefineLoad, {
|
|
97
97
|
gasUsed: import("@typeberry/codec").Descriptor<bigint & import("@typeberry/numbers").WithBytesRepresentation<8> & import("@typeberry/utils").WithOpaque<"ServiceGas[u64]">, import("@typeberry/numbers").U64>;
|
|
98
98
|
importedSegments: import("@typeberry/codec").Descriptor<import("@typeberry/numbers").U32, import("@typeberry/numbers").U32>;
|
|
99
99
|
extrinsicCount: import("@typeberry/codec").Descriptor<import("@typeberry/numbers").U32, import("@typeberry/numbers").U32>;
|
|
@@ -103,33 +103,33 @@ export declare function startBlocksReader(options: BlocksImporterConfig, logger:
|
|
|
103
103
|
}>>>;
|
|
104
104
|
}>>;
|
|
105
105
|
slot: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"TimeSlot[u32]">, import("@typeberry/bytes").Bytes<4>>;
|
|
106
|
-
credentials: import("@typeberry/codec").Descriptor<(readonly import("@typeberry/block
|
|
106
|
+
credentials: import("@typeberry/codec").Descriptor<(readonly import("@typeberry/block").Credential[] & import("@typeberry/utils").WithOpaque<"2">) | (readonly import("@typeberry/block").Credential[] & import("@typeberry/utils").WithOpaque<"3">), import("@typeberry/codec").SequenceView<import("@typeberry/block").Credential, import("@typeberry/codec").ViewOf<import("@typeberry/block").Credential, {
|
|
107
107
|
validatorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
|
|
108
108
|
signature: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<64> & import("@typeberry/utils").WithOpaque<"Ed25519Signature">, import("@typeberry/bytes").Bytes<64>>;
|
|
109
109
|
}>>>;
|
|
110
110
|
}>>>;
|
|
111
|
-
assurances: import("@typeberry/codec").Descriptor<readonly import("@typeberry/block
|
|
111
|
+
assurances: import("@typeberry/codec").Descriptor<readonly import("@typeberry/block").AvailabilityAssurance[] & import("@typeberry/utils").WithOpaque<"[0 .. ValidatorsCount)">, import("@typeberry/codec").SequenceView<import("@typeberry/block").AvailabilityAssurance, import("@typeberry/codec").ViewOf<import("@typeberry/block").AvailabilityAssurance, {
|
|
112
112
|
anchor: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"HeaderHash">, import("@typeberry/bytes").Bytes<32>>;
|
|
113
113
|
bitfield: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").BitVec, import("@typeberry/bytes").BitVec>;
|
|
114
114
|
validatorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
|
|
115
115
|
signature: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<64> & import("@typeberry/utils").WithOpaque<"Ed25519Signature">, import("@typeberry/bytes").Bytes<64>>;
|
|
116
116
|
}>>>;
|
|
117
|
-
disputes: import("@typeberry/codec").Descriptor<import("@typeberry/block
|
|
118
|
-
verdicts: import("@typeberry/codec").Descriptor<import("@typeberry/block
|
|
117
|
+
disputes: import("@typeberry/codec").Descriptor<import("@typeberry/block").DisputesExtrinsic, import("@typeberry/codec").ViewOf<import("@typeberry/block").DisputesExtrinsic, {
|
|
118
|
+
verdicts: import("@typeberry/codec").Descriptor<import("@typeberry/block").Verdict[], import("@typeberry/codec").SequenceView<import("@typeberry/block").Verdict, import("@typeberry/codec").ViewOf<import("@typeberry/block").Verdict, {
|
|
119
119
|
workReportHash: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"WorkReportHash">, import("@typeberry/bytes").Bytes<32>>;
|
|
120
120
|
votesEpoch: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"Epoch">, import("@typeberry/bytes").Bytes<4>>;
|
|
121
|
-
votes: import("@typeberry/codec").Descriptor<readonly import("@typeberry/block
|
|
121
|
+
votes: import("@typeberry/codec").Descriptor<readonly import("@typeberry/block").Judgement[] & import("@typeberry/utils").WithOpaque<"Validators super majority">, import("@typeberry/codec").SequenceView<import("@typeberry/block").Judgement, import("@typeberry/codec").ViewOf<import("@typeberry/block").Judgement, {
|
|
122
122
|
isWorkReportValid: import("@typeberry/codec").Descriptor<boolean, boolean>;
|
|
123
123
|
index: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
|
|
124
124
|
signature: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<64> & import("@typeberry/utils").WithOpaque<"Ed25519Signature">, import("@typeberry/bytes").Bytes<64>>;
|
|
125
125
|
}>>>;
|
|
126
126
|
}>>>;
|
|
127
|
-
culprits: import("@typeberry/codec").Descriptor<import("@typeberry/block
|
|
127
|
+
culprits: import("@typeberry/codec").Descriptor<import("@typeberry/block").Culprit[], import("@typeberry/codec").SequenceView<import("@typeberry/block").Culprit, import("@typeberry/codec").ViewOf<import("@typeberry/block").Culprit, {
|
|
128
128
|
workReportHash: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"WorkReportHash">, import("@typeberry/bytes").Bytes<32>>;
|
|
129
129
|
key: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"Ed25519Key">, import("@typeberry/bytes").Bytes<32>>;
|
|
130
130
|
signature: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<64> & import("@typeberry/utils").WithOpaque<"Ed25519Signature">, import("@typeberry/bytes").Bytes<64>>;
|
|
131
131
|
}>>>;
|
|
132
|
-
faults: import("@typeberry/codec").Descriptor<import("@typeberry/block
|
|
132
|
+
faults: import("@typeberry/codec").Descriptor<import("@typeberry/block").Fault[], import("@typeberry/codec").SequenceView<import("@typeberry/block").Fault, import("@typeberry/codec").ViewOf<import("@typeberry/block").Fault, {
|
|
133
133
|
workReportHash: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"WorkReportHash">, import("@typeberry/bytes").Bytes<32>>;
|
|
134
134
|
wasConsideredValid: import("@typeberry/codec").Descriptor<boolean, boolean>;
|
|
135
135
|
key: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"Ed25519Key">, import("@typeberry/bytes").Bytes<32>>;
|