@typeberry/lib 0.5.10 → 0.5.11-1fbacf3

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 (502) 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/index.d.ts +4 -0
  231. package/packages/jam/in-core/externalities/index.d.ts.map +1 -0
  232. package/packages/jam/in-core/externalities/index.js +3 -0
  233. package/packages/jam/in-core/externalities/is-authorized-fetch.d.ts +20 -0
  234. package/packages/jam/in-core/externalities/is-authorized-fetch.d.ts.map +1 -0
  235. package/packages/jam/in-core/externalities/is-authorized-fetch.js +41 -0
  236. package/packages/jam/in-core/externalities/is-authorized-fetch.test.d.ts +2 -0
  237. package/packages/jam/in-core/externalities/is-authorized-fetch.test.d.ts.map +1 -0
  238. package/packages/jam/in-core/externalities/is-authorized-fetch.test.js +101 -0
  239. package/packages/jam/in-core/externalities/refine-fetch.d.ts +51 -0
  240. package/packages/jam/in-core/externalities/refine-fetch.d.ts.map +1 -0
  241. package/packages/jam/in-core/externalities/refine-fetch.js +80 -0
  242. package/packages/jam/in-core/externalities/refine-fetch.test.d.ts +2 -0
  243. package/packages/jam/in-core/externalities/refine-fetch.test.d.ts.map +1 -0
  244. package/packages/jam/in-core/externalities/refine-fetch.test.js +219 -0
  245. package/packages/jam/in-core/externalities/refine.d.ts +18 -8
  246. package/packages/jam/in-core/externalities/refine.d.ts.map +1 -1
  247. package/packages/jam/in-core/externalities/refine.js +86 -7
  248. package/packages/jam/in-core/externalities/refine.test.js +168 -3
  249. package/packages/jam/in-core/in-core.d.ts +9 -23
  250. package/packages/jam/in-core/in-core.d.ts.map +1 -1
  251. package/packages/jam/in-core/in-core.js +22 -187
  252. package/packages/jam/in-core/in-core.test.js +52 -20
  253. package/packages/jam/in-core/is-authorized.d.ts +34 -0
  254. package/packages/jam/in-core/is-authorized.d.ts.map +1 -0
  255. package/packages/jam/in-core/is-authorized.js +73 -0
  256. package/packages/jam/in-core/is-authorized.test.d.ts +2 -0
  257. package/packages/jam/in-core/is-authorized.test.d.ts.map +1 -0
  258. package/packages/jam/in-core/is-authorized.test.js +167 -0
  259. package/packages/jam/in-core/refine.d.ts +31 -0
  260. package/packages/jam/in-core/refine.d.ts.map +1 -0
  261. package/packages/jam/in-core/refine.js +182 -0
  262. package/packages/jam/in-core/refine.test.d.ts +2 -0
  263. package/packages/jam/in-core/refine.test.d.ts.map +1 -0
  264. package/packages/jam/in-core/refine.test.js +6 -0
  265. package/packages/jam/jam-host-calls/accumulate/assign.d.ts +2 -1
  266. package/packages/jam/jam-host-calls/accumulate/assign.d.ts.map +1 -1
  267. package/packages/jam/jam-host-calls/accumulate/assign.js +3 -0
  268. package/packages/jam/jam-host-calls/accumulate/assign.test.js +8 -9
  269. package/packages/jam/jam-host-calls/accumulate/bless.d.ts +2 -1
  270. package/packages/jam/jam-host-calls/accumulate/bless.d.ts.map +1 -1
  271. package/packages/jam/jam-host-calls/accumulate/bless.js +12 -9
  272. package/packages/jam/jam-host-calls/accumulate/bless.test.js +11 -12
  273. package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts +2 -1
  274. package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts.map +1 -1
  275. package/packages/jam/jam-host-calls/accumulate/checkpoint.js +4 -1
  276. package/packages/jam/jam-host-calls/accumulate/checkpoint.test.js +2 -3
  277. package/packages/jam/jam-host-calls/accumulate/designate.d.ts +2 -1
  278. package/packages/jam/jam-host-calls/accumulate/designate.d.ts.map +1 -1
  279. package/packages/jam/jam-host-calls/accumulate/designate.js +3 -0
  280. package/packages/jam/jam-host-calls/accumulate/designate.test.js +5 -6
  281. package/packages/jam/jam-host-calls/accumulate/eject.d.ts +2 -1
  282. package/packages/jam/jam-host-calls/accumulate/eject.d.ts.map +1 -1
  283. package/packages/jam/jam-host-calls/accumulate/eject.js +3 -0
  284. package/packages/jam/jam-host-calls/accumulate/eject.test.js +8 -9
  285. package/packages/jam/jam-host-calls/accumulate/forget.d.ts +2 -1
  286. package/packages/jam/jam-host-calls/accumulate/forget.d.ts.map +1 -1
  287. package/packages/jam/jam-host-calls/accumulate/forget.js +3 -0
  288. package/packages/jam/jam-host-calls/accumulate/forget.test.js +5 -6
  289. package/packages/jam/jam-host-calls/accumulate/new.d.ts +2 -1
  290. package/packages/jam/jam-host-calls/accumulate/new.d.ts.map +1 -1
  291. package/packages/jam/jam-host-calls/accumulate/new.js +3 -0
  292. package/packages/jam/jam-host-calls/accumulate/new.test.js +9 -10
  293. package/packages/jam/jam-host-calls/accumulate/provide.d.ts +2 -1
  294. package/packages/jam/jam-host-calls/accumulate/provide.d.ts.map +1 -1
  295. package/packages/jam/jam-host-calls/accumulate/provide.js +3 -0
  296. package/packages/jam/jam-host-calls/accumulate/provide.test.js +8 -9
  297. package/packages/jam/jam-host-calls/accumulate/query.d.ts +2 -1
  298. package/packages/jam/jam-host-calls/accumulate/query.d.ts.map +1 -1
  299. package/packages/jam/jam-host-calls/accumulate/query.js +3 -0
  300. package/packages/jam/jam-host-calls/accumulate/query.test.js +8 -9
  301. package/packages/jam/jam-host-calls/accumulate/solicit.d.ts +2 -1
  302. package/packages/jam/jam-host-calls/accumulate/solicit.d.ts.map +1 -1
  303. package/packages/jam/jam-host-calls/accumulate/solicit.js +3 -0
  304. package/packages/jam/jam-host-calls/accumulate/solicit.test.js +7 -8
  305. package/packages/jam/jam-host-calls/accumulate/transfer.d.ts +2 -1
  306. package/packages/jam/jam-host-calls/accumulate/transfer.d.ts.map +1 -1
  307. package/packages/jam/jam-host-calls/accumulate/transfer.js +3 -0
  308. package/packages/jam/jam-host-calls/accumulate/transfer.test.js +9 -10
  309. package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts +2 -1
  310. package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts.map +1 -1
  311. package/packages/jam/jam-host-calls/accumulate/upgrade.js +3 -0
  312. package/packages/jam/jam-host-calls/accumulate/upgrade.test.js +4 -5
  313. package/packages/jam/jam-host-calls/accumulate/yield.d.ts +2 -1
  314. package/packages/jam/jam-host-calls/accumulate/yield.d.ts.map +1 -1
  315. package/packages/jam/jam-host-calls/accumulate/yield.js +3 -0
  316. package/packages/jam/jam-host-calls/accumulate/yield.test.js +4 -5
  317. package/packages/jam/jam-host-calls/externalities/partial-state.d.ts +1 -1
  318. package/packages/jam/jam-host-calls/externalities/refine-externalities.d.ts +1 -1
  319. package/packages/jam/jam-host-calls/externalities/refine-externalities.d.ts.map +1 -1
  320. package/packages/jam/jam-host-calls/externalities/refine-externalities.test.js +9 -9
  321. package/packages/jam/jam-host-calls/externalities/state-update.d.ts +2 -3
  322. package/packages/jam/jam-host-calls/externalities/state-update.d.ts.map +1 -1
  323. package/packages/jam/jam-host-calls/externalities/state-update.js +5 -2
  324. package/packages/jam/jam-host-calls/externalities/test-accounts.js +2 -2
  325. package/packages/jam/jam-host-calls/general/fetch.d.ts +166 -104
  326. package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
  327. package/packages/jam/jam-host-calls/general/fetch.js +120 -23
  328. package/packages/jam/jam-host-calls/general/fetch.test.js +125 -92
  329. package/packages/jam/jam-host-calls/general/gas.d.ts +2 -1
  330. package/packages/jam/jam-host-calls/general/gas.d.ts.map +1 -1
  331. package/packages/jam/jam-host-calls/general/gas.js +3 -0
  332. package/packages/jam/jam-host-calls/general/gas.test.js +4 -5
  333. package/packages/jam/jam-host-calls/general/info.d.ts +2 -1
  334. package/packages/jam/jam-host-calls/general/info.d.ts.map +1 -1
  335. package/packages/jam/jam-host-calls/general/info.js +3 -0
  336. package/packages/jam/jam-host-calls/general/info.test.js +6 -7
  337. package/packages/jam/jam-host-calls/general/log.d.ts +2 -1
  338. package/packages/jam/jam-host-calls/general/log.d.ts.map +1 -1
  339. package/packages/jam/jam-host-calls/general/log.js +3 -0
  340. package/packages/jam/jam-host-calls/general/lookup.d.ts +2 -1
  341. package/packages/jam/jam-host-calls/general/lookup.d.ts.map +1 -1
  342. package/packages/jam/jam-host-calls/general/lookup.js +3 -0
  343. package/packages/jam/jam-host-calls/general/lookup.test.js +8 -9
  344. package/packages/jam/jam-host-calls/general/read.d.ts +2 -1
  345. package/packages/jam/jam-host-calls/general/read.d.ts.map +1 -1
  346. package/packages/jam/jam-host-calls/general/read.js +3 -0
  347. package/packages/jam/jam-host-calls/general/read.test.js +11 -12
  348. package/packages/jam/jam-host-calls/general/write.d.ts +2 -1
  349. package/packages/jam/jam-host-calls/general/write.d.ts.map +1 -1
  350. package/packages/jam/jam-host-calls/general/write.js +3 -0
  351. package/packages/jam/jam-host-calls/general/write.test.js +10 -11
  352. package/packages/jam/jam-host-calls/refine/export.d.ts +2 -1
  353. package/packages/jam/jam-host-calls/refine/export.d.ts.map +1 -1
  354. package/packages/jam/jam-host-calls/refine/export.js +3 -0
  355. package/packages/jam/jam-host-calls/refine/export.test.js +6 -7
  356. package/packages/jam/jam-host-calls/refine/expunge.d.ts +2 -1
  357. package/packages/jam/jam-host-calls/refine/expunge.d.ts.map +1 -1
  358. package/packages/jam/jam-host-calls/refine/expunge.js +3 -0
  359. package/packages/jam/jam-host-calls/refine/expunge.test.js +3 -4
  360. package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts +2 -1
  361. package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts.map +1 -1
  362. package/packages/jam/jam-host-calls/refine/historical-lookup.js +3 -0
  363. package/packages/jam/jam-host-calls/refine/historical-lookup.test.js +11 -12
  364. package/packages/jam/jam-host-calls/refine/invoke.d.ts +2 -1
  365. package/packages/jam/jam-host-calls/refine/invoke.d.ts.map +1 -1
  366. package/packages/jam/jam-host-calls/refine/invoke.js +4 -1
  367. package/packages/jam/jam-host-calls/refine/invoke.test.js +10 -11
  368. package/packages/jam/jam-host-calls/refine/machine.d.ts +2 -1
  369. package/packages/jam/jam-host-calls/refine/machine.d.ts.map +1 -1
  370. package/packages/jam/jam-host-calls/refine/machine.js +3 -0
  371. package/packages/jam/jam-host-calls/refine/machine.test.js +6 -7
  372. package/packages/jam/jam-host-calls/refine/pages.d.ts +2 -1
  373. package/packages/jam/jam-host-calls/refine/pages.d.ts.map +1 -1
  374. package/packages/jam/jam-host-calls/refine/pages.js +3 -0
  375. package/packages/jam/jam-host-calls/refine/pages.test.js +3 -4
  376. package/packages/jam/jam-host-calls/refine/peek.d.ts +2 -1
  377. package/packages/jam/jam-host-calls/refine/peek.d.ts.map +1 -1
  378. package/packages/jam/jam-host-calls/refine/peek.js +3 -0
  379. package/packages/jam/jam-host-calls/refine/peek.test.js +3 -4
  380. package/packages/jam/jam-host-calls/refine/poke.d.ts +2 -1
  381. package/packages/jam/jam-host-calls/refine/poke.d.ts.map +1 -1
  382. package/packages/jam/jam-host-calls/refine/poke.js +3 -0
  383. package/packages/jam/jam-host-calls/refine/poke.test.js +3 -4
  384. package/packages/jam/jamnp-s/network.js +1 -1
  385. package/packages/jam/jamnp-s/peers.d.ts +2 -1
  386. package/packages/jam/jamnp-s/peers.d.ts.map +1 -1
  387. package/packages/jam/jamnp-s/peers.js +3 -0
  388. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts +4 -2
  389. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts.map +1 -1
  390. package/packages/jam/jamnp-s/protocol/ce-128-block-request.js +6 -0
  391. package/packages/jam/jamnp-s/protocol/ce-128-block-request.test.js +2 -2
  392. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts +4 -2
  393. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts.map +1 -1
  394. package/packages/jam/jamnp-s/protocol/ce-129-state-request.js +6 -0
  395. package/packages/jam/jamnp-s/protocol/ce-129-state-request.test.js +4 -4
  396. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +4 -2
  397. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts.map +1 -1
  398. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.js +6 -0
  399. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.test.js +2 -2
  400. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +6 -3
  401. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts.map +1 -1
  402. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.js +7 -0
  403. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.test.js +2 -2
  404. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts +5 -2
  405. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts.map +1 -1
  406. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.js +7 -0
  407. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.test.js +2 -2
  408. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +4 -2
  409. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts.map +1 -1
  410. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.js +6 -0
  411. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.test.js +2 -2
  412. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +2 -1
  413. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts.map +1 -1
  414. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.js +3 -0
  415. package/packages/jam/jamnp-s/stream-manager.d.ts +2 -1
  416. package/packages/jam/jamnp-s/stream-manager.d.ts.map +1 -1
  417. package/packages/jam/jamnp-s/stream-manager.js +4 -1
  418. package/packages/jam/jamnp-s/tasks/sync.js +4 -4
  419. package/packages/jam/jamnp-s/tasks/sync.test.js +4 -4
  420. package/packages/jam/jamnp-s/tasks/ticket-distribution.js +2 -2
  421. package/packages/jam/jamnp-s/tasks/ticket-distribution.test.js +1 -1
  422. package/packages/jam/node/common.d.ts.map +1 -1
  423. package/packages/jam/node/common.js +3 -3
  424. package/packages/jam/rpc-client/index.d.ts +4 -2
  425. package/packages/jam/rpc-client/index.d.ts.map +1 -1
  426. package/packages/jam/rpc-client/index.js +7 -1
  427. package/packages/jam/state/in-memory-state-view.d.ts +2 -1
  428. package/packages/jam/state/in-memory-state-view.d.ts.map +1 -1
  429. package/packages/jam/state/in-memory-state-view.js +3 -0
  430. package/packages/jam/state/in-memory-state.d.ts +16 -21
  431. package/packages/jam/state/in-memory-state.d.ts.map +1 -1
  432. package/packages/jam/state/in-memory-state.js +10 -6
  433. package/packages/jam/state/in-memory-state.test.js +2 -2
  434. package/packages/jam/state/service.d.ts +2 -6
  435. package/packages/jam/state/service.d.ts.map +1 -1
  436. package/packages/jam/state/service.js +3 -0
  437. package/packages/jam/state/test.utils.js +3 -3
  438. package/packages/jam/state-json/accounts.js +5 -5
  439. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +3 -34
  440. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts.map +1 -1
  441. package/packages/jam/state-merkleization/in-memory-state-codec.js +1 -1
  442. package/packages/jam/state-merkleization/serialized-state-view.d.ts +8 -3
  443. package/packages/jam/state-merkleization/serialized-state-view.d.ts.map +1 -1
  444. package/packages/jam/state-merkleization/serialized-state-view.js +6 -3
  445. package/packages/jam/state-merkleization/serialized-state.d.ts +2 -3
  446. package/packages/jam/state-merkleization/serialized-state.d.ts.map +1 -1
  447. package/packages/jam/state-merkleization/serialized-state.js +10 -2
  448. package/packages/jam/state-merkleization/serialized-state.test.js +1 -1
  449. package/packages/jam/transition/accumulate/accumulate.d.ts.map +1 -1
  450. package/packages/jam/transition/accumulate/accumulate.js +20 -8
  451. package/packages/jam/transition/accumulate/accumulate.test.js +1 -1
  452. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.js +48 -39
  453. package/packages/jam/transition/block-verifier.d.ts +2 -1
  454. package/packages/jam/transition/block-verifier.d.ts.map +1 -1
  455. package/packages/jam/transition/block-verifier.js +3 -0
  456. package/packages/jam/transition/block-verifier.test.js +8 -8
  457. package/packages/jam/transition/chain-stf.d.ts +12 -4
  458. package/packages/jam/transition/chain-stf.d.ts.map +1 -1
  459. package/packages/jam/transition/chain-stf.js +7 -3
  460. package/packages/jam/transition/externalities/accumulate-externalities.d.ts +22 -8
  461. package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
  462. package/packages/jam/transition/externalities/accumulate-externalities.js +49 -29
  463. package/packages/jam/transition/externalities/accumulate-externalities.test.js +661 -101
  464. package/packages/jam/transition/externalities/accumulate-fetch-externalities.d.ts +19 -0
  465. package/packages/jam/transition/externalities/accumulate-fetch-externalities.d.ts.map +1 -0
  466. package/packages/jam/transition/externalities/accumulate-fetch-externalities.js +45 -0
  467. package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.d.ts +2 -0
  468. package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.d.ts.map +1 -0
  469. package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.js +192 -0
  470. package/packages/jam/transition/externalities/fetch-externalities.d.ts +54 -37
  471. package/packages/jam/transition/externalities/fetch-externalities.d.ts.map +1 -1
  472. package/packages/jam/transition/externalities/fetch-externalities.js +45 -89
  473. package/packages/jam/transition/externalities/index.d.ts +1 -0
  474. package/packages/jam/transition/externalities/index.d.ts.map +1 -1
  475. package/packages/jam/transition/externalities/index.js +1 -0
  476. package/packages/jam/transition/hasher.d.ts +2 -1
  477. package/packages/jam/transition/hasher.d.ts.map +1 -1
  478. package/packages/jam/transition/hasher.js +5 -2
  479. package/packages/jam/transition/hasher.test.js +1 -1
  480. package/packages/jam/transition/preimages.test.js +4 -4
  481. package/packages/jam/transition/reports/test.utils.js +1 -1
  482. package/packages/workers/api-node/config.js +4 -4
  483. package/packages/workers/api-node/port.d.ts +2 -1
  484. package/packages/workers/api-node/port.d.ts.map +1 -1
  485. package/packages/workers/api-node/port.js +4 -1
  486. package/packages/workers/api-node/port.test.js +2 -2
  487. package/packages/workers/api-node/protocol.js +2 -2
  488. package/packages/workers/block-authorship/generator.d.ts +13 -2
  489. package/packages/workers/block-authorship/generator.d.ts.map +1 -1
  490. package/packages/workers/block-authorship/generator.js +13 -9
  491. package/packages/workers/block-authorship/generator.test.js +16 -2
  492. package/packages/workers/block-authorship/main.d.ts.map +1 -1
  493. package/packages/workers/block-authorship/main.js +8 -1
  494. package/packages/workers/importer/finality.test.js +1 -1
  495. package/packages/workers/importer/importer.d.ts +23 -6
  496. package/packages/workers/importer/importer.d.ts.map +1 -1
  497. package/packages/workers/importer/importer.js +34 -19
  498. package/packages/workers/importer/main.d.ts.map +1 -1
  499. package/packages/workers/importer/main.js +13 -5
  500. package/packages/jam/transition/externalities/fetch-externalities.test.d.ts +0 -2
  501. package/packages/jam/transition/externalities/fetch-externalities.test.d.ts.map +0 -1
  502. package/packages/jam/transition/externalities/fetch-externalities.test.js +0 -254
