@typeberry/lib 0.5.3 → 0.5.4-b101fe6

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 (205) 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/work-item.d.ts +13 -4
  32. package/packages/jam/block/work-item.d.ts.map +1 -1
  33. package/packages/jam/block/work-package.d.ts +3 -1
  34. package/packages/jam/block/work-package.d.ts.map +1 -1
  35. package/packages/jam/block/work-package.js +6 -2
  36. package/packages/jam/block/work-result.d.ts +3 -5
  37. package/packages/jam/block/work-result.d.ts.map +1 -1
  38. package/packages/jam/block/work-result.js +6 -0
  39. package/packages/jam/block-json/block.d.ts +125 -0
  40. package/packages/jam/block-json/block.d.ts.map +1 -1
  41. package/packages/jam/block-json/block.js +9 -2
  42. package/packages/jam/block-json/work-result.d.ts.map +1 -1
  43. package/packages/jam/block-json/work-result.js +6 -6
  44. package/packages/jam/database-lmdb/states.test.js +2 -3
  45. package/packages/jam/executor/index.d.ts +4 -0
  46. package/packages/jam/executor/index.d.ts.map +1 -0
  47. package/packages/jam/executor/index.js +2 -0
  48. package/packages/jam/{transition/accumulate → executor}/pvm-executor.d.ts +19 -16
  49. package/packages/jam/executor/pvm-executor.d.ts.map +1 -0
  50. package/packages/jam/{transition/accumulate → executor}/pvm-executor.js +46 -3
  51. package/packages/jam/fuzz-proto/v1/handler.d.ts +1 -1
  52. package/packages/jam/fuzz-proto/v1/handler.d.ts.map +1 -1
  53. package/packages/jam/fuzz-proto/v1/handler.js +43 -19
  54. package/packages/jam/in-core/externalities/refine.d.ts +24 -0
  55. package/packages/jam/in-core/externalities/refine.d.ts.map +1 -0
  56. package/packages/jam/in-core/externalities/refine.js +36 -0
  57. package/packages/jam/in-core/in-core.d.ts +60 -0
  58. package/packages/jam/in-core/in-core.d.ts.map +1 -0
  59. package/packages/jam/in-core/in-core.js +294 -0
  60. package/packages/jam/in-core/in-core.test.d.ts +2 -0
  61. package/packages/jam/in-core/in-core.test.d.ts.map +1 -0
  62. package/packages/jam/in-core/in-core.test.js +81 -0
  63. package/packages/jam/in-core/index.d.ts +2 -0
  64. package/packages/jam/in-core/index.d.ts.map +1 -0
  65. package/packages/jam/in-core/index.js +1 -0
  66. package/packages/jam/jam-host-calls/accumulate/bless.d.ts.map +1 -1
  67. package/packages/jam/jam-host-calls/accumulate/bless.js +6 -10
  68. package/packages/jam/jam-host-calls/accumulate/bless.test.js +32 -73
  69. package/packages/jam/jam-host-calls/accumulate/new.d.ts.map +1 -1
  70. package/packages/jam/jam-host-calls/accumulate/new.js +2 -4
  71. package/packages/jam/jam-host-calls/accumulate/new.test.js +4 -5
  72. package/packages/jam/jam-host-calls/general/fetch.d.ts +1 -57
  73. package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
  74. package/packages/jam/jam-host-calls/general/fetch.js +6 -29
  75. package/packages/jam/jam-host-calls/general/fetch.test.js +2 -58
  76. package/packages/jam/jamnp-s/peers.d.ts.map +1 -1
  77. package/packages/jam/jamnp-s/peers.js +10 -0
  78. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts +1 -1
  79. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts.map +1 -1
  80. package/packages/jam/jamnp-s/protocol/ce-128-block-request.js +10 -8
  81. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts.map +1 -1
  82. package/packages/jam/jamnp-s/protocol/ce-129-state-request.js +11 -9
  83. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +3 -3
  84. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts.map +1 -1
  85. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.js +2 -2
  86. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +5 -5
  87. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts.map +1 -1
  88. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.js +2 -2
  89. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts.map +1 -1
  90. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.js +8 -6
  91. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +3 -3
  92. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts.map +1 -1
  93. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.js +2 -2
  94. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.test.js +2 -2
  95. package/packages/jam/jamnp-s/protocol/stream.d.ts +13 -7
  96. package/packages/jam/jamnp-s/protocol/stream.d.ts.map +1 -1
  97. package/packages/jam/jamnp-s/protocol/stream.js +5 -4
  98. package/packages/jam/jamnp-s/protocol/test-utils.d.ts +1 -1
  99. package/packages/jam/jamnp-s/protocol/test-utils.d.ts.map +1 -1
  100. package/packages/jam/jamnp-s/protocol/test-utils.js +9 -12
  101. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +1 -1
  102. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts.map +1 -1
  103. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.js +1 -1
  104. package/packages/jam/jamnp-s/stream-manager.d.ts.map +1 -1
  105. package/packages/jam/jamnp-s/stream-manager.js +7 -5
  106. package/packages/jam/jamnp-s/stream-manager.test.js +8 -5
  107. package/packages/jam/jamnp-s/tasks/sync.js +1 -1
  108. package/packages/jam/node/jam-config.d.ts +4 -1
  109. package/packages/jam/node/jam-config.d.ts.map +1 -1
  110. package/packages/jam/node/jam-config.js +6 -2
  111. package/packages/jam/node/main.d.ts.map +1 -1
  112. package/packages/jam/node/main.js +5 -4
  113. package/packages/jam/node/package.json +1 -1
  114. package/packages/jam/rpc-validation/types.d.ts +7 -3
  115. package/packages/jam/rpc-validation/types.d.ts.map +1 -1
  116. package/packages/jam/rpc-validation/validation.d.ts +254 -36
  117. package/packages/jam/rpc-validation/validation.d.ts.map +1 -1
  118. package/packages/jam/rpc-validation/validation.js +20 -2
  119. package/packages/jam/state/in-memory-state.d.ts.map +1 -1
  120. package/packages/jam/state/in-memory-state.js +2 -3
  121. package/packages/jam/state/privileged-services.d.ts +1 -1
  122. package/packages/jam/state/privileged-services.d.ts.map +1 -1
  123. package/packages/jam/state/privileged-services.js +1 -6
  124. package/packages/jam/state/service.d.ts +1 -1
  125. package/packages/jam/state/service.d.ts.map +1 -1
  126. package/packages/jam/state/statistics.d.ts +0 -8
  127. package/packages/jam/state/statistics.d.ts.map +1 -1
  128. package/packages/jam/state/statistics.js +14 -44
  129. package/packages/jam/state/statistics.test.js +1 -8
  130. package/packages/jam/state/test.utils.d.ts +1 -1
  131. package/packages/jam/state/test.utils.d.ts.map +1 -1
  132. package/packages/jam/state/test.utils.js +6 -25
  133. package/packages/jam/state-json/accounts.d.ts +10 -0
  134. package/packages/jam/state-json/accounts.d.ts.map +1 -1
  135. package/packages/jam/state-json/accounts.js +47 -19
  136. package/packages/jam/state-json/dump.d.ts.map +1 -1
  137. package/packages/jam/state-json/dump.js +5 -9
  138. package/packages/jam/state-json/dump.test.js +2 -10
  139. package/packages/jam/state-json/statistics.d.ts +1 -1
  140. package/packages/jam/state-json/statistics.d.ts.map +1 -1
  141. package/packages/jam/state-json/statistics.js +1 -13
  142. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +0 -2
  143. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts.map +1 -1
  144. package/packages/jam/state-merkleization/serialize.d.ts +4 -4
  145. package/packages/jam/state-merkleization/serialize.d.ts.map +1 -1
  146. package/packages/jam/state-merkleization/serialize.js +5 -8
  147. package/packages/jam/state-merkleization/serialized-state-view.d.ts.map +1 -1
  148. package/packages/jam/state-merkleization/state-entries.test.js +1 -7
  149. package/packages/jam/state-vectors/index.d.ts +377 -5
  150. package/packages/jam/state-vectors/index.d.ts.map +1 -1
  151. package/packages/jam/state-vectors/index.js +3 -3
  152. package/packages/jam/transition/accumulate/accumulate-data.d.ts.map +1 -1
  153. package/packages/jam/transition/accumulate/accumulate-data.js +1 -2
  154. package/packages/jam/transition/accumulate/accumulate-queue.test.js +2 -2
  155. package/packages/jam/transition/accumulate/accumulate-state.d.ts +1 -2
  156. package/packages/jam/transition/accumulate/accumulate-state.d.ts.map +1 -1
  157. package/packages/jam/transition/accumulate/accumulate-utils.d.ts.map +1 -1
  158. package/packages/jam/transition/accumulate/accumulate-utils.js +2 -6
  159. package/packages/jam/transition/accumulate/accumulate-utils.test.js +4 -6
  160. package/packages/jam/transition/accumulate/accumulate.d.ts.map +1 -1
  161. package/packages/jam/transition/accumulate/accumulate.js +19 -33
  162. package/packages/jam/transition/accumulate/accumulate.test.js +2 -2
  163. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.d.ts.map +1 -1
  164. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.js +1 -2
  165. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.test.js +1 -2
  166. package/packages/jam/transition/accumulate/index.d.ts +0 -1
  167. package/packages/jam/transition/accumulate/index.d.ts.map +1 -1
  168. package/packages/jam/transition/accumulate/index.js +0 -1
  169. package/packages/jam/transition/chain-stf.d.ts +3 -5
  170. package/packages/jam/transition/chain-stf.d.ts.map +1 -1
  171. package/packages/jam/transition/chain-stf.js +5 -29
  172. package/packages/jam/transition/disputes/disputes.test.data2.js +2 -2
  173. package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
  174. package/packages/jam/transition/externalities/accumulate-externalities.js +22 -49
  175. package/packages/jam/transition/externalities/accumulate-externalities.test.js +8 -72
  176. package/packages/jam/transition/externalities/fetch-externalities.d.ts +8 -21
  177. package/packages/jam/transition/externalities/fetch-externalities.d.ts.map +1 -1
  178. package/packages/jam/transition/externalities/fetch-externalities.js +5 -53
  179. package/packages/jam/transition/externalities/fetch-externalities.test.js +201 -114
  180. package/packages/jam/transition/hasher.test.js +2 -2
  181. package/packages/jam/transition/reports/error.d.ts +3 -1
  182. package/packages/jam/transition/reports/error.d.ts.map +1 -1
  183. package/packages/jam/transition/reports/error.js +2 -0
  184. package/packages/jam/transition/reports/test.utils.d.ts.map +1 -1
  185. package/packages/jam/transition/reports/test.utils.js +2 -2
  186. package/packages/jam/transition/reports/verify-basic.d.ts.map +1 -1
  187. package/packages/jam/transition/reports/verify-basic.js +10 -0
  188. package/packages/jam/transition/reports/verify-basic.test.js +29 -0
  189. package/packages/jam/transition/statistics.d.ts +0 -7
  190. package/packages/jam/transition/statistics.d.ts.map +1 -1
  191. package/packages/jam/transition/statistics.js +2 -11
  192. package/packages/jam/transition/statistics.test.js +0 -40
  193. package/packages/workers/block-authorship/main.d.ts.map +1 -1
  194. package/packages/workers/block-authorship/main.js +23 -4
  195. package/packages/workers/block-authorship/package.json +1 -1
  196. package/packages/workers/block-authorship/protocol.d.ts +3 -1
  197. package/packages/workers/block-authorship/protocol.d.ts.map +1 -1
  198. package/packages/workers/block-authorship/protocol.js +6 -3
  199. package/packages/workers/importer/importer.d.ts.map +1 -1
  200. package/packages/workers/importer/importer.js +0 -1
  201. package/packages/workers/importer/package.json +1 -1
  202. package/packages/jam/transition/accumulate/deferred-transfers.d.ts +0 -36
  203. package/packages/jam/transition/accumulate/deferred-transfers.d.ts.map +0 -1
  204. package/packages/jam/transition/accumulate/deferred-transfers.js +0 -95
  205. package/packages/jam/transition/accumulate/pvm-executor.d.ts.map +0 -1
