@typeberry/lib 0.5.7 → 0.5.8-dbdc34c

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 (88) hide show
  1. package/package.json +3 -1
  2. package/packages/core/utils/debug.d.ts.map +1 -1
  3. package/packages/core/utils/debug.js +14 -3
  4. package/packages/jam/block/block.d.ts +3 -3
  5. package/packages/jam/block/header.d.ts +6 -6
  6. package/packages/jam/block/test-helpers.d.ts +2 -2
  7. package/packages/jam/block/tickets.d.ts +5 -4
  8. package/packages/jam/block/tickets.d.ts.map +1 -1
  9. package/packages/jam/block/tickets.js +13 -6
  10. package/packages/jam/block-json/block.d.ts +2 -2
  11. package/packages/jam/block-json/block.js +1 -1
  12. package/packages/jam/block-json/common.d.ts +2 -1
  13. package/packages/jam/block-json/common.d.ts.map +1 -1
  14. package/packages/jam/block-json/common.js +2 -5
  15. package/packages/jam/block-json/extrinsic.js +1 -1
  16. package/packages/jam/block-json/header.d.ts +2 -1
  17. package/packages/jam/block-json/header.d.ts.map +1 -1
  18. package/packages/jam/block-json/header.js +34 -32
  19. package/packages/jam/block-json/tickets-extrinsic.d.ts +2 -1
  20. package/packages/jam/block-json/tickets-extrinsic.d.ts.map +1 -1
  21. package/packages/jam/block-json/tickets-extrinsic.js +7 -5
  22. package/packages/jam/fuzz-proto/v1/types.d.ts +1 -1
  23. package/packages/jam/jamnp-s/network.d.ts +2 -0
  24. package/packages/jam/jamnp-s/network.d.ts.map +1 -1
  25. package/packages/jam/jamnp-s/network.js +4 -0
  26. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +10 -3
  27. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts.map +1 -1
  28. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.js +12 -4
  29. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.test.js +4 -3
  30. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +1 -1
  31. package/packages/jam/jamnp-s/tasks/ticket-distribution.d.ts +34 -0
  32. package/packages/jam/jamnp-s/tasks/ticket-distribution.d.ts.map +1 -0
  33. package/packages/jam/jamnp-s/tasks/ticket-distribution.js +115 -0
  34. package/packages/jam/jamnp-s/tasks/ticket-distribution.test.d.ts +2 -0
  35. package/packages/jam/jamnp-s/tasks/ticket-distribution.test.d.ts.map +1 -0
  36. package/packages/jam/jamnp-s/tasks/ticket-distribution.test.js +220 -0
  37. package/packages/jam/node/main.d.ts.map +1 -1
  38. package/packages/jam/node/main.js +56 -26
  39. package/packages/jam/node/reader.d.ts +2 -2
  40. package/packages/jam/node/workers.d.ts +32 -25
  41. package/packages/jam/node/workers.d.ts.map +1 -1
  42. package/packages/jam/node/workers.js +16 -7
  43. package/packages/jam/safrole/bandersnatch-vrf.d.ts +3 -2
  44. package/packages/jam/safrole/bandersnatch-vrf.d.ts.map +1 -1
  45. package/packages/jam/safrole/bandersnatch-vrf.js +2 -2
  46. package/packages/jam/safrole/bandersnatch-vrf.test.js +3 -2
  47. package/packages/jam/safrole/safrole.test.js +80 -72
  48. package/packages/jam/state/safrole-data.d.ts +1 -1
  49. package/packages/jam/state/test.utils.js +1 -1
  50. package/packages/jam/state-json/dump.js +2 -2
  51. package/packages/jam/state-json/safrole.d.ts +2 -2
  52. package/packages/jam/state-json/safrole.d.ts.map +1 -1
  53. package/packages/jam/state-json/safrole.js +8 -6
  54. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +1 -1
  55. package/packages/jam/state-vectors/index.d.ts +8 -7
  56. package/packages/jam/state-vectors/index.d.ts.map +1 -1
  57. package/packages/jam/state-vectors/index.js +6 -4
  58. package/packages/jam/transition/hasher.test.js +1 -1
  59. package/packages/workers/api-node/config.d.ts +5 -1
  60. package/packages/workers/api-node/config.d.ts.map +1 -1
  61. package/packages/workers/api-node/config.js +9 -3
  62. package/packages/workers/api-node/port.d.ts +8 -0
  63. package/packages/workers/api-node/port.d.ts.map +1 -1
  64. package/packages/workers/api-node/port.js +10 -0
  65. package/packages/workers/block-authorship/bootstrap-main.js +10 -3
  66. package/packages/workers/block-authorship/main.d.ts +2 -1
  67. package/packages/workers/block-authorship/main.d.ts.map +1 -1
  68. package/packages/workers/block-authorship/main.js +31 -4
  69. package/packages/workers/block-authorship/protocol.d.ts +4 -4
  70. package/packages/workers/block-authorship/ticket-generator.d.ts +3 -2
  71. package/packages/workers/block-authorship/ticket-generator.d.ts.map +1 -1
  72. package/packages/workers/block-authorship/ticket-generator.js +2 -3
  73. package/packages/workers/block-authorship/ticket-generator.test.js +11 -10
  74. package/packages/workers/comms-authorship-network/index.d.ts +3 -0
  75. package/packages/workers/comms-authorship-network/index.d.ts.map +1 -0
  76. package/packages/workers/comms-authorship-network/index.js +2 -0
  77. package/packages/workers/comms-authorship-network/protocol.d.ts +27 -0
  78. package/packages/workers/comms-authorship-network/protocol.d.ts.map +1 -0
  79. package/packages/workers/comms-authorship-network/protocol.js +24 -0
  80. package/packages/workers/comms-authorship-network/tickets-message.d.ts +18 -0
  81. package/packages/workers/comms-authorship-network/tickets-message.d.ts.map +1 -0
  82. package/packages/workers/comms-authorship-network/tickets-message.js +19 -0
  83. package/packages/workers/importer/protocol.d.ts +8 -8
  84. package/packages/workers/jam-network/bootstrap-main.js +10 -3
  85. package/packages/workers/jam-network/main.d.ts +2 -1
  86. package/packages/workers/jam-network/main.d.ts.map +1 -1
  87. package/packages/workers/jam-network/main.js +8 -1
  88. package/packages/workers/jam-network/protocol.d.ts +10 -10
