@typeberry/lib 0.5.3 → 0.5.4-472e282

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. package/package.json +8 -4
  2. package/packages/core/hash/hash.d.ts.map +1 -1
  3. package/packages/core/hash/hash.js +1 -0
  4. package/packages/core/networking/certificate.d.ts.map +1 -1
  5. package/packages/core/networking/certificate.js +1 -0
  6. package/packages/core/networking/package.json +1 -1
  7. package/packages/core/networking/setup.d.ts.map +1 -1
  8. package/packages/core/networking/setup.js +16 -12
  9. package/packages/core/numbers/index.d.ts +4 -0
  10. package/packages/core/numbers/index.d.ts.map +1 -1
  11. package/packages/core/numbers/index.js +4 -4
  12. package/packages/core/pvm-host-calls/host-calls-executor.d.ts +23 -17
  13. package/packages/core/pvm-host-calls/host-calls-executor.d.ts.map +1 -1
  14. package/packages/core/pvm-host-calls/host-calls-executor.js +23 -31
  15. package/packages/core/pvm-interpreter/ops/math-consts.d.ts +2 -3
  16. package/packages/core/pvm-interpreter/ops/math-consts.d.ts.map +1 -1
  17. package/packages/core/pvm-interpreter/ops/math-consts.js +2 -3
  18. package/packages/core/pvm-interpreter/ops/math-ops.js +3 -3
  19. package/packages/core/pvm-interpreter/ops/math-utils.js +13 -13
  20. package/packages/core/pvm-interpreter/ops/math-utils.test.js +17 -16
  21. package/packages/core/telemetry/package.json +1 -1
  22. package/packages/core/utils/compatibility.d.ts +0 -1
  23. package/packages/core/utils/compatibility.d.ts.map +1 -1
  24. package/packages/core/utils/compatibility.js +1 -2
  25. package/packages/core/utils/compatibility.test.js +6 -10
  26. package/packages/extensions/ipc/jamnp/handler.d.ts +5 -4
  27. package/packages/extensions/ipc/jamnp/handler.d.ts.map +1 -1
  28. package/packages/extensions/ipc/jamnp/handler.js +59 -34
  29. package/packages/extensions/ipc/jamnp/stream.d.ts +6 -4
  30. package/packages/extensions/ipc/jamnp/stream.d.ts.map +1 -1
  31. package/packages/jam/block/index.d.ts +11 -11
  32. package/packages/jam/block/index.d.ts.map +1 -1
  33. package/packages/jam/block/index.js +11 -11
  34. package/packages/jam/block/work-item.d.ts +13 -4
  35. package/packages/jam/block/work-item.d.ts.map +1 -1
  36. package/packages/jam/block/work-package.d.ts +3 -1
  37. package/packages/jam/block/work-package.d.ts.map +1 -1
  38. package/packages/jam/block/work-package.js +6 -2
  39. package/packages/jam/block/work-result.d.ts +3 -5
  40. package/packages/jam/block/work-result.d.ts.map +1 -1
  41. package/packages/jam/block/work-result.js +6 -0
  42. package/packages/jam/block-json/block.d.ts +125 -0
  43. package/packages/jam/block-json/block.d.ts.map +1 -1
  44. package/packages/jam/block-json/block.js +9 -2
  45. package/packages/jam/block-json/work-result.d.ts.map +1 -1
  46. package/packages/jam/block-json/work-result.js +6 -6
  47. package/packages/jam/database-lmdb/states.test.js +2 -3
  48. package/packages/jam/executor/index.d.ts +4 -0
  49. package/packages/jam/executor/index.d.ts.map +1 -0
  50. package/packages/jam/executor/index.js +2 -0
  51. package/packages/jam/{transition/accumulate → executor}/pvm-executor.d.ts +19 -16
  52. package/packages/jam/executor/pvm-executor.d.ts.map +1 -0
  53. package/packages/jam/{transition/accumulate → executor}/pvm-executor.js +46 -3
  54. package/packages/jam/fuzz-proto/v1/handler.d.ts +1 -1
  55. package/packages/jam/fuzz-proto/v1/handler.d.ts.map +1 -1
  56. package/packages/jam/fuzz-proto/v1/handler.js +43 -19
  57. package/packages/jam/fuzz-proto/v1/types.d.ts +1 -1
  58. package/packages/jam/in-core/externalities/refine.d.ts +24 -0
  59. package/packages/jam/in-core/externalities/refine.d.ts.map +1 -0
  60. package/packages/jam/in-core/externalities/refine.js +36 -0
  61. package/packages/jam/in-core/in-core.d.ts +60 -0
  62. package/packages/jam/in-core/in-core.d.ts.map +1 -0
  63. package/packages/jam/in-core/in-core.js +294 -0
  64. package/packages/jam/in-core/in-core.test.d.ts +2 -0
  65. package/packages/jam/in-core/in-core.test.d.ts.map +1 -0
  66. package/packages/jam/in-core/in-core.test.js +81 -0
  67. package/packages/jam/in-core/index.d.ts +2 -0
  68. package/packages/jam/in-core/index.d.ts.map +1 -0
  69. package/packages/jam/in-core/index.js +1 -0
  70. package/packages/jam/jam-host-calls/accumulate/bless.d.ts.map +1 -1
  71. package/packages/jam/jam-host-calls/accumulate/bless.js +6 -10
  72. package/packages/jam/jam-host-calls/accumulate/bless.test.js +32 -73
  73. package/packages/jam/jam-host-calls/accumulate/new.d.ts.map +1 -1
  74. package/packages/jam/jam-host-calls/accumulate/new.js +2 -4
  75. package/packages/jam/jam-host-calls/accumulate/new.test.js +4 -5
  76. package/packages/jam/jam-host-calls/general/fetch.d.ts +1 -57
  77. package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
  78. package/packages/jam/jam-host-calls/general/fetch.js +6 -29
  79. package/packages/jam/jam-host-calls/general/fetch.test.js +2 -58
  80. package/packages/jam/jamnp-s/peers.d.ts.map +1 -1
  81. package/packages/jam/jamnp-s/peers.js +10 -0
  82. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts +1 -1
  83. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts.map +1 -1
  84. package/packages/jam/jamnp-s/protocol/ce-128-block-request.js +10 -8
  85. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts.map +1 -1
  86. package/packages/jam/jamnp-s/protocol/ce-129-state-request.js +11 -9
  87. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +3 -3
  88. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts.map +1 -1
  89. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.js +2 -2
  90. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +9 -9
  91. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts.map +1 -1
  92. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.js +2 -2
  93. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts.map +1 -1
  94. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.js +8 -6
  95. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +16 -16
  96. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts.map +1 -1
  97. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.js +2 -2
  98. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.test.js +2 -2
  99. package/packages/jam/jamnp-s/protocol/stream.d.ts +13 -7
  100. package/packages/jam/jamnp-s/protocol/stream.d.ts.map +1 -1
  101. package/packages/jam/jamnp-s/protocol/stream.js +5 -4
  102. package/packages/jam/jamnp-s/protocol/test-utils.d.ts +1 -1
  103. package/packages/jam/jamnp-s/protocol/test-utils.d.ts.map +1 -1
  104. package/packages/jam/jamnp-s/protocol/test-utils.js +9 -12
  105. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +2 -2
  106. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts.map +1 -1
  107. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.js +1 -1
  108. package/packages/jam/jamnp-s/stream-manager.d.ts.map +1 -1
  109. package/packages/jam/jamnp-s/stream-manager.js +7 -5
  110. package/packages/jam/jamnp-s/stream-manager.test.js +8 -5
  111. package/packages/jam/jamnp-s/tasks/sync.js +1 -1
  112. package/packages/jam/node/jam-config.d.ts +4 -1
  113. package/packages/jam/node/jam-config.d.ts.map +1 -1
  114. package/packages/jam/node/jam-config.js +6 -2
  115. package/packages/jam/node/main.d.ts.map +1 -1
  116. package/packages/jam/node/main.js +5 -4
  117. package/packages/jam/node/package.json +1 -1
  118. package/packages/jam/node/reader.d.ts +25 -25
  119. package/packages/jam/node/workers.d.ts +183 -183
  120. package/packages/jam/rpc-validation/types.d.ts +7 -3
  121. package/packages/jam/rpc-validation/types.d.ts.map +1 -1
  122. package/packages/jam/rpc-validation/validation.d.ts +254 -36
  123. package/packages/jam/rpc-validation/validation.d.ts.map +1 -1
  124. package/packages/jam/rpc-validation/validation.js +20 -2
  125. package/packages/jam/state/accumulation-queue.d.ts +26 -26
  126. package/packages/jam/state/assurances.d.ts +26 -26
  127. package/packages/jam/state/in-memory-state.d.ts.map +1 -1
  128. package/packages/jam/state/in-memory-state.js +2 -3
  129. package/packages/jam/state/privileged-services.d.ts +1 -1
  130. package/packages/jam/state/privileged-services.d.ts.map +1 -1
  131. package/packages/jam/state/privileged-services.js +1 -6
  132. package/packages/jam/state/service.d.ts +1 -1
  133. package/packages/jam/state/service.d.ts.map +1 -1
  134. package/packages/jam/state/statistics.d.ts +0 -8
  135. package/packages/jam/state/statistics.d.ts.map +1 -1
  136. package/packages/jam/state/statistics.js +14 -44
  137. package/packages/jam/state/statistics.test.js +1 -8
  138. package/packages/jam/state/test.utils.d.ts +1 -1
  139. package/packages/jam/state/test.utils.d.ts.map +1 -1
  140. package/packages/jam/state/test.utils.js +6 -25
  141. package/packages/jam/state-json/accounts.d.ts +10 -0
  142. package/packages/jam/state-json/accounts.d.ts.map +1 -1
  143. package/packages/jam/state-json/accounts.js +47 -19
  144. package/packages/jam/state-json/dump.d.ts.map +1 -1
  145. package/packages/jam/state-json/dump.js +5 -9
  146. package/packages/jam/state-json/dump.test.js +2 -10
  147. package/packages/jam/state-json/statistics.d.ts +1 -1
  148. package/packages/jam/state-json/statistics.d.ts.map +1 -1
  149. package/packages/jam/state-json/statistics.js +1 -13
  150. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +29 -31
  151. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts.map +1 -1
  152. package/packages/jam/state-merkleization/serialize.d.ts +4 -4
  153. package/packages/jam/state-merkleization/serialize.d.ts.map +1 -1
  154. package/packages/jam/state-merkleization/serialize.js +5 -8
  155. package/packages/jam/state-merkleization/serialized-state-view.d.ts.map +1 -1
  156. package/packages/jam/state-merkleization/state-entries.test.js +1 -7
  157. package/packages/jam/state-vectors/index.d.ts +377 -5
  158. package/packages/jam/state-vectors/index.d.ts.map +1 -1
  159. package/packages/jam/state-vectors/index.js +3 -3
  160. package/packages/jam/transition/accumulate/accumulate-data.d.ts.map +1 -1
  161. package/packages/jam/transition/accumulate/accumulate-data.js +1 -2
  162. package/packages/jam/transition/accumulate/accumulate-queue.test.js +2 -2
  163. package/packages/jam/transition/accumulate/accumulate-state.d.ts +1 -2
  164. package/packages/jam/transition/accumulate/accumulate-state.d.ts.map +1 -1
  165. package/packages/jam/transition/accumulate/accumulate-utils.d.ts.map +1 -1
  166. package/packages/jam/transition/accumulate/accumulate-utils.js +2 -6
  167. package/packages/jam/transition/accumulate/accumulate-utils.test.js +4 -6
  168. package/packages/jam/transition/accumulate/accumulate.d.ts.map +1 -1
  169. package/packages/jam/transition/accumulate/accumulate.js +19 -33
  170. package/packages/jam/transition/accumulate/accumulate.test.js +2 -2
  171. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.d.ts.map +1 -1
  172. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.js +1 -2
  173. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.test.js +1 -2
  174. package/packages/jam/transition/accumulate/index.d.ts +0 -1
  175. package/packages/jam/transition/accumulate/index.d.ts.map +1 -1
  176. package/packages/jam/transition/accumulate/index.js +0 -1
  177. package/packages/jam/transition/accumulate/operand.d.ts +7 -7
  178. package/packages/jam/transition/chain-stf.d.ts +3 -5
  179. package/packages/jam/transition/chain-stf.d.ts.map +1 -1
  180. package/packages/jam/transition/chain-stf.js +5 -29
  181. package/packages/jam/transition/disputes/disputes.test.data2.d.ts +3 -3
  182. package/packages/jam/transition/disputes/disputes.test.data2.d.ts.map +1 -1
  183. package/packages/jam/transition/disputes/disputes.test.data2.js +2 -2
  184. package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
  185. package/packages/jam/transition/externalities/accumulate-externalities.js +22 -49
  186. package/packages/jam/transition/externalities/accumulate-externalities.test.js +8 -72
  187. package/packages/jam/transition/externalities/fetch-externalities.d.ts +8 -21
  188. package/packages/jam/transition/externalities/fetch-externalities.d.ts.map +1 -1
  189. package/packages/jam/transition/externalities/fetch-externalities.js +5 -53
  190. package/packages/jam/transition/externalities/fetch-externalities.test.js +201 -114
  191. package/packages/jam/transition/hasher.test.js +2 -2
  192. package/packages/jam/transition/reports/error.d.ts +3 -1
  193. package/packages/jam/transition/reports/error.d.ts.map +1 -1
  194. package/packages/jam/transition/reports/error.js +2 -0
  195. package/packages/jam/transition/reports/test.utils.d.ts.map +1 -1
  196. package/packages/jam/transition/reports/test.utils.js +2 -2
  197. package/packages/jam/transition/reports/verify-basic.d.ts.map +1 -1
  198. package/packages/jam/transition/reports/verify-basic.js +10 -0
  199. package/packages/jam/transition/reports/verify-basic.test.js +29 -0
  200. package/packages/jam/transition/statistics.d.ts +0 -7
  201. package/packages/jam/transition/statistics.d.ts.map +1 -1
  202. package/packages/jam/transition/statistics.js +2 -11
  203. package/packages/jam/transition/statistics.test.js +0 -40
  204. package/packages/workers/block-authorship/generator.test.d.ts +2 -0
  205. package/packages/workers/block-authorship/generator.test.d.ts.map +1 -0
  206. package/packages/workers/block-authorship/generator.test.js +200 -0
  207. package/packages/workers/block-authorship/main.d.ts.map +1 -1
  208. package/packages/workers/block-authorship/main.js +23 -4
  209. package/packages/workers/block-authorship/package.json +1 -1
  210. package/packages/workers/block-authorship/protocol.d.ts +53 -51
  211. package/packages/workers/block-authorship/protocol.d.ts.map +1 -1
  212. package/packages/workers/block-authorship/protocol.js +6 -3
  213. package/packages/workers/importer/importer.d.ts.map +1 -1
  214. package/packages/workers/importer/importer.js +0 -1
  215. package/packages/workers/importer/package.json +1 -1
  216. package/packages/workers/importer/protocol.d.ts +54 -54
  217. package/packages/workers/jam-network/protocol.d.ts +79 -79
  218. package/packages/jam/transition/accumulate/deferred-transfers.d.ts +0 -36
  219. package/packages/jam/transition/accumulate/deferred-transfers.d.ts.map +0 -1
  220. package/packages/jam/transition/accumulate/deferred-transfers.js +0 -95
  221. package/packages/jam/transition/accumulate/pvm-executor.d.ts.map +0 -1