package/README.md CHANGED
@@ -243,7 +243,7 @@ const programHex = "0x0000213308013309012803009577ff51070c648ac8980864a928f36487
243
243
  const program = BytesBlob.parseBlob(programHex);
244
244
 
245
245
  // Create interpreter and initialize with program
246
- const pvm = new Interpreter();
246
+ const pvm = Interpreter.new();
247
247
  pvm.resetGeneric(program.raw, 0, tryAsGas(1000));
248
248
 
249
249
  // dump the program data
@@ -269,7 +269,7 @@ import { BytesBlob } from "@typeberry/lib/bytes";
269
269
  const programHex = "0x0000210408010409010503000277ff07070c528a08980852a905f3528704080409111300499352d500";
270
270
  const program = BytesBlob.parseBlob(programHex);
271
271
 
272
- const pvm = new Interpreter();
272
+ const pvm = Interpreter.new();
273
273
  pvm.resetGeneric(program.raw, 0, tryAsGas(1000));
274
274
  pvm.runProgram();
275
275
 
@@ -11,7 +11,7 @@ describe("PVM Examples", () => {
11
11
  const programHex = "0x0000213308013309012803009577ff51070c648ac8980864a928f3648733083309013200499352d500";
12
12
  const program = BytesBlob.parseBlob(programHex);
13
13
  // Create interpreter and initialize with program
14
- const pvm = new Interpreter();
14
+ const pvm = Interpreter.new();
15
15
  pvm.resetGeneric(program.raw, 0, tryAsGas(1000));
16
16
  // dump the program data
17
17
  console.table(pvm.dumpProgram());
@@ -29,7 +29,7 @@ describe("PVM Examples", () => {
29
29
  const { BytesBlob } = await import("@typeberry/lib/bytes");
30
30
  const programHex = "0x0000210408010409010503000277ff07070c528a08980852a905f3528704080409111300499352d500";
31
31
  const program = BytesBlob.parseBlob(programHex);
32
- const pvm = new Interpreter();
32
+ const pvm = Interpreter.new();
33
33
  pvm.resetGeneric(program.raw, 0, tryAsGas(1000));
34
34
  pvm.runProgram();
35
35
  // Access register values after execution
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@typeberry/lib",
3
- "version": "0.5.10",
3
+ "version": "0.5.11-1fbacf3",
4
4
  "description": "Typeberry Library",
5
5
  "main": "./bin/lib/index.js",
6
6
  "types": "./bin/lib/index.d.ts",
@@ -54,7 +54,7 @@ export class Descriptor {
54
54
  */
55
55
  skipEncoded(decoder) {
56
56
  const initBytes = decoder.bytesRead();
57
- this.skip(new Skipper(decoder));
57
+ this.skip(Skipper.new(decoder));
58
58
  const endBytes = decoder.bytesRead();
59
59
  return BytesBlob.blobFrom(decoder.source.subarray(initBytes, endBytes));
60
60
  }
@@ -311,6 +311,9 @@ function hasUniqueView(a) {
311
311
  function objectView(Class, descriptors, sizeHint, skipper) {
312
312
  // Create a View, based on the `AbstractView`.
313
313
  class ClassView extends ObjectView {
314
+ static new(d) {
315
+ return new ClassView(d);
316
+ }
314
317
  constructor(d) {
315
318
  super(d, Class, descriptors);
316
319
  }
@@ -330,8 +333,8 @@ function objectView(Class, descriptors, sizeHint, skipper) {
330
333
  const encoded = t.encoded();
331
334
  e.bytes(Bytes.fromBlob(encoded.raw, encoded.length));
332
335
  }, (d) => {
333
- const view = new ClassView(d.clone());
334
- skipper(new Skipper(d));
336
+ const view = ClassView.new(d.clone());
337
+ skipper(Skipper.new(d));
335
338
  return view;
336
339
  }, skipper);
337
340
  }
@@ -351,7 +354,7 @@ function sequenceViewVarLen(type, options) {
351
354
  e.bytes(Bytes.fromBlob(encoded.raw, encoded.length));
352
355
  }, (d) => {
353
356
  const view = new SequenceView(d.clone(), type);
354
- skipper(new Skipper(d));
357
+ skipper(Skipper.new(d));
355
358
  return view;
356
359
  }, skipper);
357
360
  }
@@ -366,7 +369,7 @@ function sequenceViewFixLen(type, { fixedLength }) {
366
369
  e.bytes(Bytes.fromBlob(encoded.raw, encoded.length));
367
370
  }, (d) => {
368
371
  const view = new SequenceView(d.clone(), type, fixedLength);
369
- skipper(new Skipper(d));
372
+ skipper(Skipper.new(d));
370
373
  return view;
371
374
  }, skipper);
372
375
  }
@@ -125,7 +125,7 @@ export declare class Encoder {
125
125
  */
126
126
  i8(num: number): void;
127
127
  /**
128
- * Encode a single boolean discriminator using variable encoding.
128
+ * Encode a single boolean discriminator using 1-byte encoding.
129
129
  *
130
130
  * https://graypaper.fluffylabs.dev/#/579bd12/375300375300
131
131
  */
@@ -1 +1 @@
1
- {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../../../../packages/core/codec/encoder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../../../../packages/core/codec/encoder.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Bytes, BytesBlob } from "#@typeberry/bytes";
2
2
  import { tryAsU32 } from "#@typeberry/numbers";
3
3
  import { check } from "#@typeberry/utils";
4
+ import { tryAsU8 } from "../numbers/index.js";
4
5
  export function tryAsExactBytes(a) {
5
6
  check `${a.isExact} The value is not exact size estimation!`;
6
7
  return a.bytes;
@@ -150,12 +151,12 @@ export class Encoder {
150
151
  this.offset += 1;
151
152
  }
152
153
  /**
153
- * Encode a single boolean discriminator using variable encoding.
154
+ * Encode a single boolean discriminator using 1-byte encoding.
154
155
  *
155
156
  * https://graypaper.fluffylabs.dev/#/579bd12/375300375300
156
157
  */
157
158
  bool(bool) {
158
- this.varU32(tryAsU32(bool ? 1 : 0));
159
+ this.i8(tryAsU8(bool ? 1 : 0));
159
160
  }
160
161
  /**
161
162
  * Prepare for encoding of a fixed-bytes number.
@@ -67,7 +67,7 @@ describe("JAM encoder / decoder", () => {
67
67
  const encoded = encoder.viewResult();
68
68
  const decoder = Decoder.fromBytesBlob(encoded);
69
69
  // skipping
70
- const skip = new Skipper(decoder.clone());
70
+ const skip = Skipper.new(decoder.clone());
71
71
  g.descriptor.skip(skip);
72
72
  skip.decoder.finish();
73
73
  // decoding
@@ -7,7 +7,8 @@ export type Skip = {
7
7
  /** Wrapper for `Decoder` that can skip bytes of fields in the data buffer instead of decoding them. */
8
8
  export declare class Skipper {
9
9
  readonly decoder: Decoder;
10
- constructor(decoder: Decoder);
10
+ static new(decoder: Decoder): Skipper;
11
+ private constructor();
11
12
  /** Skip U64/I64. */
12
13
  u64: () => void;
13
14
  /** Skip U32/I32. */
@@ -1 +1 @@
1
- {"version":3,"file":"skip.d.ts","sourceRoot":"","sources":["../../../../../packages/core/codec/skip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAkC,MAAM,cAAc,CAAC;AAE5E,yDAAyD;AACzD,MAAM,MAAM,IAAI,GAAG;IACjB,4CAA4C;IAC5C,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5B,CAAC;AAEF,uGAAuG;AACvG,qBAAa,OAAO;aACU,OAAO,EAAE,OAAO;gBAAhB,OAAO,EAAE,OAAO;IAC5C,oBAAoB;IACpB,GAAG,aAA8B;IACjC,oBAAoB;IACpB,GAAG,aAA8B;IACjC,oBAAoB;IACpB,GAAG,aAA8B;IACjC,oBAAoB;IACpB,GAAG,aAA8B;IACjC,kBAAkB;IAClB,EAAE,aAA8B;IAChC,oBAAoB;IACpB,IAAI,aAA8B;IAClC,gCAAgC;IAChC,MAAM,aAAuB;IAC7B,gCAAgC;IAChC,MAAM;IAKN,+BAA+B;IAC/B,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC;IAG9B,uCAAuC;IACvC,SAAS;IAIT,oCAAoC;IACpC,YAAY,CAAC,SAAS,EAAE,MAAM;IAG9B,uCAAuC;IACvC,YAAY;IAIZ,+BAA+B;IAC/B,MAAM,CAAC,MAAM,EAAE,IAAI;IAGnB,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,IAAI;IAMrB,kCAAkC;IAClC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM;IAKxC,qCAAqC;IACrC,cAAc,CAAC,MAAM,EAAE,IAAI;CAI5B"}
1
+ {"version":3,"file":"skip.d.ts","sourceRoot":"","sources":["../../../../../packages/core/codec/skip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAkC,MAAM,cAAc,CAAC;AAE5E,yDAAyD;AACzD,MAAM,MAAM,IAAI,GAAG;IACjB,4CAA4C;IAC5C,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5B,CAAC;AAEF,uGAAuG;AACvG,qBAAa,OAAO;aAKkB,OAAO,EAAE,OAAO;IAJpD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO;IAI3B,OAAO;IACP,oBAAoB;IACpB,GAAG,aAA8B;IACjC,oBAAoB;IACpB,GAAG,aAA8B;IACjC,oBAAoB;IACpB,GAAG,aAA8B;IACjC,oBAAoB;IACpB,GAAG,aAA8B;IACjC,kBAAkB;IAClB,EAAE,aAA8B;IAChC,oBAAoB;IACpB,IAAI,aAA8B;IAClC,gCAAgC;IAChC,MAAM,aAAuB;IAC7B,gCAAgC;IAChC,MAAM;IAKN,+BAA+B;IAC/B,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC;IAG9B,uCAAuC;IACvC,SAAS;IAIT,oCAAoC;IACpC,YAAY,CAAC,SAAS,EAAE,MAAM;IAG9B,uCAAuC;IACvC,YAAY;IAIZ,+BAA+B;IAC/B,MAAM,CAAC,MAAM,EAAE,IAAI;IAGnB,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,IAAI;IAMrB,kCAAkC;IAClC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM;IAKxC,qCAAqC;IACrC,cAAc,CAAC,MAAM,EAAE,IAAI;CAI5B"}
@@ -2,6 +2,9 @@ import { decodeVariableLengthExtraBytes } from "./decoder.js";
2
2
  /** Wrapper for `Decoder` that can skip bytes of fields in the data buffer instead of decoding them. */
3
3
  export class Skipper {
4
4
  decoder;
5
+ static new(decoder) {
6
+ return new Skipper(decoder);
7
+ }
5
8
  constructor(decoder) {
6
9
  this.decoder = decoder;
7
10
  }
@@ -107,7 +107,7 @@ export class ObjectView {
107
107
  is already decoded (${this.lastDecodedFieldIdx}, ${String(lastField)}).
108
108
  `;
109
109
  let lastItem = this.cache.get(lastField);
110
- const skipper = new Skipper(this.decoder);
110
+ const skipper = Skipper.new(this.decoder);
111
111
  // now skip all of the fields and further populate the cache.
112
112
  for (let i = this.lastDecodedFieldIdx + 1; i <= index; i++) {
113
113
  // create new cached prop
@@ -214,7 +214,7 @@ export class SequenceView {
214
214
  Unjustified call to 'decodeUpTo' - the index (${index}) is already decoded (${this.lastDecodedIdx}).
215
215
  `;
216
216
  let lastItem = this.cache.get(this.lastDecodedIdx);
217
- const skipper = new Skipper(this.decoder);
217
+ const skipper = Skipper.new(this.decoder);
218
218
  // now skip all of the fields and further populate the cache.
219
219
  for (let i = this.lastDecodedIdx + 1; i <= index; i++) {
220
220
  // create new cached prop
@@ -18,7 +18,8 @@ export declare class MultiMap<TKeys extends readonly unknown[], TValue> {
18
18
  * Pass the number of keys and optionally mappers from keys to primitive types
19
19
  * if needed.
20
20
  */
21
- constructor(keysLength: TKeys["length"], keyMappers?: KeyMappers<TKeys>);
21
+ static new<TKeys extends readonly unknown[], TValue>(keysLength: TKeys["length"], keyMappers?: KeyMappers<TKeys>): MultiMap<TKeys, TValue>;
22
+ private constructor();
22
23
  /** Convert input keys into primitive types. */
23
24
  private primitiveKeys;
24
25
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"multi-map.d.ts","sourceRoot":"","sources":["../../../../../packages/core/collections/multi-map.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC,MAAM,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,GACnG,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACrC,MAAM,CAAC;AAEX,KAAK,UAAU,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,IAAI,KAAK,SAAS,CAAC,MAAM,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,GAC3F,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAC/C,EAAE,CAAC;AAEP,sDAAsD;AACtD,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzE;;;;;;;;GAQG;AACH,qBAAa,QAAQ,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EAAE,MAAM;IAC5D,SAAgB,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAE/C;;;OAGG;gBACS,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC;IAOvE,+CAA+C;IAC/C,OAAO,CAAC,aAAa;IAOrB;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,KAAK;IAsBnC;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,MAAM,EAAE,KAAK,GAAG,OAAO;IAKjC,kDAAkD;IAClD,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,GAAG,OAAO;IAK9B,kEAAkE;IAClE,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS;IAKzC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;CA0B1B"}
1
+ {"version":3,"file":"multi-map.d.ts","sourceRoot":"","sources":["../../../../../packages/core/collections/multi-map.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC,MAAM,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,GACnG,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACrC,MAAM,CAAC;AAEX,KAAK,UAAU,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,IAAI,KAAK,SAAS,CAAC,MAAM,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,GAC3F,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAC/C,EAAE,CAAC;AAEP,sDAAsD;AACtD,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzE;;;;;;;;GAQG;AACH,qBAAa,QAAQ,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EAAE,MAAM;IAC5D,SAAgB,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAE/C;;;OAGG;IACH,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC;IAIhH,OAAO;IAOP,+CAA+C;IAC/C,OAAO,CAAC,aAAa;IAOrB;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,KAAK;IAsBnC;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,MAAM,EAAE,KAAK,GAAG,OAAO;IAKjC,kDAAkD;IAClD,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,GAAG,OAAO;IAK9B,kEAAkE;IAClE,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS;IAKzC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;CA0B1B"}
@@ -15,6 +15,9 @@ export class MultiMap {
15
15
  * Pass the number of keys and optionally mappers from keys to primitive types
16
16
  * if needed.
17
17
  */
18
+ static new(keysLength, keyMappers) {
19
+ return new MultiMap(keysLength, keyMappers);
20
+ }
18
21
  constructor(keysLength, keyMappers) {
19
22
  check `${keysLength > 0} Keys cannot be empty.`;
20
23
  check `${keyMappers === undefined || keyMappers.length === keysLength} Incorrect number of key mappers given!`;
@@ -18,7 +18,7 @@ describe("Multi Map", () => {
18
18
  }
19
19
  }
20
20
  // given
21
- const map = new MultiMap(3, [null, (obj) => obj.val, null]);
21
+ const map = MultiMap.new(3, [null, (obj) => obj.val, null]);
22
22
  map
23
23
  .set("hello", "a", new MyObject(5), 10)
24
24
  .set("world", "b", new MyObject(10), 10)
@@ -37,7 +37,7 @@ describe("Multi Map", () => {
37
37
  });
38
38
  it("should check existence and remove elements", () => {
39
39
  // given
40
- const map = new MultiMap(2);
40
+ const map = MultiMap.new(2);
41
41
  map.set("hello", "a", 10).set("world", "b", 10).set("frens", "a", 11);
42
42
  // when
43
43
  const has_a = map.has("a", 10);
@@ -113,11 +113,14 @@ async function initWorker(workerPath) {
113
113
  });
114
114
  // make sure the threads don't prevent the program from stopping.
115
115
  workerThread.unref();
116
- return new WorkerChannel(workerThread, port2);
116
+ return WorkerChannel.new(workerThread, port2);
117
117
  }
118
118
  class WorkerChannel {
119
119
  worker;
120
120
  port;
121
+ static new(worker, port) {
122
+ return new WorkerChannel(worker, port);
123
+ }
121
124
  constructor(worker, port) {
122
125
  this.worker = worker;
123
126
  this.port = port;
@@ -31,11 +31,8 @@ export declare class Ed25519Pair {
31
31
  readonly pubKey: Ed25519Key;
32
32
  /** Private key. NOTE: Avoid using directly. */
33
33
  readonly _privKey: Bytes<ED25519_PRIV_KEY_BYTES>;
34
- constructor(
35
- /** Public key */
36
- pubKey: Ed25519Key,
37
- /** Private key. NOTE: Avoid using directly. */
38
- _privKey: Bytes<ED25519_PRIV_KEY_BYTES>);
34
+ static new(pubKey: Ed25519Key, _privKey: Bytes<ED25519_PRIV_KEY_BYTES>): Ed25519Pair;
35
+ private constructor();
39
36
  }
40
37
  /** Create a private key from given raw bytes. */
41
38
  export declare function privateKey(privKey: Bytes<ED25519_PRIV_KEY_BYTES>): Promise<Ed25519Pair>;
@@ -1 +1 @@
1
- {"version":3,"file":"ed25519.d.ts","sourceRoot":"","sources":["../../../../../packages/core/crypto/ed25519.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAS,KAAK,MAAM,EAAuB,MAAM,kBAAkB,CAAC;AAE3E,gCAAgC;AAChC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,KAAK,sBAAsB,GAAG,OAAO,sBAAsB,CAAC;AAE5D,+BAA+B;AAC/B,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC;AAEzD,8BAA8B;AAC9B,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAC;AAErE;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,YAAY,CAAC,CAAC;AAExE;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAE1F;;;;GAIG;AACH,qBAAa,WAAW;IAEpB,iBAAiB;aACD,MAAM,EAAE,UAAU;IAClC,+CAA+C;aAC/B,QAAQ,EAAE,KAAK,CAAC,sBAAsB,CAAC;;IAHvD,iBAAiB;IACD,MAAM,EAAE,UAAU;IAClC,+CAA+C;IAC/B,QAAQ,EAAE,KAAK,CAAC,sBAAsB,CAAC;CAE1D;AAED,iDAAiD;AACjD,wBAAsB,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAG7F;AAED,wDAAwD;AACxD,wBAAsB,IAAI,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAGvG;AAED,oCAAoC;AACpC,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI;IACnD,iBAAiB;IACjB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,kBAAkB;IAClB,GAAG,EAAE,UAAU,CAAC;IAChB,yBAAyB;IACzB,OAAO,EAAE,CAAC,CAAC;CACZ,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CA2BvF;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAa1F"}
1
+ {"version":3,"file":"ed25519.d.ts","sourceRoot":"","sources":["../../../../../packages/core/crypto/ed25519.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAS,KAAK,MAAM,EAAuB,MAAM,kBAAkB,CAAC;AAE3E,gCAAgC;AAChC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,KAAK,sBAAsB,GAAG,OAAO,sBAAsB,CAAC;AAE5D,+BAA+B;AAC/B,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC;AAEzD,8BAA8B;AAC9B,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAC;AAErE;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,YAAY,CAAC,CAAC;AAExE;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAE1F;;;;GAIG;AACH,qBAAa,WAAW;IAMpB,iBAAiB;aACD,MAAM,EAAE,UAAU;IAClC,+CAA+C;aAC/B,QAAQ,EAAE,KAAK,CAAC,sBAAsB,CAAC;IARzD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,sBAAsB,CAAC;IAItE,OAAO;CAMR;AAED,iDAAiD;AACjD,wBAAsB,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAG7F;AAED,wDAAwD;AACxD,wBAAsB,IAAI,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAGvG;AAED,oCAAoC;AACpC,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI;IACnD,iBAAiB;IACjB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,kBAAkB;IAClB,GAAG,EAAE,UAAU,CAAC;IAChB,yBAAyB;IACzB,OAAO,EAAE,CAAC,CAAC;CACZ,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CA2BvF;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAa1F"}
@@ -16,6 +16,9 @@ export const ED25519_SIGNATURE_BYTES = 64;
16
16
  export class Ed25519Pair {
17
17
  pubKey;
18
18
  _privKey;
19
+ static new(pubKey, _privKey) {
20
+ return new Ed25519Pair(pubKey, _privKey);
21
+ }
19
22
  constructor(
20
23
  /** Public key */
21
24
  pubKey,
@@ -28,7 +31,7 @@ export class Ed25519Pair {
28
31
  /** Create a private key from given raw bytes. */
29
32
  export async function privateKey(privKey) {
30
33
  const pubKey = await ed.getPublicKeyAsync(privKey.raw);
31
- return new Ed25519Pair(Bytes.fromBlob(pubKey, ED25519_KEY_BYTES).asOpaque(), privKey.asOpaque());
34
+ return Ed25519Pair.new(Bytes.fromBlob(pubKey, ED25519_KEY_BYTES).asOpaque(), privKey.asOpaque());
32
35
  }
33
36
  /** Sign given piece of data using provided key pair. */
34
37
  export async function sign(key, message) {
@@ -29,13 +29,15 @@ export declare const ZERO_HASH: Bytes<32>;
29
29
  export declare class WithHash<THash extends OpaqueHash, TData> extends WithDebug {
30
30
  readonly hash: THash;
31
31
  readonly data: TData;
32
- constructor(hash: THash, data: TData);
32
+ static new<THash extends OpaqueHash, TData>(hash: THash, data: TData): WithHash<THash, TData>;
33
+ protected constructor(hash: THash, data: TData);
33
34
  }
34
35
  /**
35
36
  * Extension of [`WithHash`] additionally containing an encoded version of the object.
36
37
  */
37
38
  export declare class WithHashAndBytes<THash extends OpaqueHash, TData> extends WithHash<THash, TData> {
38
39
  readonly encoded: BytesBlob;
39
- constructor(hash: THash, data: TData, encoded: BytesBlob);
40
+ static create<THash extends OpaqueHash, TData>(hash: THash, data: TData, encoded: BytesBlob): WithHashAndBytes<THash, TData>;
41
+ protected constructor(hash: THash, data: TData, encoded: BytesBlob);
40
42
  }
41
43
  //# sourceMappingURL=hash.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../../../../packages/core/hash/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC;AAEzC,iEAAiE;AACjE,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAC;AAE7D,4BAA4B;AAC5B,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAE1C,sBAAsB;AACtB,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAE3C,yBAAyB;AACzB,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAE1C,sBAAsB;AACtB,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAEvD,eAAO,MAAM,SAAS,WAAwB,CAAC;AAE/C;;;;;GAKG;AACH,qBAAa,QAAQ,CAAC,KAAK,SAAS,UAAU,EAAE,KAAK,CAAE,SAAQ,SAAS;aAGpD,IAAI,EAAE,KAAK;aACX,IAAI,EAAE,KAAK;gBADX,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,KAAK;CAI9B;AAED;;GAEG;AACH,qBAAa,gBAAgB,CAAC,KAAK,SAAS,UAAU,EAAE,KAAK,CAAE,SAAQ,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;aAIzE,OAAO,EAAE,SAAS;gBAFlC,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,KAAK,EACK,OAAO,EAAE,SAAS;CAIrC"}
1
+ {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../../../../packages/core/hash/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC;AAEzC,iEAAiE;AACjE,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAC;AAE7D,4BAA4B;AAC5B,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAE1C,sBAAsB;AACtB,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAE3C,yBAAyB;AACzB,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAE1C,sBAAsB;AACtB,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAEvD,eAAO,MAAM,SAAS,WAAwB,CAAC;AAE/C;;;;;GAKG;AACH,qBAAa,QAAQ,CAAC,KAAK,SAAS,UAAU,EAAE,KAAK,CAAE,SAAQ,SAAS;aAMpD,IAAI,EAAE,KAAK;aACX,IAAI,EAAE,KAAK;IAN7B,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK;IAIpE,SAAS,aACS,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,KAAK;CAI9B;AAED;;GAEG;AACH,qBAAa,gBAAgB,CAAC,KAAK,SAAS,UAAU,EAAE,KAAK,CAAE,SAAQ,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;aAQzE,OAAO,EAAE,SAAS;IAPpC,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS;IAI3F,SAAS,aACP,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,KAAK,EACK,OAAO,EAAE,SAAS;CAIrC"}
@@ -19,7 +19,9 @@ export const ZERO_HASH = Bytes.zero(HASH_SIZE);
19
19
  export class WithHash extends WithDebug {
20
20
  hash;
21
21
  data;
22
- // TODO [ToDr] use static method and make constructor private
22
+ static new(hash, data) {
23
+ return new WithHash(hash, data);
24
+ }
23
25
  constructor(hash, data) {
24
26
  super();
25
27
  this.hash = hash;
@@ -31,6 +33,9 @@ export class WithHash extends WithDebug {
31
33
  */
32
34
  export class WithHashAndBytes extends WithHash {
33
35
  encoded;
36
+ static create(hash, data, encoded) {
37
+ return new WithHashAndBytes(hash, data, encoded);
38
+ }
34
39
  constructor(hash, data, encoded) {
35
40
  super(hash, data);
36
41
  this.encoded = encoded;
@@ -9,10 +9,11 @@ export declare class QuicNetwork implements Network<QuicPeer> {
9
9
  private readonly _peers;
10
10
  private readonly listen;
11
11
  private started;
12
- constructor(socket: QUICSocket, server: QUICServer, _dial: (peer: PeerAddress, options: DialOptions) => Promise<QuicPeer>, _peers: PeersManagement<QuicPeer>, listen: {
12
+ static new(socket: QUICSocket, server: QUICServer, _dial: (peer: PeerAddress, options: DialOptions) => Promise<QuicPeer>, _peers: PeersManagement<QuicPeer>, listen: {
13
13
  host: string;
14
14
  port: number;
15
- });
15
+ }): QuicNetwork;
16
+ private constructor();
16
17
  get isRunning(): boolean;
17
18
  start(): Promise<void>;
18
19
  stop(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"quic-network.d.ts","sourceRoot":"","sources":["../../../../../packages/core/networking/quic-network.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C,qBAAa,WAAY,YAAW,OAAO,CAAC,QAAQ,CAAC;IAIjD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAPzB,OAAO,CAAC,OAAO,CAAS;gBAGL,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,EACrE,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,EACjC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAGzD,IAAI,SAAS,YAEZ;IAEK,KAAK;IAYL,IAAI;IAYV,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,CAE3B;IAEK,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;CAG5E"}
1
+ {"version":3,"file":"quic-network.d.ts","sourceRoot":"","sources":["../../../../../packages/core/networking/quic-network.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C,qBAAa,WAAY,YAAW,OAAO,CAAC,QAAQ,CAAC;IAcjD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAjBzB,OAAO,CAAC,OAAO,CAAS;IAExB,MAAM,CAAC,GAAG,CACR,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,EACrE,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,EACjC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAKxC,OAAO;IAQP,IAAI,SAAS,YAEZ;IAEK,KAAK;IAYL,IAAI;IAYV,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,CAE3B;IAEK,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;CAG5E"}
@@ -7,6 +7,9 @@ export class QuicNetwork {
7
7
  _peers;
8
8
  listen;
9
9
  started = false;
10
+ static new(socket, server, _dial, _peers, listen) {
11
+ return new QuicNetwork(socket, server, _dial, _peers, listen);
12
+ }
10
13
  constructor(socket, server, _dial, _peers, listen) {
11
14
  this.socket = socket;
12
15
  this.server = server;
@@ -10,7 +10,8 @@ export declare class QuicPeer implements Peer {
10
10
  readonly id: PeerId;
11
11
  readonly key: Ed25519Key;
12
12
  private readonly streamEvents;
13
- constructor(conn: QUICConnection, peerInfo: PeerInfo);
13
+ static new(conn: QUICConnection, peerInfo: PeerInfo): QuicPeer;
14
+ private constructor();
14
15
  addOnIncomingStream(streamCallback: StreamCallback<QuicStream>): void;
15
16
  openStream(): QuicStream;
16
17
  disconnect(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"quic-peer.d.ts","sourceRoot":"","sources":["../../../../../packages/core/networking/quic-peer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK9C,qBAAa,QAAS,YAAW,IAAI;aAQjB,IAAI,EAAE,cAAc;IAPtC,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,OAAO,EAAE,WAAW,CAAC;IACrC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,GAAG,EAAE,UAAU,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;gBAGjC,IAAI,EAAE,cAAc,EACpC,QAAQ,EAAE,QAAQ;IAuBpB,mBAAmB,CAAC,cAAc,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI;IAIrE,UAAU,IAAI,UAAU;IAMlB,UAAU;CAIjB"}
1
+ {"version":3,"file":"quic-peer.d.ts","sourceRoot":"","sources":["../../../../../packages/core/networking/quic-peer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK9C,qBAAa,QAAS,YAAW,IAAI;aAYjB,IAAI,EAAE,cAAc;IAXtC,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,OAAO,EAAE,WAAW,CAAC;IACrC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,GAAG,EAAE,UAAU,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IAEnD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ;IAInD,OAAO;IAyBP,mBAAmB,CAAC,cAAc,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI;IAIrE,UAAU,IAAI,UAAU;IAMlB,UAAU;CAIjB"}
@@ -11,6 +11,9 @@ export class QuicPeer {
11
11
  id;
12
12
  key;
13
13
  streamEvents = new EventEmitter();
14
+ static new(conn, peerInfo) {
15
+ return new QuicPeer(conn, peerInfo);
16
+ }
14
17
  constructor(conn, peerInfo) {
15
18
  this.conn = conn;
16
19
  logger.log `👥 [${peerInfo.id}] peer connected ${conn.remoteHost}:${conn.remotePort}`;
@@ -24,7 +27,7 @@ export class QuicPeer {
24
27
  addEventListener(conn, events.EventQUICConnectionStream, (ev) => {
25
28
  const stream = ev.detail;
26
29
  logger.log `🚰 [${this.id}] new stream: [${stream.streamId}]`;
27
- this.streamEvents.emit("stream", new QuicStream(stream));
30
+ this.streamEvents.emit("stream", QuicStream.new(stream));
28
31
  });
29
32
  addEventListener(conn, events.EventQUICConnectionError, (err) => {
30
33
  logger.error `❌ [${this.id}] connection failed: ${err.detail}`;
@@ -36,7 +39,7 @@ export class QuicPeer {
36
39
  openStream() {
37
40
  const stream = this.conn.newStream("bidi");
38
41
  logger.log `🚰 [${this.id}] opening stream: [${stream.streamId}]`;
39
- return new QuicStream(stream);
42
+ return QuicStream.new(stream);
40
43
  }
41
44
  async disconnect() {
42
45
  logger.log `👋 [${this.id}] disconnecting`;
@@ -3,7 +3,8 @@ import { type Stream, type StreamErrorCallback } from "./peers.js";
3
3
  /** `QUICStream` adapter for our `Stream` API. */
4
4
  export declare class QuicStream implements Stream {
5
5
  readonly stream: QUICStream;
6
- constructor(stream: QUICStream);
6
+ static new(stream: QUICStream): QuicStream;
7
+ private constructor();
7
8
  get streamId(): import("@matrixai/quic").StreamId;
8
9
  get readable(): import("stream/web").ReadableStream<Uint8Array<ArrayBufferLike>>;
9
10
  get writable(): import("stream/web").WritableStream<Uint8Array<ArrayBufferLike>>;
@@ -1 +1 @@
1
- {"version":3,"file":"quic-stream.d.ts","sourceRoot":"","sources":["../../../../../packages/core/networking/quic-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,mBAAmB,EAAmB,MAAM,YAAY,CAAC;AAGpF,iDAAiD;AACjD,qBAAa,UAAW,YAAW,MAAM;aACX,MAAM,EAAE,UAAU;gBAAlB,MAAM,EAAE,UAAU;IAE9C,IAAI,QAAQ,sCAEX;IAED,IAAI,QAAQ,qEAEX;IAED,IAAI,QAAQ,qEAEX;IAED,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAmB9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGzB"}
1
+ {"version":3,"file":"quic-stream.d.ts","sourceRoot":"","sources":["../../../../../packages/core/networking/quic-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,mBAAmB,EAAmB,MAAM,YAAY,CAAC;AAGpF,iDAAiD;AACjD,qBAAa,UAAW,YAAW,MAAM;aAKH,MAAM,EAAE,UAAU;IAJtD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU;IAI7B,OAAO;IAEP,IAAI,QAAQ,sCAEX;IAED,IAAI,QAAQ,qEAEX;IAED,IAAI,QAAQ,qEAEX;IAED,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAmB9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGzB"}
@@ -4,6 +4,9 @@ import { addEventListener } from "./quic-utils.js";
4
4
  /** `QUICStream` adapter for our `Stream` API. */
5
5
  export class QuicStream {
6
6
  stream;
7
+ static new(stream) {
8
+ return new QuicStream(stream);
9
+ }
7
10
  constructor(stream) {
8
11
  this.stream = stream;
9
12
  }
@@ -144,7 +144,7 @@ export class Quic {
144
144
  }
145
145
  }
146
146
  function newPeer(conn, peerInfo, side) {
147
- const peer = new QuicPeer(conn, peerInfo);
147
+ const peer = QuicPeer.new(conn, peerInfo);
148
148
  const connectionStartTime = now();
149
149
  addEventListener(peer.conn, events.EventQUICConnectionClose, (ev) => {
150
150
  const duration = now() - connectionStartTime;
@@ -155,6 +155,6 @@ export class Quic {
155
155
  peers.peerConnected(peer);
156
156
  return peer;
157
157
  }
158
- return new QuicNetwork(socket, server, dial, peers, { host, port });
158
+ return QuicNetwork.new(socket, server, dial, peers, { host, port });
159
159
  }
160
160
  }
@@ -3,9 +3,9 @@ import { tryAsGas } from "#@typeberry/pvm-interface";
3
3
  import { HostCalls, NoopMissing } from "./host-calls.js";
4
4
  import { HostCallsExecutor } from "./host-calls-executor.js";
5
5
  import { PvmInstanceManager } from "./pvm-instance-manager.js";
6
- const hostCalls = new HostCalls({ missing: new NoopMissing(), handlers: [] });
6
+ const hostCalls = HostCalls.new({ missing: new NoopMissing(), handlers: [] });
7
7
  const pvmInstanceManager = await PvmInstanceManager.new(PvmBackend.BuiltIn);
8
- const pvmHostCallExtension = new HostCallsExecutor(pvmInstanceManager, hostCalls);
8
+ const pvmHostCallExtension = HostCallsExecutor.new(pvmInstanceManager, hostCalls);
9
9
  const program = new Uint8Array([
10
10
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x1, 0x0, 0x0, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xd9, 0x5, 0x12,
11
11
  0x0, 0x0, 0x0, 0x5, 0x11, 0x0, 0x0, 0x0, 0x5, 0xa3, 0x0, 0x0, 0x0, 0x5, 0xc6, 0x0, 0x4, 0x7, 0x13, 0x0, 0x2, 0x11,
@@ -23,6 +23,11 @@ export declare class EcalliTraceLogger {
23
23
  private readonly output;
24
24
  /** Returns a tracker for IO operations. */
25
25
  tracker(): IoTraceTracker | null;
26
+ /**
27
+ * Returns `true` if the `ecalli` module logger is configured for at least TRACE level.
28
+ * Enable with: `JAM_LOG=ecalli=trace` or `JAM_LOG=trace`
29
+ */
30
+ static isTraceEnabled(): boolean;
26
31
  /**
27
32
  * Create an IoTraceLogger that outputs to the `ecalli` module logger.
28
33
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ecalli-trace-logger.d.ts","sourceRoot":"","sources":["../../../../../packages/core/pvm-host-calls/ecalli-trace-logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ecalli-trace-logger.d.ts","sourceRoot":"","sources":["../../../../../packages/core/pvm-host-calls/ecalli-trace-logger.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,13 @@ export class EcalliTraceLogger {
22
22
  tracker() {
23
23
  return this.output === emptyOutput ? null : new IoTraceTracker();
24
24
  }
25
+ /**
26
+ * Returns `true` if the `ecalli` module logger is configured for at least TRACE level.
27
+ * Enable with: `JAM_LOG=ecalli=trace` or `JAM_LOG=trace`
28
+ */
29
+ static isTraceEnabled() {
30
+ return ecalliLogger.getLevel() <= Level.TRACE;
31
+ }
25
32
  /**
26
33
  * Create an IoTraceLogger that outputs to the `ecalli` module logger.
27
34
  *
@@ -29,7 +36,7 @@ export class EcalliTraceLogger {
29
36
  * Enable with: `JAM_LOG=ecalli=trace` or `JAM_LOG=trace`
30
37
  */
31
38
  static create() {
32
- if (ecalliLogger.getLevel() > Level.TRACE) {
39
+ if (!EcalliTraceLogger.isTraceEnabled()) {
33
40
  return null;
34
41
  }
35
42
  return EcalliTraceLogger.new(defaultOutput);
@@ -12,7 +12,7 @@ function createRegisters(values) {
12
12
  for (const [idx, value] of values) {
13
13
  view.setBigUint64(idx * REGISTER_BYTE_SIZE, value, true);
14
14
  }
15
- return new HostCallRegisters(bytes);
15
+ return HostCallRegisters.fromRaw(bytes);
16
16
  }
17
17
  describe("IoTraceLogger", () => {
18
18
  describe("logProgram", () => {
@@ -5,7 +5,8 @@ import type { IoTracker } from "./ecalli-io-tracker.js";
5
5
  export declare class HostCallMemory {
6
6
  private readonly memory;
7
7
  ioTracker: IoTracker | null;
8
- constructor(memory: IMemory);
8
+ static new(memory: IMemory): HostCallMemory;
9
+ private constructor();
9
10
  /**
10
11
  * Save some bytes into memory under given address.
11
12
  *
@@ -1 +1 @@
1
- {"version":3,"file":"host-call-memory.d.ts","sourceRoot":"","sources":["../../../../../packages/core/pvm-host-calls/host-call-memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,qBAAa,cAAc;IAIb,OAAO,CAAC,QAAQ,CAAC,MAAM;IAF5B,SAAS,EAAE,SAAS,GAAG,IAAI,CAAQ;gBAEb,MAAM,EAAE,OAAO;IAE5C;;;;;OAKG;IACH,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC;IAgBpE;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,GAAG,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC;CAerE"}
1
+ {"version":3,"file":"host-call-memory.d.ts","sourceRoot":"","sources":["../../../../../packages/core/pvm-host-calls/host-call-memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,qBAAa,cAAc;IAQL,OAAO,CAAC,QAAQ,CAAC,MAAM;IANpC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAQ;IAE1C,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO;IAI1B,OAAO;IAEP;;;;;OAKG;IACH,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC;IAgBpE;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,GAAG,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC;CAerE"}
@@ -4,6 +4,9 @@ export class HostCallMemory {
4
4
  memory;
5
5
  // Track successful memory reads and writes.
6
6
  ioTracker = null;
7
+ static new(memory) {
8
+ return new HostCallMemory(memory);
9
+ }
7
10
  constructor(memory) {
8
11
  this.memory = memory;
9
12
  }
@@ -18,7 +18,7 @@ describe("HostCallMemory", () => {
18
18
  let hostCallMemory;
19
19
  beforeEach(() => {
20
20
  memory = new FakeMemory();
21
- hostCallMemory = new HostCallMemory(memory);
21
+ hostCallMemory = HostCallMemory.new(memory);
22
22
  });
23
23
  describe("storeFrom", () => {
24
24
  it("should always allow 0-length bytes", () => {