@typeberry/lib 0.5.10-ec38e0b → 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 (452) 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/index.test.js +1 -1
  7. package/packages/core/codec/skip.d.ts +2 -1
  8. package/packages/core/codec/skip.d.ts.map +1 -1
  9. package/packages/core/codec/skip.js +3 -0
  10. package/packages/core/codec/view.js +2 -2
  11. package/packages/core/collections/multi-map.d.ts +2 -1
  12. package/packages/core/collections/multi-map.d.ts.map +1 -1
  13. package/packages/core/collections/multi-map.js +3 -0
  14. package/packages/core/collections/multi-map.test.js +2 -2
  15. package/packages/core/concurrent/parent.js +4 -1
  16. package/packages/core/crypto/ed25519.d.ts +2 -5
  17. package/packages/core/crypto/ed25519.d.ts.map +1 -1
  18. package/packages/core/crypto/ed25519.js +4 -1
  19. package/packages/core/hash/hash.d.ts +4 -2
  20. package/packages/core/hash/hash.d.ts.map +1 -1
  21. package/packages/core/hash/hash.js +6 -1
  22. package/packages/core/networking/quic-network.d.ts +3 -2
  23. package/packages/core/networking/quic-network.d.ts.map +1 -1
  24. package/packages/core/networking/quic-network.js +3 -0
  25. package/packages/core/networking/quic-peer.d.ts +2 -1
  26. package/packages/core/networking/quic-peer.d.ts.map +1 -1
  27. package/packages/core/networking/quic-peer.js +5 -2
  28. package/packages/core/networking/quic-stream.d.ts +2 -1
  29. package/packages/core/networking/quic-stream.d.ts.map +1 -1
  30. package/packages/core/networking/quic-stream.js +3 -0
  31. package/packages/core/networking/setup.js +2 -2
  32. package/packages/core/pvm-host-calls/bin.js +2 -2
  33. package/packages/core/pvm-host-calls/ecalli-trace-logger.d.ts +5 -0
  34. package/packages/core/pvm-host-calls/ecalli-trace-logger.d.ts.map +1 -1
  35. package/packages/core/pvm-host-calls/ecalli-trace-logger.js +8 -1
  36. package/packages/core/pvm-host-calls/ecalli-trace-logger.test.js +1 -1
  37. package/packages/core/pvm-host-calls/host-call-memory.d.ts +2 -1
  38. package/packages/core/pvm-host-calls/host-call-memory.d.ts.map +1 -1
  39. package/packages/core/pvm-host-calls/host-call-memory.js +3 -0
  40. package/packages/core/pvm-host-calls/host-call-memory.test.js +1 -1
  41. package/packages/core/pvm-host-calls/host-call-registers.d.ts +5 -1
  42. package/packages/core/pvm-host-calls/host-call-registers.d.ts.map +1 -1
  43. package/packages/core/pvm-host-calls/host-call-registers.js +11 -1
  44. package/packages/core/pvm-host-calls/host-call-registers.test.js +2 -2
  45. package/packages/core/pvm-host-calls/host-calls-executor.d.ts +2 -1
  46. package/packages/core/pvm-host-calls/host-calls-executor.d.ts.map +1 -1
  47. package/packages/core/pvm-host-calls/host-calls-executor.js +5 -2
  48. package/packages/core/pvm-host-calls/host-calls.d.ts +4 -2
  49. package/packages/core/pvm-host-calls/host-calls.d.ts.map +1 -1
  50. package/packages/core/pvm-host-calls/host-calls.js +9 -4
  51. package/packages/core/pvm-host-calls/pvm-instance-manager.js +1 -1
  52. package/packages/core/pvm-interpreter/args-decoder/args-decoder.js +1 -1
  53. package/packages/core/pvm-interpreter/args-decoder/args-decoder.test.js +3 -3
  54. package/packages/core/pvm-interpreter/args-decoder/args-decoding-results.js +11 -11
  55. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts +2 -1
  56. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts.map +1 -1
  57. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.js +3 -0
  58. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.test.js +2 -2
  59. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts +2 -1
  60. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts.map +1 -1
  61. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.js +3 -0
  62. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.test.js +26 -26
  63. package/packages/core/pvm-interpreter/basic-blocks/basic-blocks.test.js +8 -8
  64. package/packages/core/pvm-interpreter/bin.js +1 -1
  65. package/packages/core/pvm-interpreter/debugger-adapter.d.ts +2 -1
  66. package/packages/core/pvm-interpreter/debugger-adapter.d.ts.map +1 -1
  67. package/packages/core/pvm-interpreter/debugger-adapter.js +6 -3
  68. package/packages/core/pvm-interpreter/gas.js +4 -1
  69. package/packages/core/pvm-interpreter/interpreter.d.ts +2 -1
  70. package/packages/core/pvm-interpreter/interpreter.d.ts.map +1 -1
  71. package/packages/core/pvm-interpreter/interpreter.js +19 -16
  72. package/packages/core/pvm-interpreter/memory/memory-builder.js +2 -2
  73. package/packages/core/pvm-interpreter/memory/memory-builder.test.js +7 -7
  74. package/packages/core/pvm-interpreter/memory/memory.d.ts +2 -1
  75. package/packages/core/pvm-interpreter/memory/memory.d.ts.map +1 -1
  76. package/packages/core/pvm-interpreter/memory/memory.js +4 -1
  77. package/packages/core/pvm-interpreter/memory/memory.test.js +31 -31
  78. package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts +2 -1
  79. package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts.map +1 -1
  80. package/packages/core/pvm-interpreter/memory/pages/readable-page.js +3 -0
  81. package/packages/core/pvm-interpreter/memory/pages/readable-page.test.js +3 -3
  82. package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts +2 -1
  83. package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts.map +1 -1
  84. package/packages/core/pvm-interpreter/memory/pages/writeable-page.js +3 -0
  85. package/packages/core/pvm-interpreter/memory/pages/writeable-page.test.js +4 -4
  86. package/packages/core/pvm-interpreter/ops/bit-ops.d.ts +2 -1
  87. package/packages/core/pvm-interpreter/ops/bit-ops.d.ts.map +1 -1
  88. package/packages/core/pvm-interpreter/ops/bit-ops.js +3 -0
  89. package/packages/core/pvm-interpreter/ops/bit-ops.test.js +3 -3
  90. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts +2 -1
  91. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts.map +1 -1
  92. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.js +3 -0
  93. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.test.js +5 -5
  94. package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts +2 -1
  95. package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts.map +1 -1
  96. package/packages/core/pvm-interpreter/ops/boolean-ops.js +3 -0
  97. package/packages/core/pvm-interpreter/ops/boolean-ops.test.js +3 -3
  98. package/packages/core/pvm-interpreter/ops/branch-ops.d.ts +2 -1
  99. package/packages/core/pvm-interpreter/ops/branch-ops.d.ts.map +1 -1
  100. package/packages/core/pvm-interpreter/ops/branch-ops.js +3 -0
  101. package/packages/core/pvm-interpreter/ops/branch-ops.test.js +4 -4
  102. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts +2 -1
  103. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts.map +1 -1
  104. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.js +3 -0
  105. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.test.js +5 -5
  106. package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts +2 -1
  107. package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts.map +1 -1
  108. package/packages/core/pvm-interpreter/ops/host-call-ops.js +3 -0
  109. package/packages/core/pvm-interpreter/ops/host-call-ops.test.js +2 -2
  110. package/packages/core/pvm-interpreter/ops/load-ops.d.ts +2 -1
  111. package/packages/core/pvm-interpreter/ops/load-ops.d.ts.map +1 -1
  112. package/packages/core/pvm-interpreter/ops/load-ops.js +3 -0
  113. package/packages/core/pvm-interpreter/ops/load-ops.test.js +10 -10
  114. package/packages/core/pvm-interpreter/ops/math-ops.d.ts +2 -1
  115. package/packages/core/pvm-interpreter/ops/math-ops.d.ts.map +1 -1
  116. package/packages/core/pvm-interpreter/ops/math-ops.js +3 -0
  117. package/packages/core/pvm-interpreter/ops/math-ops.test.js +3 -3
  118. package/packages/core/pvm-interpreter/ops/memory-ops.d.ts +2 -1
  119. package/packages/core/pvm-interpreter/ops/memory-ops.d.ts.map +1 -1
  120. package/packages/core/pvm-interpreter/ops/memory-ops.js +3 -0
  121. package/packages/core/pvm-interpreter/ops/memory-ops.test.js +3 -3
  122. package/packages/core/pvm-interpreter/ops/move-ops.d.ts +2 -1
  123. package/packages/core/pvm-interpreter/ops/move-ops.d.ts.map +1 -1
  124. package/packages/core/pvm-interpreter/ops/move-ops.js +3 -0
  125. package/packages/core/pvm-interpreter/ops/move-ops.test.js +3 -3
  126. package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts +2 -1
  127. package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts.map +1 -1
  128. package/packages/core/pvm-interpreter/ops/no-args-ops.js +3 -0
  129. package/packages/core/pvm-interpreter/ops/no-args-ops.test.js +2 -2
  130. package/packages/core/pvm-interpreter/ops/shift-ops.d.ts +2 -1
  131. package/packages/core/pvm-interpreter/ops/shift-ops.d.ts.map +1 -1
  132. package/packages/core/pvm-interpreter/ops/shift-ops.js +3 -0
  133. package/packages/core/pvm-interpreter/ops/shift-ops.test.js +3 -3
  134. package/packages/core/pvm-interpreter/ops/store-ops.d.ts +2 -1
  135. package/packages/core/pvm-interpreter/ops/store-ops.d.ts.map +1 -1
  136. package/packages/core/pvm-interpreter/ops/store-ops.js +3 -0
  137. package/packages/core/pvm-interpreter/ops/store-ops.test.js +7 -7
  138. package/packages/core/pvm-interpreter/ops-dispatchers/no-args-dispatcher.test.js +1 -1
  139. package/packages/core/pvm-interpreter/ops-dispatchers/one-imm-dispatcher.test.js +4 -4
  140. package/packages/core/pvm-interpreter/ops-dispatchers/one-offset-dispatcher.test.js +2 -2
  141. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-ext-imm-dispatcher.test.js +4 -4
  142. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-dispatcher.test.js +7 -7
  143. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-one-offset-dispatcher.test.js +10 -10
  144. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-two-imms-dispatcher.test.js +5 -5
  145. package/packages/core/pvm-interpreter/ops-dispatchers/three-regs-dispatcher.test.js +7 -7
  146. package/packages/core/pvm-interpreter/ops-dispatchers/two-imms-dispatcher.test.js +5 -5
  147. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-dispatcher.test.js +6 -6
  148. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-imm-dispatcher.test.js +11 -11
  149. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-offset-dispatcher.test.js +2 -2
  150. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-two-imms-dispatcher.test.js +14 -14
  151. package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts +5 -2
  152. package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts.map +1 -1
  153. package/packages/core/pvm-interpreter/program-decoder/jump-table.js +9 -4
  154. package/packages/core/pvm-interpreter/program-decoder/jump-table.test.js +6 -6
  155. package/packages/core/pvm-interpreter/program-decoder/mask.d.ts +2 -1
  156. package/packages/core/pvm-interpreter/program-decoder/mask.d.ts.map +1 -1
  157. package/packages/core/pvm-interpreter/program-decoder/mask.js +3 -0
  158. package/packages/core/pvm-interpreter/program-decoder/mask.test.js +10 -10
  159. package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts +2 -1
  160. package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts.map +1 -1
  161. package/packages/core/pvm-interpreter/program-decoder/program-decoder.js +6 -3
  162. package/packages/core/pvm-interpreter/program-decoder/program-decoder.test.js +5 -5
  163. package/packages/core/pvm-interpreter/program.js +3 -3
  164. package/packages/core/pvm-interpreter/registers.d.ts +5 -2
  165. package/packages/core/pvm-interpreter/registers.d.ts.map +1 -1
  166. package/packages/core/pvm-interpreter/registers.js +10 -6
  167. package/packages/core/pvm-interpreter/registers.test.js +10 -10
  168. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts +6 -3
  169. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts.map +1 -1
  170. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.js +11 -2
  171. package/packages/core/pvm-interpreter-ananas/index.d.ts +6 -3
  172. package/packages/core/pvm-interpreter-ananas/index.d.ts.map +1 -1
  173. package/packages/core/pvm-interpreter-ananas/index.js +12 -3
  174. package/packages/core/trie/nodes.d.ts +7 -2
  175. package/packages/core/trie/nodes.d.ts.map +1 -1
  176. package/packages/core/trie/nodes.js +20 -11
  177. package/packages/core/trie/nodesDb.d.ts +3 -1
  178. package/packages/core/trie/nodesDb.d.ts.map +1 -1
  179. package/packages/core/trie/nodesDb.js +6 -0
  180. package/packages/core/trie/trie.js +2 -2
  181. package/packages/extensions/ipc/index.js +5 -2
  182. package/packages/extensions/ipc/jamnp/handler.d.ts +4 -2
  183. package/packages/extensions/ipc/jamnp/handler.d.ts.map +1 -1
  184. package/packages/extensions/ipc/jamnp/handler.js +9 -3
  185. package/packages/extensions/ipc/jamnp/server.js +3 -3
  186. package/packages/extensions/ipc/server.d.ts +2 -1
  187. package/packages/extensions/ipc/server.d.ts.map +1 -1
  188. package/packages/extensions/ipc/server.js +4 -1
  189. package/packages/jam/block/header.js +1 -1
  190. package/packages/jam/config/chain-spec.d.ts +2 -1
  191. package/packages/jam/config/chain-spec.d.ts.map +1 -1
  192. package/packages/jam/config/chain-spec.js +5 -2
  193. package/packages/jam/config/network.d.ts +2 -7
  194. package/packages/jam/config/network.d.ts.map +1 -1
  195. package/packages/jam/config/network.js +3 -0
  196. package/packages/jam/config-node/jip-chain-spec.js +1 -1
  197. package/packages/jam/database/blocks.test.js +1 -1
  198. package/packages/jam/database/states.d.ts +2 -1
  199. package/packages/jam/database/states.d.ts.map +1 -1
  200. package/packages/jam/database/states.js +3 -0
  201. package/packages/jam/database/states.test.js +1 -1
  202. package/packages/jam/database-lmdb/blocks.d.ts +2 -1
  203. package/packages/jam/database-lmdb/blocks.d.ts.map +1 -1
  204. package/packages/jam/database-lmdb/blocks.js +3 -0
  205. package/packages/jam/database-lmdb/root.d.ts +2 -1
  206. package/packages/jam/database-lmdb/root.d.ts.map +1 -1
  207. package/packages/jam/database-lmdb/root.js +3 -0
  208. package/packages/jam/database-lmdb/states.d.ts +2 -1
  209. package/packages/jam/database-lmdb/states.d.ts.map +1 -1
  210. package/packages/jam/database-lmdb/states.js +3 -0
  211. package/packages/jam/database-lmdb/states.test.js +9 -9
  212. package/packages/jam/executor/index.d.ts +1 -1
  213. package/packages/jam/executor/index.d.ts.map +1 -1
  214. package/packages/jam/executor/index.js +1 -1
  215. package/packages/jam/executor/pvm-executor.js +24 -24
  216. package/packages/jam/fuzz-proto/v1/handler.d.ts +2 -1
  217. package/packages/jam/fuzz-proto/v1/handler.d.ts.map +1 -1
  218. package/packages/jam/fuzz-proto/v1/handler.js +3 -0
  219. package/packages/jam/fuzz-proto/v1/handler.test.js +10 -10
  220. package/packages/jam/in-core/externalities/refine.d.ts +3 -3
  221. package/packages/jam/in-core/externalities/refine.d.ts.map +1 -1
  222. package/packages/jam/in-core/externalities/refine.js +33 -5
  223. package/packages/jam/in-core/externalities/refine.test.js +66 -1
  224. package/packages/jam/in-core/in-core.d.ts +2 -1
  225. package/packages/jam/in-core/in-core.d.ts.map +1 -1
  226. package/packages/jam/in-core/in-core.js +3 -0
  227. package/packages/jam/in-core/in-core.test.js +6 -6
  228. package/packages/jam/in-core/is-authorized.test.js +2 -2
  229. package/packages/jam/in-core/refine.js +1 -1
  230. package/packages/jam/jam-host-calls/accumulate/assign.d.ts +2 -1
  231. package/packages/jam/jam-host-calls/accumulate/assign.d.ts.map +1 -1
  232. package/packages/jam/jam-host-calls/accumulate/assign.js +3 -0
  233. package/packages/jam/jam-host-calls/accumulate/assign.test.js +8 -9
  234. package/packages/jam/jam-host-calls/accumulate/bless.d.ts +2 -1
  235. package/packages/jam/jam-host-calls/accumulate/bless.d.ts.map +1 -1
  236. package/packages/jam/jam-host-calls/accumulate/bless.js +3 -0
  237. package/packages/jam/jam-host-calls/accumulate/bless.test.js +11 -12
  238. package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts +2 -1
  239. package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts.map +1 -1
  240. package/packages/jam/jam-host-calls/accumulate/checkpoint.js +4 -1
  241. package/packages/jam/jam-host-calls/accumulate/checkpoint.test.js +2 -3
  242. package/packages/jam/jam-host-calls/accumulate/designate.d.ts +2 -1
  243. package/packages/jam/jam-host-calls/accumulate/designate.d.ts.map +1 -1
  244. package/packages/jam/jam-host-calls/accumulate/designate.js +3 -0
  245. package/packages/jam/jam-host-calls/accumulate/designate.test.js +5 -6
  246. package/packages/jam/jam-host-calls/accumulate/eject.d.ts +2 -1
  247. package/packages/jam/jam-host-calls/accumulate/eject.d.ts.map +1 -1
  248. package/packages/jam/jam-host-calls/accumulate/eject.js +3 -0
  249. package/packages/jam/jam-host-calls/accumulate/eject.test.js +8 -9
  250. package/packages/jam/jam-host-calls/accumulate/forget.d.ts +2 -1
  251. package/packages/jam/jam-host-calls/accumulate/forget.d.ts.map +1 -1
  252. package/packages/jam/jam-host-calls/accumulate/forget.js +3 -0
  253. package/packages/jam/jam-host-calls/accumulate/forget.test.js +5 -6
  254. package/packages/jam/jam-host-calls/accumulate/new.d.ts +2 -1
  255. package/packages/jam/jam-host-calls/accumulate/new.d.ts.map +1 -1
  256. package/packages/jam/jam-host-calls/accumulate/new.js +3 -0
  257. package/packages/jam/jam-host-calls/accumulate/new.test.js +9 -10
  258. package/packages/jam/jam-host-calls/accumulate/provide.d.ts +2 -1
  259. package/packages/jam/jam-host-calls/accumulate/provide.d.ts.map +1 -1
  260. package/packages/jam/jam-host-calls/accumulate/provide.js +3 -0
  261. package/packages/jam/jam-host-calls/accumulate/provide.test.js +8 -9
  262. package/packages/jam/jam-host-calls/accumulate/query.d.ts +2 -1
  263. package/packages/jam/jam-host-calls/accumulate/query.d.ts.map +1 -1
  264. package/packages/jam/jam-host-calls/accumulate/query.js +3 -0
  265. package/packages/jam/jam-host-calls/accumulate/query.test.js +8 -9
  266. package/packages/jam/jam-host-calls/accumulate/solicit.d.ts +2 -1
  267. package/packages/jam/jam-host-calls/accumulate/solicit.d.ts.map +1 -1
  268. package/packages/jam/jam-host-calls/accumulate/solicit.js +3 -0
  269. package/packages/jam/jam-host-calls/accumulate/solicit.test.js +7 -8
  270. package/packages/jam/jam-host-calls/accumulate/transfer.d.ts +2 -1
  271. package/packages/jam/jam-host-calls/accumulate/transfer.d.ts.map +1 -1
  272. package/packages/jam/jam-host-calls/accumulate/transfer.js +3 -0
  273. package/packages/jam/jam-host-calls/accumulate/transfer.test.js +9 -10
  274. package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts +2 -1
  275. package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts.map +1 -1
  276. package/packages/jam/jam-host-calls/accumulate/upgrade.js +3 -0
  277. package/packages/jam/jam-host-calls/accumulate/upgrade.test.js +4 -5
  278. package/packages/jam/jam-host-calls/accumulate/yield.d.ts +2 -1
  279. package/packages/jam/jam-host-calls/accumulate/yield.d.ts.map +1 -1
  280. package/packages/jam/jam-host-calls/accumulate/yield.js +3 -0
  281. package/packages/jam/jam-host-calls/accumulate/yield.test.js +4 -5
  282. package/packages/jam/jam-host-calls/externalities/refine-externalities.test.js +9 -9
  283. package/packages/jam/jam-host-calls/externalities/state-update.d.ts +2 -3
  284. package/packages/jam/jam-host-calls/externalities/state-update.d.ts.map +1 -1
  285. package/packages/jam/jam-host-calls/externalities/state-update.js +5 -2
  286. package/packages/jam/jam-host-calls/externalities/test-accounts.js +2 -2
  287. package/packages/jam/jam-host-calls/general/fetch.d.ts +2 -1
  288. package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
  289. package/packages/jam/jam-host-calls/general/fetch.js +3 -0
  290. package/packages/jam/jam-host-calls/general/fetch.test.js +27 -28
  291. package/packages/jam/jam-host-calls/general/gas.d.ts +2 -1
  292. package/packages/jam/jam-host-calls/general/gas.d.ts.map +1 -1
  293. package/packages/jam/jam-host-calls/general/gas.js +3 -0
  294. package/packages/jam/jam-host-calls/general/gas.test.js +4 -5
  295. package/packages/jam/jam-host-calls/general/info.d.ts +2 -1
  296. package/packages/jam/jam-host-calls/general/info.d.ts.map +1 -1
  297. package/packages/jam/jam-host-calls/general/info.js +3 -0
  298. package/packages/jam/jam-host-calls/general/info.test.js +6 -7
  299. package/packages/jam/jam-host-calls/general/log.d.ts +2 -1
  300. package/packages/jam/jam-host-calls/general/log.d.ts.map +1 -1
  301. package/packages/jam/jam-host-calls/general/log.js +3 -0
  302. package/packages/jam/jam-host-calls/general/lookup.d.ts +2 -1
  303. package/packages/jam/jam-host-calls/general/lookup.d.ts.map +1 -1
  304. package/packages/jam/jam-host-calls/general/lookup.js +3 -0
  305. package/packages/jam/jam-host-calls/general/lookup.test.js +8 -9
  306. package/packages/jam/jam-host-calls/general/read.d.ts +2 -1
  307. package/packages/jam/jam-host-calls/general/read.d.ts.map +1 -1
  308. package/packages/jam/jam-host-calls/general/read.js +3 -0
  309. package/packages/jam/jam-host-calls/general/read.test.js +11 -12
  310. package/packages/jam/jam-host-calls/general/write.d.ts +2 -1
  311. package/packages/jam/jam-host-calls/general/write.d.ts.map +1 -1
  312. package/packages/jam/jam-host-calls/general/write.js +3 -0
  313. package/packages/jam/jam-host-calls/general/write.test.js +10 -11
  314. package/packages/jam/jam-host-calls/refine/export.d.ts +2 -1
  315. package/packages/jam/jam-host-calls/refine/export.d.ts.map +1 -1
  316. package/packages/jam/jam-host-calls/refine/export.js +3 -0
  317. package/packages/jam/jam-host-calls/refine/export.test.js +6 -7
  318. package/packages/jam/jam-host-calls/refine/expunge.d.ts +2 -1
  319. package/packages/jam/jam-host-calls/refine/expunge.d.ts.map +1 -1
  320. package/packages/jam/jam-host-calls/refine/expunge.js +3 -0
  321. package/packages/jam/jam-host-calls/refine/expunge.test.js +3 -4
  322. package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts +2 -1
  323. package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts.map +1 -1
  324. package/packages/jam/jam-host-calls/refine/historical-lookup.js +3 -0
  325. package/packages/jam/jam-host-calls/refine/historical-lookup.test.js +11 -12
  326. package/packages/jam/jam-host-calls/refine/invoke.d.ts +2 -1
  327. package/packages/jam/jam-host-calls/refine/invoke.d.ts.map +1 -1
  328. package/packages/jam/jam-host-calls/refine/invoke.js +4 -1
  329. package/packages/jam/jam-host-calls/refine/invoke.test.js +10 -11
  330. package/packages/jam/jam-host-calls/refine/machine.d.ts +2 -1
  331. package/packages/jam/jam-host-calls/refine/machine.d.ts.map +1 -1
  332. package/packages/jam/jam-host-calls/refine/machine.js +3 -0
  333. package/packages/jam/jam-host-calls/refine/machine.test.js +6 -7
  334. package/packages/jam/jam-host-calls/refine/pages.d.ts +2 -1
  335. package/packages/jam/jam-host-calls/refine/pages.d.ts.map +1 -1
  336. package/packages/jam/jam-host-calls/refine/pages.js +3 -0
  337. package/packages/jam/jam-host-calls/refine/pages.test.js +3 -4
  338. package/packages/jam/jam-host-calls/refine/peek.d.ts +2 -1
  339. package/packages/jam/jam-host-calls/refine/peek.d.ts.map +1 -1
  340. package/packages/jam/jam-host-calls/refine/peek.js +3 -0
  341. package/packages/jam/jam-host-calls/refine/peek.test.js +3 -4
  342. package/packages/jam/jam-host-calls/refine/poke.d.ts +2 -1
  343. package/packages/jam/jam-host-calls/refine/poke.d.ts.map +1 -1
  344. package/packages/jam/jam-host-calls/refine/poke.js +3 -0
  345. package/packages/jam/jam-host-calls/refine/poke.test.js +3 -4
  346. package/packages/jam/jamnp-s/network.js +1 -1
  347. package/packages/jam/jamnp-s/peers.d.ts +2 -1
  348. package/packages/jam/jamnp-s/peers.d.ts.map +1 -1
  349. package/packages/jam/jamnp-s/peers.js +3 -0
  350. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts +4 -2
  351. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts.map +1 -1
  352. package/packages/jam/jamnp-s/protocol/ce-128-block-request.js +6 -0
  353. package/packages/jam/jamnp-s/protocol/ce-128-block-request.test.js +2 -2
  354. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts +4 -2
  355. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts.map +1 -1
  356. package/packages/jam/jamnp-s/protocol/ce-129-state-request.js +6 -0
  357. package/packages/jam/jamnp-s/protocol/ce-129-state-request.test.js +4 -4
  358. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +4 -2
  359. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts.map +1 -1
  360. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.js +6 -0
  361. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.test.js +2 -2
  362. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +4 -1
  363. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts.map +1 -1
  364. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.js +7 -0
  365. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.test.js +2 -2
  366. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts +5 -2
  367. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts.map +1 -1
  368. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.js +7 -0
  369. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.test.js +2 -2
  370. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +4 -2
  371. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts.map +1 -1
  372. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.js +6 -0
  373. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.test.js +2 -2
  374. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +2 -1
  375. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts.map +1 -1
  376. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.js +3 -0
  377. package/packages/jam/jamnp-s/stream-manager.d.ts +2 -1
  378. package/packages/jam/jamnp-s/stream-manager.d.ts.map +1 -1
  379. package/packages/jam/jamnp-s/stream-manager.js +4 -1
  380. package/packages/jam/jamnp-s/tasks/sync.js +4 -4
  381. package/packages/jam/jamnp-s/tasks/sync.test.js +4 -4
  382. package/packages/jam/jamnp-s/tasks/ticket-distribution.js +2 -2
  383. package/packages/jam/jamnp-s/tasks/ticket-distribution.test.js +1 -1
  384. package/packages/jam/node/common.d.ts.map +1 -1
  385. package/packages/jam/node/common.js +3 -3
  386. package/packages/jam/rpc-client/index.d.ts +4 -2
  387. package/packages/jam/rpc-client/index.d.ts.map +1 -1
  388. package/packages/jam/rpc-client/index.js +7 -1
  389. package/packages/jam/state/in-memory-state-view.d.ts +2 -1
  390. package/packages/jam/state/in-memory-state-view.d.ts.map +1 -1
  391. package/packages/jam/state/in-memory-state-view.js +3 -0
  392. package/packages/jam/state/in-memory-state.d.ts +16 -21
  393. package/packages/jam/state/in-memory-state.d.ts.map +1 -1
  394. package/packages/jam/state/in-memory-state.js +10 -6
  395. package/packages/jam/state/in-memory-state.test.js +2 -2
  396. package/packages/jam/state/service.d.ts +2 -6
  397. package/packages/jam/state/service.d.ts.map +1 -1
  398. package/packages/jam/state/service.js +3 -0
  399. package/packages/jam/state/test.utils.js +3 -3
  400. package/packages/jam/state-json/accounts.js +5 -5
  401. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +3 -34
  402. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts.map +1 -1
  403. package/packages/jam/state-merkleization/in-memory-state-codec.js +1 -1
  404. package/packages/jam/state-merkleization/serialized-state-view.d.ts +8 -3
  405. package/packages/jam/state-merkleization/serialized-state-view.d.ts.map +1 -1
  406. package/packages/jam/state-merkleization/serialized-state-view.js +6 -3
  407. package/packages/jam/state-merkleization/serialized-state.d.ts +2 -3
  408. package/packages/jam/state-merkleization/serialized-state.d.ts.map +1 -1
  409. package/packages/jam/state-merkleization/serialized-state.js +10 -2
  410. package/packages/jam/state-merkleization/serialized-state.test.js +1 -1
  411. package/packages/jam/transition/accumulate/accumulate.d.ts.map +1 -1
  412. package/packages/jam/transition/accumulate/accumulate.js +18 -6
  413. package/packages/jam/transition/accumulate/accumulate.test.js +1 -1
  414. package/packages/jam/transition/block-verifier.d.ts +2 -1
  415. package/packages/jam/transition/block-verifier.d.ts.map +1 -1
  416. package/packages/jam/transition/block-verifier.js +3 -0
  417. package/packages/jam/transition/block-verifier.test.js +8 -8
  418. package/packages/jam/transition/chain-stf.d.ts +12 -4
  419. package/packages/jam/transition/chain-stf.d.ts.map +1 -1
  420. package/packages/jam/transition/chain-stf.js +7 -3
  421. package/packages/jam/transition/externalities/accumulate-externalities.d.ts +20 -6
  422. package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
  423. package/packages/jam/transition/externalities/accumulate-externalities.js +29 -22
  424. package/packages/jam/transition/externalities/accumulate-externalities.test.js +590 -100
  425. package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts +2 -1
  426. package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts.map +1 -1
  427. package/packages/jam/transition/externalities/refine-fetch-externalities.js +3 -0
  428. package/packages/jam/transition/externalities/refine-fetch-externalities.test.js +1 -1
  429. package/packages/jam/transition/hasher.d.ts +2 -1
  430. package/packages/jam/transition/hasher.d.ts.map +1 -1
  431. package/packages/jam/transition/hasher.js +5 -2
  432. package/packages/jam/transition/hasher.test.js +1 -1
  433. package/packages/jam/transition/preimages.test.js +4 -4
  434. package/packages/jam/transition/reports/test.utils.js +1 -1
  435. package/packages/workers/api-node/config.js +4 -4
  436. package/packages/workers/api-node/port.d.ts +2 -1
  437. package/packages/workers/api-node/port.d.ts.map +1 -1
  438. package/packages/workers/api-node/port.js +4 -1
  439. package/packages/workers/api-node/port.test.js +2 -2
  440. package/packages/workers/api-node/protocol.js +2 -2
  441. package/packages/workers/block-authorship/generator.d.ts +13 -2
  442. package/packages/workers/block-authorship/generator.d.ts.map +1 -1
  443. package/packages/workers/block-authorship/generator.js +13 -9
  444. package/packages/workers/block-authorship/generator.test.js +16 -2
  445. package/packages/workers/block-authorship/main.d.ts.map +1 -1
  446. package/packages/workers/block-authorship/main.js +8 -1
  447. package/packages/workers/importer/finality.test.js +1 -1
  448. package/packages/workers/importer/importer.d.ts +23 -6
  449. package/packages/workers/importer/importer.d.ts.map +1 -1
  450. package/packages/workers/importer/importer.js +34 -19
  451. package/packages/workers/importer/main.d.ts.map +1 -1
  452. package/packages/workers/importer/main.js +13 -5