@@ -3,7 +3,7 @@ import { SignedTicket } from "#@typeberry/block/tickets.js";
3
3
  import type { BytesBlob } from "#@typeberry/bytes";
4
4
  import { type CodecRecord } from "#@typeberry/codec";
5
5
  import { WithDebug } from "#@typeberry/utils";
6
- import { type StreamHandler, type StreamMessageSender } from "./stream.js";
6
+ import { type StreamHandler, type StreamId, type StreamMessageSender } from "./stream.js";
7
7
  /**
8
8
  * JAM-SNP CE-131 and CE-132 streams.
9
9
  *
@@ -32,13 +32,13 @@ export declare class ServerHandler<T extends STREAM_KIND> implements StreamHandl
32
32
  private readonly onTicketReceived;
33
33
  constructor(kind: T, onTicketReceived: (epochIndex: Epoch, ticket: SignedTicket) => void);
34
34
  onStreamMessage(sender: StreamMessageSender, message: BytesBlob): void;
35
- onClose(): void;
35
+ onClose(_streamId: StreamId): void;
36
36
  }
37
37
  export declare class ClientHandler<T extends STREAM_KIND> implements StreamHandler<T> {
38
38
  readonly kind: T;
39
39
  constructor(kind: T);
40
40
  onStreamMessage(sender: StreamMessageSender): void;
41
- onClose(): void;
41
+ onClose(_streamId: StreamId): void;
42
42
  sendTicket(sender: StreamMessageSender, epochIndex: Epoch, ticket: SignedTicket): void;
43
43
  }
44
44
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ce-131-ce-132-safrole-ticket-distribution.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAE5F;;;;;;GAMG;AAEH,eAAO,MAAM,8BAA8B,+DAAuB,CAAC;AACnE,eAAO,MAAM,wBAAwB,+DAAuB,CAAC;AAE7D,KAAK,WAAW,GAAG,OAAO,8BAA8B,GAAG,OAAO,wBAAwB,CAAC;AAE3F,qBAAa,yBAA0B,SAAQ,SAAS;aAWpC,UAAU,EAAE,KAAK;aACjB,MAAM,EAAE,YAAY;IAXtC,MAAM,CAAC,KAAK;;;;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,yBAAyB,CAAC;IAI5E,OAAO;CAMR;AAID,qBAAa,aAAa,CAAC,CAAC,SAAS,WAAW,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;aAEzD,IAAI,EAAE,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBADjB,IAAI,EAAE,CAAC,EACN,gBAAgB,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI;IAGtF,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IAOtE,OAAO;CACR;AAED,qBAAa,aAAa,CAAC,CAAC,SAAS,WAAW,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;aAC/C,IAAI,EAAE,CAAC;gBAAP,IAAI,EAAE,CAAC;IAEnC,eAAe,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAKlD,OAAO;IAEP,UAAU,CAAC,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY;CAKhF"}
1
+ {"version":3,"file":"ce-131-ce-132-safrole-ticket-distribution.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAE3G;;;;;;GAMG;AAEH,eAAO,MAAM,8BAA8B,+DAAuB,CAAC;AACnE,eAAO,MAAM,wBAAwB,+DAAuB,CAAC;AAE7D,KAAK,WAAW,GAAG,OAAO,8BAA8B,GAAG,OAAO,wBAAwB,CAAC;AAE3F,qBAAa,yBAA0B,SAAQ,SAAS;aAWpC,UAAU,EAAE,KAAK;aACjB,MAAM,EAAE,YAAY;IAXtC,MAAM,CAAC,KAAK;;;;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,yBAAyB,CAAC;IAI5E,OAAO;CAMR;AAID,qBAAa,aAAa,CAAC,CAAC,SAAS,WAAW,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;aAEzD,IAAI,EAAE,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBADjB,IAAI,EAAE,CAAC,EACN,gBAAgB,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI;IAGtF,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IAOtE,OAAO,CAAC,SAAS,EAAE,QAAQ;CAC5B;AAED,qBAAa,aAAa,CAAC,CAAC,SAAS,WAAW,CAAE,YAAW,aAAa,CAAC,CAAC,CAAC;aAC/C,IAAI,EAAE,CAAC;gBAAP,IAAI,EAAE,CAAC;IAEnC,eAAe,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAKlD,OAAO,CAAC,SAAS,EAAE,QAAQ;IAE3B,UAAU,CAAC,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY;CAKhF"}
@@ -42,7 +42,7 @@ export class ServerHandler {
42
42
  this.onTicketReceived(ticketDistribution.epochIndex, ticketDistribution.ticket);
43
43
  sender.close();
44
44
  }
45
- onClose() { }
45
+ onClose(_streamId) { }
46
46
  }
47
47
  export class ClientHandler {
48
48
  kind;
@@ -53,7 +53,7 @@ export class ClientHandler {
53
53
  logger.warn `[${sender.streamId}][ce-${this.kind}] Unexpected message received. Closing.`;
54
54
  sender.close();
55
55
  }
56
- onClose() { }
56
+ onClose(_streamId) { }
57
57
  sendTicket(sender, epochIndex, ticket) {
58
58
  const request = TicketDistributionRequest.create({ epochIndex, ticket });
59
59
  sender.bufferAndSend(Encoder.encodeObject(TicketDistributionRequest.Codec, request));
@@ -1,5 +1,5 @@
1
1
  import type { CoreIndex } from "#@typeberry/block";
2
- import { type WorkItemExtrinsics } from "#@typeberry/block/work-item.js";
2
+ import { type WorkPackageExtrinsics } from "#@typeberry/block/work-item.js";
3
3
  import { WorkPackage } from "#@typeberry/block/work-package.js";
4
4
  import type { BytesBlob } from "#@typeberry/bytes";
5
5
  import { type CodecRecord } from "#@typeberry/codec";
@@ -21,7 +21,7 @@ export declare class CoreWorkPackage extends WithDebug {
21
21
  workPackage: import("@typeberry/codec").Descriptor<WorkPackage, import("@typeberry/codec").ViewOf<WorkPackage, {
22
22
  authCodeHost: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"ServiceId[u32]">, import("@typeberry/bytes").Bytes<4>>;
23
23
  authCodeHash: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"CodeHash">, import("@typeberry/bytes").Bytes<32>>;
24
- context: import("@typeberry/codec").Descriptor<import("@typeberry/block/refine-context.js").RefineContext, import("@typeberry/codec").ViewOf<import("@typeberry/block/refine-context.js").RefineContext, {
24
+ context: import("@typeberry/codec").Descriptor<import("@typeberry/block").RefineContext, import("@typeberry/codec").ViewOf<import("@typeberry/block").RefineContext, {
25
25
  anchor: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"HeaderHash">, import("@typeberry/bytes").Bytes<32>>;
26
26
  stateRoot: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"StateRootHash">, import("@typeberry/bytes").Bytes<32>>;
27
27
  beefyRoot: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"BeefyHash">, import("@typeberry/bytes").Bytes<32>>;
@@ -31,18 +31,18 @@ export declare class CoreWorkPackage extends WithDebug {
31
31
  }>>;
32
32
  authorization: import("@typeberry/codec").Descriptor<BytesBlob, BytesBlob>;
33
33
  parametrization: import("@typeberry/codec").Descriptor<BytesBlob, BytesBlob>;
34
- items: import("@typeberry/codec").Descriptor<import("@typeberry/collections").FixedSizeArray<import("@typeberry/block/work-item.js").WorkItem, import("@typeberry/numbers").U8>, import("@typeberry/codec").SequenceView<import("@typeberry/block/work-item.js").WorkItem, import("@typeberry/codec").ViewOf<import("@typeberry/block/work-item.js").WorkItem, {
34
+ items: import("@typeberry/codec").Descriptor<import("@typeberry/collections").FixedSizeArray<import("@typeberry/block").WorkItem, import("@typeberry/numbers").U8>, import("@typeberry/codec").SequenceView<import("@typeberry/block").WorkItem, import("@typeberry/codec").ViewOf<import("@typeberry/block").WorkItem, {
35
35
  service: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"ServiceId[u32]">, import("@typeberry/bytes").Bytes<4>>;
36
36
  codeHash: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"CodeHash">, import("@typeberry/bytes").Bytes<32>>;
37
37
  refineGasLimit: import("@typeberry/codec").Descriptor<bigint & import("@typeberry/numbers").WithBytesRepresentation<8> & import("@typeberry/utils").WithOpaque<"ServiceGas[u64]">, import("@typeberry/bytes").Bytes<8>>;
38
38
  accumulateGasLimit: import("@typeberry/codec").Descriptor<bigint & import("@typeberry/numbers").WithBytesRepresentation<8> & import("@typeberry/utils").WithOpaque<"ServiceGas[u64]">, import("@typeberry/bytes").Bytes<8>>;
39
39
  exportCount: import("@typeberry/codec").Descriptor<import("@typeberry/numbers").U16, import("@typeberry/bytes").Bytes<2>>;
40
40
  payload: import("@typeberry/codec").Descriptor<BytesBlob, BytesBlob>;
41
- importSegments: import("@typeberry/codec").Descriptor<readonly import("@typeberry/block/work-item.js").ImportSpec[] & import("@typeberry/utils").WithOpaque<"Less than 2048">, import("@typeberry/codec").SequenceView<import("@typeberry/block/work-item.js").ImportSpec, import("@typeberry/codec").ViewOf<import("@typeberry/block/work-item.js").ImportSpec, {
41
+ importSegments: import("@typeberry/codec").Descriptor<readonly import("@typeberry/block").ImportSpec[] & import("@typeberry/utils").WithOpaque<"Less than 2048">, import("@typeberry/codec").SequenceView<import("@typeberry/block").ImportSpec, import("@typeberry/codec").ViewOf<import("@typeberry/block").ImportSpec, {
42
42
  treeRoot: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
43
43
  index: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<2> & import("@typeberry/utils").WithOpaque<"Segment Index [U16]">, import("@typeberry/bytes").Bytes<2>>;
44
44
  }>>>;
45
- extrinsic: import("@typeberry/codec").Descriptor<import("@typeberry/block/work-item.js").WorkItemExtrinsicSpec[], import("@typeberry/codec").SequenceView<import("@typeberry/block/work-item.js").WorkItemExtrinsicSpec, import("@typeberry/codec").ViewOf<import("@typeberry/block/work-item.js").WorkItemExtrinsicSpec, {
45
+ extrinsic: import("@typeberry/codec").Descriptor<import("@typeberry/block").WorkItemExtrinsicSpec[], import("@typeberry/codec").SequenceView<import("@typeberry/block").WorkItemExtrinsicSpec, import("@typeberry/codec").ViewOf<import("@typeberry/block").WorkItemExtrinsicSpec, {
46
46
  hash: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"ExtrinsicHash">, import("@typeberry/bytes").Bytes<32>>;
47
47
  len: import("@typeberry/codec").Descriptor<import("@typeberry/numbers").U32, import("@typeberry/bytes").Bytes<4>>;
48
48
  }>>>;
@@ -55,15 +55,15 @@ export declare class CoreWorkPackage extends WithDebug {
55
55
  export declare class ServerHandler implements StreamHandler<typeof STREAM_KIND> {
56
56
  private readonly onWorkPackage;
57
57
  kind: 133 & import("@typeberry/numbers").WithBytesRepresentation<1>;
58
- constructor(onWorkPackage: (i: CoreIndex, w: WorkPackage, e: WorkItemExtrinsics) => void);
59
- readonly workPackages: Map<import("@typeberry/numbers").U32, CoreWorkPackage>;
58
+ constructor(onWorkPackage: (i: CoreIndex, w: WorkPackage, e: WorkPackageExtrinsics) => void);
59
+ readonly workPackages: Map<string & import("@typeberry/utils").WithOpaque<"streamId">, CoreWorkPackage>;
60
60
  onStreamMessage(sender: StreamMessageSender, message: BytesBlob): void;
61
61
  onClose(streamId: StreamId): void;
62
62
  }
63
63
  export declare class ClientHandler implements StreamHandler<typeof STREAM_KIND> {
64
64
  kind: 133 & import("@typeberry/numbers").WithBytesRepresentation<1>;
65
65
  onStreamMessage(sender: StreamMessageSender): void;
66
- onClose(): void;
67
- sendWorkPackage(sender: StreamMessageSender, coreIndex: CoreIndex, workPackage: WorkPackage, extrinsic: WorkItemExtrinsics): void;
66
+ onClose(_streamId: StreamId): void;
67
+ sendWorkPackage(sender: StreamMessageSender, coreIndex: CoreIndex, workPackage: WorkPackage, extrinsic: WorkPackageExtrinsics): void;
68
68
  }
69
69
  //# sourceMappingURL=ce-133-work-package-submission.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ce-133-work-package-submission.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jamnp-s/protocol/ce-133-work-package-submission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,kBAAkB,EAA2B,MAAM,+BAA+B,CAAC;AACjG,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAE3G;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,+DAAuB,CAAC;AAEhD,qBAAa,eAAgB,SAAQ,SAAS;aAW1B,SAAS,EAAE,SAAS;aACpB,WAAW,EAAE,WAAW;IAX1C,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,eAAe,CAAC;IAItE,OAAO;CAMR;AAID,qBAAa,aAAc,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IAGzD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAF1C,IAAI,gEAAe;gBAEU,aAAa,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,kBAAkB,KAAK,IAAI;IAEzG,SAAgB,YAAY,yDAAwC;IAEpE,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IAiBtE,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;CAGlC;AAED,qBAAa,aAAc,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IACrE,IAAI,gEAAe;IAEnB,eAAe,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAKlD,OAAO,IAAI,IAAI;IAEf,eAAe,CACb,MAAM,EAAE,mBAAmB,EAC3B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,kBAAkB;CAUhC"}
1
+ {"version":3,"file":"ce-133-work-package-submission.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jamnp-s/protocol/ce-133-work-package-submission.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,qBAAqB,EAA2B,MAAM,+BAA+B,CAAC;AACpG,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AAE7E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAE3G;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,+DAAuB,CAAC;AAEhD,qBAAa,eAAgB,SAAQ,SAAS;aAW1B,SAAS,EAAE,SAAS;aACpB,WAAW,EAAE,WAAW;IAX1C,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,eAAe,CAAC;IAItE,OAAO;CAMR;AAID,qBAAa,aAAc,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IAGzD,OAAO,CAAC,QAAQ,CAAC,aAAa;IAF1C,IAAI,gEAAe;gBAEU,aAAa,EAAE,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,qBAAqB,KAAK,IAAI;IAE5G,SAAgB,YAAY,mFAAwC;IAEpE,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IAiBtE,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;CAGlC;AAED,qBAAa,aAAc,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IACrE,IAAI,gEAAe;IAEnB,eAAe,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAKlD,OAAO,CAAC,SAAS,EAAE,QAAQ,GAAG,IAAI;IAElC,eAAe,CACb,MAAM,EAAE,mBAAmB,EAC3B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,SAAS,EAAE,qBAAqB;CAUnC"}
@@ -37,7 +37,7 @@ export class ServerHandler {
37
37
  }
38
38
  workPackages = new Map();
39
39
  onStreamMessage(sender, message) {
40
- const streamId = sender.streamId;
40
+ const { streamId } = sender;
41
41
  // initially we expect the `CoreWorkPackage`
42
42
  const workPackage = this.workPackages.get(streamId);
43
43
  if (workPackage === undefined) {
@@ -62,7 +62,7 @@ export class ClientHandler {
62
62
  logger.warn `[${sender.streamId}] Got unexpected message on CE-133 stream. Closing.`;
63
63
  sender.close();
64
64
  }
65
- onClose() { }
65
+ onClose(_streamId) { }
66
66
  sendWorkPackage(sender, coreIndex, workPackage, extrinsic) {
67
67
  const corePack = CoreWorkPackage.create({ coreIndex, workPackage });
68
68
  logger.trace `[${sender.streamId}] Sending work package: ${corePack}`;
@@ -1 +1 @@
1
- {"version":3,"file":"ce-134-work-package-sharing.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGnF,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAE3G;;;;;;GAMG;AAIH,KAAK,iBAAiB,GAAG,SAAS,CAAC;AAGnC,eAAO,MAAM,WAAW,+DAAuB,CAAC;AAEhD,qBAAa,yBAA0B,SAAQ,SAAS;aAWpC,SAAS,EAAE,SAAS;aACpB,oBAAoB,EAAE,eAAe,EAAE;IAXzD,MAAM,CAAC,KAAK;;;;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,EAAE,WAAW,CAAC,yBAAyB,CAAC;IAIzF,OAAO;CAMR;AAED,qBAAa,0BAA2B,SAAQ,SAAS;aAWrC,cAAc,EAAE,cAAc;aAC9B,SAAS,EAAE,gBAAgB;IAX7C,MAAM,CAAC,KAAK;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,WAAW,CAAC,0BAA0B,CAAC;IAIpF,OAAO;CAMR;AAID,qBAAa,aAAc,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IAInE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAHhC,IAAI,gEAAe;gBAGA,aAAa,EAAE,CAC9B,SAAS,EAAE,SAAS,EACpB,oBAAoB,EAAE,eAAe,EAAE,EACvC,iBAAiB,EAAE,iBAAiB,KACjC,OAAO,CAAC;QAAE,cAAc,EAAE,cAAc,CAAC;QAAC,SAAS,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAG/E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkD;IAE9E,OAAO,CAAC,MAAM,CAAC,cAAc;IAU7B,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IAsBtE,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;CAGlC;AAED,qBAAa,aAAc,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IACrE,IAAI,gEAAe;IACnB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAM5B;IAEJ,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IAYtE,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAQ3B,eAAe,CACnB,MAAM,EAAE,mBAAmB,EAC3B,SAAS,EAAE,SAAS,EACpB,oBAAoB,EAAE,eAAe,EAAE,EACvC,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC;QAAE,cAAc,EAAE,cAAc,CAAC;QAAC,SAAS,EAAE,gBAAgB,CAAA;KAAE,CAAC;CAW5E"}
1
+ {"version":3,"file":"ce-134-work-package-sharing.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,oCAAoC,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAA2B,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGnF,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAE3G;;;;;;GAMG;AAIH,KAAK,iBAAiB,GAAG,SAAS,CAAC;AAGnC,eAAO,MAAM,WAAW,+DAAuB,CAAC;AAEhD,qBAAa,yBAA0B,SAAQ,SAAS;aAWpC,SAAS,EAAE,SAAS;aACpB,oBAAoB,EAAE,eAAe,EAAE;IAXzD,MAAM,CAAC,KAAK;;;;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,EAAE,WAAW,CAAC,yBAAyB,CAAC;IAIzF,OAAO;CAMR;AAED,qBAAa,0BAA2B,SAAQ,SAAS;aAWrC,cAAc,EAAE,cAAc;aAC9B,SAAS,EAAE,gBAAgB;IAX7C,MAAM,CAAC,KAAK;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,WAAW,CAAC,0BAA0B,CAAC;IAIpF,OAAO;CAMR;AAID,qBAAa,aAAc,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IAInE,OAAO,CAAC,QAAQ,CAAC,aAAa;IAHhC,IAAI,gEAAe;gBAGA,aAAa,EAAE,CAC9B,SAAS,EAAE,SAAS,EACpB,oBAAoB,EAAE,eAAe,EAAE,EACvC,iBAAiB,EAAE,iBAAiB,KACjC,OAAO,CAAC;QAAE,cAAc,EAAE,cAAc,CAAC;QAAC,SAAS,EAAE,gBAAgB,CAAA;KAAE,CAAC;IAG/E,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAkD;IAE9E,OAAO,CAAC,MAAM,CAAC,cAAc;IAU7B,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IAsBtE,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;CAGlC;AAED,qBAAa,aAAc,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IACrE,IAAI,gEAAe;IACnB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAM5B;IAEJ,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IAatE,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAQ3B,eAAe,CACnB,MAAM,EAAE,mBAAmB,EAC3B,SAAS,EAAE,SAAS,EACpB,oBAAoB,EAAE,eAAe,EAAE,EACvC,iBAAiB,EAAE,iBAAiB,GACnC,OAAO,CAAC;QAAE,cAAc,EAAE,cAAc,CAAC;QAAC,SAAS,EAAE,gBAAgB,CAAA;KAAE,CAAC;CAY5E"}
@@ -53,7 +53,7 @@ export class ServerHandler {
53
53
  sender.close();
54
54
  }
55
55
  onStreamMessage(sender, message) {
56
- const streamId = sender.streamId;
56
+ const { streamId } = sender;
57
57
  const request = this.requestsMap.get(streamId);
58
58
  if (request === undefined) {
59
59
  const receivedRequest = Decoder.decodeObject(WorkPackageSharingRequest.Codec, message);
@@ -78,12 +78,13 @@ export class ClientHandler {
78
78
  kind = STREAM_KIND;
79
79
  pendingRequests = new Map();
80
80
  onStreamMessage(sender, message) {
81
- const pendingRequest = this.pendingRequests.get(sender.streamId);
81
+ const { streamId } = sender;
82
+ const pendingRequest = this.pendingRequests.get(streamId);
82
83
  if (pendingRequest === undefined) {
83
84
  throw new Error("Unexpected message received.");
84
85
  }
85
86
  const response = Decoder.decodeObject(WorkPackageSharingResponse.Codec, message);
86
- logger.info `[${sender.streamId}] Received work report hash and signature.`;
87
+ logger.info `[${streamId}] Received work report hash and signature.`;
87
88
  pendingRequest.resolve({ workReportHash: response.workReportHash, signature: response.signature });
88
89
  sender.close();
89
90
  }
@@ -95,13 +96,14 @@ export class ClientHandler {
95
96
  }
96
97
  }
97
98
  async sendWorkPackage(sender, coreIndex, segmentsRootMappings, workPackageBundle) {
99
+ const { streamId } = sender;
98
100
  const request = WorkPackageSharingRequest.create({ coreIndex, segmentsRootMappings });
99
- logger.trace `[${sender.streamId}] Sending core index and segments-root mappings.`;
101
+ logger.trace `[${streamId}] Sending core index and segments-root mappings.`;
100
102
  sender.bufferAndSend(Encoder.encodeObject(WorkPackageSharingRequest.Codec, request));
101
- logger.trace `[${sender.streamId}] Sending work package bundle.`;
103
+ logger.trace `[${streamId}] Sending work package bundle.`;
102
104
  sender.bufferAndSend(Encoder.encodeObject(WorkPackageBundleCodec, workPackageBundle));
103
105
  return new Promise((resolve, reject) => {
104
- this.pendingRequests.set(sender.streamId, { resolve, reject });
106
+ this.pendingRequests.set(streamId, { resolve, reject });
105
107
  });
106
108
  }
107
109
  }
@@ -6,7 +6,7 @@ import { type CodecRecord } from "#@typeberry/codec";
6
6
  import type { KnownSizeArray } from "#@typeberry/collections";
7
7
  import type { ChainSpec } from "#@typeberry/config";
8
8
  import { WithDebug } from "#@typeberry/utils";
9
- import { type StreamHandler, type StreamMessageSender } from "./stream.js";
9
+ import { type StreamHandler, type StreamId, type StreamMessageSender } from "./stream.js";
10
10
  /**
11
11
  * JAMNP-S CE 135 Stream
12
12
  *
@@ -21,14 +21,14 @@ export declare class GuaranteedWorkReport extends WithDebug {
21
21
  readonly signatures: KnownSizeArray<Credential, "[0..ValidatorsCount)">;
22
22
  static Codec: import("@typeberry/codec").Descriptor<GuaranteedWorkReport, import("@typeberry/codec").ViewOf<GuaranteedWorkReport, {
23
23
  report: import("@typeberry/codec").Descriptor<WorkReport, import("@typeberry/codec").ViewOf<WorkReport, {
24
- workPackageSpec: import("@typeberry/codec").Descriptor<import("@typeberry/block/work-report.js").WorkPackageSpec, import("@typeberry/codec").ViewOf<import("@typeberry/block/work-report.js").WorkPackageSpec, {
24
+ workPackageSpec: import("@typeberry/codec").Descriptor<import("@typeberry/block").WorkPackageSpec, import("@typeberry/codec").ViewOf<import("@typeberry/block").WorkPackageSpec, {
25
25
  hash: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"WorkPackageHash">, import("@typeberry/bytes").Bytes<32>>;
26
26
  length: import("@typeberry/codec").Descriptor<import("@typeberry/numbers").U32, import("@typeberry/bytes").Bytes<4>>;
27
27
  erasureRoot: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
28
28
  exportsRoot: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"ExportsRootHash">, import("@typeberry/bytes").Bytes<32>>;
29
29
  exportsCount: import("@typeberry/codec").Descriptor<import("@typeberry/numbers").U16, import("@typeberry/bytes").Bytes<2>>;
30
30
  }>>;
31
- context: import("@typeberry/codec").Descriptor<import("@typeberry/block/refine-context.js").RefineContext, import("@typeberry/codec").ViewOf<import("@typeberry/block/refine-context.js").RefineContext, {
31
+ context: import("@typeberry/codec").Descriptor<import("@typeberry/block").RefineContext, import("@typeberry/codec").ViewOf<import("@typeberry/block").RefineContext, {
32
32
  anchor: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"HeaderHash">, import("@typeberry/bytes").Bytes<32>>;
33
33
  stateRoot: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"StateRootHash">, import("@typeberry/bytes").Bytes<32>>;
34
34
  beefyRoot: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"BeefyHash">, import("@typeberry/bytes").Bytes<32>>;
@@ -40,32 +40,32 @@ export declare class GuaranteedWorkReport extends WithDebug {
40
40
  authorizerHash: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"AuthorizerHash">, import("@typeberry/bytes").Bytes<32>>;
41
41
  authorizationGasUsed: import("@typeberry/codec").Descriptor<bigint & import("@typeberry/numbers").WithBytesRepresentation<8> & import("@typeberry/utils").WithOpaque<"ServiceGas[u64]">, import("@typeberry/numbers").U64>;
42
42
  authorizationOutput: import("@typeberry/codec").Descriptor<BytesBlob, BytesBlob>;
43
- segmentRootLookup: import("@typeberry/codec").Descriptor<readonly import("@typeberry/block/refine-context.js").WorkPackageInfo[], import("@typeberry/codec").SequenceView<import("@typeberry/block/refine-context.js").WorkPackageInfo, import("@typeberry/codec").ViewOf<import("@typeberry/block/refine-context.js").WorkPackageInfo, {
43
+ segmentRootLookup: import("@typeberry/codec").Descriptor<readonly import("@typeberry/block").WorkPackageInfo[], import("@typeberry/codec").SequenceView<import("@typeberry/block").WorkPackageInfo, import("@typeberry/codec").ViewOf<import("@typeberry/block").WorkPackageInfo, {
44
44
  workPackageHash: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"WorkPackageHash">, import("@typeberry/bytes").Bytes<32>>;
45
45
  segmentTreeRoot: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"ExportsRootHash">, import("@typeberry/bytes").Bytes<32>>;
46
46
  }>>>;
47
- results: import("@typeberry/codec").Descriptor<import("@typeberry/collections").FixedSizeArray<import("@typeberry/block/work-result.js").WorkResult, import("@typeberry/numbers").U8>, import("@typeberry/codec").SequenceView<import("@typeberry/block/work-result.js").WorkResult, import("@typeberry/codec").ViewOf<import("@typeberry/block/work-result.js").WorkResult, {
47
+ results: import("@typeberry/codec").Descriptor<import("@typeberry/collections").FixedSizeArray<import("@typeberry/block").WorkResult, import("@typeberry/numbers").U8>, import("@typeberry/codec").SequenceView<import("@typeberry/block").WorkResult, import("@typeberry/codec").ViewOf<import("@typeberry/block").WorkResult, {
48
48
  serviceId: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"ServiceId[u32]">, import("@typeberry/bytes").Bytes<4>>;
49
49
  codeHash: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"CodeHash">, import("@typeberry/bytes").Bytes<32>>;
50
50
  payloadHash: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
51
51
  gas: import("@typeberry/codec").Descriptor<bigint & import("@typeberry/numbers").WithBytesRepresentation<8> & import("@typeberry/utils").WithOpaque<"ServiceGas[u64]">, import("@typeberry/bytes").Bytes<8>>;
52
- result: import("@typeberry/codec").Descriptor<import("@typeberry/block/work-result.js").WorkExecResult, {
53
- kind: import("@typeberry/block/work-result.js").WorkExecResultKind.ok;
52
+ result: import("@typeberry/codec").Descriptor<import("@typeberry/block").WorkExecResult, {
53
+ kind: import("@typeberry/block").WorkExecResultKind.ok;
54
54
  okBlob: BytesBlob;
55
55
  } | {
56
- kind: import("@typeberry/block/work-result.js").WorkExecResultKind.outOfGas;
56
+ kind: import("@typeberry/block").WorkExecResultKind.outOfGas;
57
57
  } | {
58
- kind: import("@typeberry/block/work-result.js").WorkExecResultKind.panic;
58
+ kind: import("@typeberry/block").WorkExecResultKind.panic;
59
59
  } | {
60
- kind: import("@typeberry/block/work-result.js").WorkExecResultKind.incorrectNumberOfExports;
60
+ kind: import("@typeberry/block").WorkExecResultKind.incorrectNumberOfExports;
61
61
  } | {
62
- kind: import("@typeberry/block/work-result.js").WorkExecResultKind.digestTooBig;
62
+ kind: import("@typeberry/block").WorkExecResultKind.digestTooBig;
63
63
  } | {
64
- kind: import("@typeberry/block/work-result.js").WorkExecResultKind.badCode;
64
+ kind: import("@typeberry/block").WorkExecResultKind.badCode;
65
65
  } | {
66
- kind: import("@typeberry/block/work-result.js").WorkExecResultKind.codeOversize;
66
+ kind: import("@typeberry/block").WorkExecResultKind.codeOversize;
67
67
  }>;
68
- load: import("@typeberry/codec").Descriptor<import("@typeberry/block/work-result.js").WorkRefineLoad, import("@typeberry/codec").ViewOf<import("@typeberry/block/work-result.js").WorkRefineLoad, {
68
+ load: import("@typeberry/codec").Descriptor<import("@typeberry/block").WorkRefineLoad, import("@typeberry/codec").ViewOf<import("@typeberry/block").WorkRefineLoad, {
69
69
  gasUsed: import("@typeberry/codec").Descriptor<bigint & import("@typeberry/numbers").WithBytesRepresentation<8> & import("@typeberry/utils").WithOpaque<"ServiceGas[u64]">, import("@typeberry/numbers").U64>;
70
70
  importedSegments: import("@typeberry/codec").Descriptor<import("@typeberry/numbers").U32, import("@typeberry/numbers").U32>;
71
71
  extrinsicCount: import("@typeberry/codec").Descriptor<import("@typeberry/numbers").U32, import("@typeberry/numbers").U32>;
@@ -89,14 +89,14 @@ export declare class ServerHandler implements StreamHandler<typeof STREAM_KIND>
89
89
  kind: 135 & import("@typeberry/numbers").WithBytesRepresentation<1>;
90
90
  constructor(chainSpec: ChainSpec, onWorkReport: (workReport: GuaranteedWorkReport) => void);
91
91
  onStreamMessage(sender: StreamMessageSender, message: BytesBlob): void;
92
- onClose(): void;
92
+ onClose(_streamId: StreamId): void;
93
93
  }
94
94
  export declare class ClientHandler implements StreamHandler<typeof STREAM_KIND> {
95
95
  private readonly chainSpec;
96
96
  kind: 135 & import("@typeberry/numbers").WithBytesRepresentation<1>;
97
97
  constructor(chainSpec: ChainSpec);
98
98
  onStreamMessage(sender: StreamMessageSender): void;
99
- onClose(): void;
99
+ onClose(_streamId: StreamId): void;
100
100
  sendWorkReport(sender: StreamMessageSender, workReport: GuaranteedWorkReport): void;
101
101
  }
102
102
  //# sourceMappingURL=ce-135-work-report-distribution.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ce-135-work-report-distribution.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAE5F;;;;;;GAMG;AAEH,eAAO,MAAM,WAAW,+DAAuB,CAAC;AAEhD,qBAAa,oBAAqB,SAAQ,SAAS;aAkB/B,MAAM,EAAE,UAAU;aAClB,IAAI,EAAE,QAAQ;aACd,UAAU,EAAE,cAAc,CAAC,UAAU,EAAE,sBAAsB,CAAC;IAnBhF,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAUT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,WAAW,CAAC,oBAAoB,CAAC;IAI7E,OAAO;CAOR;AAID,qBAAa,aAAc,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IAInE,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAJ/B,IAAI,gEAAe;gBAGA,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,CAAC,UAAU,EAAE,oBAAoB,KAAK,IAAI;IAG3E,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IAOtE,OAAO;CACR;AAED,qBAAa,aAAc,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IAGzD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAFtC,IAAI,gEAAe;gBAEU,SAAS,EAAE,SAAS;IAEjD,eAAe,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAKlD,OAAO,IAAI,IAAI;IAEf,cAAc,CAAC,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,oBAAoB;CAK7E"}
1
+ {"version":3,"file":"ce-135-work-report-distribution.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAE3G;;;;;;GAMG;AAEH,eAAO,MAAM,WAAW,+DAAuB,CAAC;AAEhD,qBAAa,oBAAqB,SAAQ,SAAS;aAkB/B,MAAM,EAAE,UAAU;aAClB,IAAI,EAAE,QAAQ;aACd,UAAU,EAAE,cAAc,CAAC,UAAU,EAAE,sBAAsB,CAAC;IAnBhF,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAUT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,WAAW,CAAC,oBAAoB,CAAC;IAI7E,OAAO;CAOR;AAID,qBAAa,aAAc,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IAInE,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAJ/B,IAAI,gEAAe;gBAGA,SAAS,EAAE,SAAS,EACpB,YAAY,EAAE,CAAC,UAAU,EAAE,oBAAoB,KAAK,IAAI;IAG3E,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IAOtE,OAAO,CAAC,SAAS,EAAE,QAAQ;CAC5B;AAED,qBAAa,aAAc,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IAGzD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAFtC,IAAI,gEAAe;gBAEU,SAAS,EAAE,SAAS;IAEjD,eAAe,CAAC,MAAM,EAAE,mBAAmB,GAAG,IAAI;IAKlD,OAAO,CAAC,SAAS,EAAE,QAAQ,GAAG,IAAI;IAElC,cAAc,CAAC,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,oBAAoB;CAK7E"}
@@ -53,7 +53,7 @@ export class ServerHandler {
53
53
  this.onWorkReport(guaranteedWorkReport);
54
54
  sender.close();
55
55
  }
56
- onClose() { }
56
+ onClose(_streamId) { }
57
57
  }
58
58
  export class ClientHandler {
59
59
  chainSpec;
@@ -65,7 +65,7 @@ export class ClientHandler {
65
65
  logger.warn `[${sender.streamId}] Got unexpected message on CE-135 stream. Closing.`;
66
66
  sender.close();
67
67
  }
68
- onClose() { }
68
+ onClose(_streamId) { }
69
69
  sendWorkReport(sender, workReport) {
70
70
  logger.trace `[${sender.streamId}] Sending guaranteed work report.`;
71
71
  sender.bufferAndSend(Encoder.encodeObject(GuaranteedWorkReport.Codec, workReport, this.chainSpec));
@@ -5,7 +5,7 @@ import { Credential } from "#@typeberry/block/guarantees.js";
5
5
  import { RefineContext } from "#@typeberry/block/refine-context.js";
6
6
  import { tryAsWorkItemsCount } from "#@typeberry/block/work-package.js";
7
7
  import { WorkPackageSpec, WorkReport } from "#@typeberry/block/work-report.js";
8
- import { WorkExecResult, WorkExecResultKind, WorkRefineLoad, WorkResult } from "#@typeberry/block/work-result.js";
8
+ import { WorkExecResult, WorkRefineLoad, WorkResult } from "#@typeberry/block/work-result.js";
9
9
  import { Bytes, BytesBlob } from "#@typeberry/bytes";
10
10
  import { asKnownSize, FixedSizeArray } from "#@typeberry/collections";
11
11
  import { tinyChainSpec } from "#@typeberry/config";
@@ -36,7 +36,7 @@ const MOCK_WORK_RESULT = WorkResult.create({
36
36
  codeHash: Bytes.zero(HASH_SIZE).asOpaque(),
37
37
  payloadHash: Bytes.zero(HASH_SIZE),
38
38
  gas: tryAsServiceGas(1000n),
39
- result: new WorkExecResult(WorkExecResultKind.ok, BytesBlob.blobFrom(new Uint8Array())),
39
+ result: WorkExecResult.ok(BytesBlob.empty()),
40
40
  load: WorkRefineLoad.create({
41
41
  gasUsed: tryAsServiceGas(10000n),
42
42
  importedSegments: tryAsU32(1),
@@ -1,16 +1,22 @@
1
1
  import type { BytesBlob } from "#@typeberry/bytes";
2
- import { type U8, type U32 } from "#@typeberry/numbers";
3
- /** Unique stream identifier. */
4
- export type StreamId = U32;
5
- /** Try to cast the number as `StreamId`. */
6
- export declare function tryAsStreamId(num: number): StreamId;
2
+ import { type U8 } from "#@typeberry/numbers";
3
+ import { type Opaque } from "#@typeberry/utils";
4
+ /**
5
+ * Globally unique stream identifier.
6
+ *
7
+ * Assigned during stream registration and used as the sole public
8
+ * identifier for a stream throughout the protocol layer.
9
+ */
10
+ export type StreamId = Opaque<string, "streamId">;
11
+ /** Cast a string as `StreamId`. */
12
+ export declare function tryAsStreamId(id: string): StreamId;
7
13
  /** Unique stream kind. */
