@typeberry/lib 0.5.10 → 0.5.11-10b197e

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 (496) hide show
  1. package/README.md +2 -2
  2. package/bin/lib/examples/pvm-usage.test.js +2 -2
  3. package/package.json +1 -1
  4. package/packages/core/codec/descriptor.js +1 -1
  5. package/packages/core/codec/descriptors.js +7 -4
  6. package/packages/core/codec/encoder.d.ts +1 -1
  7. package/packages/core/codec/encoder.d.ts.map +1 -1
  8. package/packages/core/codec/encoder.js +3 -2
  9. package/packages/core/codec/index.test.js +1 -1
  10. package/packages/core/codec/skip.d.ts +2 -1
  11. package/packages/core/codec/skip.d.ts.map +1 -1
  12. package/packages/core/codec/skip.js +3 -0
  13. package/packages/core/codec/view.js +2 -2
  14. package/packages/core/collections/multi-map.d.ts +2 -1
  15. package/packages/core/collections/multi-map.d.ts.map +1 -1
  16. package/packages/core/collections/multi-map.js +3 -0
  17. package/packages/core/collections/multi-map.test.js +2 -2
  18. package/packages/core/concurrent/parent.js +4 -1
  19. package/packages/core/crypto/ed25519.d.ts +2 -5
  20. package/packages/core/crypto/ed25519.d.ts.map +1 -1
  21. package/packages/core/crypto/ed25519.js +4 -1
  22. package/packages/core/hash/hash.d.ts +4 -2
  23. package/packages/core/hash/hash.d.ts.map +1 -1
  24. package/packages/core/hash/hash.js +6 -1
  25. package/packages/core/networking/quic-network.d.ts +3 -2
  26. package/packages/core/networking/quic-network.d.ts.map +1 -1
  27. package/packages/core/networking/quic-network.js +3 -0
  28. package/packages/core/networking/quic-peer.d.ts +2 -1
  29. package/packages/core/networking/quic-peer.d.ts.map +1 -1
  30. package/packages/core/networking/quic-peer.js +5 -2
  31. package/packages/core/networking/quic-stream.d.ts +2 -1
  32. package/packages/core/networking/quic-stream.d.ts.map +1 -1
  33. package/packages/core/networking/quic-stream.js +3 -0
  34. package/packages/core/networking/setup.js +2 -2
  35. package/packages/core/pvm-host-calls/bin.js +2 -2
  36. package/packages/core/pvm-host-calls/ecalli-trace-logger.d.ts +5 -0
  37. package/packages/core/pvm-host-calls/ecalli-trace-logger.d.ts.map +1 -1
  38. package/packages/core/pvm-host-calls/ecalli-trace-logger.js +8 -1
  39. package/packages/core/pvm-host-calls/ecalli-trace-logger.test.js +1 -1
  40. package/packages/core/pvm-host-calls/host-call-memory.d.ts +2 -1
  41. package/packages/core/pvm-host-calls/host-call-memory.d.ts.map +1 -1
  42. package/packages/core/pvm-host-calls/host-call-memory.js +3 -0
  43. package/packages/core/pvm-host-calls/host-call-memory.test.js +1 -1
  44. package/packages/core/pvm-host-calls/host-call-registers.d.ts +5 -1
  45. package/packages/core/pvm-host-calls/host-call-registers.d.ts.map +1 -1
  46. package/packages/core/pvm-host-calls/host-call-registers.js +11 -1
  47. package/packages/core/pvm-host-calls/host-call-registers.test.js +2 -2
  48. package/packages/core/pvm-host-calls/host-calls-executor.d.ts +2 -1
  49. package/packages/core/pvm-host-calls/host-calls-executor.d.ts.map +1 -1
  50. package/packages/core/pvm-host-calls/host-calls-executor.js +5 -2
  51. package/packages/core/pvm-host-calls/host-calls.d.ts +4 -2
  52. package/packages/core/pvm-host-calls/host-calls.d.ts.map +1 -1
  53. package/packages/core/pvm-host-calls/host-calls.js +9 -4
  54. package/packages/core/pvm-host-calls/pvm-instance-manager.js +1 -1
  55. package/packages/core/pvm-interface/pvm.d.ts +2 -0
  56. package/packages/core/pvm-interface/pvm.d.ts.map +1 -1
  57. package/packages/core/pvm-interpreter/args-decoder/args-decoder.js +1 -1
  58. package/packages/core/pvm-interpreter/args-decoder/args-decoder.test.js +3 -3
  59. package/packages/core/pvm-interpreter/args-decoder/args-decoding-results.js +11 -11
  60. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts +2 -1
  61. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts.map +1 -1
  62. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.js +3 -0
  63. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.test.js +2 -2
  64. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts +2 -1
  65. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts.map +1 -1
  66. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.js +3 -0
  67. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.test.js +26 -26
  68. package/packages/core/pvm-interpreter/basic-blocks/basic-blocks.test.js +8 -8
  69. package/packages/core/pvm-interpreter/bin.js +1 -1
  70. package/packages/core/pvm-interpreter/debugger-adapter.d.ts +2 -1
  71. package/packages/core/pvm-interpreter/debugger-adapter.d.ts.map +1 -1
  72. package/packages/core/pvm-interpreter/debugger-adapter.js +6 -3
  73. package/packages/core/pvm-interpreter/gas.js +4 -1
  74. package/packages/core/pvm-interpreter/interpreter.d.ts +2 -1
  75. package/packages/core/pvm-interpreter/interpreter.d.ts.map +1 -1
  76. package/packages/core/pvm-interpreter/interpreter.js +19 -16
  77. package/packages/core/pvm-interpreter/memory/memory-builder.js +2 -2
  78. package/packages/core/pvm-interpreter/memory/memory-builder.test.js +7 -7
  79. package/packages/core/pvm-interpreter/memory/memory.d.ts +2 -1
  80. package/packages/core/pvm-interpreter/memory/memory.d.ts.map +1 -1
  81. package/packages/core/pvm-interpreter/memory/memory.js +4 -1
  82. package/packages/core/pvm-interpreter/memory/memory.test.js +31 -31
  83. package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts +2 -1
  84. package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts.map +1 -1
  85. package/packages/core/pvm-interpreter/memory/pages/readable-page.js +3 -0
  86. package/packages/core/pvm-interpreter/memory/pages/readable-page.test.js +3 -3
  87. package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts +2 -1
  88. package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts.map +1 -1
  89. package/packages/core/pvm-interpreter/memory/pages/writeable-page.js +3 -0
  90. package/packages/core/pvm-interpreter/memory/pages/writeable-page.test.js +4 -4
  91. package/packages/core/pvm-interpreter/ops/bit-ops.d.ts +2 -1
  92. package/packages/core/pvm-interpreter/ops/bit-ops.d.ts.map +1 -1
  93. package/packages/core/pvm-interpreter/ops/bit-ops.js +3 -0
  94. package/packages/core/pvm-interpreter/ops/bit-ops.test.js +3 -3
  95. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts +2 -1
  96. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts.map +1 -1
  97. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.js +3 -0
  98. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.test.js +5 -5
  99. package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts +2 -1
  100. package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts.map +1 -1
  101. package/packages/core/pvm-interpreter/ops/boolean-ops.js +3 -0
  102. package/packages/core/pvm-interpreter/ops/boolean-ops.test.js +3 -3
  103. package/packages/core/pvm-interpreter/ops/branch-ops.d.ts +2 -1
  104. package/packages/core/pvm-interpreter/ops/branch-ops.d.ts.map +1 -1
  105. package/packages/core/pvm-interpreter/ops/branch-ops.js +3 -0
  106. package/packages/core/pvm-interpreter/ops/branch-ops.test.js +4 -4
  107. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts +2 -1
  108. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts.map +1 -1
  109. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.js +3 -0
  110. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.test.js +5 -5
  111. package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts +2 -1
  112. package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts.map +1 -1
  113. package/packages/core/pvm-interpreter/ops/host-call-ops.js +3 -0
  114. package/packages/core/pvm-interpreter/ops/host-call-ops.test.js +2 -2
  115. package/packages/core/pvm-interpreter/ops/load-ops.d.ts +2 -1
  116. package/packages/core/pvm-interpreter/ops/load-ops.d.ts.map +1 -1
  117. package/packages/core/pvm-interpreter/ops/load-ops.js +3 -0
  118. package/packages/core/pvm-interpreter/ops/load-ops.test.js +10 -10
  119. package/packages/core/pvm-interpreter/ops/math-ops.d.ts +2 -1
  120. package/packages/core/pvm-interpreter/ops/math-ops.d.ts.map +1 -1
  121. package/packages/core/pvm-interpreter/ops/math-ops.js +3 -0
  122. package/packages/core/pvm-interpreter/ops/math-ops.test.js +3 -3
  123. package/packages/core/pvm-interpreter/ops/memory-ops.d.ts +2 -1
  124. package/packages/core/pvm-interpreter/ops/memory-ops.d.ts.map +1 -1
  125. package/packages/core/pvm-interpreter/ops/memory-ops.js +3 -0
  126. package/packages/core/pvm-interpreter/ops/memory-ops.test.js +3 -3
  127. package/packages/core/pvm-interpreter/ops/move-ops.d.ts +2 -1
  128. package/packages/core/pvm-interpreter/ops/move-ops.d.ts.map +1 -1
  129. package/packages/core/pvm-interpreter/ops/move-ops.js +3 -0
  130. package/packages/core/pvm-interpreter/ops/move-ops.test.js +3 -3
  131. package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts +2 -1
  132. package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts.map +1 -1
  133. package/packages/core/pvm-interpreter/ops/no-args-ops.js +3 -0
  134. package/packages/core/pvm-interpreter/ops/no-args-ops.test.js +2 -2
  135. package/packages/core/pvm-interpreter/ops/shift-ops.d.ts +2 -1
  136. package/packages/core/pvm-interpreter/ops/shift-ops.d.ts.map +1 -1
  137. package/packages/core/pvm-interpreter/ops/shift-ops.js +3 -0
  138. package/packages/core/pvm-interpreter/ops/shift-ops.test.js +3 -3
  139. package/packages/core/pvm-interpreter/ops/store-ops.d.ts +2 -1
  140. package/packages/core/pvm-interpreter/ops/store-ops.d.ts.map +1 -1
  141. package/packages/core/pvm-interpreter/ops/store-ops.js +3 -0
  142. package/packages/core/pvm-interpreter/ops/store-ops.test.js +7 -7
  143. package/packages/core/pvm-interpreter/ops-dispatchers/no-args-dispatcher.test.js +1 -1
  144. package/packages/core/pvm-interpreter/ops-dispatchers/one-imm-dispatcher.test.js +4 -4
  145. package/packages/core/pvm-interpreter/ops-dispatchers/one-offset-dispatcher.test.js +2 -2
  146. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-ext-imm-dispatcher.test.js +4 -4
  147. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-dispatcher.test.js +7 -7
  148. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-one-offset-dispatcher.test.js +10 -10
  149. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-two-imms-dispatcher.test.js +5 -5
  150. package/packages/core/pvm-interpreter/ops-dispatchers/three-regs-dispatcher.test.js +7 -7
  151. package/packages/core/pvm-interpreter/ops-dispatchers/two-imms-dispatcher.test.js +5 -5
  152. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-dispatcher.test.js +6 -6
  153. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-imm-dispatcher.test.js +11 -11
  154. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-offset-dispatcher.test.js +2 -2
  155. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-two-imms-dispatcher.test.js +14 -14
  156. package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts +5 -2
  157. package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts.map +1 -1
  158. package/packages/core/pvm-interpreter/program-decoder/jump-table.js +9 -4
  159. package/packages/core/pvm-interpreter/program-decoder/jump-table.test.js +6 -6
  160. package/packages/core/pvm-interpreter/program-decoder/mask.d.ts +2 -1
  161. package/packages/core/pvm-interpreter/program-decoder/mask.d.ts.map +1 -1
  162. package/packages/core/pvm-interpreter/program-decoder/mask.js +3 -0
  163. package/packages/core/pvm-interpreter/program-decoder/mask.test.js +10 -10
  164. package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts +2 -1
  165. package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts.map +1 -1
  166. package/packages/core/pvm-interpreter/program-decoder/program-decoder.js +6 -3
  167. package/packages/core/pvm-interpreter/program-decoder/program-decoder.test.js +5 -5
  168. package/packages/core/pvm-interpreter/program.js +3 -3
  169. package/packages/core/pvm-interpreter/registers.d.ts +5 -2
  170. package/packages/core/pvm-interpreter/registers.d.ts.map +1 -1
  171. package/packages/core/pvm-interpreter/registers.js +10 -6
  172. package/packages/core/pvm-interpreter/registers.test.js +10 -10
  173. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts +6 -3
  174. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts.map +1 -1
  175. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.js +11 -2
  176. package/packages/core/pvm-interpreter-ananas/index.d.ts +6 -3
  177. package/packages/core/pvm-interpreter-ananas/index.d.ts.map +1 -1
  178. package/packages/core/pvm-interpreter-ananas/index.js +12 -3
  179. package/packages/core/trie/nodes.d.ts +7 -2
  180. package/packages/core/trie/nodes.d.ts.map +1 -1
  181. package/packages/core/trie/nodes.js +20 -11
  182. package/packages/core/trie/nodesDb.d.ts +3 -1
  183. package/packages/core/trie/nodesDb.d.ts.map +1 -1
  184. package/packages/core/trie/nodesDb.js +6 -0
  185. package/packages/core/trie/trie.js +2 -2
  186. package/packages/extensions/ipc/index.js +5 -2
  187. package/packages/extensions/ipc/jamnp/handler.d.ts +4 -2
  188. package/packages/extensions/ipc/jamnp/handler.d.ts.map +1 -1
  189. package/packages/extensions/ipc/jamnp/handler.js +9 -3
  190. package/packages/extensions/ipc/jamnp/server.js +3 -3
  191. package/packages/extensions/ipc/server.d.ts +2 -1
  192. package/packages/extensions/ipc/server.d.ts.map +1 -1
  193. package/packages/extensions/ipc/server.js +4 -1
  194. package/packages/jam/block/header.js +1 -1
  195. package/packages/jam/block/work-package.d.ts +7 -7
  196. package/packages/jam/block/work-package.d.ts.map +1 -1
  197. package/packages/jam/block/work-package.js +12 -12
  198. package/packages/jam/config/chain-spec.d.ts +2 -1
  199. package/packages/jam/config/chain-spec.d.ts.map +1 -1
  200. package/packages/jam/config/chain-spec.js +5 -2
  201. package/packages/jam/config/network.d.ts +2 -7
  202. package/packages/jam/config/network.d.ts.map +1 -1
  203. package/packages/jam/config/network.js +3 -0
  204. package/packages/jam/config-node/jip-chain-spec.js +1 -1
  205. package/packages/jam/database/blocks.test.js +1 -1
  206. package/packages/jam/database/states.d.ts +2 -1
  207. package/packages/jam/database/states.d.ts.map +1 -1
  208. package/packages/jam/database/states.js +3 -0
  209. package/packages/jam/database/states.test.js +1 -1
  210. package/packages/jam/database-lmdb/blocks.d.ts +2 -1
  211. package/packages/jam/database-lmdb/blocks.d.ts.map +1 -1
  212. package/packages/jam/database-lmdb/blocks.js +3 -0
  213. package/packages/jam/database-lmdb/root.d.ts +2 -1
  214. package/packages/jam/database-lmdb/root.d.ts.map +1 -1
  215. package/packages/jam/database-lmdb/root.js +3 -0
  216. package/packages/jam/database-lmdb/states.d.ts +2 -1
  217. package/packages/jam/database-lmdb/states.d.ts.map +1 -1
  218. package/packages/jam/database-lmdb/states.js +3 -0
  219. package/packages/jam/database-lmdb/states.test.js +9 -9
  220. package/packages/jam/executor/index.d.ts +1 -1
  221. package/packages/jam/executor/index.d.ts.map +1 -1
  222. package/packages/jam/executor/index.js +1 -1
  223. package/packages/jam/executor/pvm-executor.d.ts +9 -2
  224. package/packages/jam/executor/pvm-executor.d.ts.map +1 -1
  225. package/packages/jam/executor/pvm-executor.js +36 -21
  226. package/packages/jam/fuzz-proto/v1/handler.d.ts +2 -1
  227. package/packages/jam/fuzz-proto/v1/handler.d.ts.map +1 -1
  228. package/packages/jam/fuzz-proto/v1/handler.js +3 -0
  229. package/packages/jam/fuzz-proto/v1/handler.test.js +10 -10
  230. package/packages/jam/in-core/externalities/refine.d.ts +18 -8
  231. package/packages/jam/in-core/externalities/refine.d.ts.map +1 -1
  232. package/packages/jam/in-core/externalities/refine.js +86 -7
  233. package/packages/jam/in-core/externalities/refine.test.js +168 -3
  234. package/packages/jam/in-core/in-core.d.ts +9 -23
  235. package/packages/jam/in-core/in-core.d.ts.map +1 -1
  236. package/packages/jam/in-core/in-core.js +19 -186
  237. package/packages/jam/in-core/in-core.test.js +52 -20
  238. package/packages/jam/in-core/is-authorized.d.ts +33 -0
  239. package/packages/jam/in-core/is-authorized.d.ts.map +1 -0
  240. package/packages/jam/in-core/is-authorized.js +72 -0
  241. package/packages/jam/in-core/is-authorized.test.d.ts +2 -0
  242. package/packages/jam/in-core/is-authorized.test.d.ts.map +1 -0
  243. package/packages/jam/in-core/is-authorized.test.js +125 -0
  244. package/packages/jam/in-core/refine.d.ts +34 -0
  245. package/packages/jam/in-core/refine.d.ts.map +1 -0
  246. package/packages/jam/in-core/refine.js +176 -0
  247. package/packages/jam/in-core/refine.test.d.ts +2 -0
  248. package/packages/jam/in-core/refine.test.d.ts.map +1 -0
  249. package/packages/jam/in-core/refine.test.js +6 -0
  250. package/packages/jam/jam-host-calls/accumulate/assign.d.ts +2 -1
  251. package/packages/jam/jam-host-calls/accumulate/assign.d.ts.map +1 -1
  252. package/packages/jam/jam-host-calls/accumulate/assign.js +3 -0
  253. package/packages/jam/jam-host-calls/accumulate/assign.test.js +8 -9
  254. package/packages/jam/jam-host-calls/accumulate/bless.d.ts +2 -1
  255. package/packages/jam/jam-host-calls/accumulate/bless.d.ts.map +1 -1
  256. package/packages/jam/jam-host-calls/accumulate/bless.js +12 -9
  257. package/packages/jam/jam-host-calls/accumulate/bless.test.js +11 -12
  258. package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts +2 -1
  259. package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts.map +1 -1
  260. package/packages/jam/jam-host-calls/accumulate/checkpoint.js +4 -1
  261. package/packages/jam/jam-host-calls/accumulate/checkpoint.test.js +2 -3
  262. package/packages/jam/jam-host-calls/accumulate/designate.d.ts +2 -1
  263. package/packages/jam/jam-host-calls/accumulate/designate.d.ts.map +1 -1
  264. package/packages/jam/jam-host-calls/accumulate/designate.js +3 -0
  265. package/packages/jam/jam-host-calls/accumulate/designate.test.js +5 -6
  266. package/packages/jam/jam-host-calls/accumulate/eject.d.ts +2 -1
  267. package/packages/jam/jam-host-calls/accumulate/eject.d.ts.map +1 -1
  268. package/packages/jam/jam-host-calls/accumulate/eject.js +3 -0
  269. package/packages/jam/jam-host-calls/accumulate/eject.test.js +8 -9
  270. package/packages/jam/jam-host-calls/accumulate/forget.d.ts +2 -1
  271. package/packages/jam/jam-host-calls/accumulate/forget.d.ts.map +1 -1
  272. package/packages/jam/jam-host-calls/accumulate/forget.js +3 -0
  273. package/packages/jam/jam-host-calls/accumulate/forget.test.js +5 -6
  274. package/packages/jam/jam-host-calls/accumulate/new.d.ts +2 -1
  275. package/packages/jam/jam-host-calls/accumulate/new.d.ts.map +1 -1
  276. package/packages/jam/jam-host-calls/accumulate/new.js +3 -0
  277. package/packages/jam/jam-host-calls/accumulate/new.test.js +9 -10
  278. package/packages/jam/jam-host-calls/accumulate/provide.d.ts +2 -1
  279. package/packages/jam/jam-host-calls/accumulate/provide.d.ts.map +1 -1
  280. package/packages/jam/jam-host-calls/accumulate/provide.js +3 -0
  281. package/packages/jam/jam-host-calls/accumulate/provide.test.js +8 -9
  282. package/packages/jam/jam-host-calls/accumulate/query.d.ts +2 -1
  283. package/packages/jam/jam-host-calls/accumulate/query.d.ts.map +1 -1
  284. package/packages/jam/jam-host-calls/accumulate/query.js +3 -0
  285. package/packages/jam/jam-host-calls/accumulate/query.test.js +8 -9
  286. package/packages/jam/jam-host-calls/accumulate/solicit.d.ts +2 -1
  287. package/packages/jam/jam-host-calls/accumulate/solicit.d.ts.map +1 -1
  288. package/packages/jam/jam-host-calls/accumulate/solicit.js +3 -0
  289. package/packages/jam/jam-host-calls/accumulate/solicit.test.js +7 -8
  290. package/packages/jam/jam-host-calls/accumulate/transfer.d.ts +2 -1
  291. package/packages/jam/jam-host-calls/accumulate/transfer.d.ts.map +1 -1
  292. package/packages/jam/jam-host-calls/accumulate/transfer.js +3 -0
  293. package/packages/jam/jam-host-calls/accumulate/transfer.test.js +9 -10
  294. package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts +2 -1
  295. package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts.map +1 -1
  296. package/packages/jam/jam-host-calls/accumulate/upgrade.js +3 -0
  297. package/packages/jam/jam-host-calls/accumulate/upgrade.test.js +4 -5
  298. package/packages/jam/jam-host-calls/accumulate/yield.d.ts +2 -1
  299. package/packages/jam/jam-host-calls/accumulate/yield.d.ts.map +1 -1
  300. package/packages/jam/jam-host-calls/accumulate/yield.js +3 -0
  301. package/packages/jam/jam-host-calls/accumulate/yield.test.js +4 -5
  302. package/packages/jam/jam-host-calls/externalities/partial-state.d.ts +1 -1
  303. package/packages/jam/jam-host-calls/externalities/refine-externalities.d.ts +1 -1
  304. package/packages/jam/jam-host-calls/externalities/refine-externalities.d.ts.map +1 -1
  305. package/packages/jam/jam-host-calls/externalities/refine-externalities.test.js +9 -9
  306. package/packages/jam/jam-host-calls/externalities/state-update.d.ts +2 -3
  307. package/packages/jam/jam-host-calls/externalities/state-update.d.ts.map +1 -1
  308. package/packages/jam/jam-host-calls/externalities/state-update.js +5 -2
  309. package/packages/jam/jam-host-calls/externalities/test-accounts.js +2 -2
  310. package/packages/jam/jam-host-calls/general/fetch.d.ts +166 -104
  311. package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
  312. package/packages/jam/jam-host-calls/general/fetch.js +120 -23
  313. package/packages/jam/jam-host-calls/general/fetch.test.js +125 -92
  314. package/packages/jam/jam-host-calls/general/gas.d.ts +2 -1
  315. package/packages/jam/jam-host-calls/general/gas.d.ts.map +1 -1
  316. package/packages/jam/jam-host-calls/general/gas.js +3 -0
  317. package/packages/jam/jam-host-calls/general/gas.test.js +4 -5
  318. package/packages/jam/jam-host-calls/general/info.d.ts +2 -1
  319. package/packages/jam/jam-host-calls/general/info.d.ts.map +1 -1
  320. package/packages/jam/jam-host-calls/general/info.js +3 -0
  321. package/packages/jam/jam-host-calls/general/info.test.js +6 -7
  322. package/packages/jam/jam-host-calls/general/log.d.ts +2 -1
  323. package/packages/jam/jam-host-calls/general/log.d.ts.map +1 -1
  324. package/packages/jam/jam-host-calls/general/log.js +3 -0
  325. package/packages/jam/jam-host-calls/general/lookup.d.ts +2 -1
  326. package/packages/jam/jam-host-calls/general/lookup.d.ts.map +1 -1
  327. package/packages/jam/jam-host-calls/general/lookup.js +3 -0
  328. package/packages/jam/jam-host-calls/general/lookup.test.js +8 -9
  329. package/packages/jam/jam-host-calls/general/read.d.ts +2 -1
  330. package/packages/jam/jam-host-calls/general/read.d.ts.map +1 -1
  331. package/packages/jam/jam-host-calls/general/read.js +3 -0
  332. package/packages/jam/jam-host-calls/general/read.test.js +11 -12
  333. package/packages/jam/jam-host-calls/general/write.d.ts +2 -1
  334. package/packages/jam/jam-host-calls/general/write.d.ts.map +1 -1
  335. package/packages/jam/jam-host-calls/general/write.js +3 -0
  336. package/packages/jam/jam-host-calls/general/write.test.js +10 -11
  337. package/packages/jam/jam-host-calls/refine/export.d.ts +2 -1
  338. package/packages/jam/jam-host-calls/refine/export.d.ts.map +1 -1
  339. package/packages/jam/jam-host-calls/refine/export.js +3 -0
  340. package/packages/jam/jam-host-calls/refine/export.test.js +6 -7
  341. package/packages/jam/jam-host-calls/refine/expunge.d.ts +2 -1
  342. package/packages/jam/jam-host-calls/refine/expunge.d.ts.map +1 -1
  343. package/packages/jam/jam-host-calls/refine/expunge.js +3 -0
  344. package/packages/jam/jam-host-calls/refine/expunge.test.js +3 -4
  345. package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts +2 -1
  346. package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts.map +1 -1
  347. package/packages/jam/jam-host-calls/refine/historical-lookup.js +3 -0
  348. package/packages/jam/jam-host-calls/refine/historical-lookup.test.js +11 -12
  349. package/packages/jam/jam-host-calls/refine/invoke.d.ts +2 -1
  350. package/packages/jam/jam-host-calls/refine/invoke.d.ts.map +1 -1
  351. package/packages/jam/jam-host-calls/refine/invoke.js +4 -1
  352. package/packages/jam/jam-host-calls/refine/invoke.test.js +10 -11
  353. package/packages/jam/jam-host-calls/refine/machine.d.ts +2 -1
  354. package/packages/jam/jam-host-calls/refine/machine.d.ts.map +1 -1
  355. package/packages/jam/jam-host-calls/refine/machine.js +3 -0
  356. package/packages/jam/jam-host-calls/refine/machine.test.js +6 -7
  357. package/packages/jam/jam-host-calls/refine/pages.d.ts +2 -1
  358. package/packages/jam/jam-host-calls/refine/pages.d.ts.map +1 -1
  359. package/packages/jam/jam-host-calls/refine/pages.js +3 -0
  360. package/packages/jam/jam-host-calls/refine/pages.test.js +3 -4
  361. package/packages/jam/jam-host-calls/refine/peek.d.ts +2 -1
  362. package/packages/jam/jam-host-calls/refine/peek.d.ts.map +1 -1
  363. package/packages/jam/jam-host-calls/refine/peek.js +3 -0
  364. package/packages/jam/jam-host-calls/refine/peek.test.js +3 -4
  365. package/packages/jam/jam-host-calls/refine/poke.d.ts +2 -1
  366. package/packages/jam/jam-host-calls/refine/poke.d.ts.map +1 -1
  367. package/packages/jam/jam-host-calls/refine/poke.js +3 -0
  368. package/packages/jam/jam-host-calls/refine/poke.test.js +3 -4
  369. package/packages/jam/jamnp-s/network.js +1 -1
  370. package/packages/jam/jamnp-s/peers.d.ts +2 -1
  371. package/packages/jam/jamnp-s/peers.d.ts.map +1 -1
  372. package/packages/jam/jamnp-s/peers.js +3 -0
  373. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts +4 -2
  374. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts.map +1 -1
  375. package/packages/jam/jamnp-s/protocol/ce-128-block-request.js +6 -0
  376. package/packages/jam/jamnp-s/protocol/ce-128-block-request.test.js +2 -2
  377. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts +4 -2
  378. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts.map +1 -1
  379. package/packages/jam/jamnp-s/protocol/ce-129-state-request.js +6 -0
  380. package/packages/jam/jamnp-s/protocol/ce-129-state-request.test.js +4 -4
  381. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +4 -2
  382. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts.map +1 -1
  383. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.js +6 -0
  384. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.test.js +2 -2
  385. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +6 -3
  386. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts.map +1 -1
  387. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.js +7 -0
  388. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.test.js +2 -2
  389. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts +5 -2
  390. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts.map +1 -1
  391. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.js +7 -0
  392. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.test.js +2 -2
  393. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +4 -2
  394. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts.map +1 -1
  395. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.js +6 -0
  396. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.test.js +2 -2
  397. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +2 -1
  398. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts.map +1 -1
  399. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.js +3 -0
  400. package/packages/jam/jamnp-s/stream-manager.d.ts +2 -1
  401. package/packages/jam/jamnp-s/stream-manager.d.ts.map +1 -1
  402. package/packages/jam/jamnp-s/stream-manager.js +4 -1
  403. package/packages/jam/jamnp-s/tasks/sync.js +4 -4
  404. package/packages/jam/jamnp-s/tasks/sync.test.js +4 -4
  405. package/packages/jam/jamnp-s/tasks/ticket-distribution.js +2 -2
  406. package/packages/jam/jamnp-s/tasks/ticket-distribution.test.js +1 -1
  407. package/packages/jam/node/common.d.ts.map +1 -1
  408. package/packages/jam/node/common.js +3 -3
  409. package/packages/jam/rpc-client/index.d.ts +4 -2
  410. package/packages/jam/rpc-client/index.d.ts.map +1 -1
  411. package/packages/jam/rpc-client/index.js +7 -1
  412. package/packages/jam/state/in-memory-state-view.d.ts +2 -1
  413. package/packages/jam/state/in-memory-state-view.d.ts.map +1 -1
  414. package/packages/jam/state/in-memory-state-view.js +3 -0
  415. package/packages/jam/state/in-memory-state.d.ts +16 -21
  416. package/packages/jam/state/in-memory-state.d.ts.map +1 -1
  417. package/packages/jam/state/in-memory-state.js +10 -6
  418. package/packages/jam/state/in-memory-state.test.js +2 -2
  419. package/packages/jam/state/service.d.ts +2 -6
  420. package/packages/jam/state/service.d.ts.map +1 -1
  421. package/packages/jam/state/service.js +3 -0
  422. package/packages/jam/state/test.utils.js +3 -3
  423. package/packages/jam/state-json/accounts.js +5 -5
  424. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +3 -34
  425. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts.map +1 -1
  426. package/packages/jam/state-merkleization/in-memory-state-codec.js +1 -1
  427. package/packages/jam/state-merkleization/serialized-state-view.d.ts +8 -3
  428. package/packages/jam/state-merkleization/serialized-state-view.d.ts.map +1 -1
  429. package/packages/jam/state-merkleization/serialized-state-view.js +6 -3
  430. package/packages/jam/state-merkleization/serialized-state.d.ts +2 -3
  431. package/packages/jam/state-merkleization/serialized-state.d.ts.map +1 -1
  432. package/packages/jam/state-merkleization/serialized-state.js +10 -2
  433. package/packages/jam/state-merkleization/serialized-state.test.js +1 -1
  434. package/packages/jam/transition/accumulate/accumulate.d.ts.map +1 -1
  435. package/packages/jam/transition/accumulate/accumulate.js +20 -8
  436. package/packages/jam/transition/accumulate/accumulate.test.js +1 -1
  437. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.js +48 -39
  438. package/packages/jam/transition/block-verifier.d.ts +2 -1
  439. package/packages/jam/transition/block-verifier.d.ts.map +1 -1
  440. package/packages/jam/transition/block-verifier.js +3 -0
  441. package/packages/jam/transition/block-verifier.test.js +8 -8
  442. package/packages/jam/transition/chain-stf.d.ts +12 -4
  443. package/packages/jam/transition/chain-stf.d.ts.map +1 -1
  444. package/packages/jam/transition/chain-stf.js +7 -3
  445. package/packages/jam/transition/externalities/accumulate-externalities.d.ts +22 -8
  446. package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
  447. package/packages/jam/transition/externalities/accumulate-externalities.js +49 -29
  448. package/packages/jam/transition/externalities/accumulate-externalities.test.js +661 -101
  449. package/packages/jam/transition/externalities/accumulate-fetch-externalities.d.ts +19 -0
  450. package/packages/jam/transition/externalities/accumulate-fetch-externalities.d.ts.map +1 -0
  451. package/packages/jam/transition/externalities/accumulate-fetch-externalities.js +45 -0
  452. package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.d.ts +2 -0
  453. package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.d.ts.map +1 -0
  454. package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.js +192 -0
  455. package/packages/jam/transition/externalities/fetch-externalities.d.ts +3 -39
  456. package/packages/jam/transition/externalities/fetch-externalities.d.ts.map +1 -1
  457. package/packages/jam/transition/externalities/fetch-externalities.js +2 -88
  458. package/packages/jam/transition/externalities/index.d.ts +3 -0
  459. package/packages/jam/transition/externalities/index.d.ts.map +1 -1
  460. package/packages/jam/transition/externalities/index.js +3 -0
  461. package/packages/jam/transition/externalities/is-authorized-fetch-externalities.d.ts +22 -0
  462. package/packages/jam/transition/externalities/is-authorized-fetch-externalities.d.ts.map +1 -0
  463. package/packages/jam/transition/externalities/is-authorized-fetch-externalities.js +41 -0
  464. package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts +24 -0
  465. package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts.map +1 -0
  466. package/packages/jam/transition/externalities/refine-fetch-externalities.js +59 -0
  467. package/packages/jam/transition/externalities/refine-fetch-externalities.test.d.ts +2 -0
  468. package/packages/jam/transition/externalities/refine-fetch-externalities.test.d.ts.map +1 -0
  469. package/packages/jam/transition/externalities/refine-fetch-externalities.test.js +32 -0
  470. package/packages/jam/transition/hasher.d.ts +2 -1
  471. package/packages/jam/transition/hasher.d.ts.map +1 -1
  472. package/packages/jam/transition/hasher.js +5 -2
  473. package/packages/jam/transition/hasher.test.js +1 -1
  474. package/packages/jam/transition/preimages.test.js +4 -4
  475. package/packages/jam/transition/reports/test.utils.js +1 -1
  476. package/packages/workers/api-node/config.js +4 -4
  477. package/packages/workers/api-node/port.d.ts +2 -1
  478. package/packages/workers/api-node/port.d.ts.map +1 -1
  479. package/packages/workers/api-node/port.js +4 -1
  480. package/packages/workers/api-node/port.test.js +2 -2
  481. package/packages/workers/api-node/protocol.js +2 -2
  482. package/packages/workers/block-authorship/generator.d.ts +13 -2
  483. package/packages/workers/block-authorship/generator.d.ts.map +1 -1
  484. package/packages/workers/block-authorship/generator.js +13 -9
  485. package/packages/workers/block-authorship/generator.test.js +16 -2
  486. package/packages/workers/block-authorship/main.d.ts.map +1 -1
  487. package/packages/workers/block-authorship/main.js +8 -1
  488. package/packages/workers/importer/finality.test.js +1 -1
  489. package/packages/workers/importer/importer.d.ts +23 -6
  490. package/packages/workers/importer/importer.d.ts.map +1 -1
  491. package/packages/workers/importer/importer.js +34 -19
  492. package/packages/workers/importer/main.d.ts.map +1 -1
  493. package/packages/workers/importer/main.js +13 -5
  494. package/packages/jam/transition/externalities/fetch-externalities.test.d.ts +0 -2
  495. package/packages/jam/transition/externalities/fetch-externalities.test.d.ts.map +0 -1
  496. package/packages/jam/transition/externalities/fetch-externalities.test.js +0 -254