@@ -11,7 +11,7 @@ export class InMemoryTrie {
11
11
  root;
12
12
  /** Create an empty in-memory trie. */
13
13
  static empty(hasher) {
14
- return new InMemoryTrie(new WriteableNodesDb(hasher));
14
+ return new InMemoryTrie(WriteableNodesDb.new(hasher));
15
15
  }
16
16
  /** Given a collection of leaves, compute the state root. */
17
17
  static computeStateRoot(hasher, leaves) {
@@ -99,7 +99,7 @@ export class InMemoryTrie {
99
99
  static fromLeaves(hasher, leaves) {
100
100
  // TODO [ToDr] [opti] Pair up the leaves and build upper levels.
101
101
  let root = null;
102
- const nodes = new WriteableNodesDb(hasher);
102
+ const nodes = WriteableNodesDb.new(hasher);
103
103
  for (const leaf of leaves) {
104
104
  root = trieInsert(root, nodes, leaf);
105
105
  }
@@ -20,7 +20,7 @@ export var FuzzVersion;
20
20
  export function startFuzzTarget(version, socket, api) {
21
21
  const socketName = socket ?? "jam_target.sock";
22
22
  if (version === FuzzVersion.V1) {
23
- return startIpcServer(socketName, (sender) => new v1.FuzzTarget(new FuzzHandler(api), sender, api.chainSpec));
23
+ return startIpcServer(socketName, (sender) => v1.FuzzTarget.new(FuzzHandler.new(api), sender, api.chainSpec));
24
24
  }
25
25
  assertNever(version);
26
26
  }
@@ -43,13 +43,16 @@ function startJamnpExtension(api) {
43
43
  };
44
44
  const getKeyValuePairs = (_hash, startKey) => {
45
45
  const value = BytesBlob.blobFromNumbers([255, 255, 0, 0]);
46
- return [new ce129.KeyValuePair(startKey, value)];
46
+ return [ce129.KeyValuePair.new(startKey, value)];
47
47
  };
48
48
  return startJamnpIpcServer(api.nodeName, api.chainSpec, announcements, getHandshake, getBoundaryNodes, getKeyValuePairs);
49
49
  }
50
50
  const logger = Logger.new(import.meta.filename, "ext-ipc");
51
51
  class FuzzHandler {
52
52
  api;
53
+ static new(api) {
54
+ return new FuzzHandler(api);
55
+ }
53
56
  constructor(api) {
54
57
  this.api = api;
55
58
  }
@@ -14,7 +14,8 @@ export declare class JamnpIpcHandler implements IpcHandler {
14
14
  private readonly streamHandlers;
15
15
  /** termination promise + resolvers */
16
16
  private readonly onEnd;
17
- constructor(sender: IpcSender);
17
+ static new(sender: IpcSender): JamnpIpcHandler;
18
+ private constructor();
18
19
  /** Register stream handlers. */
19
20
  registerStreamHandlers(...handlers: StreamHandler[]): void;
20
21
  /** Re-use an existing stream of given kind if present. */
@@ -34,7 +35,8 @@ declare class EnvelopeSender implements StreamMessageSender {
34
35
  private readonly ipcStreamId;
35
36
  private readonly sender;
36
37
  readonly streamId: StreamId;
37
- constructor(ipcStreamId: IpcStreamId, sender: IpcSender);
38
+ static new(ipcStreamId: IpcStreamId, sender: IpcSender): EnvelopeSender;
39
+ private constructor();
38
40
  open(newStream: NewStream): void;
39
41
  bufferAndSend(msg: BytesBlob): boolean;
40
42
  close(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../../packages/extensions/ipc/jamnp/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,QAAQ,EAEb,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAEzB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,KAAK,WAAW,EAAE,SAAS,EAAsC,MAAM,aAAa,CAAC;AAS9F,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;AAWhF,qBAAa,eAAgB,YAAW,UAAU;IAUpC,OAAO,CAAC,QAAQ,CAAC,MAAM;IATnC,gCAAgC;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8C;IACtE,yDAAyD;IACzD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwC;IACvE,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;gBAED,MAAM,EAAE,SAAS;IAe9C,gCAAgC;IAChC,sBAAsB,CAAC,GAAG,QAAQ,EAAE,aAAa,EAAE;IAMnD,0DAA0D;IAC1D,gBAAgB,CAAC,QAAQ,SAAS,aAAa,EAC7C,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,EAClC,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,KAAK,IAAI,GACxD,IAAI;IAWP,uCAAuC;IACvC,aAAa,CAAC,QAAQ,SAAS,aAAa,EAC1C,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC5B,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,KAAK,IAAI,GACxD,IAAI;IA2BP,8CAA8C;IACxC,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAmErD,yDAAyD;IACzD,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;IAkBpC,qEAAqE;IACrE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAI5B;AAED,cAAM,cAAe,YAAW,mBAAmB;IAI/C,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJzB,SAAgB,QAAQ,EAAE,QAAQ,CAAC;gBAGhB,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,SAAS;IAKpC,IAAI,CAAC,SAAS,EAAE,SAAS;IAUzB,aAAa,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO;IAWtC,KAAK,IAAI,IAAI;CAYd"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../../packages/extensions/ipc/jamnp/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,QAAQ,EAEb,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAEzB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,KAAK,WAAW,EAAE,SAAS,EAAsC,MAAM,aAAa,CAAC;AAS9F,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;AAWhF,qBAAa,eAAgB,YAAW,UAAU;IAc5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAb3C,gCAAgC;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8C;IACtE,yDAAyD;IACzD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwC;IACvE,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAE9B,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS;IAI5B,OAAO;IAeP,gCAAgC;IAChC,sBAAsB,CAAC,GAAG,QAAQ,EAAE,aAAa,EAAE;IAMnD,0DAA0D;IAC1D,gBAAgB,CAAC,QAAQ,SAAS,aAAa,EAC7C,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,EAClC,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,KAAK,IAAI,GACxD,IAAI;IAWP,uCAAuC;IACvC,aAAa,CAAC,QAAQ,SAAS,aAAa,EAC1C,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC5B,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,KAAK,IAAI,GACxD,IAAI;IA2BP,8CAA8C;IACxC,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAmErD,yDAAyD;IACzD,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;IAkBpC,qEAAqE;IACrE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAI5B;AAED,cAAM,cAAe,YAAW,mBAAmB;IAQ/C,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IARzB,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IAEnC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS;IAItD,OAAO;IAOP,IAAI,CAAC,SAAS,EAAE,SAAS;IAUzB,aAAa,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO;IAWtC,KAAK,IAAI,IAAI;CAYd"}
@@ -20,6 +20,9 @@ export class JamnpIpcHandler {
20
20
  streamHandlers = new Map();
21
21
  /** termination promise + resolvers */
22
22
  onEnd;
23
+ static new(sender) {
24
+ return new JamnpIpcHandler(sender);
25
+ }
23
26
  constructor(sender) {
24
27
  this.sender = sender;
25
28
  let resolve = () => { };
@@ -46,7 +49,7 @@ export class JamnpIpcHandler {
46
49
  // find first stream id with given kind
47
50
  for (const [ipcStreamId, handler] of this.streams.entries()) {
48
51
  if (handler.kind === streamKind) {
49
- work(handler, new EnvelopeSender(ipcStreamId, this.sender));
52
+ work(handler, EnvelopeSender.new(ipcStreamId, this.sender));
50
53
  return;
51
54
  }
52
55
  }
@@ -71,7 +74,7 @@ export class JamnpIpcHandler {
71
74
  // register the stream
72
75
  this.streams.set(ipcStreamId, handler);
73
76
  this.pendingStreams.set(ipcStreamId, true);
74
- const sender = new EnvelopeSender(ipcStreamId, this.sender);
77
+ const sender = EnvelopeSender.new(ipcStreamId, this.sender);
75
78
  sender.open(NewStream.create({ streamByte: kind }));
76
79
  work(handler, sender);
77
80
  }
@@ -83,7 +86,7 @@ export class JamnpIpcHandler {
83
86
  logger.log `[${ipcStreamId}] incoming message: ${envelope.type} ${envelope.data}`;
84
87
  // check if this is a already known stream id
85
88
  const streamHandler = this.streams.get(ipcStreamId);
86
- const streamSender = new EnvelopeSender(ipcStreamId, this.sender);
89
+ const streamSender = EnvelopeSender.new(ipcStreamId, this.sender);
87
90
  // we don't know that stream yet, so it has to be a new one
88
91
  if (streamHandler === undefined) {
89
92
  // closing or message of unknown stream - ignore.
@@ -165,6 +168,9 @@ class EnvelopeSender {
165
168
  ipcStreamId;
166
169
  sender;
167
170
  streamId;
171
+ static new(ipcStreamId, sender) {
172
+ return new EnvelopeSender(ipcStreamId, sender);
173
+ }
168
174
  constructor(ipcStreamId, sender) {
169
175
  this.ipcStreamId = ipcStreamId;
170
176
  this.sender = sender;
@@ -4,7 +4,7 @@ import { JamnpIpcHandler } from "./handler.js";
4
4
  /** An IPC endpoint exposing network-like messaging protocol. */
5
5
  export function startJamnpIpcServer(nodeName, chainSpec, announcements, getHandshake, getBoundaryNodes, getKeyValuePairs) {
6
6
  return startIpcServer(`typeberry-jamnp-${nodeName}`, (sender) => {
7
- const handler = new JamnpIpcHandler(sender);
7
+ const handler = JamnpIpcHandler.new(sender);
8
8
  // Send block announcements
9
9
  const listener = (announcement) => {
10
10
  if (announcement instanceof up0.Announcement) {
@@ -20,8 +20,8 @@ export function startJamnpIpcServer(nodeName, chainSpec, announcements, getHands
20
20
  handler.waitForEnd().finally(() => {
21
21
  announcements.off(listener);
22
22
  });
23
- handler.registerStreamHandlers(new up0.Handler(chainSpec, getHandshake, () => { }, () => { }));
24
- handler.registerStreamHandlers(new ce129.Handler(true, getBoundaryNodes, getKeyValuePairs));
23
+ handler.registerStreamHandlers(up0.Handler.new(chainSpec, getHandshake, () => { }, () => { }));
24
+ handler.registerStreamHandlers(ce129.Handler.new(true, getBoundaryNodes, getKeyValuePairs));
25
25
  return handler;
26
26
  });
27
27
  }
@@ -4,7 +4,8 @@ import type { IpcHandler } from "#@typeberry/fuzz-proto";
4
4
  /** Sending data abstraction on a socket. */
5
5
  export declare class IpcSender {
6
6
  private readonly socket;
7
- constructor(socket: Socket);
7
+ static new(socket: Socket): IpcSender;
8
+ private constructor();
8
9
  /** Write given data to the outgoing socket. */
9
10
  send(data: BytesBlob): void;
10
11
  /** Close the socket. */
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../../packages/extensions/ipc/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAIrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIxD,4CAA4C;AAC5C,qBAAa,SAAS;IACR,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE3C,+CAA+C;IAC/C,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAI3B,wBAAwB;IACxB,KAAK,IAAI,IAAI;CAGd;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,UAAU,cAiFhG"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../../packages/extensions/ipc/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAIrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIxD,4CAA4C;AAC5C,qBAAa,SAAS;IAKA,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJ3C,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM;IAIzB,OAAO;IAEP,+CAA+C;IAC/C,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAI3B,wBAAwB;IACxB,KAAK,IAAI,IAAI;CAGd;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,UAAU,cAiFhG"}
@@ -7,6 +7,9 @@ import { encodeMessageLength, handleMessageFragmentation } from "#@typeberry/net
7
7
  /** Sending data abstraction on a socket. */
8
8
  export class IpcSender {
9
9
  socket;
10
+ static new(socket) {
11
+ return new IpcSender(socket);
12
+ }
10
13
  constructor(socket) {
11
14
  this.socket = socket;
12
15
  }
@@ -28,7 +31,7 @@ export function startIpcServer(name, newMessageHandler) {
28
31
  // Create the IPC server
29
32
  const server = createServer((socket) => {
30
33
  logger.log `Client connected`;
31
- const messageHandler = newMessageHandler(new IpcSender(socket));
34
+ const messageHandler = newMessageHandler(IpcSender.new(socket));
32
35
  // Handle incoming data from the client
33
36
  socket.on("data", handleMessageFragmentation(async (data) => {
34
37
  try {
@@ -163,7 +163,7 @@ class HeaderViewWithHash extends WithHash {
163
163
  data: Header.Codec.View,
164
164
  });
165
165
  static create({ hash, data }) {
166
- return new WithHash(hash, data);
166
+ return WithHash.new(hash, data);
167
167
  }
168
168
  }
169
169
  /** Encoding of header + hash. */
@@ -78,7 +78,8 @@ export declare class ChainSpec extends WithDebug {
78
78
  readonly maxRefineGas: U64;
79
79
  /** `L`: The maximum age in timeslots of the lookup anchor. */
80
80
  readonly maxLookupAnchorAge: U32;
81
- constructor(data: Omit<ChainSpec, "validatorsSuperMajority" | "thirdOfValidators" | "erasureCodedPieceSize">);
81
+ static new(data: Omit<ChainSpec, "validatorsSuperMajority" | "thirdOfValidators" | "erasureCodedPieceSize">): ChainSpec;
82
+ private constructor();
82
83
  }
83
84
  /** Set of values for "tiny" chain as defined in JAM test vectors. */
84
85
  export declare const tinyChainSpec: ChainSpec;
@@ -1 +1 @@
1
- {"version":3,"file":"chain-spec.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/config/chain-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAClH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,MAAM,CAAC;AACjD;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,+DAA+D;AAC/D,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC;;GAEG;AACH,qBAAa,SAAU,SAAQ,SAAS;IACtC,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC;IAC9B,kCAAkC;IAClC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC;IAChC,sCAAsC;IACtC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,CAAC;IACtC,uBAAuB;IACvB,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC;IACpC,yCAAyC;IACzC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,kDAAkD;IAClD,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,mBAAmB,EAAE,EAAE,CAAC;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,sBAAsB,EAAE,EAAE,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC;IAC7B,8DAA8D;IAC9D,QAAQ,CAAC,wBAAwB,EAAE,GAAG,CAAC;IACvC,gGAAgG;IAChG,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC;IACpC,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC;gBAErB,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,yBAAyB,GAAG,mBAAmB,GAAG,uBAAuB,CAAC;CAqB7G;AAED,qEAAqE;AACrE,eAAO,MAAM,aAAa,WAiBxB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,aAAa,WAexB,CAAC"}
1
+ {"version":3,"file":"chain-spec.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/config/chain-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAClH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,MAAM,CAAC;AACjD;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,+DAA+D;AAC/D,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC;;GAEG;AACH,qBAAa,SAAU,SAAQ,SAAS;IACtC,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC;IAC9B,kCAAkC;IAClC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC;IAChC,sCAAsC;IACtC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,CAAC;IACtC,uBAAuB;IACvB,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC;IACpC,yCAAyC;IACzC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,kDAAkD;IAClD,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,mBAAmB,EAAE,EAAE,CAAC;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,sBAAsB,EAAE,EAAE,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC;IAC7B,8DAA8D;IAC9D,QAAQ,CAAC,wBAAwB,EAAE,GAAG,CAAC;IACvC,gGAAgG;IAChG,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC;IACpC,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,yBAAyB,GAAG,mBAAmB,GAAG,uBAAuB,CAAC;IAI3G,OAAO;CAuBR;AAED,qEAAqE;AACrE,eAAO,MAAM,aAAa,WAiBxB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,aAAa,WAexB,CAAC"}
@@ -78,6 +78,9 @@ export class ChainSpec extends WithDebug {
78
78
  maxRefineGas;
79
79
  /** `L`: The maximum age in timeslots of the lookup anchor. */
80
80
  maxLookupAnchorAge;
81
+ static new(data) {
82
+ return new ChainSpec(data);
83
+ }
81
84
  constructor(data) {
82
85
  super();
83
86
  this.name = data.name;
@@ -100,7 +103,7 @@ export class ChainSpec extends WithDebug {
100
103
  }
101
104
  }
102
105
  /** Set of values for "tiny" chain as defined in JAM test vectors. */
103
- export const tinyChainSpec = new ChainSpec({
106
+ export const tinyChainSpec = ChainSpec.new({
104
107
  name: "tiny",
105
108
  validatorsCount: tryAsU16(6),
106
109
  coresCount: tryAsU16(2),
@@ -122,7 +125,7 @@ export const tinyChainSpec = new ChainSpec({
122
125
  * Set of values for "full" chain as defined in JAM test vectors.
123
126
  * Please note that only validatorsCount and epochLength are "full", the rest is copied from "tiny".
124
127
  */
125
- export const fullChainSpec = new ChainSpec({
128
+ export const fullChainSpec = ChainSpec.new({
126
129
  name: "full",
127
130
  validatorsCount: tryAsU16(1023),
128
131
  coresCount: tryAsU16(341),
@@ -16,13 +16,8 @@ export declare class Bootnode implements PeerAddress {
16
16
  readonly ip: string;
17
17
  /** Port number on which the bootnode is listening for new connections */
18
18
  readonly port: number;
19
- constructor(
20
- /** Network address derived from the node's cryptographic public key (always 53-character?) */
21
- id: PeerId,
22
- /** IP address (either IPv4 or IPv6) of the bootnode */
23
- ip: string,
24
- /** Port number on which the bootnode is listening for new connections */
25
- port: number);
19
+ static new(id: PeerId, ip: string, port: number): Bootnode;
20
+ private constructor();
26
21
  get host(): string;
27
22
  toString(): string;
28
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/config/network.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,eAAe;AACf,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE9C,+BAA+B;AAC/B,MAAM,MAAM,WAAW,GAAG;IACxB,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,sEAAsE;AACtE,qBAAa,QAAS,YAAW,WAAW;IAExC,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,EAAE,MAAM;IACnB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,EAAE,MAAM;IACnB,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM;;IALrB,8FAA8F;IACrF,EAAE,EAAE,MAAM;IACnB,uDAAuD;IAC9C,EAAE,EAAE,MAAM;IACnB,yEAAyE;IAChE,IAAI,EAAE,MAAM;IAGvB,IAAI,IAAI,WAEP;IAED,QAAQ;CAGT"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/config/network.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,eAAe;AACf,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE9C,+BAA+B;AAC/B,MAAM,MAAM,WAAW,GAAG;IACxB,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,sEAAsE;AACtE,qBAAa,QAAS,YAAW,WAAW;IAMxC,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,EAAE,MAAM;IACnB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,EAAE,MAAM;IACnB,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM;IAVvB,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAI/C,OAAO;IASP,IAAI,IAAI,WAEP;IAED,QAAQ;CAGT"}
@@ -3,6 +3,9 @@ export class Bootnode {
3
3
  id;
4
4
  ip;
5
5
  port;
6
+ static new(id, ip, port) {
7
+ return new Bootnode(id, ip, port);
8
+ }
6
9
  constructor(
7
10
  /** Network address derived from the node's cryptographic public key (always 53-character?) */
8
11
  id,
@@ -17,7 +17,7 @@ export function parseBootnode(v) {
17
17
  throw new Error(`Invalid port number: "${port}"`);
18
18
  }
19
19
  // TODO [ToDr] we should probably validate the name!
20
- return new Bootnode(asOpaqueType(name), ip, portNumber);
20
+ return Bootnode.new(asOpaqueType(name), ip, portNumber);
21
21
  }
22
22
  /**
23
23
  * Configuration file for any blockchain network built on the JAM protocol
@@ -24,7 +24,7 @@ describe("InMemoryDatabase", () => {
24
24
  const db = InMemoryBlocks.new();
25
25
  const block = testBlockView();
26
26
  const headerHash = blake2b.hashBytes(block.header.view().encoded()).asOpaque();
27
- db.insertBlock(new WithHash(headerHash, block));
27
+ db.insertBlock(WithHash.new(headerHash, block));
28
28
  assert.deepStrictEqual(db.getHeader(headerHash)?.materialize(), block.header.materialize());
29
29
  assert.deepStrictEqual(db.getExtrinsic(headerHash)?.materialize(), block.extrinsic.materialize());
30
30
  });
@@ -42,7 +42,8 @@ export declare class InMemoryStates implements StatesDb<InMemoryState> {
42
42
  private readonly spec;
43
43
  private readonly db;
44
44
  private readonly blake2b;
45
- constructor(spec: ChainSpec);
45
+ static new(spec: ChainSpec): InMemoryStates;
46
+ private constructor();
46
47
  updateAndSetState(headerHash: HeaderHash, state: InMemoryState, update: Partial<State & ServicesUpdate>): Promise<Result<OK, StateUpdateError>>;
47
48
  getStateRoot(state: InMemoryState): Promise<StateRootHash>;
48
49
  /** Insert a full state into the database. */
@@ -1 +1 @@
1
- {"version":3,"file":"states.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/database/states.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,KAAK,EAAe,MAAM,kBAAkB,CAAC;AAE/F,OAAO,EAAe,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE3D,0DAA0D;AAC1D,oBAAY,gBAAgB;IAC1B,oDAAoD;IACpD,QAAQ,IAAI;IACZ,iDAAiD;IACjD,MAAM,IAAI;CACX;AAED,wFAAwF;AACxF,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,KAAK;IACrC,qEAAqE;IACrE,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;CACpG;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK;IAC/C,4CAA4C;IAC5C,YAAY,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE/C;;;;OAIG;IACH,iBAAiB,CACf,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEzC,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC;IAEvC,4EAA4E;IAC5E,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAErC,6CAA6C;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,qBAAa,cAAe,YAAW,QAAQ,CAAC,aAAa,CAAC;IAIhD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAHjC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAmE;IACtF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;gBAEd,IAAI,EAAE,SAAS;IAItC,iBAAiB,CACrB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAgBlC,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAKhE,6CAA6C;IACvC,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAM7G,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI;IAStD,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAI9B,KAAK;CACZ"}
1
+ {"version":3,"file":"states.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/database/states.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,KAAK,EAAe,MAAM,kBAAkB,CAAC;AAE/F,OAAO,EAAe,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE3D,0DAA0D;AAC1D,oBAAY,gBAAgB;IAC1B,oDAAoD;IACpD,QAAQ,IAAI;IACZ,iDAAiD;IACjD,MAAM,IAAI;CACX;AAED,wFAAwF;AACxF,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,KAAK;IACrC,qEAAqE;IACrE,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;CACpG;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK;IAC/C,4CAA4C;IAC5C,YAAY,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE/C;;;;OAIG;IACH,iBAAiB,CACf,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEzC,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC;IAEvC,4EAA4E;IAC5E,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAErC,6CAA6C;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,qBAAa,cAAe,YAAW,QAAQ,CAAC,aAAa,CAAC;IAQxC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPzC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAmE;IACtF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAE3C,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS;IAI1B,OAAO;IAID,iBAAiB,CACrB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAgBlC,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAKhE,6CAA6C;IACvC,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAM7G,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI;IAStD,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAI9B,KAAK;CACZ"}
@@ -15,6 +15,9 @@ export class InMemoryStates {
15
15
  spec;
16
16
  db = HashDictionary.new();
17
17
  blake2b;
18
+ static new(spec) {
19
+ return new InMemoryStates(spec);
20
+ }
18
21
  constructor(spec) {
19
22
  this.spec = spec;
20
23
  this.blake2b = Blake2b.createHasher();
@@ -7,7 +7,7 @@ import { deepEqual } from "#@typeberry/utils";
7
7
  import { InMemoryStates } from "./states.js";
8
8
  describe("InMemoryState", () => {
9
9
  it("should write and read some state", async () => {
10
- const db = new InMemoryStates(tinyChainSpec);
10
+ const db = InMemoryStates.new(tinyChainSpec);
11
11
  const root = Bytes.parseBytes(TEST_STATE_ROOT, HASH_SIZE).asOpaque();
12
12
  deepEqual(db.getState(root), null);
13
13
  await db.insertInitialState(root, testState());
@@ -9,7 +9,8 @@ export declare class LmdbBlocks implements BlocksDb {
9
9
  private readonly extrinsics;
10
10
  private readonly headers;
11
11
  private readonly postStateRoots;
12
- constructor(chainSpec: ChainSpec, root: LmdbRoot);
12
+ static new(chainSpec: ChainSpec, root: LmdbRoot): LmdbBlocks;
13
+ private constructor();
13
14
  setPostStateRoot(hash: HeaderHash, postStateRoot: StateRootHash): Promise<void>;
14
15
  getPostStateRoot(hash: HeaderHash): StateRootHash | null;
15
16
  insertBlock(block: WithHash<HeaderHash, BlockView>): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/database-lmdb/blocks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAEd,KAAK,aAAa,EAElB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAS,MAAM,WAAW,CAAC;AAQjD,qBAAa,UAAW,YAAW,QAAQ;IAMvC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI;IANvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;gBAGpB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,QAAQ;IAa3B,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrF,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI;IAQlD,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASlE,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,iBAAiB,IAAI,UAAU;IAS/B,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI;IAS9C,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI;IAQpD,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAM5B,KAAK;CAGZ"}
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/database-lmdb/blocks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAEd,KAAK,aAAa,EAElB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAS,MAAM,WAAW,CAAC;AAQjD,qBAAa,UAAW,YAAW,QAAQ;IAUvC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IAEvC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ;IAI/C,OAAO;IAeD,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrF,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI;IAQlD,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASlE,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,iBAAiB,IAAI,UAAU;IAS/B,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI;IAS9C,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI;IAQpD,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAM5B,KAAK;CAGZ"}
@@ -13,6 +13,9 @@ export class LmdbBlocks {
13
13
  extrinsics;
14
14
  headers;
15
15
  postStateRoots;
16
+ static new(chainSpec, root) {
17
+ return new LmdbBlocks(chainSpec, root);
18
+ }
16
19
  constructor(chainSpec, root) {
17
20
  this.chainSpec = chainSpec;
18
21
  this.root = root;
@@ -3,7 +3,8 @@ export type SubDb = lmdb.Database<Uint8Array, lmdb.Key>;
3
3
  /** A thin abstraction over lmdb database interface. */
4
4
  export declare class LmdbRoot {
5
5
  readonly db: lmdb.RootDatabase<Uint8Array, lmdb.Key>;
6
- constructor(dbPath: string, readOnly?: boolean);
6
+ static new(dbPath: string, readOnly?: boolean): LmdbRoot;
7
+ private constructor();
7
8
  /** Open a sub-database under the same path. */
8
9
  subDb(name: string): SubDb;
9
10
  /** Close the database and all sub-databases. */
@@ -1 +1 @@
1
- {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/database-lmdb/root.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAExD,uDAAuD;AACvD,qBAAa,QAAQ;IACnB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEzC,MAAM,EAAE,MAAM,EAAE,QAAQ,UAAQ;IAS5C,+CAA+C;IAC/C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAI1B,gDAAgD;IAC1C,KAAK;CAGZ"}
1
+ {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/database-lmdb/root.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAExD,uDAAuD;AACvD,qBAAa,QAAQ;IACnB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAErD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,UAAQ;IAI3C,OAAO;IASP,+CAA+C;IAC/C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAI1B,gDAAgD;IAC1C,KAAK;CAGZ"}
@@ -2,6 +2,9 @@ import * as lmdb from "lmdb";
2
2
  /** A thin abstraction over lmdb database interface. */
3
3
  export class LmdbRoot {
4
4
  db;
5
+ static new(dbPath, readOnly = false) {
6
+ return new LmdbRoot(dbPath, readOnly);
7
+ }
5
8
  constructor(dbPath, readOnly = false) {
6
9
  this.db = lmdb.open(dbPath, {
7
10
  compression: true,
@@ -61,7 +61,8 @@ export declare class LmdbStates implements StatesDb<SerializedState<LeafDb>>, In
61
61
  private readonly root;
62
62
  private readonly states;
63
63
  private readonly values;
64
- constructor(spec: ChainSpec, blake2b: Blake2b, root: LmdbRoot);
64
+ static new(spec: ChainSpec, blake2b: Blake2b, root: LmdbRoot): LmdbStates;
65
+ private constructor();
65
66
  insertInitialState(headerHash: HeaderHash, serializedState: StateEntries): Promise<Result<OK, StateUpdateError>>;
66
67
  private updateAndCommit;
67
68
  updateAndSetState(headerHash: HeaderHash, state: SerializedState<LeafDb>, update: Partial<State & ServicesUpdate>): Promise<Result<OK, StateUpdateError>>;
@@ -1 +1 @@
1
- {"version":3,"file":"states.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/database-lmdb/states.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,EAAE,KAAK,QAAQ,EAAE,gBAAgB,EAAe,MAAM,qBAAqB,CAAC;AAC9G,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,iBAAiB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAgD,MAAM,gCAAgC,CAAC;AAG/G,OAAO,EAAE,EAAE,EAAE,MAAM,EAAkB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAS,MAAM,WAAW,CAAC;AAGjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,qBAAa,UAAW,YAAW,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC;IAK5F,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IANvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;gBAGZ,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,QAAQ;IAM3B,kBAAkB,CACtB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,YAAY,GAC5B,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAQ1B,eAAe;IA0BvB,iBAAiB,CACrB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,EAC9B,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAWlC,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAI1E,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI;IAsB1D,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAI9B,KAAK;CAGZ"}
1
+ {"version":3,"file":"states.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/database-lmdb/states.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,EAAE,KAAK,QAAQ,EAAE,gBAAgB,EAAe,MAAM,qBAAqB,CAAC;AAC9G,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,iBAAiB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAgD,MAAM,gCAAgC,CAAC;AAG/G,OAAO,EAAE,EAAE,EAAE,MAAM,EAAkB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAS,MAAM,WAAW,CAAC;AAGjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,qBAAa,UAAW,YAAW,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC;IAS5F,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAE/B,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ;IAI5D,OAAO;IASD,kBAAkB,CACtB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,YAAY,GAC5B,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAQ1B,eAAe;IA0BvB,iBAAiB,CACrB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,EAC9B,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAWlC,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAI1E,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI;IAsB1D,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAI9B,KAAK;CAGZ"}
@@ -60,6 +60,9 @@ export class LmdbStates {
60
60
  root;
61
61
  states;
62
62
  values;
63
+ static new(spec, blake2b, root) {
64
+ return new LmdbStates(spec, blake2b, root);
65
+ }
63
66
  constructor(spec, blake2b, root) {
64
67
  this.spec = spec;
65
68
  this.blake2b = blake2b;
@@ -37,8 +37,8 @@ describe("LMDB States database", () => {
37
37
  const headerHash = Bytes.zero(HASH_SIZE).asOpaque();
38
38
  const spec = tinyChainSpec;
39
39
  it("should import state and read state", async () => {
40
- const root = new LmdbRoot(tmpDir);
41
- const states = new LmdbStates(spec, blake2b, root);
40
+ const root = LmdbRoot.new(tmpDir);
41
+ const states = LmdbStates.new(spec, blake2b, root);
42
42
  try {
43
43
  const emptyState = InMemoryState.empty(spec);
44
44
  const serialized = StateEntries.serializeInMemory(spec, blake2b, emptyState);
@@ -58,15 +58,15 @@ describe("LMDB States database", () => {
58
58
  }
59
59
  });
60
60
  it("should update the state", async () => {
61
- const root = new LmdbRoot(tmpDir);
62
- const states = new LmdbStates(spec, blake2b, root);
61
+ const root = LmdbRoot.new(tmpDir);
62
+ const states = LmdbStates.new(spec, blake2b, root);
63
63
  try {
64
64
  const state = InMemoryState.empty(spec);
65
65
  await states.insertInitialState(headerHash, StateEntries.serializeInMemory(spec, blake2b, state));
66
66
  const newState = states.getState(headerHash);
67
67
  assert.ok(newState !== null);
68
68
  const headerHash2 = Bytes.fill(HASH_SIZE, 2).asOpaque();
69
- const lookupHistory = new LookupHistoryItem(Bytes.fill(HASH_SIZE, 0xff).asOpaque(), tryAsU32(5), tryAsLookupHistorySlots([]));
69
+ const lookupHistory = LookupHistoryItem.new(Bytes.fill(HASH_SIZE, 0xff).asOpaque(), tryAsU32(5), tryAsLookupHistorySlots([]));
70
70
  const stateUpdate = {
71
71
  timeslot: tryAsTimeSlot(15),
72
72
  privilegedServices: PrivilegedServices.create({
@@ -142,8 +142,8 @@ describe("LMDB States database", () => {
142
142
  deepEqual(Array.from(set), Array.from(SortedSet.fromArray(leafComparator, Array.from(trie.nodes.leaves()))));
143
143
  });
144
144
  it("should import more complex state", async () => {
145
- const root = new LmdbRoot(tmpDir);
146
- const states = new LmdbStates(spec, blake2b, root);
145
+ const root = LmdbRoot.new(tmpDir);
146
+ const states = LmdbStates.new(spec, blake2b, root);
147
147
  try {
148
148
  const initialState = testState();
149
149
  const initialService = initialState.services.get(tryAsServiceId(0));
@@ -167,8 +167,8 @@ describe("LMDB States database", () => {
167
167
  }
168
168
  });
169
169
  it("should update more complex entries", async () => {
170
- const root = new LmdbRoot(tmpDir);
171
- const states = new LmdbStates(spec, blake2b, root);
170
+ const root = LmdbRoot.new(tmpDir);
171
+ const states = LmdbStates.new(spec, blake2b, root);
172
172
  try {
173
173
  const state = testState();
174
174
  const initialService = state.services.get(tryAsServiceId(0));
@@ -1,4 +1,4 @@
1
1
  export type { ReturnValue } from "#@typeberry/pvm-host-calls";
2
- export { ReturnStatus } from "#@typeberry/pvm-host-calls";
2
+ export { EcalliTraceLogger, ReturnStatus } from "#@typeberry/pvm-host-calls";
3
3
  export * from "./pvm-executor.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/executor/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/executor/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC5E,cAAc,mBAAmB,CAAC"}
@@ -1,2 +1,2 @@
1
- export { ReturnStatus } from "#@typeberry/pvm-host-calls";
1
+ export { EcalliTraceLogger, ReturnStatus } from "#@typeberry/pvm-host-calls";
2
2
  export * from "./pvm-executor.js";
@@ -55,60 +55,60 @@ export class PvmExecutor {
55
55
  constructor(serviceCode, hostCallHandlers, entrypoint, pvmInstanceManager) {
56
56
  this.serviceCode = serviceCode;
57
57
  this.entrypoint = entrypoint;
58
- this.hostCalls = new HostCalls({
58
+ this.hostCalls = HostCalls.new({
59
59
  missing: new general.Missing(),
60
60
  handlers: hostCallHandlers,
61
61
  });
62
- this.pvm = new HostCallsExecutor(pvmInstanceManager, this.hostCalls);
62
+ this.pvm = HostCallsExecutor.new(pvmInstanceManager, this.hostCalls);
63
63
  }
64
64
  static async prepareBackend(pvm) {
65
65
  return PvmInstanceManager.new(pvm);
66
66
  }
67
67
  /** Prepare refine host call handlers */
68
68
  static prepareRefineHostCalls(serviceId, externalities) {
69
- const refineHandlers = REFINE_HOST_CALL_CLASSES.map((HandlerClass) => new HandlerClass(externalities.refine));
69
+ const refineHandlers = REFINE_HOST_CALL_CLASSES.map((HandlerClass) => HandlerClass.new(externalities.refine));
70
70
  /** https://graypaper.fluffylabs.dev/#/ab2cdbd/2fa7022fa702?v=0.7.2 */
71
71
  const generalHandlers = [
72
- new general.LogHostCall(serviceId),
73
- new general.GasHostCall(serviceId),
74
- new general.Fetch(serviceId, externalities.fetchExternalities),
72
+ general.LogHostCall.new(serviceId),
73
+ general.GasHostCall.new(serviceId),
74
+ general.Fetch.new(serviceId, externalities.fetchExternalities),
75
75
  ];
76
76
  return refineHandlers.concat(generalHandlers);
77
77
  }
78
78
  /** Prepare accumulation host call handlers */
79
79
  static prepareAccumulateHostCalls(serviceId, externalities, chainSpec) {
80
- const accumulateHandlers = ACCUMULATE_HOST_CALL_CLASSES.map((HandlerClass) => new HandlerClass(serviceId, externalities.partialState, chainSpec));
80
+ const accumulateHandlers = ACCUMULATE_HOST_CALL_CLASSES.map((HandlerClass) => HandlerClass.new(serviceId, externalities.partialState, chainSpec));
81
81
  /** https://graypaper.fluffylabs.dev/#/ab2cdbd/30d00130d001?v=0.7.2 */
82
82
  const generalHandlers = [
83
- new general.LogHostCall(serviceId),
84
- new general.GasHostCall(serviceId),
85
- new general.Read(serviceId, externalities.serviceExternalities),
86
- new general.Write(serviceId, externalities.serviceExternalities),
87
- new general.Fetch(serviceId, externalities.fetchExternalities),
88
- new general.Lookup(serviceId, externalities.serviceExternalities),
89
- new general.Info(serviceId, externalities.serviceExternalities),
83
+ general.LogHostCall.new(serviceId),
84
+ general.GasHostCall.new(serviceId),
85
+ general.Read.new(serviceId, externalities.serviceExternalities),
86
+ general.Write.new(serviceId, externalities.serviceExternalities),
87
+ general.Fetch.new(serviceId, externalities.fetchExternalities),
88
+ general.Lookup.new(serviceId, externalities.serviceExternalities),
89
+ general.Info.new(serviceId, externalities.serviceExternalities),
90
90
  ];
91
91
  return accumulateHandlers.concat(generalHandlers);
92
92
  }
93
93
  /** Prepare is-authorized host call handlers */
94
94
  static prepareIsAuthorizedHostCalls(serviceId, externalities) {
95
95
  const generalHandlers = [
96
- new general.LogHostCall(serviceId),
97
- new general.GasHostCall(serviceId),
98
- new general.Fetch(serviceId, externalities.fetchExternalities),
96
+ general.LogHostCall.new(serviceId),
97
+ general.GasHostCall.new(serviceId),
98
+ general.Fetch.new(serviceId, externalities.fetchExternalities),
99
99
  ];
100
100
  return generalHandlers;
101
101
  }
102
102
  /** Prepare on transfer host call handlers */
103
103
  static prepareOnTransferHostCalls(serviceId, externalities) {
104
104
  const generalHandlers = [
105
- new general.LogHostCall(serviceId),
106
- new general.GasHostCall(serviceId),
107
- new general.Fetch(serviceId, externalities.fetchExternalities),
108
- new general.Read(serviceId, externalities.partialState),
109
- new general.Write(serviceId, externalities.partialState),
110
- new general.Lookup(serviceId, externalities.partialState),
111
- new general.Info(serviceId, externalities.partialState),
105
+ general.LogHostCall.new(serviceId),
106
+ general.GasHostCall.new(serviceId),
107
+ general.Fetch.new(serviceId, externalities.fetchExternalities),
108
+ general.Read.new(serviceId, externalities.partialState),
109
+ general.Write.new(serviceId, externalities.partialState),
110
+ general.Lookup.new(serviceId, externalities.partialState),
111
+ general.Info.new(serviceId, externalities.partialState),
112
112
  ];
113
113
  return generalHandlers;
114
114
  }
@@ -31,7 +31,8 @@ export declare class FuzzTarget implements IpcHandler {
31
31
  readonly sender: IpcSender;
32
32
  readonly spec: ChainSpec;
33
33
  private sessionFeatures;
34
- constructor(msgHandler: FuzzMessageHandler, sender: IpcSender, spec: ChainSpec);
34
+ static new(msgHandler: FuzzMessageHandler, sender: IpcSender, spec: ChainSpec): FuzzTarget;
35
+ private constructor();
35
36
  onSocketMessage(msg: Uint8Array): Promise<void>;
36
37
  private processAndRespond;
37
38
  onClose({ error }: {
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/fuzz-proto/v1/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,YAAY,EAEZ,KAAK,UAAU,EACf,KAAK,QAAQ,EAKb,KAAK,QAAQ,EACd,MAAM,YAAY,CAAC;AAIpB;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEhD;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEvD;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;IAE5E,gEAAgE;IAChE,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CAC5D;AAED,qBAAa,UAAW,YAAW,UAAU;aAIzB,UAAU,EAAE,kBAAkB;aAC9B,MAAM,EAAE,SAAS;aACjB,IAAI,EAAE,SAAS;IALjC,OAAO,CAAC,eAAe,CAAK;gBAGV,UAAU,EAAE,kBAAkB,EAC9B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS;IAG3B,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAiBvC,iBAAiB;IA2H/B,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI;IAI3C,4DAA4D;IAC5D,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAGrC"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/fuzz-proto/v1/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,YAAY,EAEZ,KAAK,UAAU,EACf,KAAK,QAAQ,EAKb,KAAK,QAAQ,EACd,MAAM,YAAY,CAAC;AAIpB;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEhD;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEvD;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;IAE5E,gEAAgE;IAChE,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CAC5D;AAED,qBAAa,UAAW,YAAW,UAAU;aAQzB,UAAU,EAAE,kBAAkB;aAC9B,MAAM,EAAE,SAAS;aACjB,IAAI,EAAE,SAAS;IATjC,OAAO,CAAC,eAAe,CAAK;IAE5B,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAI7E,OAAO;IAMD,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAiBvC,iBAAiB;IA2H/B,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI;IAI3C,4DAA4D;IAC5D,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAGrC"}