@typeberry/lib 0.5.9 → 0.5.10-44bf91a

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 (144) hide show
  1. package/package.json +1 -1
  2. package/packages/core/codec/encoder.d.ts +1 -1
  3. package/packages/core/codec/encoder.d.ts.map +1 -1
  4. package/packages/core/codec/encoder.js +3 -2
  5. package/packages/core/pvm-interface/pvm.d.ts +2 -0
  6. package/packages/core/pvm-interface/pvm.d.ts.map +1 -1
  7. package/packages/jam/block/block.d.ts +3 -3
  8. package/packages/jam/block/header.d.ts +6 -6
  9. package/packages/jam/block/test-helpers.d.ts +2 -2
  10. package/packages/jam/block/tickets.d.ts +5 -6
  11. package/packages/jam/block/tickets.d.ts.map +1 -1
  12. package/packages/jam/block/tickets.js +2 -10
  13. package/packages/jam/block/work-item-segment.d.ts +23 -6
  14. package/packages/jam/block/work-item-segment.d.ts.map +1 -1
  15. package/packages/jam/block/work-item-segment.js +24 -7
  16. package/packages/jam/block/work-item.d.ts +3 -3
  17. package/packages/jam/block/work-item.d.ts.map +1 -1
  18. package/packages/jam/block/work-item.js +7 -3
  19. package/packages/jam/block/work-package.d.ts +2 -2
  20. package/packages/jam/block/work-package.d.ts.map +1 -1
  21. package/packages/jam/block/work-package.js +2 -6
  22. package/packages/jam/block-json/block.d.ts +2 -2
  23. package/packages/jam/block-json/block.js +1 -1
  24. package/packages/jam/block-json/common.d.ts +1 -2
  25. package/packages/jam/block-json/common.d.ts.map +1 -1
  26. package/packages/jam/block-json/common.js +2 -2
  27. package/packages/jam/block-json/extrinsic.js +1 -1
  28. package/packages/jam/block-json/header.d.ts +1 -2
  29. package/packages/jam/block-json/header.d.ts.map +1 -1
  30. package/packages/jam/block-json/header.js +32 -34
  31. package/packages/jam/block-json/tickets-extrinsic.d.ts +1 -2
  32. package/packages/jam/block-json/tickets-extrinsic.d.ts.map +1 -1
  33. package/packages/jam/block-json/tickets-extrinsic.js +5 -7
  34. package/packages/jam/block-json/work-result.js +2 -2
  35. package/packages/jam/database/blocks.d.ts +3 -0
  36. package/packages/jam/database/blocks.d.ts.map +1 -1
  37. package/packages/jam/database/blocks.js +5 -0
  38. package/packages/jam/database-lmdb/blocks.d.ts +1 -0
  39. package/packages/jam/database-lmdb/blocks.d.ts.map +1 -1
  40. package/packages/jam/database-lmdb/blocks.js +5 -0
  41. package/packages/jam/database-lmdb/states.js +1 -1
  42. package/packages/jam/executor/pvm-executor.d.ts +2 -2
  43. package/packages/jam/executor/pvm-executor.d.ts.map +1 -1
  44. package/packages/jam/fuzz-proto/v1/types.d.ts +1 -1
  45. package/packages/jam/in-core/externalities/refine.d.ts +42 -11
  46. package/packages/jam/in-core/externalities/refine.d.ts.map +1 -1
  47. package/packages/jam/in-core/externalities/refine.js +95 -11
  48. package/packages/jam/in-core/externalities/refine.test.d.ts +2 -0
  49. package/packages/jam/in-core/externalities/refine.test.d.ts.map +1 -0
  50. package/packages/jam/in-core/externalities/refine.test.js +263 -0
  51. package/packages/jam/in-core/in-core.d.ts +1 -1
  52. package/packages/jam/in-core/in-core.d.ts.map +1 -1
  53. package/packages/jam/in-core/in-core.js +17 -10
  54. package/packages/jam/jam-host-calls/accumulate/bless.js +9 -9
  55. package/packages/jam/jam-host-calls/externalities/partial-state.d.ts +1 -1
  56. package/packages/jam/jam-host-calls/externalities/refine-externalities.d.ts +3 -1
  57. package/packages/jam/jam-host-calls/externalities/refine-externalities.d.ts.map +1 -1
  58. package/packages/jam/jam-host-calls/externalities/refine-externalities.test.d.ts +2 -0
  59. package/packages/jam/jam-host-calls/externalities/refine-externalities.test.d.ts.map +1 -1
  60. package/packages/jam/jam-host-calls/externalities/refine-externalities.test.js +5 -0
  61. package/packages/jam/jam-host-calls/general/fetch.d.ts +159 -98
  62. package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
  63. package/packages/jam/jam-host-calls/general/fetch.js +110 -16
  64. package/packages/jam/jam-host-calls/general/fetch.test.js +87 -56
  65. package/packages/jam/jam-host-calls/refine/export.d.ts +1 -1
  66. package/packages/jam/jam-host-calls/refine/export.js +1 -1
  67. package/packages/jam/jam-host-calls/refine/export.test.js +3 -0
  68. package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts +1 -1
  69. package/packages/jam/jam-host-calls/refine/historical-lookup.js +1 -1
  70. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +1 -1
  71. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.test.js +1 -1
  72. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +1 -1
  73. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +1 -1
  74. package/packages/jam/jamnp-s/tasks/ticket-distribution.test.js +1 -1
  75. package/packages/jam/node/main-fuzz.d.ts.map +1 -1
  76. package/packages/jam/node/main-fuzz.js +1 -0
  77. package/packages/jam/node/main-importer.d.ts +1 -0
  78. package/packages/jam/node/main-importer.d.ts.map +1 -1
  79. package/packages/jam/node/main-importer.js +1 -0
  80. package/packages/jam/node/main.d.ts.map +1 -1
  81. package/packages/jam/node/main.js +1 -0
  82. package/packages/jam/node/reader.d.ts +2 -2
  83. package/packages/jam/node/workers.d.ts +22 -22
  84. package/packages/jam/safrole/bandersnatch-vrf.d.ts +1 -2
  85. package/packages/jam/safrole/bandersnatch-vrf.d.ts.map +1 -1
  86. package/packages/jam/safrole/bandersnatch-vrf.js +2 -2
  87. package/packages/jam/safrole/bandersnatch-vrf.test.js +2 -3
  88. package/packages/jam/safrole/safrole.test.js +72 -80
  89. package/packages/jam/state/safrole-data.d.ts +1 -1
  90. package/packages/jam/state/test.utils.js +1 -1
  91. package/packages/jam/state-json/dump.js +2 -2
  92. package/packages/jam/state-json/safrole.d.ts +2 -2
  93. package/packages/jam/state-json/safrole.d.ts.map +1 -1
  94. package/packages/jam/state-json/safrole.js +4 -4
  95. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +1 -1
  96. package/packages/jam/state-vectors/index.d.ts +7 -8
  97. package/packages/jam/state-vectors/index.d.ts.map +1 -1
  98. package/packages/jam/state-vectors/index.js +4 -6
  99. package/packages/jam/transition/accumulate/accumulate.js +2 -2
  100. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.js +48 -39
  101. package/packages/jam/transition/externalities/accumulate-externalities.d.ts +2 -2
  102. package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
  103. package/packages/jam/transition/externalities/accumulate-externalities.js +20 -7
  104. package/packages/jam/transition/externalities/accumulate-externalities.test.js +74 -4
  105. package/packages/jam/transition/externalities/accumulate-fetch-externalities.d.ts +19 -0
  106. package/packages/jam/transition/externalities/accumulate-fetch-externalities.d.ts.map +1 -0
  107. package/packages/jam/transition/externalities/accumulate-fetch-externalities.js +45 -0
  108. package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.d.ts +2 -0
  109. package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.d.ts.map +1 -0
  110. package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.js +192 -0
  111. package/packages/jam/transition/externalities/fetch-externalities.d.ts +3 -39
  112. package/packages/jam/transition/externalities/fetch-externalities.d.ts.map +1 -1
  113. package/packages/jam/transition/externalities/fetch-externalities.js +2 -88
  114. package/packages/jam/transition/externalities/index.d.ts +2 -0
  115. package/packages/jam/transition/externalities/index.d.ts.map +1 -1
  116. package/packages/jam/transition/externalities/index.js +2 -0
  117. package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts +23 -0
  118. package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts.map +1 -0
  119. package/packages/jam/transition/externalities/refine-fetch-externalities.js +48 -0
  120. package/packages/jam/transition/externalities/refine-fetch-externalities.test.d.ts +2 -0
  121. package/packages/jam/transition/externalities/refine-fetch-externalities.test.d.ts.map +1 -0
  122. package/packages/jam/transition/externalities/refine-fetch-externalities.test.js +32 -0
  123. package/packages/jam/transition/hasher.test.js +1 -1
  124. package/packages/workers/block-authorship/main.d.ts.map +1 -1
  125. package/packages/workers/block-authorship/main.js +1 -1
  126. package/packages/workers/block-authorship/protocol.d.ts +4 -4
  127. package/packages/workers/block-authorship/ticket-generator.d.ts +1 -2
  128. package/packages/workers/block-authorship/ticket-generator.d.ts.map +1 -1
  129. package/packages/workers/block-authorship/ticket-generator.js +2 -2
  130. package/packages/workers/block-authorship/ticket-generator.test.js +10 -11
  131. package/packages/workers/comms-authorship-network/protocol.d.ts +1 -1
  132. package/packages/workers/comms-authorship-network/tickets-message.d.ts +1 -1
  133. package/packages/workers/importer/importer.d.ts +1 -0
  134. package/packages/workers/importer/importer.d.ts.map +1 -1
  135. package/packages/workers/importer/importer.js +7 -2
  136. package/packages/workers/importer/main.d.ts.map +1 -1
  137. package/packages/workers/importer/main.js +2 -0
  138. package/packages/workers/importer/protocol.d.ts +12 -9
  139. package/packages/workers/importer/protocol.d.ts.map +1 -1
  140. package/packages/workers/importer/protocol.js +8 -3
  141. package/packages/workers/jam-network/protocol.d.ts +10 -10
  142. package/packages/jam/transition/externalities/fetch-externalities.test.d.ts +0 -2
  143. package/packages/jam/transition/externalities/fetch-externalities.test.d.ts.map +0 -1
  144. package/packages/jam/transition/externalities/fetch-externalities.test.js +0 -254