@@ -1,4 +1,5 @@
1
1
  import { isMainThread } from "node:worker_threads";
2
+ import { AUTHORSHIP_NETWORK_PORT } from "#@typeberry/comms-authorship-network";
2
3
  import { PvmBackend } from "#@typeberry/config";
3
4
  import { initWasm } from "#@typeberry/crypto";
4
5
  import { deriveBandersnatchSecretKey, deriveEd25519SecretKey, trivialSeed, } from "#@typeberry/crypto/key-derivation.js";
@@ -8,8 +9,8 @@ import { NetworkingConfig } from "#@typeberry/jam-network";
8
9
  import { Listener } from "#@typeberry/listener";
9
10
  import { tryAsU16, tryAsU32 } from "#@typeberry/numbers";
10
11
  import { CURRENT_SUITE, CURRENT_VERSION, Result, version } from "#@typeberry/utils";
11
- import { DirectWorkerConfig } from "#@typeberry/workers-api";
12
- import { InMemWorkerConfig, LmdbWorkerConfig } from "#@typeberry/workers-api-node";
12
+ import { DirectPort, DirectWorkerConfig } from "#@typeberry/workers-api";
13
+ import { InMemWorkerConfig, LmdbWorkerConfig, ThreadPort } from "#@typeberry/workers-api-node";
13
14
  import { getChainSpec, getDatabasePath, initializeDatabase, logger } from "./common.js";
14
15
  import { initializeExtensions } from "./extensions.js";
15
16
  import * as metrics from "./metrics.js";
@@ -36,8 +37,8 @@ export async function main(config, withRelPath, telemetry) {
36
37
  }),
37
38
  };
38
39
  const importerConfig = isInMemory
39
- ? { type: "inmem", config: InMemWorkerConfig.new(importerParams) }
40
- : { type: "lmdb", config: LmdbWorkerConfig.new(importerParams) };
40
+ ? { isInMemory, config: InMemWorkerConfig.new(importerParams) }
41
+ : { isInMemory, config: LmdbWorkerConfig.new(importerParams) };
41
42
  // Initialize the database with genesis state and block if there isn't one.
42
43
  logger.info `🛢️ Opening database at ${dbPath}`;
43
44
  const rootDb = importerConfig.config.openDatabase({ readonly: false });
