@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
@@ -66,13 +66,11 @@ export class TrieNode {
66
66
  }
67
67
  /** View this node as a branch node */
68
68
  asBranchNode() {
69
- check `${this.getNodeType() === NodeType.Branch} not a branch!`;
70
- return new BranchNode(this);
69
+ return BranchNode.viewOf(this);
71
70
  }
72
71
  /** View this node as a leaf node */
73
72
  asLeafNode() {
74
- check `${this.getNodeType() !== NodeType.Branch} not a leaf!`;
75
- return new LeafNode(this);
73
+ return LeafNode.viewOf(this);
76
74
  }
77
75
  toString() {
78
76
  return BytesBlob.blobFrom(this.raw).toString();
@@ -92,10 +90,7 @@ export class TrieNode {
92
90
  */
93
91
  export class BranchNode {
94
92
  node;
95
- // Underlying raw node.
96
- constructor(node) {
97
- this.node = node;
98
- }
93
+ /** Build a branch node from its left and right sub-node hashes. */
99
94
  static fromSubNodes(left, right) {
100
95
  const node = new TrieNode();
101
96
  node.raw.set(left.raw, 0);
@@ -104,6 +99,15 @@ export class BranchNode {
104
99
  node.raw[0] &= FIRST_BIT_SET_NEG;
105
100
  return new BranchNode(node);
106
101
  }
102
+ /** View an existing raw trie node as a branch node (validates node type). */
103
+ static viewOf(node) {
104
+ check `${node.getNodeType() === NodeType.Branch} not a branch!`;
105
+ return new BranchNode(node);
106
+ }
107
+ // Underlying raw node.
108
+ constructor(node) {
109
+ this.node = node;
110
+ }
107
111
  /** Get the hash of the left sub-trie. */
108
112
  getLeft() {
109
113
  return Bytes.fromBlob(this.node.raw.subarray(0, HASH_SIZE), HASH_SIZE).asOpaque();
@@ -134,9 +138,6 @@ export class BranchNode {
134
138
  export class LeafNode {
135
139
  // Underlying raw node.
136
140
  node;
137
- constructor(node) {
138
- this.node = node;
139
- }
140
141
  static fromValue(key, value, valueHash) {
141
142
  const node = new TrieNode();
142
143
  // The value will fit in the leaf itself.
@@ -156,6 +157,14 @@ export class LeafNode {
156
157
  }
157
158
  return new LeafNode(node);
158
159
  }
160
+ /** View an existing raw trie node as a leaf node (validates node type). */
161
+ static viewOf(node) {
162
+ check `${node.getNodeType() !== NodeType.Branch} not a leaf!`;
163
+ return new LeafNode(node);
164
+ }
165
+ constructor(node) {
166
+ this.node = node;
167
+ }
159
168
  /** Get the key (truncated to 31 bytes). */
160
169
  getKey() {
161
170
  return Bytes.fromBlob(this.node.raw.subarray(1, TRUNCATED_KEY_BYTES + 1), TRUNCATED_KEY_BYTES).asOpaque();
@@ -8,7 +8,8 @@ export type TrieHasher = {
8
8
  export declare class NodesDb {
9
9
  readonly hasher: TrieHasher;
10
10
  protected readonly nodes: HashDictionary<TrieNodeHash, TrieNode>;
11
- constructor(hasher: TrieHasher);
11
+ static new(hasher: TrieHasher): NodesDb;
12
+ protected constructor(hasher: TrieHasher);
12
13
  get(hash: TrieNodeHash): TrieNode | null;
13
14
  hashNode(n: TrieNode): TrieNodeHash;
14
15
  leaves(): Generator<LeafNode>;
@@ -25,6 +26,7 @@ export declare class NodesDb {
25
26
  * A version of `NodesDb` augmented with mutating methods.
26
27
  */
27
28
  export declare class WriteableNodesDb extends NodesDb {
29
+ static new(hasher: TrieHasher): WriteableNodesDb;
28
30
  remove(hash: TrieNodeHash): void;
29
31
  insert(node: TrieNode, hash?: TrieNodeHash): TrieNodeHash;
30
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"nodesDb.d.ts","sourceRoot":"","sources":["../../../../../packages/core/trie/nodesDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,KAAK,QAAQ,EAAY,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEvF,sCAAsC;AACtC,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;CAC3D,CAAC;AAEF,mDAAmD;AACnD,qBAAa,OAAO;aAGU,MAAM,EAAE,UAAU;IAF9C,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAwB;gBAE5D,MAAM,EAAE,UAAU;IAE9C,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,IAAI;IAMxC,QAAQ,CAAC,CAAC,EAAE,QAAQ,GAAG,YAAY;IAIlC,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC;IAU9B;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,CAAC,GAAG,CAAC;CAS1F;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,OAAO;IAC3C,MAAM,CAAC,IAAI,EAAE,YAAY;IAMzB,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,YAAY;CAO1D"}
1
+ {"version":3,"file":"nodesDb.d.ts","sourceRoot":"","sources":["../../../../../packages/core/trie/nodesDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,KAAK,QAAQ,EAAY,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEvF,sCAAsC;AACtC,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;CAC3D,CAAC;AAEF,mDAAmD;AACnD,qBAAa,OAAO;aAOoB,MAAM,EAAE,UAAU;IANxD,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAwB;IAExF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU;IAI7B,SAAS,aAA6B,MAAM,EAAE,UAAU;IAExD,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,IAAI;IAMxC,QAAQ,CAAC,CAAC,EAAE,QAAQ,GAAG,YAAY;IAIlC,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC;IAU9B;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,CAAC,GAAG,CAAC;CAS1F;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,OAAO;IAC3C,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU;IAI7B,MAAM,CAAC,IAAI,EAAE,YAAY;IAMzB,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,YAAY;CAO1D"}
@@ -5,6 +5,9 @@ import { NodeType } from "./nodes.js";
5
5
  export class NodesDb {
6
6
  hasher;
7
7
  nodes = HashDictionary.new();
8
+ static new(hasher) {
9
+ return new NodesDb(hasher);
10
+ }
8
11
  constructor(hasher) {
9
12
  this.hasher = hasher;
10
13
  }
@@ -46,6 +49,9 @@ export class NodesDb {
46
49
  * A version of `NodesDb` augmented with mutating methods.
47
50
  */
48
51
  export class WriteableNodesDb extends NodesDb {
52
+ static new(hasher) {
53
+ return new WriteableNodesDb(hasher);
54
+ }
49
55
  remove(hash) {
50
56
  return NodesDb.withHashCompat(hash, (key) => {
51
57
  this.nodes.delete(key);
@@ -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. */
@@ -21,19 +21,19 @@ export declare const MAX_NUMBER_OF_WORK_ITEMS = 16;
21
21
  /**
22
22
  * A piece of work done within a core.
23
23
  *
24
- * `P = (j ∈ Y, h ∈ NS, u ∈ H, p ∈ Y, x ∈ X, w ∈ ⟦I⟧1∶I)
24
+ * `P = (j ∈ Y, h ∈ NS, u ∈ H, f ∈ Y, x ∈ X, w ∈ ⟦I⟧1∶I)
25
25
  *
26
26
  * https://graypaper.fluffylabs.dev/#/579bd12/197000197200
27
27
  */
28
28
  export declare class WorkPackage extends WithDebug {
29
29
  /** `j`: simple blob acting as an authorization token */
30
- readonly authorization: BytesBlob;
30
+ readonly authToken: BytesBlob;
31
31
  /** `h`: index of the service that hosts the authorization code */
32
32
  readonly authCodeHost: ServiceId;
33
33
  /** `u`: authorization code hash */
34
34
  readonly authCodeHash: CodeHash;
35
- /** `p`: authorization parametrization blob */
36
- readonly parametrization: BytesBlob;
35
+ /** `f`: authorization configuration blob */
36
+ readonly authConfiguration: BytesBlob;
37
37
  /** `x`: context in which the refine function should run */
38
38
  readonly context: RefineContext;
39
39
  /**
@@ -54,8 +54,8 @@ export declare class WorkPackage extends WithDebug {
54
54
  lookupAnchorSlot: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"TimeSlot[u32]">, import("@typeberry/bytes").Bytes<4>>;
55
55
  prerequisites: import("@typeberry/codec").Descriptor<(import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"WorkPackageHash">)[], import("@typeberry/codec").SequenceView<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"WorkPackageHash">, import("@typeberry/bytes").Bytes<32>>>;
56
56
  }>>;
57
- authorization: import("@typeberry/codec").Descriptor<BytesBlob, BytesBlob>;
58
- parametrization: import("@typeberry/codec").Descriptor<BytesBlob, BytesBlob>;
57
+ authToken: import("@typeberry/codec").Descriptor<BytesBlob, BytesBlob>;
58
+ authConfiguration: import("@typeberry/codec").Descriptor<BytesBlob, BytesBlob>;
59
59
  items: import("@typeberry/codec").Descriptor<FixedSizeArray<WorkItem, U8>, import("@typeberry/codec").SequenceView<WorkItem, import("@typeberry/codec").ViewOf<WorkItem, {
60
60
  service: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"ServiceId[u32]">, import("@typeberry/bytes").Bytes<4>>;
61
61
  codeHash: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"CodeHash">, import("@typeberry/bytes").Bytes<32>>;
@@ -73,7 +73,7 @@ export declare class WorkPackage extends WithDebug {
73
73
  }>>>;
74
74
  }>>>;
75
75
  }>>;
76
- static create({ authorization, authCodeHost, authCodeHash, parametrization, context, items, }: CodecRecord<WorkPackage>): WorkPackage;
76
+ static create({ authToken, authCodeHost, authCodeHash, authConfiguration, context, items, }: CodecRecord<WorkPackage>): WorkPackage;
77
77
  private constructor();
78
78
  }
79
79
  export type WorkPackageView = DescribedBy<typeof WorkPackage.Codec.View>;
@@ -1 +1 @@
1
- {"version":3,"file":"work-package.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/block/work-package.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAAS,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAW,KAAK,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,6EAA6E;AAC7E,0FAA0F;AAC1F,MAAM,MAAM,cAAc,GAAG,EAAE,CAAC;AAEhC,kGAAkG;AAClG,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAE/D;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,cAAc,CAEnE;AAED,kFAAkF;AAClF,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,uFAAuF;AACvF,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C;;;;;;GAMG;AACH,qBAAa,WAAY,SAAQ,SAAS;IAyBtC,wDAAwD;aACxC,aAAa,EAAE,SAAS;IACxC,kEAAkE;aAClD,YAAY,EAAE,SAAS;IACvC,mCAAmC;aACnB,YAAY,EAAE,QAAQ;IACtC,8CAA8C;aAC9B,eAAe,EAAE,SAAS;IAC1C,2DAA2D;aAC3C,OAAO,EAAE,aAAa;IACtC;;;;;OAKG;aACa,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC;IAxCjE,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAUT;IAEH,MAAM,CAAC,MAAM,CAAC,EACZ,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,OAAO,EACP,KAAK,GACN,EAAE,WAAW,CAAC,WAAW,CAAC;IAI3B,OAAO;CAqBR;AAED,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"work-package.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/block/work-package.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAAS,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAW,KAAK,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,6EAA6E;AAC7E,0FAA0F;AAC1F,MAAM,MAAM,cAAc,GAAG,EAAE,CAAC;AAEhC,kGAAkG;AAClG,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAE/D;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,cAAc,CAEnE;AAED,kFAAkF;AAClF,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,uFAAuF;AACvF,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C;;;;;;GAMG;AACH,qBAAa,WAAY,SAAQ,SAAS;IAyBtC,wDAAwD;aACxC,SAAS,EAAE,SAAS;IACpC,kEAAkE;aAClD,YAAY,EAAE,SAAS;IACvC,mCAAmC;aACnB,YAAY,EAAE,QAAQ;IACtC,4CAA4C;aAC5B,iBAAiB,EAAE,SAAS;IAC5C,2DAA2D;aAC3C,OAAO,EAAE,aAAa;IACtC;;;;;OAKG;aACa,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC;IAxCjE,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAUT;IAEH,MAAM,CAAC,MAAM,CAAC,EACZ,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,OAAO,EACP,KAAK,GACN,EAAE,WAAW,CAAC,WAAW,CAAC;IAI3B,OAAO;CAqBR;AAED,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC"}
@@ -20,37 +20,37 @@ export const MAX_NUMBER_OF_WORK_ITEMS = 16;
20
20
  /**
21
21
  * A piece of work done within a core.
22
22
  *
23
- * `P = (j ∈ Y, h ∈ NS, u ∈ H, p ∈ Y, x ∈ X, w ∈ ⟦I⟧1∶I)
23
+ * `P = (j ∈ Y, h ∈ NS, u ∈ H, f ∈ Y, x ∈ X, w ∈ ⟦I⟧1∶I)
24
24
  *
25
25
  * https://graypaper.fluffylabs.dev/#/579bd12/197000197200
26
26
  */
27
27
  export class WorkPackage extends WithDebug {
28
- authorization;
28
+ authToken;
29
29
  authCodeHost;
30
30
  authCodeHash;
31
- parametrization;
31
+ authConfiguration;
32
32
  context;
33
33
  items;
34
34
  static Codec = codec.Class(WorkPackage, {
35
35
  authCodeHost: codec.u32.asOpaque(),
36
36
  authCodeHash: codec.bytes(HASH_SIZE).asOpaque(),
37
37
  context: RefineContext.Codec,
38
- authorization: codec.blob,
39
- parametrization: codec.blob,
38
+ authToken: codec.blob,
39
+ authConfiguration: codec.blob,
40
40
  items: codec.sequenceVarLen(WorkItem.Codec).convert((x) => x, (items) => FixedSizeArray.new(items, tryAsWorkItemsCount(items.length))),
41
41
  });
42
- static create({ authorization, authCodeHost, authCodeHash, parametrization, context, items, }) {
43
- return new WorkPackage(authorization, authCodeHost, authCodeHash, parametrization, context, items);
42
+ static create({ authToken, authCodeHost, authCodeHash, authConfiguration, context, items, }) {
43
+ return new WorkPackage(authToken, authCodeHost, authCodeHash, authConfiguration, context, items);
44
44
  }
45
45
  constructor(
46
46
  /** `j`: simple blob acting as an authorization token */
47
- authorization,
47
+ authToken,
48
48
  /** `h`: index of the service that hosts the authorization code */
49
49
  authCodeHost,
50
50
  /** `u`: authorization code hash */
51
51
  authCodeHash,
52
- /** `p`: authorization parametrization blob */
53
- parametrization,
52
+ /** `f`: authorization configuration blob */
53
+ authConfiguration,
54
54
  /** `x`: context in which the refine function should run */
55
55
  context,
56
56
  /**
@@ -61,10 +61,10 @@ export class WorkPackage extends WithDebug {
61
61
  */
62
62
  items) {
63
63
  super();
64
- this.authorization = authorization;
64
+ this.authToken = authToken;
65
65
  this.authCodeHost = authCodeHost;
66
66
  this.authCodeHash = authCodeHash;
67
- this.parametrization = parametrization;
67
+ this.authConfiguration = authConfiguration;
68
68
  this.context = context;
69
69
  this.items = items;
70
70
  }
@@ -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"}