@@ -10,7 +10,7 @@ import { gasCounter } from "#@typeberry/pvm-interpreter/gas.js";
10
10
  import { MemoryBuilder, tryAsMemoryIndex } from "#@typeberry/pvm-interpreter/memory/index.js";
11
11
  import { tryAsSbrkIndex } from "#@typeberry/pvm-interpreter/memory/memory-index.js";
12
12
  import { PAGE_SIZE } from "#@typeberry/pvm-interpreter/spi-decoder/memory-conts.js";
13
- import { Compatibility, GpVersion, Result } from "#@typeberry/utils";
13
+ import { Result } from "#@typeberry/utils";
14
14
  import { NewServiceError } from "../externalities/partial-state.js";
15
15
  import { PartialStateMock } from "../externalities/partial-state-mock.js";
16
16
  import { HostCallResult } from "../general/results.js";
@@ -46,7 +46,6 @@ wantedServiceId = tryAsU64(2 ** 32 - 1), { skipCodeHash = false } = {}) {
46
46
  };
47
47
  }
48
48
  describe("HostCalls: New", () => {
49
- const itPost071 = Compatibility.isGreaterOrEqual(GpVersion.V0_7_1) ? it : it.skip;
50
49
  it("should create a new service", async () => {
51
50
  const accumulate = new PartialStateMock();
52
51
  const serviceId = tryAsServiceId(10_000);
@@ -98,7 +97,7 @@ describe("HostCalls: New", () => {
98
97
  assert.deepStrictEqual(registers.get(RESULT_REG), HostCallResult.HUH);
99
98
  assert.deepStrictEqual(accumulate.newServiceCalled.length, 1);
100
99
  });
101
- itPost071("should create a new service with selected id", async () => {
100
+ it("should create a new service with selected id", async () => {
102
101
  const accumulate = new PartialStateMock();
103
102
  const serviceId = tryAsServiceId(10); // service has registrar privilege
104
103
  const n = new New(serviceId, accumulate);
@@ -113,7 +112,7 @@ describe("HostCalls: New", () => {
113
112
  [Bytes.fill(HASH_SIZE, 0x69), 4096n, 2n ** 40n, 2n ** 50n, gratisStorage, 42n],
114
113
  ]);
115
114
  });
116
- itPost071("should create a new service with random id", async () => {
115
+ it("should create a new service with random id", async () => {
117
116
  const accumulate = new PartialStateMock();
118
117
  const serviceId = tryAsServiceId(10_000); // service does not have registrar privilege
119
118
  const n = new New(serviceId, accumulate);
@@ -128,7 +127,7 @@ describe("HostCalls: New", () => {
128
127
  [Bytes.fill(HASH_SIZE, 0x69), 4096n, 2n ** 40n, 2n ** 50n, gratisStorage, 42n],
129
128
  ]);
130
129
  });
131
- itPost071("should fail when trying to set selected id, but service already exists", async () => {
130
+ it("should fail when trying to set selected id, but service already exists", async () => {
132
131
  const accumulate = new PartialStateMock();
133
132
  const serviceId = tryAsServiceId(10);
134
133
  const n = new New(serviceId, accumulate);
@@ -142,19 +142,6 @@ export interface IFetchExternalities {
142
142
  * https://graypaper.fluffylabs.dev/#/9a08063/32f00132f001?v=0.6.6
143
143
  */
144
144
  workItemPayload(workItem: U64): BytesBlob | null;
145
- /**
146
- * Get all accumulation operands (work results?).
147
- *
148
- * Is Authorized: <empty>
149
- * Refine: <empty>
150
- * Accumulate: `E(↕o)`
151
- * On Transfer: <empty>
152
- *
153
- * @deprecated since 0.7.1
154
- *
155
- * https://graypaper.fluffylabs.dev/#/9a08063/32fb0132fb01?v=0.6.6
156
- */
157
- allOperands(): BytesBlob | null;
158
145
  /**
159
146
  * Get all accumulation operands (work results?) and transfers.
160
147
  *
@@ -165,19 +152,6 @@ export interface IFetchExternalities {
165
152
  * https://graypaper.fluffylabs.dev/#/ab2cdbd/314c03314c03?v=0.7.2
166
153
  */
167
154
  allTransfersAndOperands(): BytesBlob | null;
168
- /**
169
- * Get one selected accumulation operand.
170
- *
171
- * Is Authorized: <empty>
172
- * Refine: <empty>
173
- * Accumulate: `E(o[omega_11])`
174
- * On Transfer: <empty>
175
- *
176
- * @deprecated 0.7.1
177
- *
178
- * https://graypaper.fluffylabs.dev/#/9a08063/320202320202?v=0.6.6
179
- */
180
- oneOperand(operandIndex: U64): BytesBlob | null;
181
155
  /**
182
156
  * Get one selected accumulation operand or transfer.
183
157
  *
@@ -188,32 +162,6 @@ export interface IFetchExternalities {
188
162
  * https://graypaper.fluffylabs.dev/#/ab2cdbd/315503315503?v=0.7.2
189
163
  */
190
164
  oneTransferOrOperand(index: U64): BytesBlob | null;
191
- /**
192
- * Inspect all incoming transfers.
193
- *
194
- * Is Authorized: <empty>
195
- * Refine: <empty>
196
- * Accumulate: <empty>
197
- * On Transfer: `E(↕t)`
198
- *
199
- * @deprecated 0.7.1
200
- *
201
- * https://graypaper.fluffylabs.dev/#/9a08063/320c02320c02?v=0.6.6
202
- */
203
- allTransfers(): BytesBlob | null;
204
- /**
205
- * Inspect one particular incoming transfers.
206
- *
207
- * Is Authorized: <empty>
208
- * Refine: <empty>
209
- * Accumulate: <empty>
210
- * On Transfer: `E(t[omega_11])`
211
- *
212
- * @deprecated 0.7.1
213
- *
214
- * https://graypaper.fluffylabs.dev/#/9a08063/321302321302?v=0.6.6
215
- */
216
- oneTransfer(transferIndex: U64): BytesBlob | null;
217
165
  }
218
166
  /**
219
167
  * https://graypaper.fluffylabs.dev/#/7e6ff6a/324000324000?v=0.6.7
@@ -243,11 +191,7 @@ export declare enum FetchKind {
243
191
  AllWorkItems = 11,
244
192
  OneWorkItem = 12,
245
193
  WorkItemPayload = 13,
246
- LegacyAllOperands = 14,
247
194
  AllTransfersAndOperands = 14,
248
- LegacyOneOperand = 15,
249
- OneTransferOrOperand = 15,
250
- LegacyAllTransfers = 16,
251
- LegacyOneTransfer = 17
195
+ OneTransferOrOperand = 15
252
196
  }
253
197
  //# sourceMappingURL=fetch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/general/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAA8B,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAsC,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAM3E,sBAAsB;AACtB,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,SAAS,IAAI,SAAS,CAAC;IAEvB;;;;;;;;;OASG;IACH,OAAO,IAAI,SAAS,GAAG,IAAI,CAAC;IAE5B;;;;;;;;;;OAUG;IACH,eAAe,IAAI,SAAS,GAAG,IAAI,CAAC;IAEpC;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC;IAEtE;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC;IAEnE;;;;;;;;;OASG;IACH,WAAW,IAAI,SAAS,GAAG,IAAI,CAAC;IAEhC;;;;;;;;;;OAUG;IACH,UAAU,IAAI,SAAS,GAAG,IAAI,CAAC;IAE/B;;;;;;;;;OASG;IACH,kBAAkB,IAAI,SAAS,GAAG,IAAI,CAAC;IAEvC;;;;;;;;;OASG;IACH,aAAa,IAAI,SAAS,GAAG,IAAI,CAAC;IAElC;;;;;;;;;;OAUG;IACH,YAAY,IAAI,SAAS,GAAG,IAAI,CAAC;IAEjC;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,QAAQ,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC;IAE7C;;;;;;;;;OASG;IACH,eAAe,CAAC,QAAQ,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC;IAEjD;;;;;;;;;;;OAWG;IACH,WAAW,IAAI,SAAS,GAAG,IAAI,CAAC;IAEhC;;;;;;;;OAQG;IACH,uBAAuB,IAAI,SAAS,GAAG,IAAI,CAAC;IAE5C;;;;;;;;;;;OAWG;IACH,UAAU,CAAC,YAAY,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC;IAEhD;;;;;;;;OAQG;IACH,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC;IAEnD;;;;;;;;;;;OAWG;IACH,YAAY,IAAI,SAAS,GAAG,IAAI,CAAC;IAEjC;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,aAAa,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC;CACnD;AAID;;GAEG;AACH,qBAAa,KAAM,YAAW,eAAe;aAMzB,gBAAgB,EAAE,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK;IANxB,KAAK,iIAAyB;IAC9B,YAAY,4HAAqB;IACjC,eAAe,uEAAgD;gBAG7C,gBAAgB,EAAE,SAAS,EAC1B,KAAK,EAAE,mBAAmB;IAGvC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC;IA6BpH,OAAO,CAAC,QAAQ;CAgGjB;AAED,oBAAY,SAAS;IACnB,SAAS,IAAI;IACb,OAAO,IAAI;IACX,eAAe,IAAI;IACnB,uBAAuB,IAAI;IAC3B,YAAY,IAAI;IAChB,oBAAoB,IAAI;IACxB,SAAS,IAAI;IACb,WAAW,IAAI;IACf,UAAU,IAAI;IACd,kBAAkB,IAAI;IACtB,aAAa,KAAK;IAClB,YAAY,KAAK;IACjB,WAAW,KAAK;IAChB,eAAe,KAAK;IACpB,iBAAiB,KAAK;IACtB,uBAAuB,KAAK;IAC5B,gBAAgB,KAAK;IACrB,oBAAoB,KAAK;IACzB,kBAAkB,KAAK;IACvB,iBAAiB,KAAK;CACvB"}
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/general/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAA8B,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAsC,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAK3E,sBAAsB;AACtB,MAAM,WAAW,mBAAmB;IAClC;;;;OAIG;IACH,SAAS,IAAI,SAAS,CAAC;IAEvB;;;;;;;;;OASG;IACH,OAAO,IAAI,SAAS,GAAG,IAAI,CAAC;IAE5B;;;;;;;;;;OAUG;IACH,eAAe,IAAI,SAAS,GAAG,IAAI,CAAC;IAEpC;;;;;;;;;;;OAWG;IACH,iBAAiB,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC;IAEtE;;;;;;;;;;;OAWG;IACH,cAAc,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC;IAEnE;;;;;;;;;OASG;IACH,WAAW,IAAI,SAAS,GAAG,IAAI,CAAC;IAEhC;;;;;;;;;;OAUG;IACH,UAAU,IAAI,SAAS,GAAG,IAAI,CAAC;IAE/B;;;;;;;;;OASG;IACH,kBAAkB,IAAI,SAAS,GAAG,IAAI,CAAC;IAEvC;;;;;;;;;OASG;IACH,aAAa,IAAI,SAAS,GAAG,IAAI,CAAC;IAElC;;;;;;;;;;OAUG;IACH,YAAY,IAAI,SAAS,GAAG,IAAI,CAAC;IAEjC;;;;;;;;;;;OAWG;IACH,WAAW,CAAC,QAAQ,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC;IAE7C;;;;;;;;;OASG;IACH,eAAe,CAAC,QAAQ,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC;IAEjD;;;;;;;;OAQG;IACH,uBAAuB,IAAI,SAAS,GAAG,IAAI,CAAC;IAE5C;;;;;;;;OAQG;IACH,oBAAoB,CAAC,KAAK,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI,CAAC;CACpD;AAID;;GAEG;AACH,qBAAa,KAAM,YAAW,eAAe;aAMzB,gBAAgB,EAAE,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,KAAK;IANxB,KAAK,iIAAyB;IAC9B,YAAY,4HAAqB;IACjC,eAAe,uEAAgD;gBAG7C,gBAAgB,EAAE,SAAS,EAC1B,KAAK,EAAE,mBAAmB;IAGvC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC;IA6BpH,OAAO,CAAC,QAAQ;CA4EjB;AAED,oBAAY,SAAS;IACnB,SAAS,IAAI;IACb,OAAO,IAAI;IACX,eAAe,IAAI;IACnB,uBAAuB,IAAI;IAC3B,YAAY,IAAI;IAChB,oBAAoB,IAAI;IACxB,SAAS,IAAI;IACb,WAAW,IAAI;IACf,UAAU,IAAI;IACd,kBAAkB,IAAI;IACtB,aAAa,KAAK;IAClB,YAAY,KAAK;IACjB,WAAW,KAAK;IAChB,eAAe,KAAK;IACpB,uBAAuB,KAAK;IAC5B,oBAAoB,KAAK;CAC1B"}
@@ -1,7 +1,6 @@
1
1
  import { minU64, tryAsU64 } from "#@typeberry/numbers";
2
2
  import { PvmExecution, traceRegisters, tryAsHostCallIndex } from "#@typeberry/pvm-host-calls";
3
3
  import { tryAsSmallGas } from "#@typeberry/pvm-interface";
4
- import { Compatibility, GpVersion } from "#@typeberry/utils";
5
4
  import { logger } from "../logger.js";
6
5
  import { clampU64ToU32 } from "../utils.js";
7
6
  import { HostCallResult } from "./results.js";
@@ -94,30 +93,12 @@ export class Fetch {
94
93
  const workItem = regs.get(11);
95
94
  return this.fetch.workItemPayload(workItem);
96
95
  }
97
- if (Compatibility.isGreaterOrEqual(GpVersion.V0_7_1)) {
98
- if (kind === FetchKind.AllTransfersAndOperands) {
99
- return this.fetch.allTransfersAndOperands();
100
- }
101
- if (kind === FetchKind.OneTransferOrOperand) {
102
- const index = regs.get(11);
103
- return this.fetch.oneTransferOrOperand(index);
104
- }
105
- }
106
- else {
107
- if (kind === FetchKind.LegacyAllOperands) {
108
- return this.fetch.allOperands();
109
- }
110
- if (kind === FetchKind.LegacyOneOperand) {
111
- const index = regs.get(11);
112
- return this.fetch.oneOperand(index);
113
- }
114
- if (kind === FetchKind.LegacyAllTransfers) {
115
- return this.fetch.allTransfers();
116
- }
117
- if (kind === FetchKind.LegacyOneTransfer) {
118
- const index = regs.get(11);
119
- return this.fetch.oneTransfer(index);
120
- }
96
+ if (kind === FetchKind.AllTransfersAndOperands) {
97
+ return this.fetch.allTransfersAndOperands();
98
+ }
99
+ if (kind === FetchKind.OneTransferOrOperand) {
100
+ const index = regs.get(11);
101
+ return this.fetch.oneTransferOrOperand(index);
121
102
  }
122
103
  return null;
123
104
  }
@@ -138,10 +119,6 @@ export var FetchKind;
138
119
  FetchKind[FetchKind["AllWorkItems"] = 11] = "AllWorkItems";
139
120
  FetchKind[FetchKind["OneWorkItem"] = 12] = "OneWorkItem";
140
121
  FetchKind[FetchKind["WorkItemPayload"] = 13] = "WorkItemPayload";
141
- FetchKind[FetchKind["LegacyAllOperands"] = 14] = "LegacyAllOperands";
142
122
  FetchKind[FetchKind["AllTransfersAndOperands"] = 14] = "AllTransfersAndOperands";
143
- FetchKind[FetchKind["LegacyOneOperand"] = 15] = "LegacyOneOperand";
144
123
  FetchKind[FetchKind["OneTransferOrOperand"] = 15] = "OneTransferOrOperand";
145
- FetchKind[FetchKind["LegacyAllTransfers"] = 16] = "LegacyAllTransfers";
146
- FetchKind[FetchKind["LegacyOneTransfer"] = 17] = "LegacyOneTransfer";
147
124
  })(FetchKind || (FetchKind = {}));
@@ -7,14 +7,12 @@ import { HostCallMemory, HostCallRegisters, PvmExecution } from "#@typeberry/pvm
7
7
  import { tryAsGas } from "#@typeberry/pvm-interface";
8
8
  import { gasCounter, MemoryBuilder, tryAsMemoryIndex, tryAsSbrkIndex } from "#@typeberry/pvm-interpreter";
9
9
  import { PAGE_SIZE } from "#@typeberry/pvm-interpreter/memory/memory-consts.js";
10
- import { Compatibility, GpVersion } from "#@typeberry/utils";
11
10
  import { emptyRegistersBuffer } from "../utils.js";
12
11
  import { Fetch, FetchKind } from "./fetch.js";
13
12
  import { HostCallResult } from "./results.js";
14
13
  describe("Fetch", () => {
15
14
  const IN_OUT_REG = 7;
16
15
  const gas = gasCounter(tryAsGas(0));
17
- const [itPre071, itPost071] = Compatibility.isGreaterOrEqual(GpVersion.V0_7_1) ? [it.skip, it] : [it, it.skip];
18
16
  it("should return PvmExecution.Panic if memory write fails", async () => {
19
17
  const currentServiceId = tryAsServiceId(10_000);
20
18
  const blob = BytesBlob.blobFromNumbers([1, 2, 3]);
@@ -277,61 +275,7 @@ describe("Fetch", () => {
277
275
  assert.deepStrictEqual(readBack(), blob.raw);
278
276
  assert.deepStrictEqual(fetchMock.workItemPayloadData, [[workItem]]);
279
277
  });
280
- itPre071("should fetch all operands and write result to memory", async () => {
281
- const currentServiceId = tryAsServiceId(10_000);
282
- const blob = BytesBlob.blobFromNumbers([101, 102, 103]);
283
- const fetchMock = new FetchMock();
284
- fetchMock.allOperandsResponse = blob;
285
- const { registers, memory, readBack, expectedLength } = prepareRegsAndMemory(blob, FetchKind.LegacyAllOperands);
286
- const fetch = new Fetch(currentServiceId, fetchMock);
287
- const result = await fetch.execute(gas, registers, memory);
288
- assert.strictEqual(result, undefined);
289
- assert.deepStrictEqual(registers.get(IN_OUT_REG), expectedLength);
290
- assert.deepStrictEqual(readBack(), blob.raw);
291
- });
292
- itPre071("should fetch one operand and write result to memory", async () => {
293
- const currentServiceId = tryAsServiceId(10_000);
294
- const blob = BytesBlob.blobFromNumbers([115, 116, 117]);
295
- const fetchMock = new FetchMock();
296
- const index = tryAsU64(9);
297
- fetchMock.oneOperandResponses.set(index.toString(), blob);
298
- const { registers, memory, readBack, expectedLength } = prepareRegsAndMemory(blob, FetchKind.LegacyOneOperand);
299
- registers.set(11, index);
300
- const fetch = new Fetch(currentServiceId, fetchMock);
301
- const result = await fetch.execute(gas, registers, memory);
302
- assert.strictEqual(result, undefined);
303
- assert.deepStrictEqual(registers.get(IN_OUT_REG), expectedLength);
304
- assert.deepStrictEqual(readBack(), blob.raw);
305
- assert.deepStrictEqual(fetchMock.oneOperandData, [[index]]);
306
- });
307
- itPre071("should fetch all transfers and write result to memory", async () => {
308
- const currentServiceId = tryAsServiceId(10_000);
309
- const blob = BytesBlob.blobFromNumbers([130, 131, 132]);
310
- const fetchMock = new FetchMock();
311
- fetchMock.allTransfersResponse = blob;
312
- const { registers, memory, readBack, expectedLength } = prepareRegsAndMemory(blob, FetchKind.LegacyAllTransfers);
313
- const fetch = new Fetch(currentServiceId, fetchMock);
314
- const result = await fetch.execute(gas, registers, memory);
315
- assert.strictEqual(result, undefined);
316
- assert.deepStrictEqual(registers.get(IN_OUT_REG), expectedLength);
317
- assert.deepStrictEqual(readBack(), blob.raw);
318
- });
319
- itPre071("should fetch one transfer and write result to memory", async () => {
320
- const currentServiceId = tryAsServiceId(10_000);
321
- const blob = BytesBlob.blobFromNumbers([140, 141, 142]);
322
- const fetchMock = new FetchMock();
323
- const index = tryAsU64(2);
324
- fetchMock.oneTransferResponses.set(index.toString(), blob);
325
- const { registers, memory, readBack, expectedLength } = prepareRegsAndMemory(blob, FetchKind.LegacyOneTransfer);
326
- registers.set(11, index);
327
- const fetch = new Fetch(currentServiceId, fetchMock);
328
- const result = await fetch.execute(gas, registers, memory);
329
- assert.strictEqual(result, undefined);
330
- assert.deepStrictEqual(registers.get(IN_OUT_REG), expectedLength);
331
- assert.deepStrictEqual(readBack(), blob.raw);
332
- assert.deepStrictEqual(fetchMock.oneTransferData, [[index]]);
333
- });
334
- itPost071("should fetch all transfers and operands and write result to memory", async () => {
278
+ it("should fetch all transfers and operands and write result to memory", async () => {
335
279
  const currentServiceId = tryAsServiceId(10_000);
336
280
  const blob = BytesBlob.blobFromNumbers([101, 102, 103]);
337
281
  const fetchMock = new FetchMock();
@@ -343,7 +287,7 @@ describe("Fetch", () => {
343
287
  assert.deepStrictEqual(registers.get(IN_OUT_REG), expectedLength);
344
288
  assert.deepStrictEqual(readBack(), blob.raw);
345
289
  });
346
- itPost071("should fetch one operand or transfer and write result to memory", async () => {
290
+ it("should fetch one operand or transfer and write result to memory", async () => {
347
291
  const currentServiceId = tryAsServiceId(10_000);
348
292
  const blob = BytesBlob.blobFromNumbers([115, 116, 117]);
349
293
  const fetchMock = new FetchMock();
@@ -1 +1 @@
1
- {"version":3,"file":"peers.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/jamnp-s/peers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGhF,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,KAAK,QAAQ,GAAG;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;IAErB,iDAAiD;IACjD,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IAErB,cAAc,EAAE,eAAe,CAAC;IAEhC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,CAAC,CAAC;CACZ,CAAC;AAWF;;;;;;;GAOG;AACH,qBAAa,WAAW;IAIV,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;gBAEhC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC;IAWnD,qDAAqD;IACrD,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAInD,yDAAyD;IACzD,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS;IAI1D,sDAAsD;IACtD,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC;IAM7E,sDAAsD;IACtD,YAAY;IAIZ,iDAAiD;IAChD,iBAAiB;IAQlB,oDAAoD;IACpD,OAAO,CAAC,UAAU;IAyBlB,8EAA8E;YAChE,iBAAiB;IA0D/B;;;;;OAKG;IACH,kBAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE;CAezC"}
1
+ {"version":3,"file":"peers.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/jamnp-s/peers.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGhF,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,KAAK,QAAQ,GAAG;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,WAAW,CAAC;IAErB,iDAAiD;IACjD,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IAErB,cAAc,EAAE,eAAe,CAAC;IAEhC,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,OAAO,CAAC,CAAC,IAAI;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,CAAC,CAAC;CACZ,CAAC;AAWF;;;;;;;GAOG;AACH,qBAAa,WAAW;IAIV,OAAO,CAAC,QAAQ,CAAC,OAAO;IAHpC,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;gBAEhC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC;IAWnD,qDAAqD;IACrD,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC;IAInD,yDAAyD;IACzD,UAAU,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS;IAI1D,sDAAsD;IACtD,WAAW,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,SAAS,KAAK,CAAC;IAM7E,sDAAsD;IACtD,YAAY;IAIZ,iDAAiD;IAChD,iBAAiB;IAQlB,oDAAoD;IACpD,OAAO,CAAC,UAAU;IAyBlB,8EAA8E;YAChE,iBAAiB;IAqE/B;;;;;OAKG;IACH,kBAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE;CAezC"}
@@ -90,6 +90,8 @@ export class Connections {
90
90
  return;
91
91
  }
92
92
  if (markAsDisconnected) {
93
+ // abort any existing reconnect task
94
+ meta.backgroundTask.abort();
93
95
  // mark the peer as disconnected
94
96
  meta.peerRef = null;
95
97
  meta.backgroundTask = new AbortController();
@@ -120,6 +122,10 @@ export class Connections {
120
122
  if (meta.peerRef !== null) {
121
123
  return;
122
124
  }
125
+ // also check via network.peers to handle race with incoming connections
126
+ if (this.network.peers.isConnected(id)) {
127
+ return;
128
+ }
123
129
  // attempt to connect to the peer
124
130
  try {
125
131
  logger.trace `[${id}] Attempting to connect to peer at ${meta.address.host}:${meta.address.port}.`;
@@ -130,6 +136,10 @@ export class Connections {
130
136
  if (signal.aborted) {
131
137
  return;
132
138
  }
139
+ // check if we got connected via incoming connection while dialing
140
+ if (this.network.peers.isConnected(id)) {
141
+ return;
142
+ }
133
143
  // failing to connect, will retry.
134
144
  logger.trace `[${id}] Failure reason: ${e}`;
135
145
  logger.trace `[${id}] attempt failed. Will retry (${meta.currentRetry}/${meta.maxRetries})`;
@@ -44,7 +44,7 @@ export declare class ServerHandler implements StreamHandler<typeof STREAM_KIND>
44
44
  kind: 128 & import("@typeberry/numbers").WithBytesRepresentation<1>;
45
45
  constructor(chainSpec: ChainSpec, getBlockSequence: (streamId: StreamId, hash: HeaderHash, direction: Direction, maxBlocks: U32) => BlockView[]);
46
46
  onStreamMessage(sender: StreamMessageSender, message: BytesBlob): void;
47
- onClose(): void;
47
+ onClose(_streamId: StreamId): void;
48
48
  }
49
49
  export declare class ClientHandler implements StreamHandler<typeof STREAM_KIND> {
50
50
  private readonly chainSpec;
@@ -1 +1 @@
1
- {"version":3,"file":"ce-128-block-request.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jamnp-s/protocol/ce-128-block-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAW,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAE3G;;;;GAIG;AAEH,eAAO,MAAM,WAAW,+DAAuB,CAAC;AAEhD,oBAAY,SAAS;IACnB;;;;OAIG;IACH,OAAO,IAAI;IACX;;;;OAIG;IACH,QAAQ,IAAI;CACb;AAED,qBAAa,YAAa,SAAQ,SAAS;aAwBvB,UAAU,EAAE,UAAU;aACtB,SAAS,EAAE,SAAS;aACpB,SAAS,EAAE,GAAG;IAzBhC,MAAM,CAAC,KAAK;;;;QAgBT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,WAAW,CAAC,YAAY,CAAC;IAI7E,OAAO;CAOR;AAID,qBAAa,aAAc,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IAInE,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAJnC,IAAI,gEAAe;gBAGA,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,CACjC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,GAAG,KACX,SAAS,EAAE;IAGlB,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IAYtE,OAAO;CACR;AAED,qBAAa,aAAc,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IAMzD,OAAO,CAAC,QAAQ,CAAC,SAAS;IALtC,IAAI,gEAAe;IAEnB,OAAO,CAAC,gBAAgB,CAA0D;IAClF,OAAO,CAAC,gBAAgB,CAAwD;gBAEnD,SAAS,EAAE,SAAS;IAEjD,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IAUtE,OAAO,CAAC,QAAQ,EAAE,QAAQ;IAOpB,oBAAoB,CACxB,MAAM,EAAE,mBAAmB,EAC3B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,GAAG,GACb,OAAO,CAAC,SAAS,EAAE,CAAC;CAexB;AAED,0CAA0C;AAC1C,oBAAY,kBAAkB;IAC5B,+CAA+C;IAC/C,YAAY,IAAI;IAChB,iFAAiF;IACjF,WAAW,IAAI;CAChB;AAED,sEAAsE;AACtE,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,QAAQ,EAChB,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,GAAG,GACT,MAAM,CAAC,SAAS,EAAE,EAAE,kBAAkB,CAAC,CAmEzC"}
1
+ {"version":3,"file":"ce-128-block-request.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jamnp-s/protocol/ce-128-block-request.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAGpD,OAAO,EAAW,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAE3G;;;;GAIG;AAEH,eAAO,MAAM,WAAW,+DAAuB,CAAC;AAEhD,oBAAY,SAAS;IACnB;;;;OAIG;IACH,OAAO,IAAI;IACX;;;;OAIG;IACH,QAAQ,IAAI;CACb;AAED,qBAAa,YAAa,SAAQ,SAAS;aAwBvB,UAAU,EAAE,UAAU;aACtB,SAAS,EAAE,SAAS;aACpB,SAAS,EAAE,GAAG;IAzBhC,MAAM,CAAC,KAAK;;;;QAgBT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,WAAW,CAAC,YAAY,CAAC;IAI7E,OAAO;CAOR;AAID,qBAAa,aAAc,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IAInE,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAJnC,IAAI,gEAAe;gBAGA,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,CACjC,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,UAAU,EAChB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,GAAG,KACX,SAAS,EAAE;IAGlB,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IAYtE,OAAO,CAAC,SAAS,EAAE,QAAQ;CAC5B;AAED,qBAAa,aAAc,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IAMzD,OAAO,CAAC,QAAQ,CAAC,SAAS;IALtC,IAAI,gEAAe;IAEnB,OAAO,CAAC,gBAAgB,CAA0D;IAClF,OAAO,CAAC,gBAAgB,CAAwD;gBAEnD,SAAS,EAAE,SAAS;IAEjD,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IAWtE,OAAO,CAAC,QAAQ,EAAE,QAAQ;IAOpB,oBAAoB,CACxB,MAAM,EAAE,mBAAmB,EAC3B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,SAAS,EAAE,GAAG,GACb,OAAO,CAAC,SAAS,EAAE,CAAC;CAgBxB;AAED,0CAA0C;AAC1C,oBAAY,kBAAkB;IAC5B,+CAA+C;IAC/C,YAAY,IAAI;IAChB,iFAAiF;IACjF,WAAW,IAAI;CAChB;AAED,sEAAsE;AACtE,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,QAAQ,EAChB,SAAS,EAAE,UAAU,EACrB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,GAAG,GACT,MAAM,CAAC,SAAS,EAAE,EAAE,kBAAkB,CAAC,CAmEzC"}
@@ -71,7 +71,7 @@ export class ServerHandler {
71
71
  sender.bufferAndSend(Encoder.encodeObject(codec.sequenceFixLen(Block.Codec.View, blocks.length), blocks, this.chainSpec));
72
72
  sender.close();
73
73
  }
74
- onClose() { }
74
+ onClose(_streamId) { }
75
75
  }
76
76
  export class ClientHandler {
77
77
  chainSpec;
@@ -82,13 +82,14 @@ export class ClientHandler {
82
82
  this.chainSpec = chainSpec;
83
83
  }
84
84
  onStreamMessage(sender, message) {
85
- if (!this.promiseResolvers.has(sender.streamId)) {
85
+ const { streamId } = sender;
86
+ if (!this.promiseResolvers.has(streamId)) {
86
87
  throw new Error("Received an unexpected message from the server.");
87
88
  }
88
89
  const blocks = Decoder.decodeSequence(Block.Codec.View, message, this.chainSpec);
89
- logger.log `[${sender.streamId}] Server returned ${blocks.length} blocks in ${message.length} bytes of data.`;
90
- this.promiseResolvers.get(sender.streamId)?.(blocks);
91
- this.promiseResolvers.delete(sender.streamId);
90
+ logger.log `[${streamId}] Server returned ${blocks.length} blocks in ${message.length} bytes of data.`;
91
+ this.promiseResolvers.get(streamId)?.(blocks);
92
+ this.promiseResolvers.delete(streamId);
92
93
  }
93
94
  onClose(streamId) {
94
95
  this.promiseRejectors.get(streamId)?.("Stream closed.");
@@ -96,12 +97,13 @@ export class ClientHandler {
96
97
  this.promiseRejectors.delete(streamId);
97
98
  }
98
99
  async requestBlockSequence(sender, headerHash, direction, maxBlocks) {
99
- if (this.promiseResolvers.has(sender.streamId)) {
100
+ const { streamId } = sender;
101
+ if (this.promiseResolvers.has(streamId)) {
100
102
  throw new Error("It is disallowed to use the same stream for multiple requests.");
101
103
  }
102
104
  return new Promise((resolve, reject) => {
103
- this.promiseResolvers.set(sender.streamId, resolve);
104
- this.promiseRejectors.set(sender.streamId, reject);
105
+ this.promiseResolvers.set(streamId, resolve);
106
+ this.promiseRejectors.set(streamId, reject);
105
107
  sender.bufferAndSend(Encoder.encodeObject(BlockRequest.Codec, BlockRequest.create({ headerHash, direction, maxBlocks })));
106
108
  sender.close();
107
109
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ce-129-state-request.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jamnp-s/protocol/ce-129-state-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AAG7E,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAE3G;;;;GAIG;AAEH,eAAO,MAAM,WAAW,+DAAuB,CAAC;AAGhD,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAO7C,qBAAa,YAAa,SAAQ,SAAS;aAWvB,GAAG,EAAE,GAAG;aACR,KAAK,EAAE,SAAS;IAXlC,MAAM,CAAC,KAAK;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,WAAW,CAAC,YAAY,CAAC;gBAKrC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,SAAS;CAInC;AAED,qBAAa,aAAc,SAAQ,SAAS;aASN,aAAa,EAAE,YAAY,EAAE;IARjE,MAAM,CAAC,KAAK;;;;;QAET;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,EAAE,WAAW,CAAC,aAAa,CAAC;IAI3D,OAAO;CAGR;AAED,qBAAa,YAAa,SAAQ,SAAS;aAavB,UAAU,EAAE,UAAU;aACtB,QAAQ,EAAE,GAAG;aACb,MAAM,EAAE,GAAG;aACX,WAAW,EAAE,GAAG;IAflC,MAAM,CAAC,KAAK;;;;;QAKT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,YAAY,CAAC;IAItF,OAAO;CAQR;AAID,qBAAa,OAAQ,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IAO7D,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IARpC,IAAI,gEAAe;IAEnB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwC;IACtE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4D;gBAGpE,QAAQ,GAAE,OAAe,EACzB,gBAAgB,CAAC,GAAE,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,QAAQ,EAAE,aAAA,EAC/E,gBAAgB,CAAC,GAAE,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,YAAY,EAAE,aAAA;IAOtG,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IA+BtE,OAAO,CAAC,QAAQ,EAAE,QAAQ;IAK1B,aAAa,CACX,MAAM,EAAE,mBAAmB,EAC3B,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,EAClC,UAAU,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI;CAc7C"}
1
+ {"version":3,"file":"ce-129-state-request.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jamnp-s/protocol/ce-129-state-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,kBAAkB,CAAC;AAG7E,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,QAAQ,EAAE,KAAK,mBAAmB,EAAmB,MAAM,aAAa,CAAC;AAE3G;;;;GAIG;AAEH,eAAO,MAAM,WAAW,+DAAuB,CAAC;AAGhD,MAAM,MAAM,GAAG,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAO7C,qBAAa,YAAa,SAAQ,SAAS;aAWvB,GAAG,EAAE,GAAG;aACR,KAAK,EAAE,SAAS;IAXlC,MAAM,CAAC,KAAK;;;QAGT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,WAAW,CAAC,YAAY,CAAC;gBAKrC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,SAAS;CAInC;AAED,qBAAa,aAAc,SAAQ,SAAS;aASN,aAAa,EAAE,YAAY,EAAE;IARjE,MAAM,CAAC,KAAK;;;;;QAET;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,EAAE,EAAE,WAAW,CAAC,aAAa,CAAC;IAI3D,OAAO;CAGR;AAED,qBAAa,YAAa,SAAQ,SAAS;aAavB,UAAU,EAAE,UAAU;aACtB,QAAQ,EAAE,GAAG;aACb,MAAM,EAAE,GAAG;aACX,WAAW,EAAE,GAAG;IAflC,MAAM,CAAC,KAAK;;;;;QAKT;IAEH,MAAM,CAAC,MAAM,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,WAAW,CAAC,YAAY,CAAC;IAItF,OAAO;CAQR;AAID,qBAAa,OAAQ,YAAW,aAAa,CAAC,OAAO,WAAW,CAAC;IAO7D,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IARpC,IAAI,gEAAe;IAEnB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwC;IACtE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA4D;gBAGpE,QAAQ,GAAE,OAAe,EACzB,gBAAgB,CAAC,GAAE,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,QAAQ,EAAE,aAAA,EAC/E,gBAAgB,CAAC,GAAE,CAAC,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,KAAK,YAAY,EAAE,aAAA;IAOtG,eAAe,CAAC,MAAM,EAAE,mBAAmB,EAAE,OAAO,EAAE,SAAS,GAAG,IAAI;IAgCtE,OAAO,CAAC,QAAQ,EAAE,QAAQ;IAK1B,aAAa,CACX,MAAM,EAAE,mBAAmB,EAC3B,UAAU,EAAE,UAAU,EACtB,QAAQ,EAAE,YAAY,CAAC,UAAU,CAAC,EAClC,UAAU,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI;CAe7C"}
@@ -82,37 +82,39 @@ export class Handler {
82
82
  }
83
83
  }
84
84
  onStreamMessage(sender, message) {
85
+ const { streamId } = sender;
85
86
  if (this.isServer) {
86
- logger.info `[${sender.streamId}][server]: Received request.`;
87
+ logger.info `[${streamId}][server]: Received request.`;
87
88
  if (this.getBoundaryNodes === undefined || this.getKeyValuePairs === undefined) {
88
89
  return;
89
90
  }
90
91
  const request = Decoder.decodeObject(StateRequest.Codec, message);
91
92
  const boundaryNodes = this.getBoundaryNodes(request.headerHash, request.startKey, request.endKey);
92
93
  const keyValuePairs = this.getKeyValuePairs(request.headerHash, request.startKey, request.endKey);
93
- logger.info `[${sender.streamId}][server]: <-- responding with boundary nodes and key value pairs.`;
94
+ logger.info `[${streamId}][server]: <-- responding with boundary nodes and key value pairs.`;
94
95
  sender.bufferAndSend(Encoder.encodeObject(codec.sequenceVarLen(trieNodeCodec), boundaryNodes));
95
96
  sender.bufferAndSend(Encoder.encodeObject(StateResponse.Codec, StateResponse.create({ keyValuePairs })));
96
97
  sender.close();
97
98
  return;
98
99
  }
99
- if (!this.boundaryNodes.has(sender.streamId)) {
100
- this.boundaryNodes.set(sender.streamId, Decoder.decodeObject(codec.sequenceVarLen(trieNodeCodec), message));
101
- logger.info `[${sender.streamId}][client]: Received boundary nodes.`;
100
+ if (!this.boundaryNodes.has(streamId)) {
101
+ this.boundaryNodes.set(streamId, Decoder.decodeObject(codec.sequenceVarLen(trieNodeCodec), message));
102
+ logger.info `[${streamId}][client]: Received boundary nodes.`;
102
103
  return;
103
104
  }
104
- this.onResponse.get(sender.streamId)?.(Decoder.decodeObject(StateResponse.Codec, message));
105
- logger.info `[${sender.streamId}][client]: Received state values.`;
105
+ this.onResponse.get(streamId)?.(Decoder.decodeObject(StateResponse.Codec, message));
106
+ logger.info `[${streamId}][client]: Received state values.`;
106
107
  }
107
108
  onClose(streamId) {
108
109
  this.boundaryNodes.delete(streamId);
109
110
  this.onResponse.delete(streamId);
110
111
  }
111
112
  getStateByKey(sender, headerHash, startKey, onResponse) {
112
- if (this.onResponse.has(sender.streamId)) {
113
+ const { streamId } = sender;
114
+ if (this.onResponse.has(streamId)) {
113
115
  throw new Error("It is disallowed to use the same stream for multiple requests.");
114
116
  }
115
- this.onResponse.set(sender.streamId, onResponse);
117
+ this.onResponse.set(streamId, onResponse);
116
118
  sender.bufferAndSend(Encoder.encodeObject(StateRequest.Codec, StateRequest.create({ headerHash, startKey, endKey: startKey, maximumSize: tryAsU32(4096) })));
117
119
  sender.close();
118
120
  }
@@ -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";
@@ -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
  }