@@ -50,7 +51,7 @@ export async function main(config, withRelPath, telemetry) {
50
51
  // Start block importer
51
52
  let importer;
52
53
  let closeImporter;
53
- if (importerConfig.type === "inmem") {
54
+ if (importerConfig.isInMemory) {
54
55
  ({ importer, finish: closeImporter } = await startImporterDirect(DirectWorkerConfig.new({
55
56
  ...importerConfig.config,
56
57
  blocksDb: rootDb.getBlocksDb(),
@@ -91,9 +92,24 @@ export async function main(config, withRelPath, telemetry) {
91
92
  },
92
93
  ],
93
94
  };
94
- const closeAuthorship = await initAuthorship(importer, config.isAuthoring, config.isFastForward, rootDb, baseConfig, authorshipKeys, isInMemory);
95
- // Networking initialization
96
- const closeNetwork = await initNetwork(importer, rootDb, baseConfig, genesisHeaderHash, config.network, bestHeader, isInMemory);
95
+ const { networkingParams, authorshipParams } = isInMemory
96
+ ? (() => {
97
+ const [tx, rx] = DirectPort.pair();
98
+ return {
99
+ networkingParams: { isInMemory, rootDb, authorshipPort: tx },
100
+ authorshipParams: { isInMemory, rootDb, networkingPort: rx },
101
+ };
102
+ })()
103
+ : (() => {
104
+ const [tx, rx] = ThreadPort.pair(chainSpec);
105
+ return {
106
+ networkingParams: { isInMemory, rootDb, authorshipPort: tx },
107
+ authorshipParams: { isInMemory, rootDb, networkingPort: rx },
108
+ };
109
+ })();
110
+ // Networking initialization (before authorship so we can relay tickets)
111
+ const { closeNetwork } = await initNetwork(importer, networkingParams, baseConfig, genesisHeaderHash, config.network, bestHeader);
112
+ const { closeAuthorship } = await initAuthorship(importer, config.isAuthoring, config.isFastForward, authorshipParams, baseConfig, authorshipKeys);
97
113
  const api = {
98
114
  chainSpec,
99
115
  async importBlock(block) {
@@ -110,14 +126,14 @@ export async function main(config, withRelPath, telemetry) {
110
126
  return importer.sendGetBestStateRootHash();
111
127
  },
112
128
  async close() {
113
- logger.log `[main] ☠️ Closing the importer`;
114
- await closeImporter();
115
- logger.log `[main] ☠️ Closing the extensions`;
116
- closeExtensions();
117
129
  logger.log `[main] ☠️ Closing the authorship module`;
118
130
  await closeAuthorship();
119
131
  logger.log `[main] ☠️ Closing the networking module`;
120
132
  await closeNetwork();
133
+ logger.log `[main] ☠️ Closing the importer`;
134
+ await closeImporter();
135
+ logger.log `[main] ☠️ Closing the extensions`;
136
+ closeExtensions();
121
137
  logger.log `[main] 🛢️ Closing the database`;
122
138
  await rootDb.close();
123
139
  logger.log `[main] 📳 Closing telemetry`;
@@ -127,35 +143,48 @@ export async function main(config, withRelPath, telemetry) {
127
143
  };
128
144
  return api;
129
145
  }
130
- const initAuthorship = async (importer, isAuthoring, isFastForward, rootDb, baseConfig, authorshipKeys, isInMemory) => {
146
+ const initAuthorship = async (importer, isAuthoring, isFastForward, params, baseConfig, authorshipKeys) => {
131
147
  if (!isAuthoring) {
132
148
  logger.log `✍️ Authorship off: disabled`;
133
- return () => Promise.resolve();
149
+ return {
150
+ closeAuthorship: () => {
151
+ params.networkingPort.close();
152
+ return Promise.resolve();
153
+ },
154
+ authorshipWorker: null,
155
+ };
134
156
  }
135
157
  logger.info `✍️ Starting block generator.`;
136
158
  const workerParams = { ...authorshipKeys, isFastForward };
137
- const { generator, finish } = isInMemory
159
+ const { generator, worker, finish } = params.isInMemory
138
160
  ? await startBlockGenerator(DirectWorkerConfig.new({
139
161
  ...baseConfig,
140
- blocksDb: rootDb.getBlocksDb(),
141
- statesDb: rootDb.getStatesDb(),
162
+ blocksDb: params.rootDb.getBlocksDb(),
163
+ statesDb: params.rootDb.getStatesDb(),
142
164
  workerParams,
143
- }))
165
+ }), params.networkingPort)
144
166
  : await spawnBlockGeneratorWorker(LmdbWorkerConfig.new({
145
167
  ...baseConfig,
146
168
  workerParams,
169
+ ports: new Map([[AUTHORSHIP_NETWORK_PORT, params.networkingPort]]),
147
170
  }));
148
171
  // relay blocks from generator to importer
149
172
  generator.setOnBlock(async (block) => {
150
173
  logger.log `✍️ Produced block at ${block.header.view().timeSlotIndex.materialize()}`;
151
174
  await importer.sendImportBlock(block);
152
175
  });
153
- return finish;
176
+ return { closeAuthorship: finish, authorshipWorker: worker };
154
177
  };
155
- const initNetwork = async (importer, rootDb, baseConfig, genesisHeaderHash, networkConfig, bestHeader, isInMemory) => {
178
+ const initNetwork = async (importer, params, baseConfig, genesisHeaderHash, networkConfig, bestHeader) => {
156
179
  if (networkConfig === null) {
157
180
  logger.log `🛜 Networking off: no config`;
158
- return () => Promise.resolve();
181
+ return {
182
+ closeNetwork: async () => {
183
+ params.authorshipPort.close();
184
+ },
185
+ networkApi: null,
186
+ networkWorker: null,
187
+ };
159
188
  }
160
189
  const { key, host, port, bootnodes } = networkConfig;
161
190
  const networkingConfig = NetworkingConfig.create({
@@ -165,16 +194,17 @@ const initNetwork = async (importer, rootDb, baseConfig, genesisHeaderHash, netw
165
194
  port: tryAsU16(port),
166
195
  bootnodes: bootnodes.map((node) => node.toString()),
167
196
  });
168
- const { network, finish } = isInMemory
197
+ const { network, worker, finish } = params.isInMemory
169
198
  ? await startNetwork(DirectWorkerConfig.new({
170
199
  ...baseConfig,
171
- blocksDb: rootDb.getBlocksDb(),
172
- statesDb: rootDb.getStatesDb(),
200
+ blocksDb: params.rootDb.getBlocksDb(),
201
+ statesDb: params.rootDb.getStatesDb(),
173
202
  workerParams: networkingConfig,
174
- }))
203
+ }), params.authorshipPort)
175
204
  : await spawnNetworkWorker(LmdbWorkerConfig.new({
176
205
  ...baseConfig,
177
206
  workerParams: networkingConfig,
207
+ ports: new Map([[AUTHORSHIP_NETWORK_PORT, params.authorshipPort]]),
178
208
  }));
179
209
  // relay blocks from networking to importer
180
210
  network.setOnBlocks(async (newBlocks) => {
@@ -186,5 +216,5 @@ const initNetwork = async (importer, rootDb, baseConfig, genesisHeaderHash, netw
186
216
  bestHeader.on((header) => {
187
217
  network.sendNewHeader(header);
188
218
  });
189
- return finish;
219
+ return { closeNetwork: finish, networkApi: network, networkWorker: worker };
190
220
  };
@@ -30,7 +30,7 @@ export declare function startBlocksReader(options: BlocksImporterConfig, logger:
30
30
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
31
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
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
33
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
34
34
  }>>>;
35
35
  }> | null>;
36
36
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -40,7 +40,7 @@ export declare function startBlocksReader(options: BlocksImporterConfig, logger:
40
40
  }>>;
41
41
  extrinsic: import("@typeberry/codec").Descriptor<import("@typeberry/block").Extrinsic, import("@typeberry/codec").ViewOf<import("@typeberry/block").Extrinsic, {
42
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
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
43
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
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
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, {
@@ -1,9 +1,10 @@
1
+ import type { Worker } from "node:worker_threads";
1
2
  import * as blockAuthorship from "#@typeberry/block-authorship";
2
3
  import type { BlocksDb, LeafDb, StatesDb } from "#@typeberry/database";
3
4
  import * as importer from "#@typeberry/importer";
4
5
  import * as jamNetwork from "#@typeberry/jam-network";
5
6
  import type { SerializedState } from "#@typeberry/state-merkleization";
6
- import { type DirectWorkerConfig } from "#@typeberry/workers-api";
7
+ import { type DirectPort, type DirectWorkerConfig } from "#@typeberry/workers-api";
7
8
  import { type LmdbWorkerConfig } from "#@typeberry/workers-api-node";
8
9
  export declare function spawnImporterWorker(config: LmdbWorkerConfig<importer.ImporterConfig>): Promise<{
9
10
  importer: import("@typeberry/workers-api").Tx<{
@@ -33,7 +34,7 @@ export declare function spawnImporterWorker(config: LmdbWorkerConfig<importer.Im
33
34
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
34
35
  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, {
35
36
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
36
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
37
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
37
38
  }>>>;
38
39
  }> | null>;
39
40
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -43,7 +44,7 @@ export declare function spawnImporterWorker(config: LmdbWorkerConfig<importer.Im
43
44
  }>>;
44
45
  extrinsic: import("@typeberry/codec").Descriptor<import("@typeberry/block").Extrinsic, import("@typeberry/codec").ViewOf<import("@typeberry/block").Extrinsic, {
45
46
  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, {
46
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
47
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
47
48
  signature: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<784> & import("@typeberry/utils").WithOpaque<"BandersnatchRingSignature">, import("@typeberry/bytes").Bytes<784>>;
48
49
  }>>>;
49
50
  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, {
@@ -157,7 +158,7 @@ export declare function spawnImporterWorker(config: LmdbWorkerConfig<importer.Im
157
158
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
158
159
  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, {
159
160
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
160
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
161
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
161
162
  }>>>;
162
163
  }> | null>;
163
164
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -167,7 +168,7 @@ export declare function spawnImporterWorker(config: LmdbWorkerConfig<importer.Im
167
168
  }>>;
168
169
  extrinsic: import("@typeberry/codec").Descriptor<import("@typeberry/block").Extrinsic, import("@typeberry/codec").ViewOf<import("@typeberry/block").Extrinsic, {
169
170
  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, {
170
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
171
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
171
172
  signature: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<784> & import("@typeberry/utils").WithOpaque<"BandersnatchRingSignature">, import("@typeberry/bytes").Bytes<784>>;
172
173
  }>>>;
173
174
  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, {
@@ -289,7 +290,7 @@ export declare function spawnImporterWorker(config: LmdbWorkerConfig<importer.Im
289
290
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
290
291
  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, {
291
292
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
292
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
293
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
293
294
  }>>>;
294
295
  }> | null>;
295
296
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -312,7 +313,7 @@ export declare function spawnImporterWorker(config: LmdbWorkerConfig<importer.Im
312
313
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
313
314
  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, {
314
315
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
315
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
316
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
316
317
  }>>>;
317
318
  }> | null>;
318
319
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -337,7 +338,7 @@ export declare function spawnImporterWorker(config: LmdbWorkerConfig<importer.Im
337
338
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
338
339
  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, {
339
340
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
340
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
341
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
341
342
  }>>>;
342
343
  }> | null>;
343
344
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -360,7 +361,7 @@ export declare function spawnImporterWorker(config: LmdbWorkerConfig<importer.Im
360
361
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
361
362
  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, {
362
363
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
363
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
364
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
364
365
  }>>>;
365
366
  }> | null>;
366
367
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -394,7 +395,7 @@ export declare function spawnNetworkWorker(config: LmdbWorkerConfig<jamNetwork.N
394
395
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
395
396
  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, {
396
397
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
397
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
398
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
398
399
  }>>>;
399
400
  }> | null>;
400
401
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -417,7 +418,7 @@ export declare function spawnNetworkWorker(config: LmdbWorkerConfig<jamNetwork.N
417
418
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
418
419
  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, {
419
420
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
420
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
421
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
421
422
  }>>>;
422
423
  }> | null>;
423
424
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -442,7 +443,7 @@ export declare function spawnNetworkWorker(config: LmdbWorkerConfig<jamNetwork.N
442
443
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
443
444
  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, {
444
445
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
445
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
446
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
446
447
  }>>>;
447
448
  }> | null>;
448
449
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -465,7 +466,7 @@ export declare function spawnNetworkWorker(config: LmdbWorkerConfig<jamNetwork.N
465
466
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
466
467
  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, {
467
468
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
468
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
469
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
469
470
  }>>>;
470
471
  }> | null>;
471
472
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -499,7 +500,7 @@ export declare function spawnNetworkWorker(config: LmdbWorkerConfig<jamNetwork.N
499
500
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
500
501
  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, {
501
502
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
502
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
503
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
503
504
  }>>>;
504
505
  }> | null>;
505
506
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -509,7 +510,7 @@ export declare function spawnNetworkWorker(config: LmdbWorkerConfig<jamNetwork.N
509
510
  }>>;
510
511
  extrinsic: import("@typeberry/codec").Descriptor<import("@typeberry/block").Extrinsic, import("@typeberry/codec").ViewOf<import("@typeberry/block").Extrinsic, {
511
512
  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, {
512
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
513
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
513
514
  signature: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<784> & import("@typeberry/utils").WithOpaque<"BandersnatchRingSignature">, import("@typeberry/bytes").Bytes<784>>;
514
515
  }>>>;
515
516
  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, {
@@ -623,7 +624,7 @@ export declare function spawnNetworkWorker(config: LmdbWorkerConfig<jamNetwork.N
623
624
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
624
625
  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, {
625
626
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
626
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
627
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
627
628
  }>>>;
628
629
  }> | null>;
629
630
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -633,7 +634,7 @@ export declare function spawnNetworkWorker(config: LmdbWorkerConfig<jamNetwork.N
633
634
  }>>;
634
635
  extrinsic: import("@typeberry/codec").Descriptor<import("@typeberry/block").Extrinsic, import("@typeberry/codec").ViewOf<import("@typeberry/block").Extrinsic, {
635
636
  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, {
636
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
637
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
637
638
  signature: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<784> & import("@typeberry/utils").WithOpaque<"BandersnatchRingSignature">, import("@typeberry/bytes").Bytes<784>>;
638
639
  }>>>;
639
640
  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, {
@@ -747,7 +748,7 @@ export declare function spawnNetworkWorker(config: LmdbWorkerConfig<jamNetwork.N
747
748
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
748
749
  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, {
749
750
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
750
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
751
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
751
752
  }>>>;
752
753
  }> | null>;
753
754
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -757,7 +758,7 @@ export declare function spawnNetworkWorker(config: LmdbWorkerConfig<jamNetwork.N
757
758
  }>>;
758
759
  extrinsic: import("@typeberry/codec").Descriptor<import("@typeberry/block").Extrinsic, import("@typeberry/codec").ViewOf<import("@typeberry/block").Extrinsic, {
759
760
  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, {
760
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
761
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
761
762
  signature: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<784> & import("@typeberry/utils").WithOpaque<"BandersnatchRingSignature">, import("@typeberry/bytes").Bytes<784>>;
762
763
  }>>>;
763
764
  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, {
@@ -858,9 +859,12 @@ export declare function spawnNetworkWorker(config: LmdbWorkerConfig<jamNetwork.N
858
859
  response: import("@typeberry/codec").Descriptor<void, void>;
859
860
  };
860
861
  }>;
862
+ worker: Worker;
861
863
  finish: () => Promise<void>;
862
864
  }>;
863
- export declare function startNetwork(config: DirectWorkerConfig<jamNetwork.NetworkingConfig>): ReturnType<typeof spawnNetworkWorker>;
865
+ export declare function startNetwork(config: DirectWorkerConfig<jamNetwork.NetworkingConfig>, authorshipPort: DirectPort): Promise<Omit<Awaited<ReturnType<typeof spawnNetworkWorker>>, "worker"> & {
866
+ worker: Worker | null;
867
+ }>;
864
868
  export declare function spawnBlockGeneratorWorker(config: LmdbWorkerConfig<blockAuthorship.BlockAuthorshipConfig>): Promise<{
865
869
  generator: import("@typeberry/workers-api").Tx<{
866
870
  finish: {
@@ -886,7 +890,7 @@ export declare function spawnBlockGeneratorWorker(config: LmdbWorkerConfig<block
886
890
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
887
891
  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, {
888
892
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
889
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
893
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
890
894
  }>>>;
891
895
  }> | null>;
892
896
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -896,7 +900,7 @@ export declare function spawnBlockGeneratorWorker(config: LmdbWorkerConfig<block
896
900
  }>>;
897
901
  extrinsic: import("@typeberry/codec").Descriptor<import("@typeberry/block").Extrinsic, import("@typeberry/codec").ViewOf<import("@typeberry/block").Extrinsic, {
898
902
  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, {
899
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
903
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
900
904
  signature: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<784> & import("@typeberry/utils").WithOpaque<"BandersnatchRingSignature">, import("@typeberry/bytes").Bytes<784>>;
901
905
  }>>>;
902
906
  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, {
@@ -1010,7 +1014,7 @@ export declare function spawnBlockGeneratorWorker(config: LmdbWorkerConfig<block
1010
1014
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
1011
1015
  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, {
1012
1016
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
1013
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
1017
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
1014
1018
  }>>>;
1015
1019
  }> | null>;
1016
1020
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -1020,7 +1024,7 @@ export declare function spawnBlockGeneratorWorker(config: LmdbWorkerConfig<block
1020
1024
  }>>;
1021
1025
  extrinsic: import("@typeberry/codec").Descriptor<import("@typeberry/block").Extrinsic, import("@typeberry/codec").ViewOf<import("@typeberry/block").Extrinsic, {
1022
1026
  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, {
1023
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
1027
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
1024
1028
  signature: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<784> & import("@typeberry/utils").WithOpaque<"BandersnatchRingSignature">, import("@typeberry/bytes").Bytes<784>>;
1025
1029
  }>>>;
1026
1030
  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, {
@@ -1121,7 +1125,10 @@ export declare function spawnBlockGeneratorWorker(config: LmdbWorkerConfig<block
1121
1125
  response: import("@typeberry/codec").Descriptor<void, void>;
1122
1126
  };
1123
1127
  }>;
1128
+ worker: Worker;
1124
1129
  finish: () => Promise<void>;
1125
1130
  }>;
1126
- export declare function startBlockGenerator(config: DirectWorkerConfig<blockAuthorship.BlockAuthorshipConfig>): ReturnType<typeof spawnBlockGeneratorWorker>;
1131
+ export declare function startBlockGenerator(config: DirectWorkerConfig<blockAuthorship.BlockAuthorshipConfig>, networkingPort: DirectPort): Promise<Omit<Awaited<ReturnType<typeof spawnBlockGeneratorWorker>>, "worker"> & {
1132
+ worker: Worker | null;
1133
+ }>;
1127
1134
  //# sourceMappingURL=workers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"workers.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/node/workers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workers.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/node/workers.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import * as blockAuthorship from "#@typeberry/block-authorship";
2
+ import { protocol } from "#@typeberry/comms-authorship-network";
2
3
  import * as importer from "#@typeberry/importer";
3
4
  import * as jamNetwork from "#@typeberry/jam-network";
4
- import { startSameThread } from "#@typeberry/workers-api";
5
+ import { Channel, startSameThread } from "#@typeberry/workers-api";
5
6
  import { spawnWorker } from "#@typeberry/workers-api-node";
6
7
  export async function spawnImporterWorker(config) {
7
8
  const { api, workerFinished } = spawnWorker(importer.protocol, importer.WORKER, config, importer.ImporterConfig.Codec);
@@ -27,9 +28,10 @@ export async function startImporterDirect(config) {
27
28
  };
28
29
  }
29
30
  export async function spawnNetworkWorker(config) {
30
- const { api, workerFinished } = spawnWorker(jamNetwork.protocol, jamNetwork.WORKER, config, jamNetwork.NetworkingConfig.Codec);
31
+ const { api, worker, workerFinished } = spawnWorker(jamNetwork.protocol, jamNetwork.WORKER, config, jamNetwork.NetworkingConfig.Codec);
31
32
  return {
32
33
  network: api,
34
+ worker,
33
35
  finish: async () => {
34
36
  await api.sendFinish();
35
37
  api.destroy();
@@ -37,22 +39,26 @@ export async function spawnNetworkWorker(config) {
37
39
  },
38
40
  };
39
41
  }
40
- export async function startNetwork(config) {
42
+ export async function startNetwork(config, authorshipPort) {
41
43
  const { api, internal } = startSameThread(jamNetwork.protocol);
42
- const networkFinish = jamNetwork.main(config, internal);
44
+ const authorshipComms = Channel.rx(protocol, authorshipPort);
45
+ const networkFinish = jamNetwork.main(config, internal, authorshipComms);
43
46
  return {
44
47
  network: api,
48
+ worker: null,
45
49
  finish: async () => {
46
50
  await api.sendFinish();
47
51
  api.destroy();
48
52
  await networkFinish;
53
+ authorshipComms.destroy();
49
54
  },
50
55
  };
51
56
  }
52
57
  export async function spawnBlockGeneratorWorker(config) {
53
- const { api, workerFinished } = spawnWorker(blockAuthorship.protocol, blockAuthorship.WORKER, config, blockAuthorship.BlockAuthorshipConfig.Codec);
58
+ const { api, worker, workerFinished } = spawnWorker(blockAuthorship.protocol, blockAuthorship.WORKER, config, blockAuthorship.BlockAuthorshipConfig.Codec);
54
59
  return {
55
60
  generator: api,
61
+ worker,
56
62
  finish: async () => {
57
63
  await api.sendFinish();
58
64
  api.destroy();
@@ -60,15 +66,18 @@ export async function spawnBlockGeneratorWorker(config) {
60
66
  },
61
67
  };
62
68
  }
63
- export async function startBlockGenerator(config) {
69
+ export async function startBlockGenerator(config, networkingPort) {
64
70
  const { api, internal } = startSameThread(blockAuthorship.protocol);
65
- const finish = blockAuthorship.main(config, internal);
71
+ const networkingComms = Channel.tx(protocol, networkingPort);
72
+ const finish = blockAuthorship.main(config, internal, networkingComms);
66
73
  return {
67
74
  generator: api,
75
+ worker: null,
68
76
  finish: async () => {
69
77
  await api.sendFinish();
70
78
  api.destroy();
71
79
  await finish;
80
+ networkingComms.destroy();
72
81
  },
73
82
  };
74
83
  }
@@ -1,6 +1,7 @@
1
- import type { EntropyHash, TicketAttempt } from "#@typeberry/block";
1
+ import type { EntropyHash } from "#@typeberry/block";
2
2
  import { SignedTicket } from "#@typeberry/block/tickets.js";
3
3
  import { BytesBlob } from "#@typeberry/bytes";
4
+ import type { ChainSpec } from "#@typeberry/config";
4
5
  import type { BandersnatchKey, BandersnatchSecretSeed } from "#@typeberry/crypto";
5
6
  import { type BandersnatchRingRoot, type BandersnatchVrfSignature } from "#@typeberry/crypto/bandersnatch.js";
6
7
  import { type OpaqueHash } from "#@typeberry/hash";
@@ -29,5 +30,5 @@ declare function getVrfOutputHash(bandersnatch: BandernsatchWasm, authorKey: Ban
29
30
  /**
30
31
  * Generates signed tickets for all attempts at once using batch ring VRF.
31
32
  */
32
- declare function generateTickets(bandersnatch: BandernsatchWasm, ringKeys: BandersnatchKey[], proverKeyIndex: number, key: BandersnatchSecretSeed, entropy: EntropyHash, ticketsPerValidator: TicketAttempt): Promise<Result<SignedTicket[], null>>;
33
+ declare function generateTickets(bandersnatch: BandernsatchWasm, ringKeys: BandersnatchKey[], proverKeyIndex: number, key: BandersnatchSecretSeed, entropy: EntropyHash, ticketsPerValidator: number, chainSpec: ChainSpec): Promise<Result<SignedTicket[], null>>;
33
34
  //# sourceMappingURL=bandersnatch-vrf.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bandersnatch-vrf.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/safrole/bandersnatch-vrf.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAsB,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAS,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC9B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAwB/D,QAAA,MAAM,SAAS;;;;;;;;CAQd,CAAC;AAKF,eAAe,SAAS,CAAC;AAEzB,iBAAe,iBAAiB,CAC9B,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,wBAAwB,EACnC,OAAO,EAAE,SAAS,EAClB,qBAAqB,EAAE,SAAS,EAChC,gBAAgB,EAAE,wBAAwB,EAC1C,oBAAoB,EAAE,SAAS,GAC9B,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC,CAkBnD;AAED,iBAAe,UAAU,CACvB,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,wBAAwB,EACnC,OAAO,EAAE,SAAS,EAClB,qBAAqB,EAAE,SAAS,GAC/B,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAapC;AAED,iBAAS,iBAAiB,CACxB,YAAY,EAAE,gBAAgB,EAC9B,UAAU,EAAE,eAAe,EAAE,GAC5B,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAmB7C;AAkBD,iBAAe,aAAa,CAC1B,YAAY,EAAE,gBAAgB,EAC9B,kBAAkB,EAAE,MAAM,EAC1B,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAE,EAAE,CAAC,CAqB3D;AAED,iBAAe,YAAY,CACzB,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,sBAAsB,EACjC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,MAAM,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC,CAQjD;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AAElE,iBAAe,gBAAgB,CAC7B,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,sBAAsB,EACjC,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAQtC;AAKD;;GAEG;AACH,iBAAe,eAAe,CAC5B,YAAY,EAAE,gBAAgB,EAC9B,QAAQ,EAAE,eAAe,EAAE,EAC3B,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,WAAW,EACpB,mBAAmB,EAAE,aAAa,GACjC,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,CAAC,CA0CvC"}
1
+ {"version":3,"file":"bandersnatch-vrf.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/safrole/bandersnatch-vrf.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAsB,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAS,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAIL,KAAK,oBAAoB,EACzB,KAAK,wBAAwB,EAC9B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAwB/D,QAAA,MAAM,SAAS;;;;;;;;CAQd,CAAC;AAKF,eAAe,SAAS,CAAC;AAEzB,iBAAe,iBAAiB,CAC9B,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,wBAAwB,EACnC,OAAO,EAAE,SAAS,EAClB,qBAAqB,EAAE,SAAS,EAChC,gBAAgB,EAAE,wBAAwB,EAC1C,oBAAoB,EAAE,SAAS,GAC9B,OAAO,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,EAAE,IAAI,CAAC,CAAC,CAkBnD;AAED,iBAAe,UAAU,CACvB,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,wBAAwB,EACnC,OAAO,EAAE,SAAS,EAClB,qBAAqB,EAAE,SAAS,GAC/B,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC,CAapC;AAED,iBAAS,iBAAiB,CACxB,YAAY,EAAE,gBAAgB,EAC9B,UAAU,EAAE,eAAe,EAAE,GAC5B,OAAO,CAAC,MAAM,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,CAmB7C;AAkBD,iBAAe,aAAa,CAC1B,YAAY,EAAE,gBAAgB,EAC9B,kBAAkB,EAAE,MAAM,EAC1B,SAAS,EAAE,oBAAoB,EAC/B,OAAO,EAAE,SAAS,YAAY,EAAE,EAChC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,WAAW,EAAE,WAAW,CAAA;CAAE,EAAE,CAAC,CAqB3D;AAED,iBAAe,YAAY,CACzB,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,sBAAsB,EACjC,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,SAAS,GACjB,OAAO,CAAC,MAAM,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC,CAQjD;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAAC;AAElE,iBAAe,gBAAgB,CAC7B,YAAY,EAAE,gBAAgB,EAC9B,SAAS,EAAE,sBAAsB,EACjC,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC,CAQtC;AAKD;;GAEG;AACH,iBAAe,eAAe,CAC5B,YAAY,EAAE,gBAAgB,EAC9B,QAAQ,EAAE,eAAe,EAAE,EAC3B,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,sBAAsB,EAC3B,OAAO,EAAE,WAAW,EACpB,mBAAmB,EAAE,MAAM,EAC3B,SAAS,EAAE,SAAS,GACnB,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,CAAC,CA0CvC"}
@@ -106,7 +106,7 @@ const GENERATE_RESULT_ENTRY_LENGTH = 1 + BANDERSNATCH_PROOF_BYTES;
106
106
  /**
107
107
  * Generates signed tickets for all attempts at once using batch ring VRF.
108
108
  */
109
- async function generateTickets(bandersnatch, ringKeys, proverKeyIndex, key, entropy, ticketsPerValidator) {
109
+ async function generateTickets(bandersnatch, ringKeys, proverKeyIndex, key, entropy, ticketsPerValidator, chainSpec) {
110
110
  // Build VRF inputs: JAM_TICKET_SEAL || entropy || attempt_byte for each attempt
111
111
  const vrfInputParts = [];
112
112
  for (let attempt = 0; attempt < ticketsPerValidator; attempt++) {
@@ -126,7 +126,7 @@ async function generateTickets(bandersnatch, ringKeys, proverKeyIndex, key, entr
126
126
  }
127
127
  const signature = Bytes.fromBlob(new Uint8Array(result.subarray(offset + 1, offset + GENERATE_RESULT_ENTRY_LENGTH)), BANDERSNATCH_PROOF_BYTES).asOpaque();
128
128
  tickets.push(SignedTicket.create({
129
- attempt: tryAsTicketAttempt(attempt),
129
+ attempt: tryAsTicketAttempt(attempt, chainSpec),
130
130
  signature,
131
131
  }));
132
132
  }