@@ -11,7 +11,6 @@ import { tryAsSbrkIndex } from "#@typeberry/pvm-interpreter/memory/memory-index.
11
11
  import { PAGE_SIZE } from "#@typeberry/pvm-interpreter/spi-decoder/memory-conts.js";
12
12
  import { TestRefineExt } from "../externalities/refine-externalities.test.js";
13
13
  import { HostCallResult } from "../general/results.js";
14
- import { emptyRegistersBuffer } from "../utils.js";
15
14
  import { HistoricalLookup } from "./historical-lookup.js";
16
15
  const gas = gasCounter(tryAsGas(0));
17
16
  const SERVICE_ID_REG = 7;
@@ -23,7 +22,7 @@ const DEST_LEN_REG = 11;
23
22
  function prepareRegsAndMemory(serviceId, hash, offset, destinationLength, { skipHash = false, writableMemory = true } = {}) {
24
23
  const hashAddress = 2 ** 16;
25
24
  const memStart = 2 ** 20;
26
- const registers = new HostCallRegisters(emptyRegistersBuffer());
25
+ const registers = HostCallRegisters.empty();
27
26
  registers.set(SERVICE_ID_REG, tryAsU64(serviceId));
28
27
  registers.set(HASH_START_REG, tryAsU64(hashAddress));
29
28
  registers.set(DEST_START_REG, tryAsU64(memStart));
@@ -36,7 +35,7 @@ function prepareRegsAndMemory(serviceId, hash, offset, destinationLength, { skip
36
35
  if (writableMemory) {
37
36
  builder.setWriteablePages(tryAsMemoryIndex(memStart), tryAsMemoryIndex(memStart + PAGE_SIZE));
38
37
  }
39
- const memory = new HostCallMemory(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
38
+ const memory = HostCallMemory.new(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
40
39
  return {
41
40
  registers,
42
41
  memory,
@@ -50,7 +49,7 @@ function prepareRegsAndMemory(serviceId, hash, offset, destinationLength, { skip
50
49
  describe("HostCalls: Historical Lookup", () => {
51
50
  it("should lookup key from an account", async () => {
52
51
  const refine = new TestRefineExt();
53
- const lookup = new HistoricalLookup(refine);
52
+ const lookup = HistoricalLookup.new(refine);
54
53
  const serviceId = tryAsServiceId(10_000);
55
54
  const hash = Bytes.fill(32, 3);
56
55
  const data = "hello world";
@@ -65,7 +64,7 @@ describe("HostCalls: Historical Lookup", () => {
65
64
  });
66
65
  it("should lookup key longer than destination", async () => {
67
66
  const refine = new TestRefineExt();
68
- const lookup = new HistoricalLookup(refine);
67
+ const lookup = HistoricalLookup.new(refine);
69
68
  const serviceId = tryAsServiceId(10_000);
70
69
  const hash = Bytes.fill(32, 3);
71
70
  const data = "hello world";
@@ -80,7 +79,7 @@ describe("HostCalls: Historical Lookup", () => {
80
79
  });
81
80
  it("should lookup key longer than destination + offset", async () => {
82
81
  const refine = new TestRefineExt();
83
- const lookup = new HistoricalLookup(refine);
82
+ const lookup = HistoricalLookup.new(refine);
84
83
  const serviceId = tryAsServiceId(10_000);
85
84
  const hash = Bytes.fill(32, 3);
86
85
  const data = "hello world";
@@ -95,7 +94,7 @@ describe("HostCalls: Historical Lookup", () => {
95
94
  });
96
95
  it("should handle missing value", async () => {
97
96
  const refine = new TestRefineExt();
98
- const lookup = new HistoricalLookup(refine);
97
+ const lookup = HistoricalLookup.new(refine);
99
98
  const serviceId = tryAsServiceId(10_000);
100
99
  const hash = Bytes.fill(32, 3);
101
100
  const { registers, memory, readResult } = prepareRegsAndMemory(serviceId, hash, 0, 32);
@@ -109,7 +108,7 @@ describe("HostCalls: Historical Lookup", () => {
109
108
  });
110
109
  it("should panic if no memory for key", async () => {
111
110
  const refine = new TestRefineExt();
112
- const lookup = new HistoricalLookup(refine);
111
+ const lookup = HistoricalLookup.new(refine);
113
112
  const serviceId = tryAsServiceId(10_000);
114
113
  const hash = Bytes.fill(32, 3);
115
114
  const { registers, memory } = prepareRegsAndMemory(serviceId, hash, 0, 32, { skipHash: true });
@@ -121,7 +120,7 @@ describe("HostCalls: Historical Lookup", () => {
121
120
  });
122
121
  it("should panic if memory is not writable", async () => {
123
122
  const refine = new TestRefineExt();
124
- const lookup = new HistoricalLookup(refine);
123
+ const lookup = HistoricalLookup.new(refine);
125
124
  const serviceId = tryAsServiceId(10_000);
126
125
  const hash = Bytes.fill(32, 3);
127
126
  const data = "hello world";
@@ -135,7 +134,7 @@ describe("HostCalls: Historical Lookup", () => {
135
134
  });
136
135
  it("should handle if the destination length is greater than data length", async () => {
137
136
  const refine = new TestRefineExt();
138
- const lookup = new HistoricalLookup(refine);
137
+ const lookup = HistoricalLookup.new(refine);
139
138
  const serviceId = tryAsServiceId(10_000);
140
139
  const hash = Bytes.fill(32, 3);
141
140
  const data = "hello world";
@@ -151,7 +150,7 @@ describe("HostCalls: Historical Lookup", () => {
151
150
  });
152
151
  it("should panic if the destination is beyond mem limit", async () => {
153
152
  const refine = new TestRefineExt();
154
- const lookup = new HistoricalLookup(refine);
153
+ const lookup = HistoricalLookup.new(refine);
155
154
  const serviceId = tryAsServiceId(10_000);
156
155
  const hash = Bytes.fill(32, 3);
157
156
  const data = "hello world";
@@ -167,7 +166,7 @@ describe("HostCalls: Historical Lookup", () => {
167
166
  });
168
167
  it("should handle 0-length destination", async () => {
169
168
  const refine = new TestRefineExt();
170
- const lookup = new HistoricalLookup(refine);
169
+ const lookup = HistoricalLookup.new(refine);
171
170
  const serviceId = tryAsServiceId(10_000);
172
171
  const hash = Bytes.fill(32, 3);
173
172
  const data = "hello world";
@@ -12,7 +12,8 @@ export declare class Invoke implements HostCallHandler {
12
12
  basicGasCost: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"SmallGas[U32]">;
13
13
  currentServiceId: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"ServiceId[u32]">;
14
14
  tracedRegisters: (number & import("@typeberry/utils").WithOpaque<"register index">)[];
15
- constructor(refine: RefineExternalities);
15
+ static new(refine: RefineExternalities): Invoke;
16
+ private constructor();
16
17
  execute(_gas: IGasCounter, regs: HostCallRegisters, memory: HostCallMemory): Promise<PvmExecution | undefined>;
17
18
  }
18
19
  //# sourceMappingURL=invoke.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/refine/invoke.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,iBAAiB,EACjB,YAAY,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,WAAW,EAMjB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,mBAAmB,EAAkB,MAAM,0CAA0C,CAAC;AAapG;;;;GAIG;AACH,qBAAa,MAAO,YAAW,eAAe;IAMhC,OAAO,CAAC,QAAQ,CAAC,MAAM;IALnC,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,gBAAgB,6HAAsB;IACtC,eAAe,uEAA8C;gBAEhC,MAAM,EAAE,mBAAmB;IAElD,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAyErH"}
1
+ {"version":3,"file":"invoke.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/refine/invoke.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,iBAAiB,EACjB,YAAY,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,KAAK,WAAW,EAMjB,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,KAAK,mBAAmB,EAAkB,MAAM,0CAA0C,CAAC;AAapG;;;;GAIG;AACH,qBAAa,MAAO,YAAW,eAAe;IAUxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAT3C,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,gBAAgB,6HAAsB;IACtC,eAAe,uEAA8C;IAE7D,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB;IAItC,OAAO;IAED,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAyErH"}
@@ -26,6 +26,9 @@ export class Invoke {
26
26
  basicGasCost = tryAsSmallGas(10);
27
27
  currentServiceId = CURRENT_SERVICE_ID;
28
28
  tracedRegisters = traceRegisters(IN_OUT_REG_1, IN_OUT_REG_2);
29
+ static new(refine) {
30
+ return new Invoke(refine);
31
+ }
29
32
  constructor(refine) {
30
33
  this.refine = refine;
31
34
  }
@@ -53,7 +56,7 @@ export class Invoke {
53
56
  // `g`
54
57
  const gasCost = tryAsBigGas(gasRegisters.gas);
55
58
  // `w`
56
- const registers = new HostCallRegisters(gasRegisters.registers.raw);
59
+ const registers = HostCallRegisters.fromRaw(gasRegisters.registers.raw);
57
60
  // try run the machine
58
61
  const state = await this.refine.machineInvoke(machineIndex, gasCost, registers);
59
62
  logger.trace `[${this.currentServiceId}] INVOKE(${machineIndex}, ${gasCost}, ${registers}) <- ${resultToString(state)}`;
@@ -12,7 +12,6 @@ import { PAGE_SIZE } from "#@typeberry/pvm-interpreter/spi-decoder/memory-conts.
12
12
  import { MachineInstance, tryAsMachineId, } from "../externalities/refine-externalities.js";
13
13
  import { TestRefineExt } from "../externalities/refine-externalities.test.js";
14
14
  import { HostCallResult } from "../general/results.js";
15
- import { emptyRegistersBuffer } from "../utils.js";
16
15
  import { Invoke } from "./invoke.js";
17
16
  const gas = gasCounter(tryAsGas(0));
18
17
  const MACHINE_INDEX_REG = 7;
@@ -22,10 +21,10 @@ const RESULT_REG_2 = DEST_REG;
22
21
  const GAS_REG_SIZE = 112;
23
22
  const MEM_START = RESERVED_NUMBER_OF_PAGES * PAGE_SIZE;
24
23
  function prepareRegsAndMemory(machineIndex, destinationStart, data, { registerMemory = true } = {}) {
25
- const registers = new HostCallRegisters(emptyRegistersBuffer());
24
+ const registers = HostCallRegisters.empty();
26
25
  registers.set(MACHINE_INDEX_REG, machineIndex);
27
26
  registers.set(DEST_REG, tryAsU64(destinationStart));
28
- const memory = new HostCallMemory(prepareMemory(data, destinationStart, PAGE_SIZE, { registerMemory }));
27
+ const memory = HostCallMemory.new(prepareMemory(data, destinationStart, PAGE_SIZE, { registerMemory }));
29
28
  return {
30
29
  registers,
31
30
  memory,
@@ -55,7 +54,7 @@ describe("HostCalls: Invoke", () => {
55
54
  }, {
56
55
  registerMachine: false,
57
56
  });
58
- const invoke = new Invoke(refine);
57
+ const invoke = Invoke.new(refine);
59
58
  invoke.currentServiceId = tryAsServiceId(10_000);
60
59
  const w7 = tryAsU64(machineId);
61
60
  const w8 = tryAsU64(MEM_START);
@@ -72,7 +71,7 @@ describe("HostCalls: Invoke", () => {
72
71
  }, {
73
72
  registerMachine: false,
74
73
  });
75
- const invoke = new Invoke(refine);
74
+ const invoke = Invoke.new(refine);
76
75
  invoke.currentServiceId = tryAsServiceId(10_000);
77
76
  const w7 = tryAsU64(machineId);
78
77
  const w8 = tryAsU64(MEM_START);
@@ -87,7 +86,7 @@ describe("HostCalls: Invoke", () => {
87
86
  const [refine, machineId] = await prepareMachine({
88
87
  status: Status.OK,
89
88
  });
90
- const invoke = new Invoke(refine);
89
+ const invoke = Invoke.new(refine);
91
90
  invoke.currentServiceId = tryAsServiceId(10_000);
92
91
  const w7 = tryAsU64(machineId + 1n);
93
92
  const w8 = tryAsU64(MEM_START);
@@ -104,7 +103,7 @@ describe("HostCalls: Invoke", () => {
104
103
  status: Status.HOST,
105
104
  hostCallIndex,
106
105
  });
107
- const invoke = new Invoke(refine);
106
+ const invoke = Invoke.new(refine);
108
107
  invoke.currentServiceId = tryAsServiceId(10_000);
109
108
  const w7 = tryAsU64(machineId);
110
109
  const w8 = tryAsU64(MEM_START);
@@ -121,7 +120,7 @@ describe("HostCalls: Invoke", () => {
121
120
  status: Status.FAULT,
122
121
  address,
123
122
  });
124
- const invoke = new Invoke(refine);
123
+ const invoke = Invoke.new(refine);
125
124
  invoke.currentServiceId = tryAsServiceId(10_000);
126
125
  const w7 = tryAsU64(machineId);
127
126
  const w8 = tryAsU64(MEM_START);
@@ -136,7 +135,7 @@ describe("HostCalls: Invoke", () => {
136
135
  const [refine, machineId] = await prepareMachine({
137
136
  status: Status.OOG,
138
137
  });
139
- const invoke = new Invoke(refine);
138
+ const invoke = Invoke.new(refine);
140
139
  invoke.currentServiceId = tryAsServiceId(10_000);
141
140
  const w7 = tryAsU64(machineId);
142
141
  const w8 = tryAsU64(MEM_START);
@@ -151,7 +150,7 @@ describe("HostCalls: Invoke", () => {
151
150
  const [refine, machineId] = await prepareMachine({
152
151
  status: Status.PANIC,
153
152
  });
154
- const invoke = new Invoke(refine);
153
+ const invoke = Invoke.new(refine);
155
154
  invoke.currentServiceId = tryAsServiceId(10_000);
156
155
  const w7 = tryAsU64(machineId);
157
156
  const w8 = tryAsU64(MEM_START);
@@ -166,7 +165,7 @@ describe("HostCalls: Invoke", () => {
166
165
  const [refine, machineId] = await prepareMachine({
167
166
  status: Status.HALT,
168
167
  });
169
- const invoke = new Invoke(refine);
168
+ const invoke = Invoke.new(refine);
170
169
  invoke.currentServiceId = tryAsServiceId(10_000);
171
170
  const w7 = tryAsU64(machineId);
172
171
  const w8 = tryAsU64(MEM_START);
@@ -12,7 +12,8 @@ export declare class Machine implements HostCallHandler {
12
12
  basicGasCost: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"SmallGas[U32]">;
13
13
  currentServiceId: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"ServiceId[u32]">;
14
14
  tracedRegisters: (number & import("@typeberry/utils").WithOpaque<"register index">)[];
15
- constructor(refine: RefineExternalities);
15
+ static new(refine: RefineExternalities): Machine;
16
+ private constructor();
16
17
  execute(_gas: IGasCounter, regs: HostCallRegisters, memory: HostCallMemory): Promise<PvmExecution | undefined>;
17
18
  }
18
19
  //# sourceMappingURL=machine.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/refine/machine.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,YAAY,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,KAAK,mBAAmB,EAAuB,MAAM,0CAA0C,CAAC;AAOzG;;;;GAIG;AACH,qBAAa,OAAQ,YAAW,eAAe;IAMjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IALnC,KAAK,iIAAyB;IAC9B,YAAY,4HAAqB;IACjC,gBAAgB,6HAAsB;IACtC,eAAe,uEAAoC;gBAEtB,MAAM,EAAE,mBAAmB;IAElD,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CA2BrH"}
1
+ {"version":3,"file":"machine.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/refine/machine.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,YAAY,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,KAAK,mBAAmB,EAAuB,MAAM,0CAA0C,CAAC;AAOzG;;;;GAIG;AACH,qBAAa,OAAQ,YAAW,eAAe;IAUzB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAT3C,KAAK,iIAAyB;IAC9B,YAAY,4HAAqB;IACjC,gBAAgB,6HAAsB;IACtC,eAAe,uEAAoC;IAEnD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB;IAItC,OAAO;IAED,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CA2BrH"}
@@ -18,6 +18,9 @@ export class Machine {
18
18
  basicGasCost = tryAsSmallGas(10);
19
19
  currentServiceId = CURRENT_SERVICE_ID;
20
20
  tracedRegisters = traceRegisters(IN_OUT_REG, 8, 9);
21
+ static new(refine) {
22
+ return new Machine(refine);
23
+ }
21
24
  constructor(refine) {
22
25
  this.refine = refine;
23
26
  }
@@ -11,7 +11,6 @@ import { PAGE_SIZE } from "#@typeberry/pvm-interpreter/spi-decoder/memory-conts.
11
11
  import { tryAsMachineId, tryAsProgramCounter } from "../externalities/refine-externalities.js";
12
12
  import { TestRefineExt } from "../externalities/refine-externalities.test.js";
13
13
  import { HostCallResult } from "../general/results.js";
14
- import { emptyRegistersBuffer } from "../utils.js";
15
14
  import { Machine } from "./machine.js";
16
15
  const gas = gasCounter(tryAsGas(0));
17
16
  const CODE_START_REG = 7;
@@ -20,7 +19,7 @@ const CODE_LEN_REG = 8;
20
19
  const PC_REG = 9;
21
20
  function prepareRegsAndMemory(code, pc, { skipCode = false } = {}) {
22
21
  const memStart = 2 ** 20;
23
- const registers = new HostCallRegisters(emptyRegistersBuffer());
22
+ const registers = HostCallRegisters.empty();
24
23
  registers.set(CODE_START_REG, tryAsU64(memStart));
25
24
  registers.set(CODE_LEN_REG, tryAsU64(code.length));
26
25
  registers.set(PC_REG, pc);
@@ -28,7 +27,7 @@ function prepareRegsAndMemory(code, pc, { skipCode = false } = {}) {
28
27
  if (!skipCode) {
29
28
  builder.setReadablePages(tryAsMemoryIndex(memStart), tryAsMemoryIndex(memStart + PAGE_SIZE), code.raw);
30
29
  }
31
- const memory = new HostCallMemory(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
30
+ const memory = HostCallMemory.new(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
32
31
  return {
33
32
  registers,
34
33
  memory,
@@ -37,7 +36,7 @@ function prepareRegsAndMemory(code, pc, { skipCode = false } = {}) {
37
36
  describe("HostCalls: Machine", () => {
38
37
  it("should start a new nested machine with minimal code", async () => {
39
38
  const refine = new TestRefineExt();
40
- const machine = new Machine(refine);
39
+ const machine = Machine.new(refine);
41
40
  const machineId = tryAsMachineId(10_000);
42
41
  machine.currentServiceId = tryAsServiceId(10_000);
43
42
  const code = BytesBlob.blobFromNumbers([0, 0, 0]);
@@ -52,7 +51,7 @@ describe("HostCalls: Machine", () => {
52
51
  });
53
52
  it("should start a new nested machine with fibbonacci code", async () => {
54
53
  const refine = new TestRefineExt();
55
- const machine = new Machine(refine);
54
+ const machine = Machine.new(refine);
56
55
  const machineId = tryAsMachineId(10_000);
57
56
  machine.currentServiceId = tryAsServiceId(10_000);
58
57
  const code = BytesBlob.blobFromNumbers([
@@ -70,7 +69,7 @@ describe("HostCalls: Machine", () => {
70
69
  });
71
70
  it("should panic when code is unavailable", async () => {
72
71
  const refine = new TestRefineExt();
73
- const machine = new Machine(refine);
72
+ const machine = Machine.new(refine);
74
73
  machine.currentServiceId = tryAsServiceId(10_000);
75
74
  const code = BytesBlob.blobFromString("amazing PVM code");
76
75
  const programCounter = tryAsProgramCounter(5);
@@ -82,7 +81,7 @@ describe("HostCalls: Machine", () => {
82
81
  });
83
82
  it("should return HUH when code is invalid", async () => {
84
83
  const refine = new TestRefineExt();
85
- const machine = new Machine(refine);
84
+ const machine = Machine.new(refine);
86
85
  machine.currentServiceId = tryAsServiceId(10_000);
87
86
  const code = BytesBlob.blobFromString("invalid PVM code");
88
87
  const programCounter = tryAsProgramCounter(5);
@@ -13,7 +13,8 @@ export declare class Pages implements HostCallHandler {
13
13
  basicGasCost: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"SmallGas[U32]">;
14
14
  currentServiceId: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"ServiceId[u32]">;
15
15
  tracedRegisters: (number & import("@typeberry/utils").WithOpaque<"register index">)[];
16
- constructor(refine: RefineExternalities);
16
+ static new(refine: RefineExternalities): Pages;
17
+ private constructor();
17
18
  execute(_gas: IGasCounter, regs: HostCallRegisters): Promise<PvmExecution | undefined>;
18
19
  }
19
20
  //# sourceMappingURL=pages.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/refine/pages.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAGlB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAEL,KAAK,mBAAmB,EAGzB,MAAM,0CAA0C,CAAC;AAOlD;;;;;GAKG;AACH,qBAAa,KAAM,YAAW,eAAe;IAM/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IALnC,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,gBAAgB,6HAAsB;IACtC,eAAe,uEAAwC;gBAE1B,MAAM,EAAE,mBAAmB;IAElD,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAgC7F"}
1
+ {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/refine/pages.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EAGlB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAEL,KAAK,mBAAmB,EAGzB,MAAM,0CAA0C,CAAC;AAOlD;;;;;GAKG;AACH,qBAAa,KAAM,YAAW,eAAe;IAUvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAT3C,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,gBAAgB,6HAAsB;IACtC,eAAe,uEAAwC;IAEvD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB;IAItC,OAAO;IAED,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAgC7F"}
@@ -18,6 +18,9 @@ export class Pages {
18
18
  basicGasCost = tryAsSmallGas(10);
19
19
  currentServiceId = CURRENT_SERVICE_ID;
20
20
  tracedRegisters = traceRegisters(IN_OUT_REG, 8, 9, 10);
21
+ static new(refine) {
22
+ return new Pages(refine);
23
+ }
21
24
  constructor(refine) {
22
25
  this.refine = refine;
23
26
  }
@@ -9,18 +9,17 @@ import { OK, Result } from "#@typeberry/utils";
9
9
  import { PagesError, toMemoryOperation, tryAsMachineId, } from "../externalities/refine-externalities.js";
10
10
  import { TestRefineExt } from "../externalities/refine-externalities.test.js";
11
11
  import { HostCallResult } from "../general/results.js";
12
- import { emptyRegistersBuffer } from "../utils.js";
13
12
  import { Pages } from "./pages.js";
14
13
  const gas = gasCounter(tryAsGas(0));
15
14
  const RESULT_REG = 7;
16
15
  function prepareRegsAndMemory(machineId, pageStart, pageCount, requestType) {
17
- const registers = new HostCallRegisters(emptyRegistersBuffer());
16
+ const registers = HostCallRegisters.empty();
18
17
  registers.set(7, machineId);
19
18
  registers.set(8, pageStart);
20
19
  registers.set(9, pageCount);
21
20
  registers.set(10, requestType);
22
21
  const builder = new MemoryBuilder();
23
- const memory = new HostCallMemory(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
22
+ const memory = HostCallMemory.new(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
24
23
  return {
25
24
  registers,
26
25
  memory,
@@ -28,7 +27,7 @@ function prepareRegsAndMemory(machineId, pageStart, pageCount, requestType) {
28
27
  }
29
28
  function prepareTest(result, machineId, pageStart, pageCount, requestType) {
30
29
  const refine = new TestRefineExt();
31
- const pages = new Pages(refine);
30
+ const pages = Pages.new(refine);
32
31
  pages.currentServiceId = tryAsServiceId(10_000);
33
32
  const machineIndex = tryAsMachineId(machineId);
34
33
  const start = tryAsU64(pageStart);
@@ -12,7 +12,8 @@ export declare class Peek implements HostCallHandler {
12
12
  basicGasCost: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"SmallGas[U32]">;
13
13
  currentServiceId: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"ServiceId[u32]">;
14
14
  tracedRegisters: (number & import("@typeberry/utils").WithOpaque<"register index">)[];
15
- constructor(refine: RefineExternalities);
15
+ static new(refine: RefineExternalities): Peek;
16
+ private constructor();
16
17
  execute(_gas: IGasCounter, regs: HostCallRegisters, memory: HostCallMemory): Promise<PvmExecution | undefined>;
17
18
  }
18
19
  //# sourceMappingURL=peek.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"peek.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/refine/peek.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,YAAY,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAiB,KAAK,mBAAmB,EAAkB,MAAM,0CAA0C,CAAC;AAOnH;;;;GAIG;AACH,qBAAa,IAAK,YAAW,eAAe;IAM9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IALnC,KAAK,iIAAyB;IAC9B,YAAY,4HAAqB;IACjC,gBAAgB,6HAAsB;IACtC,eAAe,uEAAwC;gBAE1B,MAAM,EAAE,mBAAmB;IAElD,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAoCrH"}
1
+ {"version":3,"file":"peek.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/refine/peek.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,YAAY,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAiB,KAAK,mBAAmB,EAAkB,MAAM,0CAA0C,CAAC;AAOnH;;;;GAIG;AACH,qBAAa,IAAK,YAAW,eAAe;IAUtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAT3C,KAAK,iIAAyB;IAC9B,YAAY,4HAAqB;IACjC,gBAAgB,6HAAsB;IACtC,eAAe,uEAAwC;IAEvD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB;IAItC,OAAO;IAED,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAoCrH"}
@@ -17,6 +17,9 @@ export class Peek {
17
17
  basicGasCost = tryAsSmallGas(10);
18
18
  currentServiceId = CURRENT_SERVICE_ID;
19
19
  tracedRegisters = traceRegisters(IN_OUT_REG, 8, 9, 10);
20
+ static new(refine) {
21
+ return new Peek(refine);
22
+ }
20
23
  constructor(refine) {
21
24
  this.refine = refine;
22
25
  }
@@ -9,18 +9,17 @@ import { OK, Result } from "#@typeberry/utils";
9
9
  import { PeekPokeError, tryAsMachineId } from "../externalities/refine-externalities.js";
10
10
  import { TestRefineExt } from "../externalities/refine-externalities.test.js";
11
11
  import { HostCallResult } from "../general/results.js";
12
- import { emptyRegistersBuffer } from "../utils.js";
13
12
  import { Peek } from "./peek.js";
14
13
  const gas = gasCounter(tryAsGas(0));
15
14
  const RESULT_REG = 7;
16
15
  function prepareRegsAndMemory(machineId, destinationStart, sourceStart, length) {
17
- const registers = new HostCallRegisters(emptyRegistersBuffer());
16
+ const registers = HostCallRegisters.empty();
18
17
  registers.set(7, machineId);
19
18
  registers.set(8, tryAsU64(destinationStart));
20
19
  registers.set(9, tryAsU64(sourceStart));
21
20
  registers.set(10, tryAsU64(length));
22
21
  const builder = new MemoryBuilder();
23
- const memory = new HostCallMemory(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
22
+ const memory = HostCallMemory.new(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
24
23
  return {
25
24
  registers,
26
25
  memory,
@@ -28,7 +27,7 @@ function prepareRegsAndMemory(machineId, destinationStart, sourceStart, length)
28
27
  }
29
28
  function prepareTest(result) {
30
29
  const refine = new TestRefineExt();
31
- const peek = new Peek(refine);
30
+ const peek = Peek.new(refine);
32
31
  peek.currentServiceId = tryAsServiceId(10_000);
33
32
  const machineId = tryAsMachineId(10_000);
34
33
  const destinationStart = 2 ** 16;
@@ -12,7 +12,8 @@ export declare class Poke implements HostCallHandler {
12
12
  basicGasCost: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"SmallGas[U32]">;
13
13
  currentServiceId: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"ServiceId[u32]">;
14
14
  tracedRegisters: (number & import("@typeberry/utils").WithOpaque<"register index">)[];
15
- constructor(refine: RefineExternalities);
15
+ static new(refine: RefineExternalities): Poke;
16
+ private constructor();
16
17
  execute(_gas: IGasCounter, regs: HostCallRegisters, memory: HostCallMemory): Promise<PvmExecution | undefined>;
17
18
  }
18
19
  //# sourceMappingURL=poke.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"poke.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/refine/poke.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,YAAY,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAiB,KAAK,mBAAmB,EAAkB,MAAM,0CAA0C,CAAC;AAOnH;;;;GAIG;AACH,qBAAa,IAAK,YAAW,eAAe;IAM9B,OAAO,CAAC,QAAQ,CAAC,MAAM;IALnC,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,gBAAgB,6HAAsB;IACtC,eAAe,uEAAwC;gBAE1B,MAAM,EAAE,mBAAmB;IAElD,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAoCrH"}
1
+ {"version":3,"file":"poke.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/refine/poke.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,YAAY,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAiB,KAAK,mBAAmB,EAAkB,MAAM,0CAA0C,CAAC;AAOnH;;;;GAIG;AACH,qBAAa,IAAK,YAAW,eAAe;IAUtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAT3C,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,gBAAgB,6HAAsB;IACtC,eAAe,uEAAwC;IAEvD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,mBAAmB;IAItC,OAAO;IAED,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAoCrH"}
@@ -17,6 +17,9 @@ export class Poke {
17
17
  basicGasCost = tryAsSmallGas(10);
18
18
  currentServiceId = CURRENT_SERVICE_ID;
19
19
  tracedRegisters = traceRegisters(IN_OUT_REG, 8, 9, 10);
20
+ static new(refine) {
21
+ return new Poke(refine);
22
+ }
20
23
  constructor(refine) {
21
24
  this.refine = refine;
22
25
  }
@@ -9,18 +9,17 @@ import { OK, Result } from "#@typeberry/utils";
9
9
  import { PeekPokeError, tryAsMachineId } from "../externalities/refine-externalities.js";
10
10
  import { TestRefineExt } from "../externalities/refine-externalities.test.js";
11
11
  import { HostCallResult } from "../general/results.js";
12
- import { emptyRegistersBuffer } from "../utils.js";
13
12
  import { Poke } from "./poke.js";
14
13
  const gas = gasCounter(tryAsGas(0));
15
14
  const RESULT_REG = 7;
16
15
  function prepareRegsAndMemory(machineId, sourceStart, destinationStart, length) {
17
- const registers = new HostCallRegisters(emptyRegistersBuffer());
16
+ const registers = HostCallRegisters.empty();
18
17
  registers.set(7, machineId);
19
18
  registers.set(8, tryAsU64(sourceStart));
20
19
  registers.set(9, tryAsU64(destinationStart));
21
20
  registers.set(10, tryAsU64(length));
22
21
  const builder = new MemoryBuilder();
23
- const memory = new HostCallMemory(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
22
+ const memory = HostCallMemory.new(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
24
23
  return {
25
24
  registers,
26
25
  memory,
@@ -28,7 +27,7 @@ function prepareRegsAndMemory(machineId, sourceStart, destinationStart, length)
28
27
  }
29
28
  function prepareTest(result) {
30
29
  const refine = new TestRefineExt();
31
- const poke = new Poke(refine);
30
+ const poke = Poke.new(refine);
32
31
  poke.currentServiceId = tryAsServiceId(10_000);
33
32
  const machineId = tryAsMachineId(10_000);
34
33
  const memoryStart = 2 ** 20;
@@ -20,7 +20,7 @@ onNewBlocks) {
20
20
  key,
21
21
  protocols: [`jamnp-s/0/${genesisFirstBytes}`],
22
22
  });
23
- const connections = new Connections(network);
23
+ const connections = Connections.new(network);
24
24
  connections.addPersistentRetry(bootnodes);
25
25
  const streamManager = new StreamManager();
26
26
  // start the networking tasks
@@ -28,7 +28,8 @@ export declare class Connections {
28
28
  private readonly network;
29
29
  /** Info about peers that are currently connected or where connected in the past. */
30
30
  private readonly peerInfo;
31
- constructor(network: Network<Peer>);
31
+ static new(network: Network<Peer>): Connections;
32
+ private constructor();
32
33
  /** Attach some external typed data to given peer. */
33
34
  setAuxData<T>(peer: PeerId, id: AuxData<T>, data: T): void;
34
35
  /** Read some externally-attached data about the peer. */
@@ -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;IAqE/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;IAQF,OAAO,CAAC,QAAQ,CAAC,OAAO;IAP5C,oFAAoF;IACpF,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAE7D,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC;IAIjC,OAAO;IAWP,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"}
@@ -21,6 +21,9 @@ export class Connections {
21
21
  network;
22
22
  /** Info about peers that are currently connected or where connected in the past. */
23
23
  peerInfo = new Map();
24
+ static new(network) {
25
+ return new Connections(network);
26
+ }
24
27
  constructor(network) {
25
28
  this.network = network;
26
29
  network.peers.onPeerConnected((peer) => {
@@ -42,7 +42,8 @@ export declare class ServerHandler implements StreamHandler<typeof STREAM_KIND>
42
42
  private readonly chainSpec;
43
43
  private readonly getBlockSequence;
44
44
  kind: 128 & import("@typeberry/numbers").WithBytesRepresentation<1>;
45
- constructor(chainSpec: ChainSpec, getBlockSequence: (streamId: StreamId, hash: HeaderHash, direction: Direction, maxBlocks: U32) => BlockView[]);
45
+ static new(chainSpec: ChainSpec, getBlockSequence: (streamId: StreamId, hash: HeaderHash, direction: Direction, maxBlocks: U32) => BlockView[]): ServerHandler;
46
+ private constructor();
46
47
  onStreamMessage(sender: StreamMessageSender, message: BytesBlob): void;
47
48
  onClose(_streamId: StreamId): void;
48
49
  }
@@ -51,7 +52,8 @@ export declare class ClientHandler implements StreamHandler<typeof STREAM_KIND>
51
52
  kind: 128 & import("@typeberry/numbers").WithBytesRepresentation<1>;
52
53
  private promiseResolvers;
53
54
  private promiseRejectors;
54
- constructor(chainSpec: ChainSpec);
55
+ static new(chainSpec: ChainSpec): ClientHandler;
56
+ private constructor();
55
57
  onStreamMessage(sender: StreamMessageSender, message: BytesBlob): void;
56
58
  onClose(streamId: StreamId): void;
57
59
  requestBlockSequence(sender: StreamMessageSender, headerHash: HeaderHash, direction: Direction, maxBlocks: U32): Promise<BlockView[]>;
@@ -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,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"}
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;IAWnE,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IAXnC,IAAI,gEAAe;IAEnB,MAAM,CAAC,GAAG,CACR,SAAS,EAAE,SAAS,EACpB,gBAAgB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,SAAS,EAAE;IAK/G,OAAO;IAUP,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;IAUjD,OAAO,CAAC,QAAQ,CAAC,SAAS;IAT9C,IAAI,gEAAe;IAEnB,OAAO,CAAC,gBAAgB,CAA0D;IAClF,OAAO,CAAC,gBAAgB,CAAwD;IAEhF,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS;IAI/B,OAAO;IAEP,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"}
@@ -60,6 +60,9 @@ export class ServerHandler {
60
60
  chainSpec;
61
61
  getBlockSequence;
62
62
  kind = STREAM_KIND;
63
+ static new(chainSpec, getBlockSequence) {
64
+ return new ServerHandler(chainSpec, getBlockSequence);
65
+ }
63
66
  constructor(chainSpec, getBlockSequence) {
64
67
  this.chainSpec = chainSpec;
65
68
  this.getBlockSequence = getBlockSequence;
@@ -78,6 +81,9 @@ export class ClientHandler {
78
81
  kind = STREAM_KIND;
79
82
  promiseResolvers = new Map();
80
83
  promiseRejectors = new Map();
84
+ static new(chainSpec) {
85
+ return new ClientHandler(chainSpec);
86
+ }
81
87
  constructor(chainSpec) {
82
88
  this.chainSpec = chainSpec;
83
89
  }
@@ -17,8 +17,8 @@ const TEST_BLOCK_VIEW = testBlockView();
17
17
  describe("CE 128: Block Request", () => {
18
18
  it("sends a block request and receives a sequence of blocks", async () => {
19
19
  const handlers = testClientServer();
20
- handlers.server.registerHandlers(new ServerHandler(tinyChainSpec, getBlockSequence));
21
- handlers.client.registerHandlers(new ClientHandler(tinyChainSpec));
20
+ handlers.server.registerHandlers(ServerHandler.new(tinyChainSpec, getBlockSequence));
21
+ handlers.client.registerHandlers(ClientHandler.new(tinyChainSpec));
22
22
  const receivedData = await new Promise((resolve) => {
23
23
  handlers.client.withNewStream(STREAM_KIND, (handler, sender) => {
24
24
  (async () => {