@@ -34,7 +34,7 @@ export declare const protocol: import("@typeberry/workers-api").LousyProtocol<{
34
34
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
35
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, {
36
36
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
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
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[u8]">, import("@typeberry/numbers").U32>;
38
38
  }>>>;
39
39
  }> | null>;
40
40
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -44,7 +44,7 @@ export declare const protocol: import("@typeberry/workers-api").LousyProtocol<{
44
44
  }>>;
45
45
  extrinsic: import("@typeberry/codec").Descriptor<import("@typeberry/block").Extrinsic, import("@typeberry/codec").ViewOf<import("@typeberry/block").Extrinsic, {
46
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, {
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
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[u8]">, import("@typeberry/numbers").U32>;
48
48
  signature: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<784> & import("@typeberry/utils").WithOpaque<"BandersnatchRingSignature">, import("@typeberry/bytes").Bytes<784>>;
49
49
  }>>>;
50
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, {
@@ -158,7 +158,7 @@ export declare const protocol: import("@typeberry/workers-api").LousyProtocol<{
158
158
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
159
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, {
160
160
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
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
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[u8]">, import("@typeberry/numbers").U32>;
162
162
  }>>>;
163
163
  }> | null>;
164
164
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -168,7 +168,7 @@ export declare const protocol: import("@typeberry/workers-api").LousyProtocol<{
168
168
  }>>;
169
169
  extrinsic: import("@typeberry/codec").Descriptor<import("@typeberry/block").Extrinsic, import("@typeberry/codec").ViewOf<import("@typeberry/block").Extrinsic, {
170
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, {
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
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[u8]">, import("@typeberry/numbers").U32>;
172
172
  signature: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<784> & import("@typeberry/utils").WithOpaque<"BandersnatchRingSignature">, import("@typeberry/bytes").Bytes<784>>;
173
173
  }>>>;
174
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, {
@@ -290,7 +290,7 @@ export declare const protocol: import("@typeberry/workers-api").LousyProtocol<{
290
290
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
291
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, {
292
292
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
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
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[u8]">, import("@typeberry/numbers").U32>;
294
294
  }>>>;
295
295
  }> | null>;
296
296
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -313,7 +313,7 @@ export declare const protocol: import("@typeberry/workers-api").LousyProtocol<{
313
313
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
314
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, {
315
315
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
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
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[u8]">, import("@typeberry/numbers").U32>;
317
317
  }>>>;
318
318
  }> | null>;
319
319
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -338,7 +338,7 @@ export declare const protocol: import("@typeberry/workers-api").LousyProtocol<{
338
338
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
339
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, {
340
340
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
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
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[u8]">, import("@typeberry/numbers").U32>;
342
342
  }>>>;
343
343
  }> | null>;
344
344
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -361,7 +361,7 @@ export declare const protocol: import("@typeberry/workers-api").LousyProtocol<{
361
361
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
362
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, {
363
363
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
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
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[u8]">, import("@typeberry/numbers").U32>;
365
365
  }>>>;
366
366
  }> | null>;
367
367
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -379,11 +379,14 @@ export declare class ImporterConfig {
379
379
  readonly pvm: PvmBackend;
380
380
  /** Dummy finality depth. 0 means disabled, any positive value enables dummy finality with that depth. */
381
381
  readonly dummyFinalityDepth: U16;
382
+ /** Whether to prune block data (headers, extrinsics) alongside states on finality. */
383
+ readonly pruneBlocks: boolean;
382
384
  static Codec: import("@typeberry/codec").Descriptor<ImporterConfig, import("@typeberry/codec").ViewOf<ImporterConfig, {
383
385
  pvm: import("@typeberry/codec").Descriptor<PvmBackend, import("@typeberry/numbers").U8>;
384
386
  dummyFinalityDepth: import("@typeberry/codec").Descriptor<U16, import("@typeberry/bytes").Bytes<2>>;
387
+ pruneBlocks: import("@typeberry/codec").Descriptor<boolean, boolean>;
385
388
  }>>;
386
- static create({ pvm, dummyFinalityDepth }: CodecRecord<ImporterConfig>): ImporterConfig;
389
+ static create({ pvm, dummyFinalityDepth, pruneBlocks }: CodecRecord<ImporterConfig>): ImporterConfig;
387
390
  private constructor();
388
391
  }
389
392
  //# sourceMappingURL=protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../../../packages/workers/importer/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAgE,MAAM,kBAAkB,CAAC;AACvG,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,WAAW,EAAS,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAA+B,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,KAAK,GAAG,EAAkB,KAAK,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AA0CjF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBnB,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,QAAQ,CAAC,CAAC;AACzD,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC;AAE/C,qBAAa,cAAc;aAsBP,GAAG,EAAE,UAAU;IAC/B,yGAAyG;aACzF,kBAAkB,EAAE,GAAG;IAvBzC,MAAM,CAAC,KAAK;;;QAcT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,EAAE,WAAW,CAAC,cAAc,CAAC;IAItE,OAAO;CAKR"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../../../../packages/workers/importer/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAgE,MAAM,kBAAkB,CAAC;AACvG,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,WAAW,EAAS,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAa,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,EAA+B,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,KAAK,GAAG,EAAkB,KAAK,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AA0CjF,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyBnB,CAAC;AAEH,MAAM,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,QAAQ,CAAC,CAAC;AACzD,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC;AAE/C,qBAAa,cAAc;aAuBP,GAAG,EAAE,UAAU;IAC/B,yGAAyG;aACzF,kBAAkB,EAAE,GAAG;IACvC,sFAAsF;aACtE,WAAW,EAAE,OAAO;IA1BtC,MAAM,CAAC,KAAK;;;;QAeT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,kBAAkB,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,cAAc,CAAC;IAInF,OAAO;CAOR"}
@@ -71,6 +71,7 @@ export const protocol = createProtocol("importer", {
71
71
  export class ImporterConfig {
72
72
  pvm;
73
73
  dummyFinalityDepth;
74
+ pruneBlocks;
74
75
  static Codec = codec.Class(ImporterConfig, {
75
76
  pvm: codec.u8.convert((i) => tryAsU8(i), (o) => {
76
77
  if (o === PvmBackend.BuiltIn) {
@@ -82,14 +83,18 @@ export class ImporterConfig {
82
83
  throw new Error(`Invalid PvmBackend: ${o}`);
83
84
  }),
84
85
  dummyFinalityDepth: codec.u16,
86
+ pruneBlocks: codec.bool,
85
87
  });
86
- static create({ pvm, dummyFinalityDepth }) {
87
- return new ImporterConfig(pvm, dummyFinalityDepth);
88
+ static create({ pvm, dummyFinalityDepth, pruneBlocks }) {
89
+ return new ImporterConfig(pvm, dummyFinalityDepth, pruneBlocks);
88
90
  }
89
91
  constructor(pvm,
90
92
  /** Dummy finality depth. 0 means disabled, any positive value enables dummy finality with that depth. */
91
- dummyFinalityDepth = tryAsU16(0)) {
93
+ dummyFinalityDepth = tryAsU16(0),
94
+ /** Whether to prune block data (headers, extrinsics) alongside states on finality. */
95
+ pruneBlocks = false) {
92
96
  this.pvm = pvm;
93
97
  this.dummyFinalityDepth = dummyFinalityDepth;
98
+ this.pruneBlocks = pruneBlocks;
94
99
  }
95
100
  }
@@ -44,7 +44,7 @@ export declare const protocol: import("@typeberry/workers-api").LousyProtocol<{
44
44
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
45
45
  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, {
46
46
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
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
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[u8]">, import("@typeberry/numbers").U32>;
48
48
  }>>>;
49
49
  }> | null>;
50
50
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -67,7 +67,7 @@ export declare const protocol: import("@typeberry/workers-api").LousyProtocol<{
67
67
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
68
68
  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, {
69
69
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
70
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
70
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[u8]">, import("@typeberry/numbers").U32>;
71
71
  }>>>;
72
72
  }> | null>;
73
73
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -92,7 +92,7 @@ export declare const protocol: import("@typeberry/workers-api").LousyProtocol<{
92
92
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
93
93
  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, {
94
94
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
95
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
95
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[u8]">, import("@typeberry/numbers").U32>;
96
96
  }>>>;
97
97
  }> | null>;
98
98
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -115,7 +115,7 @@ export declare const protocol: import("@typeberry/workers-api").LousyProtocol<{
115
115
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
116
116
  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, {
117
117
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
118
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
118
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[u8]">, import("@typeberry/numbers").U32>;
119
119
  }>>>;
120
120
  }> | null>;
121
121
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -149,7 +149,7 @@ export declare const protocol: import("@typeberry/workers-api").LousyProtocol<{
149
149
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
150
150
  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, {
151
151
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
152
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
152
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[u8]">, import("@typeberry/numbers").U32>;
153
153
  }>>>;
154
154
  }> | null>;
155
155
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -159,7 +159,7 @@ export declare const protocol: import("@typeberry/workers-api").LousyProtocol<{
159
159
  }>>;
160
160
  extrinsic: import("@typeberry/codec").Descriptor<import("@typeberry/block").Extrinsic, import("@typeberry/codec").ViewOf<import("@typeberry/block").Extrinsic, {
161
161
  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, {
162
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
162
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[u8]">, import("@typeberry/numbers").U32>;
163
163
  signature: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<784> & import("@typeberry/utils").WithOpaque<"BandersnatchRingSignature">, import("@typeberry/bytes").Bytes<784>>;
164
164
  }>>>;
165
165
  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, {
@@ -273,7 +273,7 @@ export declare const protocol: import("@typeberry/workers-api").LousyProtocol<{
273
273
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
274
274
  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, {
275
275
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
276
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
276
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[u8]">, import("@typeberry/numbers").U32>;
277
277
  }>>>;
278
278
  }> | null>;
279
279
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -283,7 +283,7 @@ export declare const protocol: import("@typeberry/workers-api").LousyProtocol<{
283
283
  }>>;
284
284
  extrinsic: import("@typeberry/codec").Descriptor<import("@typeberry/block").Extrinsic, import("@typeberry/codec").ViewOf<import("@typeberry/block").Extrinsic, {
285
285
  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, {
286
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
286
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[u8]">, import("@typeberry/numbers").U32>;
287
287
  signature: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<784> & import("@typeberry/utils").WithOpaque<"BandersnatchRingSignature">, import("@typeberry/bytes").Bytes<784>>;
288
288
  }>>>;
289
289
  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, {
@@ -397,7 +397,7 @@ export declare const protocol: import("@typeberry/workers-api").LousyProtocol<{
397
397
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
398
398
  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, {
399
399
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
400
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
400
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[u8]">, import("@typeberry/numbers").U32>;
401
401
  }>>>;
402
402
  }> | null>;
403
403
  bandersnatchBlockAuthorIndex: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"ValidatorIndex[u16]">, import("@typeberry/bytes").Bytes<2>>;
@@ -407,7 +407,7 @@ export declare const protocol: import("@typeberry/workers-api").LousyProtocol<{
407
407
  }>>;
408
408
  extrinsic: import("@typeberry/codec").Descriptor<import("@typeberry/block").Extrinsic, import("@typeberry/codec").ViewOf<import("@typeberry/block").Extrinsic, {
409
409
  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, {
410
- attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U32>;
410
+ attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[u8]">, import("@typeberry/numbers").U32>;
411
411
  signature: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<784> & import("@typeberry/utils").WithOpaque<"BandersnatchRingSignature">, import("@typeberry/bytes").Bytes<784>>;
412
412
  }>>>;
413
413
  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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=fetch-externalities.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch-externalities.test.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/transition/externalities/fetch-externalities.test.ts"],"names":[],"mappings":""}
@@ -1,254 +0,0 @@
1
- import assert from "node:assert";
2
- import { describe, it } from "node:test";
3
- import { tryAsServiceGas, tryAsServiceId } from "#@typeberry/block";
4
- import { WorkExecResult } from "#@typeberry/block/work-result.js";
5
- import { Bytes, BytesBlob } from "#@typeberry/bytes";
6
- import { codec, Encoder } from "#@typeberry/codec";
7
- import { fullChainSpec, tinyChainSpec } from "#@typeberry/config";
8
- import { HASH_SIZE } from "#@typeberry/hash";
9
- import { TRANSFER_MEMO_BYTES } from "#@typeberry/jam-host-calls/externalities/partial-state.js";
10
- import { PendingTransfer } from "#@typeberry/jam-host-calls/externalities/pending-transfer.js";
11
- import { tryAsU64 } from "#@typeberry/numbers";
12
- import { Operand } from "../accumulate/operand.js";
13
- import { FetchExternalities, TRANSFER_OR_OPERAND, TransferOperandKind, } from "./fetch-externalities.js";
14
- describe("fetch-externalities", () => {
15
- const prepareOperands = (length) => {
16
- const operands = [];
17
- for (let i = 0; i < length; i++) {
18
- operands.push(Operand.create({
19
- authorizationOutput: BytesBlob.empty(),
20
- authorizerHash: Bytes.fill(HASH_SIZE, i + 1).asOpaque(),
21
- exportsRoot: Bytes.fill(HASH_SIZE, i + 2).asOpaque(),
22
- hash: Bytes.fill(HASH_SIZE, i + 4).asOpaque(),
23
- payloadHash: Bytes.fill(HASH_SIZE, i + 5).asOpaque(),
24
- result: WorkExecResult.ok(BytesBlob.empty()),
25
- gas: tryAsServiceGas(1_000),
26
- }));
27
- }
28
- return operands;
29
- };
30
- const prepareTransfers = (length) => {
31
- const transfers = [];
32
- for (let i = 0; i < length; i++) {
33
- transfers.push(PendingTransfer.create({
34
- amount: tryAsU64(1000),
35
- source: tryAsServiceId(i),
36
- destination: tryAsServiceId(i + 1),
37
- gas: tryAsServiceGas(10),
38
- memo: Bytes.fill(TRANSFER_MEMO_BYTES, 0),
39
- }));
40
- }
41
- return transfers;
42
- };
43
- // allTransfersAndOperands: transfers first, then operands
44
- const toAllTransfersAndOperands = (operands, transfers) => {
45
- return [
46
- ...transfers.map((t) => ({ kind: TransferOperandKind.TRANSFER, value: t })),
47
- ...operands.map((o) => ({ kind: TransferOperandKind.OPERAND, value: o })),
48
- ];
49
- };
50
- // oneTransferOrOperand: operands first (index < operands.length), then transfers
51
- const toOneTransferOrOperandAt = (operands, transfers, index) => {
52
- if (index >= operands.length + transfers.length) {
53
- return null;
54
- }
55
- if (index < operands.length) {
56
- return { kind: TransferOperandKind.OPERAND, value: operands[index] };
57
- }
58
- return { kind: TransferOperandKind.TRANSFER, value: transfers[index - operands.length] };
59
- };
60
- const encodeOneTransferOrOperand = (item, chainSpec) => {
61
- if (item === null) {
62
- return null;
63
- }
64
- return Encoder.encodeObject(TRANSFER_OR_OPERAND, item, chainSpec);
65
- };
66
- const prepareAccumulateData = ({ chainSpec, operands, entropy, transfers, }) => {
67
- const defaultChainSpec = tinyChainSpec;
68
- const defaultEntropy = Bytes.zero(HASH_SIZE).asOpaque();
69
- const defaultOperands = [];
70
- const defaultTransfers = [];
71
- const fetchData = {
72
- entropy: entropy ?? defaultEntropy,
73
- operands: operands ?? defaultOperands,
74
- transfers: transfers ?? defaultTransfers,
75
- };
76
- return FetchExternalities.createForAccumulate(fetchData, chainSpec ?? defaultChainSpec);
77
- };
78
- const prepareRefineData = ({ chainSpec } = {}) => {
79
- const defaultChainSpec = tinyChainSpec;
80
- return FetchExternalities.createForRefine({ entropy: undefined }, chainSpec ?? defaultChainSpec);
81
- };
82
- describe("Accumulate", () => {
83
- it("should return different constants for different chain specs", () => {
84
- const tinyFetchExternalities = prepareAccumulateData({ chainSpec: tinyChainSpec });
85
- const fullFetchExternalities = prepareAccumulateData({ chainSpec: fullChainSpec });
86
- const tinyConstants = tinyFetchExternalities.constants();
87
- const fullConstants = fullFetchExternalities.constants();
88
- assert.notStrictEqual(tinyConstants.length, 0);
89
- assert.notStrictEqual(fullConstants.length, 0);
90
- assert.notDeepStrictEqual(tinyConstants, fullConstants);
91
- });
92
- it("should return entropy hash", () => {
93
- const expectedEntropy = Bytes.fill(HASH_SIZE, 5).asOpaque();
94
- const fetchExternalities = prepareAccumulateData({ entropy: expectedEntropy });
95
- const entropy = fetchExternalities.entropy();
96
- assert.deepStrictEqual(entropy, expectedEntropy);
97
- });
98
- it("should return all transfers and operands", () => {
99
- const operands = prepareOperands(3);
100
- const transfers = prepareTransfers(2);
101
- const chainSpec = tinyChainSpec;
102
- const expected = toAllTransfersAndOperands(operands, transfers);
103
- const encodedExpected = Encoder.encodeObject(codec.sequenceVarLen(TRANSFER_OR_OPERAND), expected, chainSpec);
104
- const fetchExternalities = prepareAccumulateData({ operands, transfers, chainSpec });
105
- const result = fetchExternalities.allTransfersAndOperands();
106
- assert.deepStrictEqual(result, encodedExpected);
107
- });
108
- it("should return empty encoded sequence when no transfers and no operands", () => {
109
- const chainSpec = tinyChainSpec;
110
- const encodedExpected = Encoder.encodeObject(codec.sequenceVarLen(TRANSFER_OR_OPERAND), [], chainSpec);
111
- const fetchExternalities = prepareAccumulateData({ operands: [], transfers: [], chainSpec });
112
- const result = fetchExternalities.allTransfersAndOperands();
113
- assert.deepStrictEqual(result, encodedExpected);
114
- });
115
- it("should return one operand by index", () => {
116
- const operands = prepareOperands(3);
117
- const transfers = prepareTransfers(2);
118
- const chainSpec = tinyChainSpec;
119
- const encodedExpected = encodeOneTransferOrOperand(toOneTransferOrOperandAt(operands, transfers, 0), chainSpec);
120
- const fetchExternalities = prepareAccumulateData({ operands, transfers, chainSpec });
121
- // Operands come first (indices 0..2), then transfers (indices 3..4)
122
- const result = fetchExternalities.oneTransferOrOperand(tryAsU64(0));
123
- assert.deepStrictEqual(result, encodedExpected);
124
- });
125
- it("should return one transfer by index", () => {
126
- const operands = prepareOperands(3);
127
- const transfers = prepareTransfers(2);
128
- const chainSpec = tinyChainSpec;
129
- const encodedExpected = encodeOneTransferOrOperand(toOneTransferOrOperandAt(operands, transfers, 3), chainSpec);
130
- const fetchExternalities = prepareAccumulateData({ operands, transfers, chainSpec });
131
- // Transfers start after operands, so index 3 is the first transfer
132
- const result = fetchExternalities.oneTransferOrOperand(tryAsU64(3));
133
- assert.deepStrictEqual(result, encodedExpected);
134
- });
135
- it("should return null when index is out of bounds", () => {
136
- const operands = prepareOperands(3);
137
- const transfers = prepareTransfers(2);
138
- const chainSpec = tinyChainSpec;
139
- const fetchExternalities = prepareAccumulateData({ operands, transfers, chainSpec });
140
- // Total items: 3 operands + 2 transfers = 5, so index 5 is out of bounds
141
- const result = fetchExternalities.oneTransferOrOperand(tryAsU64(5));
142
- assert.strictEqual(result, null);
143
- });
144
- it("should return null when index is far out of bounds", () => {
145
- const operands = prepareOperands(3);
146
- const transfers = prepareTransfers(2);
147
- const chainSpec = tinyChainSpec;
148
- const fetchExternalities = prepareAccumulateData({ operands, transfers, chainSpec });
149
- const result = fetchExternalities.oneTransferOrOperand(tryAsU64(153));
150
- assert.strictEqual(result, null);
151
- });
152
- it("should have consistent encoding between all and one", () => {
153
- const operands = prepareOperands(2);
154
- const transfers = prepareTransfers(2);
155
- const chainSpec = tinyChainSpec;
156
- const allItems = toAllTransfersAndOperands(operands, transfers);
157
- const encodedAll = Encoder.encodeObject(codec.sequenceVarLen(TRANSFER_OR_OPERAND), allItems, chainSpec);
158
- const fetchExternalities = prepareAccumulateData({ operands, transfers, chainSpec });
159
- const all = fetchExternalities.allTransfersAndOperands();
160
- assert.deepStrictEqual(all, encodedAll);
161
- for (let i = 0; i < operands.length + transfers.length; i++) {
162
- const one = fetchExternalities.oneTransferOrOperand(tryAsU64(i));
163
- const encodedOne = encodeOneTransferOrOperand(toOneTransferOrOperandAt(operands, transfers, i), chainSpec);
164
- assert.deepStrictEqual(one, encodedOne, `Mismatch at index ${i}`);
165
- }
166
- const outOfRange = fetchExternalities.oneTransferOrOperand(tryAsU64(operands.length + transfers.length));
167
- assert.strictEqual(outOfRange, null);
168
- });
169
- it("should handle only operands without transfers", () => {
170
- const operands = prepareOperands(5);
171
- const chainSpec = tinyChainSpec;
172
- const allItems = toAllTransfersAndOperands(operands, []);
173
- const encodedAll = Encoder.encodeObject(codec.sequenceVarLen(TRANSFER_OR_OPERAND), allItems, chainSpec);
174
- const fetchExternalities = prepareAccumulateData({ operands, transfers: [], chainSpec });
175
- const result = fetchExternalities.allTransfersAndOperands();
176
- assert.deepStrictEqual(result, encodedAll);
177
- for (let i = 0; i < operands.length; i++) {
178
- const one = fetchExternalities.oneTransferOrOperand(tryAsU64(i));
179
- const encodedOne = encodeOneTransferOrOperand(toOneTransferOrOperandAt(operands, [], i), chainSpec);
180
- assert.deepStrictEqual(one, encodedOne, `Mismatch at operand index ${i}`);
181
- }
182
- const outOfRange = fetchExternalities.oneTransferOrOperand(tryAsU64(operands.length));
183
- assert.strictEqual(outOfRange, null);
184
- });
185
- it("should handle only transfers without operands", () => {
186
- const transfers = prepareTransfers(5);
187
- const chainSpec = tinyChainSpec;
188
- const allItems = toAllTransfersAndOperands([], transfers);
189
- const encodedAll = Encoder.encodeObject(codec.sequenceVarLen(TRANSFER_OR_OPERAND), allItems, chainSpec);
190
- const fetchExternalities = prepareAccumulateData({ operands: [], transfers, chainSpec });
191
- const result = fetchExternalities.allTransfersAndOperands();
192
- assert.deepStrictEqual(result, encodedAll);
193
- for (let i = 0; i < transfers.length; i++) {
194
- const one = fetchExternalities.oneTransferOrOperand(tryAsU64(i));
195
- const encodedOne = encodeOneTransferOrOperand(toOneTransferOrOperandAt([], transfers, i), chainSpec);
196
- assert.deepStrictEqual(one, encodedOne, `Mismatch at transfer index ${i}`);
197
- }
198
- const outOfRange = fetchExternalities.oneTransferOrOperand(tryAsU64(transfers.length));
199
- assert.strictEqual(outOfRange, null);
200
- });
201
- it("should return null for unimplemented methods", () => {
202
- const fetchExternalities = prepareAccumulateData({});
203
- assert.strictEqual(fetchExternalities.authorizerTrace(), null);
204
- assert.strictEqual(fetchExternalities.workItemExtrinsic(null, tryAsU64(0)), null);
205
- assert.strictEqual(fetchExternalities.workItemImport(null, tryAsU64(0)), null);
206
- assert.strictEqual(fetchExternalities.workPackage(), null);
207
- assert.strictEqual(fetchExternalities.authorizer(), null);
208
- assert.strictEqual(fetchExternalities.authorizationToken(), null);
209
- assert.strictEqual(fetchExternalities.refineContext(), null);
210
- assert.strictEqual(fetchExternalities.allWorkItems(), null);
211
- assert.strictEqual(fetchExternalities.oneWorkItem(tryAsU64(0)), null);
212
- assert.strictEqual(fetchExternalities.workItemPayload(tryAsU64(0)), null);
213
- });
214
- });
215
- describe("Refine", () => {
216
- it("should return different constants for different chain specs", () => {
217
- const tinyFetchExternalities = prepareRefineData({ chainSpec: tinyChainSpec });
218
- const fullFetchExternalities = prepareRefineData({ chainSpec: fullChainSpec });
219
- const tinyConstants = tinyFetchExternalities.constants();
220
- const fullConstants = fullFetchExternalities.constants();
221
- assert.notStrictEqual(tinyConstants.length, 0);
222
- assert.notStrictEqual(fullConstants.length, 0);
223
- assert.notDeepStrictEqual(tinyConstants, fullConstants);
224
- });
225
- it("should return null entropy", () => {
226
- const fetchExternalities = prepareRefineData();
227
- const entropy = fetchExternalities.entropy();
228
- assert.strictEqual(entropy, null);
229
- });
230
- it("should return null for allTransfersAndOperands", () => {
231
- const fetchExternalities = prepareRefineData();
232
- const result = fetchExternalities.allTransfersAndOperands();
233
- assert.strictEqual(result, null);
234
- });
235
- it("should return null for oneTransferOrOperand", () => {
236
- const fetchExternalities = prepareRefineData();
237
- const result = fetchExternalities.oneTransferOrOperand(tryAsU64(0));
238
- assert.strictEqual(result, null);
239
- });
240
- it("should return null for unimplemented methods", () => {
241
- const fetchExternalities = prepareRefineData();
242
- assert.strictEqual(fetchExternalities.authorizerTrace(), null);
243
- assert.strictEqual(fetchExternalities.workItemExtrinsic(null, tryAsU64(0)), null);
244
- assert.strictEqual(fetchExternalities.workItemImport(null, tryAsU64(0)), null);
245
- assert.strictEqual(fetchExternalities.workPackage(), null);
246
- assert.strictEqual(fetchExternalities.authorizer(), null);
247
- assert.strictEqual(fetchExternalities.authorizationToken(), null);
248
- assert.strictEqual(fetchExternalities.refineContext(), null);
249
- assert.strictEqual(fetchExternalities.allWorkItems(), null);
250
- assert.strictEqual(fetchExternalities.oneWorkItem(tryAsU64(0)), null);
251
- assert.strictEqual(fetchExternalities.workItemPayload(tryAsU64(0)), null);
252
- });
253
- });
254
- });