8
14
  export type StreamKind<T extends U8 = U8> = T;
9
15
  /** Try to cast the number as `StreamKind`. */
10
16
  export declare function tryAsStreamKind<T extends number>(num: T): StreamKind<T & U8>;
11
17
  /** Abstraction over sending messages tied to a particular stream. */
12
18
  export interface StreamMessageSender {
13
- /** Stream Id information. */
19
+ /** Globally unique stream identifier. */
14
20
  streamId: StreamId;
15
21
  /**
16
22
  * Send data blob to the other end.
@@ -29,7 +35,7 @@ export interface StreamHandler<TStreamKind extends StreamKind = StreamKind> {
29
35
  readonly kind: TStreamKind;
30
36
  /** Handle message for that particular stream kind. */
31
37
  onStreamMessage(streamSender: StreamMessageSender, message: BytesBlob): void;
32
- /** Handle closing of given `streamId`. */
38
+ /** Handle closing of given stream. */
33
39
  onClose(streamId: StreamId, isError: boolean): void;
34
40
  }
35
41
  /** Extract the stream kind out of the the handler type. */
@@ -1 +1 @@
1
- {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jamnp-s/protocol/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAqB,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAE1E,gCAAgC;AAChC,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAC;AAC3B,4CAA4C;AAC5C,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAEnD;AAED,0BAA0B;AAC1B,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9C,8CAA8C;AAC9C,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAE5E;AAED,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IAClC,6BAA6B;IAC7B,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;;;;;OAMG;IACH,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAEpE,8CAA8C;IAC9C,KAAK,IAAI,IAAI,CAAC;CACf;AAED,iEAAiE;AACjE,MAAM,WAAW,aAAa,CAAC,WAAW,SAAS,UAAU,GAAG,UAAU;IACxE,yBAAyB;IACzB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAE3B,sDAAsD;IACtD,eAAe,CAAC,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;IAE7E,0CAA0C;IAC1C,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACrD;AAED,2DAA2D;AAC3D,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,SAAS,aAAa,CAAC,MAAM,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC"}
1
+ {"version":3,"file":"stream.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jamnp-s/protocol/stream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAW,KAAK,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAElD,mCAAmC;AACnC,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,CAElD;AAED,0BAA0B;AAC1B,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;AAC9C,8CAA8C;AAC9C,wBAAgB,eAAe,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,GAAG,EAAE,CAAC,CAE5E;AAED,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IAClC,yCAAyC;IACzC,QAAQ,EAAE,QAAQ,CAAC;IAEnB;;;;;;OAMG;IACH,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAEpE,8CAA8C;IAC9C,KAAK,IAAI,IAAI,CAAC;CACf;AAED,iEAAiE;AACjE,MAAM,WAAW,aAAa,CAAC,WAAW,SAAS,UAAU,GAAG,UAAU;IACxE,yBAAyB;IACzB,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAE3B,sDAAsD;IACtD,eAAe,CAAC,YAAY,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI,CAAC;IAE7E,sCAAsC;IACtC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACrD;AAED,2DAA2D;AAC3D,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,SAAS,aAAa,CAAC,MAAM,KAAK,CAAC,GAAG,KAAK,GAAG,KAAK,CAAC"}
@@ -1,7 +1,8 @@
1
- import { tryAsU8, tryAsU32 } from "#@typeberry/numbers";
2
- /** Try to cast the number as `StreamId`. */
3
- export function tryAsStreamId(num) {
4
- return tryAsU32(num);
1
+ import { tryAsU8 } from "#@typeberry/numbers";
2
+ import { asOpaqueType } from "#@typeberry/utils";
3
+ /** Cast a string as `StreamId`. */
4
+ export function tryAsStreamId(id) {
5
+ return asOpaqueType(id);
5
6
  }
6
7
  /** Try to cast the number as `StreamKind`. */
7
8
  export function tryAsStreamKind(num) {
@@ -4,7 +4,7 @@ import { type StreamHandler, type StreamId, type StreamKind, type StreamKindOf,
4
4
  export declare class TestStreamSender implements StreamMessageSender {
5
5
  readonly streamId: StreamId;
6
6
  readonly onSend: (data: BytesBlob) => void;
7
- readonly onClose: () => void;
7
+ readonly onCloseCallback: () => void;
8
8
  constructor(streamId: StreamId, { onSend, onClose, }: {
9
9
  onSend: (data: BytesBlob) => void;
10
10
  onClose?: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jamnp-s/protocol/test-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAEzB,MAAM,aAAa,CAAC;AAErB,qBAAa,gBAAiB,YAAW,mBAAmB;aAKxC,QAAQ,EAAE,QAAQ;IAJpC,SAAgB,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IAClD,SAAgB,OAAO,EAAE,MAAM,IAAI,CAAC;gBAGlB,QAAQ,EAAE,QAAQ,EAClC,EACE,MAAM,EACN,OAAkB,GACnB,EAAE;QACD,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;KACtB;IAMH,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAOvC,KAAK,IAAI,IAAI;CAKd;AAKD,qBAAa,kBAAkB;IAO3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAN5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoE;IACtG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA6C;IAEhF,SAAgB,WAAW,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC,CAAa;gBAG1E,SAAS,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,mBAAmB;IAG1G,gBAAgB,CAAC,GAAG,QAAQ,EAAE,aAAa,EAAE;IAM7C,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IASlD,gBAAgB,CAAC,QAAQ,SAAS,aAAa,EAC7C,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,EAClC,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB,KAAK,EAAE,GAC3D,IAAI;IASP,aAAa,CAAC,QAAQ,SAAS,aAAa,EAC1C,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,EAClC,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB,KAAK,EAAE,GAC3D,IAAI;IAiBP;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU;IAMhD;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,EAAE,QAAQ;IAS/B,OAAO,CAAC,wBAAwB;CAsBjC;AAED,wBAAgB,gBAAgB;;;EA6B/B"}
1
+ {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jamnp-s/protocol/test-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAEzB,MAAM,aAAa,CAAC;AAUrB,qBAAa,gBAAiB,YAAW,mBAAmB;aAKxC,QAAQ,EAAE,QAAQ;IAJpC,SAAgB,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IAClD,SAAgB,eAAe,EAAE,MAAM,IAAI,CAAC;gBAG1B,QAAQ,EAAE,QAAQ,EAClC,EACE,MAAM,EACN,OAAkB,GACnB,EAAE;QACD,MAAM,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;QAClC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;KACtB;IAMH,aAAa,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO;IAOvC,KAAK,IAAI,IAAI;CAKd;AAKD,qBAAa,kBAAkB;IAO3B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAN5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAoE;IACtG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA6C;IAEhF,SAAgB,WAAW,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC,CAAa;gBAG1E,SAAS,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK,mBAAmB;IAG1G,gBAAgB,CAAC,GAAG,QAAQ,EAAE,aAAa,EAAE;IAM7C,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IASlD,gBAAgB,CAAC,QAAQ,SAAS,aAAa,EAC7C,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,EAClC,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB,KAAK,EAAE,GAC3D,IAAI;IASP,aAAa,CAAC,QAAQ,SAAS,aAAa,EAC1C,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,EAClC,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB,KAAK,EAAE,GAC3D,IAAI;IASP;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU;IAMhD;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,EAAE,QAAQ;IAS/B,OAAO,CAAC,wBAAwB;CAsBjC;AAED,wBAAgB,gBAAgB;;;EA6B/B"}
@@ -1,12 +1,17 @@
1
1
  import { tryAsStreamId, } from "./stream.js";
2
+ const TEST_PEER_ID = "test-peer";
3
+ let nextTestStreamCounter = 0;
4
+ function nextTestStreamId() {
5
+ return tryAsStreamId(`${TEST_PEER_ID}:${nextTestStreamCounter++}`);
6
+ }
2
7
  export class TestStreamSender {
3
8
  streamId;
4
9
  onSend;
5
- onClose;
10
+ onCloseCallback;
6
11
  constructor(streamId, { onSend, onClose = () => { }, }) {
7
12
  this.streamId = streamId;
8
13
  this.onSend = onSend;
9
- this.onClose = onClose;
14
+ this.onCloseCallback = onClose;
10
15
  }
11
16
  bufferAndSend(data) {
12
17
  setImmediate(() => {
@@ -16,7 +21,7 @@ export class TestStreamSender {
16
21
  }
17
22
  close() {
18
23
  setImmediate(() => {
19
- this.onClose();
24
+ this.onCloseCallback();
20
25
  });
21
26
  }
22
27
  }
@@ -50,15 +55,7 @@ export class TestMessageHandler {
50
55
  work(handler[0], handler[1]);
51
56
  }
52
57
  withNewStream(streamKind, work) {
53
- const getRandomStreamId = () => tryAsStreamId(Math.floor(Math.random() * 2 ** 16));
54
- const streams = this.openStreams;
55
- const streamId = (function findStreamId() {
56
- const s = getRandomStreamId();
57
- if (!streams.has(s)) {
58
- return s;
59
- }
60
- return findStreamId();
61
- })();
58
+ const streamId = nextTestStreamId();
62
59
  // since we are picking a non-existing stream id, there is no way of
63
60
  // conflicting here, so the `[handler, stream]` will be fresh.
64
61
  const [handler, stream] = this.createStreamIfNotPresent(streamId, streamKind);
@@ -67,7 +67,7 @@ export declare class Announcement extends WithDebug {
67
67
  }>>>;
68
68
  }> | null>;
69
69
  ticketsMarker: import("@typeberry/codec").Descriptor<import("@typeberry/block").TicketsMarker | null, import("@typeberry/codec").ViewOf<import("@typeberry/block").TicketsMarker, {
70
- tickets: import("@typeberry/codec").Descriptor<readonly import("@typeberry/block/tickets.js").Ticket[] & import("@typeberry/utils").WithOpaque<"EpochLength">, import("@typeberry/codec").SequenceView<import("@typeberry/block/tickets.js").Ticket, import("@typeberry/codec").ViewOf<import("@typeberry/block/tickets.js").Ticket, {
70
+ 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, {
71
71
  id: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32>, import("@typeberry/bytes").Bytes<32>>;
72
72
  attempt: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<1> & import("@typeberry/utils").WithOpaque<"TicketAttempt[0|1|2]">, import("@typeberry/numbers").U8>;
73
73
  }>>>;
@@ -93,7 +93,7 @@ export declare class Handler implements StreamHandler<typeof STREAM_KIND> {
93
93
  kind: 0 & import("@typeberry/numbers").WithBytesRepresentation<1>;
94
94
  private readonly handshakes;
95
95
  private readonly pendingHandshakes;
96
- constructor(spec: ChainSpec, getHandshake: () => Handshake, onAnnouncement: (sender: StreamId, ann: Announcement) => void, onHandshake: (sender: StreamId, handshake: Handshake) => void);
96
+ constructor(spec: ChainSpec, getHandshake: () => Handshake, onAnnouncement: (streamId: StreamId, ann: Announcement) => void, onHandshake: (streamId: StreamId, handshake: Handshake) => void);
97
97
  onStreamMessage(sender: StreamMessageSender, message: BytesBlob): void;
98
98
  onClose(streamId: StreamId): void;
99
99
  sendHandshake(sender: StreamMessageSender): void;
@@ -1 +1 @@
1
- {"version":3,"file":"up-0-block-announcement.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jamnp-s/protocol/up-0-block-announcement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAE3G;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,6DAAqB,CAAC;AAE9C,qBAAa,WAAY,SAAQ,SAAS;aAWtB,IAAI,EAAE,UAAU;aAChB,IAAI,EAAE,QAAQ;IAXhC,MAAM,CAAC,KAAK;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,WAAW,CAAC,WAAW,CAAC;IAItD,OAAO;CAMR;AAED;;GAEG;AACH,qBAAa,SAAS;IAWlB,4BAA4B;aACZ,KAAK,EAAE,WAAW;IAClC,sEAAsE;aACtD,KAAK,EAAE,WAAW,EAAE;IAbtC,MAAM,CAAC,KAAK;;;;;;;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC;IAItD,OAAO;CAMR;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,SAAS;IAWvC,sDAAsD;aACtC,MAAM,EAAE,MAAM;IAC9B,4BAA4B;aACZ,KAAK,EAAE,WAAW;IAbpC,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,WAAW,CAAC,YAAY,CAAC;IAI1D,OAAO;CAQR;AAID,qBAAa,OAAQ,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IAO7D,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAT9B,IAAI,8DAAe;IAEnB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuC;IAClE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqC;gBAGpD,IAAI,EAAE,SAAS,EACf,YAAY,EAAE,MAAM,SAAS,EAC7B,cAAc,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,KAAK,IAAI,EAC7D,WAAW,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI;IAGhF,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IAqBtE,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAKjC,aAAa,CAAC,MAAM,EAAE,mBAAmB;IAWzC,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY;CAUxE"}
1
+ {"version":3,"file":"up-0-block-announcement.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jamnp-s/protocol/up-0-block-announcement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,KAAK,UAAU,EAAE,KAAK,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAGnD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAE3G;;;;;;GAMG;AACH,eAAO,MAAM,WAAW,6DAAqB,CAAC;AAE9C,qBAAa,WAAY,SAAQ,SAAS;aAWtB,IAAI,EAAE,UAAU;aAChB,IAAI,EAAE,QAAQ;IAXhC,MAAM,CAAC,KAAK;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,WAAW,CAAC,WAAW,CAAC;IAItD,OAAO;CAMR;AAED;;GAEG;AACH,qBAAa,SAAS;IAWlB,4BAA4B;aACZ,KAAK,EAAE,WAAW;IAClC,sEAAsE;aACtD,KAAK,EAAE,WAAW,EAAE;IAbtC,MAAM,CAAC,KAAK;;;;;;;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC;IAItD,OAAO;CAMR;AAED;;;GAGG;AACH,qBAAa,YAAa,SAAQ,SAAS;IAWvC,sDAAsD;aACtC,MAAM,EAAE,MAAM;IAC9B,4BAA4B;aACZ,KAAK,EAAE,WAAW;IAbpC,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,WAAW,CAAC,YAAY,CAAC;IAI1D,OAAO;CAQR;AAID,qBAAa,OAAQ,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IAO7D,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,WAAW;IAT9B,IAAI,8DAAe;IAEnB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuC;IAClE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAqC;gBAGpD,IAAI,EAAE,SAAS,EACf,YAAY,EAAE,MAAM,SAAS,EAC7B,cAAc,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,YAAY,KAAK,IAAI,EAC/D,WAAW,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,KAAK,IAAI;IAGlF,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IAqBtE,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI;IAKjC,aAAa,CAAC,MAAM,EAAE,mBAAmB;IAWzC,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,EAAE,WAAW,EAAE,YAAY;CAUxE"}
@@ -119,7 +119,7 @@ export class Handler {
119
119
  }
120
120
  const handshake = this.getHandshake();
121
121
  logger.trace `[${streamId}] <-- sending handshake`;
122
- this.pendingHandshakes.set(sender.streamId, true);
122
+ this.pendingHandshakes.set(streamId, true);
123
123
  sender.bufferAndSend(Encoder.encodeObject(Handshake.Codec, handshake));
124
124
  }
125
125
  sendAnnouncement(sender, annoucement) {
@@ -1 +1 @@
1
- {"version":3,"file":"stream-manager.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/jamnp-s/stream-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAGL,KAAK,IAAI,EACT,KAAK,MAAM,EACX,KAAK,MAAM,EACX,KAAK,mBAAmB,EAEzB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,QAAQ,EAEb,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAGzB,MAAM,sBAAsB,CAAC;AAK9B,qBAAa,aAAa;IACxB,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6C;IAC9E,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6C;IAE9E,8DAA8D;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAOV;IAEd,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2C;IAE3E,uCAAuC;IACvC,wBAAwB,CAAC,GAAG,QAAQ,EAAE,aAAa,EAAE;IAMrD,uCAAuC;IACvC,wBAAwB,CAAC,GAAG,QAAQ,EAAE,aAAa,EAAE;IAMrD,yCAAyC;IACzC,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;IAIxC,gDAAgD;IAC1C,aAAa;IAMnB,4DAA4D;IAC5D,gBAAgB,CAAC,QAAQ,SAAS,aAAa,EAC7C,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC5B,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,KAAK,EAAE,GACxD,IAAI;IAWP,4DAA4D;IAC5D,aAAa,CAAC,QAAQ,SAAS,aAAa,EAC1C,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC5B,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,KAAK,EAAE,GACxD,IAAI;IAcP,iCAAiC;IAC3B,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IA8BjD,OAAO,CAAC,cAAc;CA6CvB;AA4CD,cAAM,gBAAiB,YAAW,mBAAmB;aAMjC,QAAQ,EAAE,QAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,YAAY,CAAiD;IACrE,OAAO,CAAC,oBAAoB,CAA8B;gBAGxC,QAAQ,EAAE,QAAQ,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,mBAAmB;IAG/C,iDAAiD;IACjD,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,gBAAgB,UAAO,GAAG,OAAO;IAsChE,KAAK,IAAI,IAAI;IAab;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvB"}
1
+ {"version":3,"file":"stream-manager.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/jamnp-s/stream-manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,EAGL,KAAK,IAAI,EACT,KAAK,MAAM,EACX,KAAK,MAAM,EACX,KAAK,mBAAmB,EAEzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,QAAQ,EAEb,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAGzB,MAAM,sBAAsB,CAAC;AAK9B,qBAAa,aAAa;IACxB,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6C;IAC9E,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA6C;IAE9E,8DAA8D;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAOV;IAEd,2DAA2D;IAC3D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA2C;IAE3E,uCAAuC;IACvC,wBAAwB,CAAC,GAAG,QAAQ,EAAE,aAAa,EAAE;IAMrD,uCAAuC;IACvC,wBAAwB,CAAC,GAAG,QAAQ,EAAE,aAAa,EAAE;IAMrD,yCAAyC;IACzC,OAAO,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,GAAG,IAAI;IAIxC,gDAAgD;IAC1C,aAAa;IAMnB,4DAA4D;IAC5D,gBAAgB,CAAC,QAAQ,SAAS,aAAa,EAC7C,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC5B,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,KAAK,EAAE,GACxD,IAAI;IAWP,4DAA4D;IAC5D,aAAa,CAAC,QAAQ,SAAS,aAAa,EAC1C,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC5B,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,KAAK,EAAE,GACxD,IAAI;IAcP,iCAAiC;IAC3B,gBAAgB,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IA8BjD,OAAO,CAAC,cAAc;CA8CvB;AA4CD,cAAM,gBAAiB,YAAW,mBAAmB;aAMjC,QAAQ,EAAE,QAAQ;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP1B,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,YAAY,CAAiD;IACrE,OAAO,CAAC,oBAAoB,CAA8B;gBAGxC,QAAQ,EAAE,QAAQ,EACjB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,mBAAmB;IAG/C,iDAAiD;IACjD,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,gBAAgB,UAAO,GAAG,OAAO;IAsChE,KAAK,IAAI,IAAI;IAab;;;;OAIG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAGvB"}
@@ -1,6 +1,7 @@
1
1
  import { BytesBlob } from "#@typeberry/bytes";
2
2
  import { Logger } from "#@typeberry/logger";
3
3
  import { encodeMessageLength, handleMessageFragmentation, StreamErrorKind, } from "#@typeberry/networking";
4
+ import { tryAsU32 } from "#@typeberry/numbers";
4
5
  import { tryAsStreamId, tryAsStreamKind, } from "./protocol/stream.js";
5
6
  import { handleAsyncErrors } from "./utils.js";
6
7
  const logger = Logger.new(import.meta.filename, "stream");
@@ -85,13 +86,14 @@ export class StreamManager {
85
86
  this.registerStream(peer, handler, stream, BytesBlob.blobFrom(bytes.raw.subarray(1)));
86
87
  }
87
88
  registerStream(peer, handler, stream, initialData) {
88
- const streamId = tryAsStreamId(stream.streamId);
89
+ const quicStreamId = tryAsU32(stream.streamId);
90
+ const streamId = tryAsStreamId(`${peer.id}:${quicStreamId}`);
89
91
  // NOTE: `onError` callback may be called multiple times.
90
92
  const onError = (e, kind) => {
91
93
  this.streams.delete(streamId);
92
94
  this.backgroundTasks.delete(streamId);
93
95
  if (kind === StreamErrorKind.Exception) {
94
- logger.error `🚰 --- [${peer.id}:${streamId}] Stream error: ${e}. Disconnecting peer.`;
96
+ logger.error `🚰 --- [${streamId}] Stream error: ${e}. Disconnecting peer.`;
95
97
  }
96
98
  if (kind !== StreamErrorKind.LocalClose) {
97
99
  // whenever we have an error, we are going to inform the handler
@@ -125,10 +127,10 @@ async function readStreamForever(peer, handler, quicStream, initialData, reader)
125
127
  let isDone = false;
126
128
  const callback = handleMessageFragmentation((data) => {
127
129
  const bytes = BytesBlob.blobFrom(new Uint8Array(data));
128
- logger.trace `🚰 --> [${peer.id}:${quicStream.streamId}] ${bytes}`;
130
+ logger.trace `🚰 --> [${quicStream.streamId}] ${bytes}`;
129
131
  handler.onStreamMessage(quicStream, bytes);
130
132
  }, () => {
131
- logger.error `🚰 --> [${peer.id}:${quicStream.streamId}] got too much data. Disconnecting.`;
133
+ logger.error `🚰 --> [${quicStream.streamId}] got too much data. Disconnecting.`;
132
134
  peer.disconnect();
133
135
  });
134
136
  for (;;) {
@@ -137,7 +139,7 @@ async function readStreamForever(peer, handler, quicStream, initialData, reader)
137
139
  // be a promise, so that we can make back pressure here.
138
140
  callback(bytes.raw);
139
141
  if (isDone) {
140
- logger.log `🚰 --> [${peer.id}:${quicStream.streamId}] remote finished.`;
142
+ logger.log `🚰 --> [${quicStream.streamId}] remote finished.`;
141
143
  return;
142
144
  }
143
145
  // await for more data