@typeberry/lib 0.5.10-9567cee → 0.5.10-9ffd7ac

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 (470) 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.test.js +1 -1
  34. package/packages/core/pvm-host-calls/host-call-memory.d.ts +2 -1
  35. package/packages/core/pvm-host-calls/host-call-memory.d.ts.map +1 -1
  36. package/packages/core/pvm-host-calls/host-call-memory.js +3 -0
  37. package/packages/core/pvm-host-calls/host-call-memory.test.js +1 -1
  38. package/packages/core/pvm-host-calls/host-call-registers.d.ts +5 -1
  39. package/packages/core/pvm-host-calls/host-call-registers.d.ts.map +1 -1
  40. package/packages/core/pvm-host-calls/host-call-registers.js +11 -1
  41. package/packages/core/pvm-host-calls/host-call-registers.test.js +2 -2
  42. package/packages/core/pvm-host-calls/host-calls-executor.d.ts +2 -1
  43. package/packages/core/pvm-host-calls/host-calls-executor.d.ts.map +1 -1
  44. package/packages/core/pvm-host-calls/host-calls-executor.js +5 -2
  45. package/packages/core/pvm-host-calls/host-calls.d.ts +4 -2
  46. package/packages/core/pvm-host-calls/host-calls.d.ts.map +1 -1
  47. package/packages/core/pvm-host-calls/host-calls.js +9 -4
  48. package/packages/core/pvm-host-calls/pvm-instance-manager.js +1 -1
  49. package/packages/core/pvm-interpreter/args-decoder/args-decoder.js +1 -1
  50. package/packages/core/pvm-interpreter/args-decoder/args-decoder.test.js +3 -3
  51. package/packages/core/pvm-interpreter/args-decoder/args-decoding-results.js +11 -11
  52. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts +2 -1
  53. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts.map +1 -1
  54. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.js +3 -0
  55. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.test.js +2 -2
  56. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts +2 -1
  57. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts.map +1 -1
  58. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.js +3 -0
  59. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.test.js +26 -26
  60. package/packages/core/pvm-interpreter/basic-blocks/basic-blocks.test.js +8 -8
  61. package/packages/core/pvm-interpreter/bin.js +1 -1
  62. package/packages/core/pvm-interpreter/debugger-adapter.d.ts +2 -1
  63. package/packages/core/pvm-interpreter/debugger-adapter.d.ts.map +1 -1
  64. package/packages/core/pvm-interpreter/debugger-adapter.js +6 -3
  65. package/packages/core/pvm-interpreter/gas.js +4 -1
  66. package/packages/core/pvm-interpreter/interpreter.d.ts +2 -1
  67. package/packages/core/pvm-interpreter/interpreter.d.ts.map +1 -1
  68. package/packages/core/pvm-interpreter/interpreter.js +19 -16
  69. package/packages/core/pvm-interpreter/memory/memory-builder.js +2 -2
  70. package/packages/core/pvm-interpreter/memory/memory-builder.test.js +7 -7
  71. package/packages/core/pvm-interpreter/memory/memory.d.ts +2 -1
  72. package/packages/core/pvm-interpreter/memory/memory.d.ts.map +1 -1
  73. package/packages/core/pvm-interpreter/memory/memory.js +4 -1
  74. package/packages/core/pvm-interpreter/memory/memory.test.js +31 -31
  75. package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts +2 -1
  76. package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts.map +1 -1
  77. package/packages/core/pvm-interpreter/memory/pages/readable-page.js +3 -0
  78. package/packages/core/pvm-interpreter/memory/pages/readable-page.test.js +3 -3
  79. package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts +2 -1
  80. package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts.map +1 -1
  81. package/packages/core/pvm-interpreter/memory/pages/writeable-page.js +3 -0
  82. package/packages/core/pvm-interpreter/memory/pages/writeable-page.test.js +4 -4
  83. package/packages/core/pvm-interpreter/ops/bit-ops.d.ts +2 -1
  84. package/packages/core/pvm-interpreter/ops/bit-ops.d.ts.map +1 -1
  85. package/packages/core/pvm-interpreter/ops/bit-ops.js +3 -0
  86. package/packages/core/pvm-interpreter/ops/bit-ops.test.js +3 -3
  87. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts +2 -1
  88. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts.map +1 -1
  89. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.js +3 -0
  90. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.test.js +5 -5
  91. package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts +2 -1
  92. package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts.map +1 -1
  93. package/packages/core/pvm-interpreter/ops/boolean-ops.js +3 -0
  94. package/packages/core/pvm-interpreter/ops/boolean-ops.test.js +3 -3
  95. package/packages/core/pvm-interpreter/ops/branch-ops.d.ts +2 -1
  96. package/packages/core/pvm-interpreter/ops/branch-ops.d.ts.map +1 -1
  97. package/packages/core/pvm-interpreter/ops/branch-ops.js +3 -0
  98. package/packages/core/pvm-interpreter/ops/branch-ops.test.js +4 -4
  99. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts +2 -1
  100. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts.map +1 -1
  101. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.js +3 -0
  102. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.test.js +5 -5
  103. package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts +2 -1
  104. package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts.map +1 -1
  105. package/packages/core/pvm-interpreter/ops/host-call-ops.js +3 -0
  106. package/packages/core/pvm-interpreter/ops/host-call-ops.test.js +2 -2
  107. package/packages/core/pvm-interpreter/ops/load-ops.d.ts +2 -1
  108. package/packages/core/pvm-interpreter/ops/load-ops.d.ts.map +1 -1
  109. package/packages/core/pvm-interpreter/ops/load-ops.js +3 -0
  110. package/packages/core/pvm-interpreter/ops/load-ops.test.js +10 -10
  111. package/packages/core/pvm-interpreter/ops/math-ops.d.ts +2 -1
  112. package/packages/core/pvm-interpreter/ops/math-ops.d.ts.map +1 -1
  113. package/packages/core/pvm-interpreter/ops/math-ops.js +3 -0
  114. package/packages/core/pvm-interpreter/ops/math-ops.test.js +3 -3
  115. package/packages/core/pvm-interpreter/ops/memory-ops.d.ts +2 -1
  116. package/packages/core/pvm-interpreter/ops/memory-ops.d.ts.map +1 -1
  117. package/packages/core/pvm-interpreter/ops/memory-ops.js +3 -0
  118. package/packages/core/pvm-interpreter/ops/memory-ops.test.js +3 -3
  119. package/packages/core/pvm-interpreter/ops/move-ops.d.ts +2 -1
  120. package/packages/core/pvm-interpreter/ops/move-ops.d.ts.map +1 -1
  121. package/packages/core/pvm-interpreter/ops/move-ops.js +3 -0
  122. package/packages/core/pvm-interpreter/ops/move-ops.test.js +3 -3
  123. package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts +2 -1
  124. package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts.map +1 -1
  125. package/packages/core/pvm-interpreter/ops/no-args-ops.js +3 -0
  126. package/packages/core/pvm-interpreter/ops/no-args-ops.test.js +2 -2
  127. package/packages/core/pvm-interpreter/ops/shift-ops.d.ts +2 -1
  128. package/packages/core/pvm-interpreter/ops/shift-ops.d.ts.map +1 -1
  129. package/packages/core/pvm-interpreter/ops/shift-ops.js +3 -0
  130. package/packages/core/pvm-interpreter/ops/shift-ops.test.js +3 -3
  131. package/packages/core/pvm-interpreter/ops/store-ops.d.ts +2 -1
  132. package/packages/core/pvm-interpreter/ops/store-ops.d.ts.map +1 -1
  133. package/packages/core/pvm-interpreter/ops/store-ops.js +3 -0
  134. package/packages/core/pvm-interpreter/ops/store-ops.test.js +7 -7
  135. package/packages/core/pvm-interpreter/ops-dispatchers/no-args-dispatcher.test.js +1 -1
  136. package/packages/core/pvm-interpreter/ops-dispatchers/one-imm-dispatcher.test.js +4 -4
  137. package/packages/core/pvm-interpreter/ops-dispatchers/one-offset-dispatcher.test.js +2 -2
  138. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-ext-imm-dispatcher.test.js +4 -4
  139. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-dispatcher.test.js +7 -7
  140. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-one-offset-dispatcher.test.js +10 -10
  141. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-two-imms-dispatcher.test.js +5 -5
  142. package/packages/core/pvm-interpreter/ops-dispatchers/three-regs-dispatcher.test.js +7 -7
  143. package/packages/core/pvm-interpreter/ops-dispatchers/two-imms-dispatcher.test.js +5 -5
  144. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-dispatcher.test.js +6 -6
  145. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-imm-dispatcher.test.js +11 -11
  146. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-offset-dispatcher.test.js +2 -2
  147. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-two-imms-dispatcher.test.js +14 -14
  148. package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts +5 -2
  149. package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts.map +1 -1
  150. package/packages/core/pvm-interpreter/program-decoder/jump-table.js +9 -4
  151. package/packages/core/pvm-interpreter/program-decoder/jump-table.test.js +6 -6
  152. package/packages/core/pvm-interpreter/program-decoder/mask.d.ts +2 -1
  153. package/packages/core/pvm-interpreter/program-decoder/mask.d.ts.map +1 -1
  154. package/packages/core/pvm-interpreter/program-decoder/mask.js +3 -0
  155. package/packages/core/pvm-interpreter/program-decoder/mask.test.js +10 -10
  156. package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts +2 -1
  157. package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts.map +1 -1
  158. package/packages/core/pvm-interpreter/program-decoder/program-decoder.js +6 -3
  159. package/packages/core/pvm-interpreter/program-decoder/program-decoder.test.js +5 -5
  160. package/packages/core/pvm-interpreter/program.js +3 -3
  161. package/packages/core/pvm-interpreter/registers.d.ts +5 -2
  162. package/packages/core/pvm-interpreter/registers.d.ts.map +1 -1
  163. package/packages/core/pvm-interpreter/registers.js +10 -6
  164. package/packages/core/pvm-interpreter/registers.test.js +10 -10
  165. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts +6 -3
  166. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts.map +1 -1
  167. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.js +11 -2
  168. package/packages/core/pvm-interpreter-ananas/index.d.ts +6 -3
  169. package/packages/core/pvm-interpreter-ananas/index.d.ts.map +1 -1
  170. package/packages/core/pvm-interpreter-ananas/index.js +12 -3
  171. package/packages/core/trie/nodes.d.ts +7 -2
  172. package/packages/core/trie/nodes.d.ts.map +1 -1
  173. package/packages/core/trie/nodes.js +20 -11
  174. package/packages/core/trie/nodesDb.d.ts +3 -1
  175. package/packages/core/trie/nodesDb.d.ts.map +1 -1
  176. package/packages/core/trie/nodesDb.js +6 -0
  177. package/packages/core/trie/trie.js +2 -2
  178. package/packages/extensions/ipc/index.js +5 -2
  179. package/packages/extensions/ipc/jamnp/handler.d.ts +4 -2
  180. package/packages/extensions/ipc/jamnp/handler.d.ts.map +1 -1
  181. package/packages/extensions/ipc/jamnp/handler.js +9 -3
  182. package/packages/extensions/ipc/jamnp/server.js +3 -3
  183. package/packages/extensions/ipc/server.d.ts +2 -1
  184. package/packages/extensions/ipc/server.d.ts.map +1 -1
  185. package/packages/extensions/ipc/server.js +4 -1
  186. package/packages/jam/block/header.js +1 -1
  187. package/packages/jam/block/work-package.d.ts +7 -7
  188. package/packages/jam/block/work-package.d.ts.map +1 -1
  189. package/packages/jam/block/work-package.js +12 -12
  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/pvm-executor.d.ts +7 -0
  213. package/packages/jam/executor/pvm-executor.d.ts.map +1 -1
  214. package/packages/jam/executor/pvm-executor.js +36 -21
  215. package/packages/jam/fuzz-proto/v1/handler.d.ts +2 -1
  216. package/packages/jam/fuzz-proto/v1/handler.d.ts.map +1 -1
  217. package/packages/jam/fuzz-proto/v1/handler.js +3 -0
  218. package/packages/jam/fuzz-proto/v1/handler.test.js +10 -10
  219. package/packages/jam/in-core/externalities/refine.d.ts +5 -5
  220. package/packages/jam/in-core/externalities/refine.d.ts.map +1 -1
  221. package/packages/jam/in-core/externalities/refine.js +42 -7
  222. package/packages/jam/in-core/externalities/refine.test.js +119 -1
  223. package/packages/jam/in-core/in-core.d.ts +9 -23
  224. package/packages/jam/in-core/in-core.d.ts.map +1 -1
  225. package/packages/jam/in-core/in-core.js +19 -184
  226. package/packages/jam/in-core/in-core.test.js +52 -20
  227. package/packages/jam/in-core/is-authorized.d.ts +33 -0
  228. package/packages/jam/in-core/is-authorized.d.ts.map +1 -0
  229. package/packages/jam/in-core/is-authorized.js +72 -0
  230. package/packages/jam/in-core/is-authorized.test.d.ts +2 -0
  231. package/packages/jam/in-core/is-authorized.test.d.ts.map +1 -0
  232. package/packages/jam/in-core/is-authorized.test.js +125 -0
  233. package/packages/jam/in-core/refine.d.ts +34 -0
  234. package/packages/jam/in-core/refine.d.ts.map +1 -0
  235. package/packages/jam/in-core/refine.js +176 -0
  236. package/packages/jam/in-core/refine.test.d.ts +2 -0
  237. package/packages/jam/in-core/refine.test.d.ts.map +1 -0
  238. package/packages/jam/in-core/refine.test.js +6 -0
  239. package/packages/jam/jam-host-calls/accumulate/assign.d.ts +2 -1
  240. package/packages/jam/jam-host-calls/accumulate/assign.d.ts.map +1 -1
  241. package/packages/jam/jam-host-calls/accumulate/assign.js +3 -0
  242. package/packages/jam/jam-host-calls/accumulate/assign.test.js +8 -9
  243. package/packages/jam/jam-host-calls/accumulate/bless.d.ts +2 -1
  244. package/packages/jam/jam-host-calls/accumulate/bless.d.ts.map +1 -1
  245. package/packages/jam/jam-host-calls/accumulate/bless.js +12 -9
  246. package/packages/jam/jam-host-calls/accumulate/bless.test.js +11 -12
  247. package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts +2 -1
  248. package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts.map +1 -1
  249. package/packages/jam/jam-host-calls/accumulate/checkpoint.js +4 -1
  250. package/packages/jam/jam-host-calls/accumulate/checkpoint.test.js +2 -3
  251. package/packages/jam/jam-host-calls/accumulate/designate.d.ts +2 -1
  252. package/packages/jam/jam-host-calls/accumulate/designate.d.ts.map +1 -1
  253. package/packages/jam/jam-host-calls/accumulate/designate.js +3 -0
  254. package/packages/jam/jam-host-calls/accumulate/designate.test.js +5 -6
  255. package/packages/jam/jam-host-calls/accumulate/eject.d.ts +2 -1
  256. package/packages/jam/jam-host-calls/accumulate/eject.d.ts.map +1 -1
  257. package/packages/jam/jam-host-calls/accumulate/eject.js +3 -0
  258. package/packages/jam/jam-host-calls/accumulate/eject.test.js +8 -9
  259. package/packages/jam/jam-host-calls/accumulate/forget.d.ts +2 -1
  260. package/packages/jam/jam-host-calls/accumulate/forget.d.ts.map +1 -1
  261. package/packages/jam/jam-host-calls/accumulate/forget.js +3 -0
  262. package/packages/jam/jam-host-calls/accumulate/forget.test.js +5 -6
  263. package/packages/jam/jam-host-calls/accumulate/new.d.ts +2 -1
  264. package/packages/jam/jam-host-calls/accumulate/new.d.ts.map +1 -1
  265. package/packages/jam/jam-host-calls/accumulate/new.js +3 -0
  266. package/packages/jam/jam-host-calls/accumulate/new.test.js +9 -10
  267. package/packages/jam/jam-host-calls/accumulate/provide.d.ts +2 -1
  268. package/packages/jam/jam-host-calls/accumulate/provide.d.ts.map +1 -1
  269. package/packages/jam/jam-host-calls/accumulate/provide.js +3 -0
  270. package/packages/jam/jam-host-calls/accumulate/provide.test.js +8 -9
  271. package/packages/jam/jam-host-calls/accumulate/query.d.ts +2 -1
  272. package/packages/jam/jam-host-calls/accumulate/query.d.ts.map +1 -1
  273. package/packages/jam/jam-host-calls/accumulate/query.js +3 -0
  274. package/packages/jam/jam-host-calls/accumulate/query.test.js +8 -9
  275. package/packages/jam/jam-host-calls/accumulate/solicit.d.ts +2 -1
  276. package/packages/jam/jam-host-calls/accumulate/solicit.d.ts.map +1 -1
  277. package/packages/jam/jam-host-calls/accumulate/solicit.js +3 -0
  278. package/packages/jam/jam-host-calls/accumulate/solicit.test.js +7 -8
  279. package/packages/jam/jam-host-calls/accumulate/transfer.d.ts +2 -1
  280. package/packages/jam/jam-host-calls/accumulate/transfer.d.ts.map +1 -1
  281. package/packages/jam/jam-host-calls/accumulate/transfer.js +3 -0
  282. package/packages/jam/jam-host-calls/accumulate/transfer.test.js +9 -10
  283. package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts +2 -1
  284. package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts.map +1 -1
  285. package/packages/jam/jam-host-calls/accumulate/upgrade.js +3 -0
  286. package/packages/jam/jam-host-calls/accumulate/upgrade.test.js +4 -5
  287. package/packages/jam/jam-host-calls/accumulate/yield.d.ts +2 -1
  288. package/packages/jam/jam-host-calls/accumulate/yield.d.ts.map +1 -1
  289. package/packages/jam/jam-host-calls/accumulate/yield.js +3 -0
  290. package/packages/jam/jam-host-calls/accumulate/yield.test.js +4 -5
  291. package/packages/jam/jam-host-calls/externalities/partial-state.d.ts +1 -1
  292. package/packages/jam/jam-host-calls/externalities/refine-externalities.d.ts +1 -1
  293. package/packages/jam/jam-host-calls/externalities/refine-externalities.d.ts.map +1 -1
  294. package/packages/jam/jam-host-calls/externalities/refine-externalities.test.js +9 -9
  295. package/packages/jam/jam-host-calls/externalities/state-update.d.ts +2 -3
  296. package/packages/jam/jam-host-calls/externalities/state-update.d.ts.map +1 -1
  297. package/packages/jam/jam-host-calls/externalities/state-update.js +5 -2
  298. package/packages/jam/jam-host-calls/externalities/test-accounts.js +2 -2
  299. package/packages/jam/jam-host-calls/general/fetch.d.ts +42 -41
  300. package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
  301. package/packages/jam/jam-host-calls/general/fetch.js +33 -30
  302. package/packages/jam/jam-host-calls/general/fetch.test.js +44 -42
  303. package/packages/jam/jam-host-calls/general/gas.d.ts +2 -1
  304. package/packages/jam/jam-host-calls/general/gas.d.ts.map +1 -1
  305. package/packages/jam/jam-host-calls/general/gas.js +3 -0
  306. package/packages/jam/jam-host-calls/general/gas.test.js +4 -5
  307. package/packages/jam/jam-host-calls/general/info.d.ts +2 -1
  308. package/packages/jam/jam-host-calls/general/info.d.ts.map +1 -1
  309. package/packages/jam/jam-host-calls/general/info.js +3 -0
  310. package/packages/jam/jam-host-calls/general/info.test.js +6 -7
  311. package/packages/jam/jam-host-calls/general/log.d.ts +2 -1
  312. package/packages/jam/jam-host-calls/general/log.d.ts.map +1 -1
  313. package/packages/jam/jam-host-calls/general/log.js +3 -0
  314. package/packages/jam/jam-host-calls/general/lookup.d.ts +2 -1
  315. package/packages/jam/jam-host-calls/general/lookup.d.ts.map +1 -1
  316. package/packages/jam/jam-host-calls/general/lookup.js +3 -0
  317. package/packages/jam/jam-host-calls/general/lookup.test.js +8 -9
  318. package/packages/jam/jam-host-calls/general/read.d.ts +2 -1
  319. package/packages/jam/jam-host-calls/general/read.d.ts.map +1 -1
  320. package/packages/jam/jam-host-calls/general/read.js +3 -0
  321. package/packages/jam/jam-host-calls/general/read.test.js +11 -12
  322. package/packages/jam/jam-host-calls/general/write.d.ts +2 -1
  323. package/packages/jam/jam-host-calls/general/write.d.ts.map +1 -1
  324. package/packages/jam/jam-host-calls/general/write.js +3 -0
  325. package/packages/jam/jam-host-calls/general/write.test.js +10 -11
  326. package/packages/jam/jam-host-calls/refine/export.d.ts +2 -1
  327. package/packages/jam/jam-host-calls/refine/export.d.ts.map +1 -1
  328. package/packages/jam/jam-host-calls/refine/export.js +3 -0
  329. package/packages/jam/jam-host-calls/refine/export.test.js +6 -7
  330. package/packages/jam/jam-host-calls/refine/expunge.d.ts +2 -1
  331. package/packages/jam/jam-host-calls/refine/expunge.d.ts.map +1 -1
  332. package/packages/jam/jam-host-calls/refine/expunge.js +3 -0
  333. package/packages/jam/jam-host-calls/refine/expunge.test.js +3 -4
  334. package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts +2 -1
  335. package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts.map +1 -1
  336. package/packages/jam/jam-host-calls/refine/historical-lookup.js +3 -0
  337. package/packages/jam/jam-host-calls/refine/historical-lookup.test.js +11 -12
  338. package/packages/jam/jam-host-calls/refine/invoke.d.ts +2 -1
  339. package/packages/jam/jam-host-calls/refine/invoke.d.ts.map +1 -1
  340. package/packages/jam/jam-host-calls/refine/invoke.js +4 -1
  341. package/packages/jam/jam-host-calls/refine/invoke.test.js +10 -11
  342. package/packages/jam/jam-host-calls/refine/machine.d.ts +2 -1
  343. package/packages/jam/jam-host-calls/refine/machine.d.ts.map +1 -1
  344. package/packages/jam/jam-host-calls/refine/machine.js +3 -0
  345. package/packages/jam/jam-host-calls/refine/machine.test.js +6 -7
  346. package/packages/jam/jam-host-calls/refine/pages.d.ts +2 -1
  347. package/packages/jam/jam-host-calls/refine/pages.d.ts.map +1 -1
  348. package/packages/jam/jam-host-calls/refine/pages.js +3 -0
  349. package/packages/jam/jam-host-calls/refine/pages.test.js +3 -4
  350. package/packages/jam/jam-host-calls/refine/peek.d.ts +2 -1
  351. package/packages/jam/jam-host-calls/refine/peek.d.ts.map +1 -1
  352. package/packages/jam/jam-host-calls/refine/peek.js +3 -0
  353. package/packages/jam/jam-host-calls/refine/peek.test.js +3 -4
  354. package/packages/jam/jam-host-calls/refine/poke.d.ts +2 -1
  355. package/packages/jam/jam-host-calls/refine/poke.d.ts.map +1 -1
  356. package/packages/jam/jam-host-calls/refine/poke.js +3 -0
  357. package/packages/jam/jam-host-calls/refine/poke.test.js +3 -4
  358. package/packages/jam/jamnp-s/network.js +1 -1
  359. package/packages/jam/jamnp-s/peers.d.ts +2 -1
  360. package/packages/jam/jamnp-s/peers.d.ts.map +1 -1
  361. package/packages/jam/jamnp-s/peers.js +3 -0
  362. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts +4 -2
  363. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts.map +1 -1
  364. package/packages/jam/jamnp-s/protocol/ce-128-block-request.js +6 -0
  365. package/packages/jam/jamnp-s/protocol/ce-128-block-request.test.js +2 -2
  366. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts +4 -2
  367. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts.map +1 -1
  368. package/packages/jam/jamnp-s/protocol/ce-129-state-request.js +6 -0
  369. package/packages/jam/jamnp-s/protocol/ce-129-state-request.test.js +4 -4
  370. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +4 -2
  371. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts.map +1 -1
  372. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.js +6 -0
  373. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.test.js +2 -2
  374. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +6 -3
  375. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts.map +1 -1
  376. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.js +7 -0
  377. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.test.js +2 -2
  378. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts +5 -2
  379. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts.map +1 -1
  380. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.js +7 -0
  381. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.test.js +2 -2
  382. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +4 -2
  383. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts.map +1 -1
  384. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.js +6 -0
  385. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.test.js +2 -2
  386. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +2 -1
  387. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts.map +1 -1
  388. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.js +3 -0
  389. package/packages/jam/jamnp-s/stream-manager.d.ts +2 -1
  390. package/packages/jam/jamnp-s/stream-manager.d.ts.map +1 -1
  391. package/packages/jam/jamnp-s/stream-manager.js +4 -1
  392. package/packages/jam/jamnp-s/tasks/sync.js +4 -4
  393. package/packages/jam/jamnp-s/tasks/sync.test.js +4 -4
  394. package/packages/jam/jamnp-s/tasks/ticket-distribution.js +2 -2
  395. package/packages/jam/jamnp-s/tasks/ticket-distribution.test.js +1 -1
  396. package/packages/jam/node/common.d.ts.map +1 -1
  397. package/packages/jam/node/common.js +3 -3
  398. package/packages/jam/rpc-client/index.d.ts +4 -2
  399. package/packages/jam/rpc-client/index.d.ts.map +1 -1
  400. package/packages/jam/rpc-client/index.js +7 -1
  401. package/packages/jam/state/in-memory-state-view.d.ts +2 -1
  402. package/packages/jam/state/in-memory-state-view.d.ts.map +1 -1
  403. package/packages/jam/state/in-memory-state-view.js +3 -0
  404. package/packages/jam/state/in-memory-state.d.ts +16 -21
  405. package/packages/jam/state/in-memory-state.d.ts.map +1 -1
  406. package/packages/jam/state/in-memory-state.js +10 -6
  407. package/packages/jam/state/in-memory-state.test.js +2 -2
  408. package/packages/jam/state/service.d.ts +2 -6
  409. package/packages/jam/state/service.d.ts.map +1 -1
  410. package/packages/jam/state/service.js +3 -0
  411. package/packages/jam/state/test.utils.js +3 -3
  412. package/packages/jam/state-json/accounts.js +5 -5
  413. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +3 -34
  414. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts.map +1 -1
  415. package/packages/jam/state-merkleization/in-memory-state-codec.js +1 -1
  416. package/packages/jam/state-merkleization/serialized-state-view.d.ts +8 -3
  417. package/packages/jam/state-merkleization/serialized-state-view.d.ts.map +1 -1
  418. package/packages/jam/state-merkleization/serialized-state-view.js +6 -3
  419. package/packages/jam/state-merkleization/serialized-state.d.ts +2 -3
  420. package/packages/jam/state-merkleization/serialized-state.d.ts.map +1 -1
  421. package/packages/jam/state-merkleization/serialized-state.js +10 -2
  422. package/packages/jam/state-merkleization/serialized-state.test.js +1 -1
  423. package/packages/jam/transition/accumulate/accumulate.js +10 -3
  424. package/packages/jam/transition/accumulate/accumulate.test.js +1 -1
  425. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.js +48 -39
  426. package/packages/jam/transition/block-verifier.d.ts +2 -1
  427. package/packages/jam/transition/block-verifier.d.ts.map +1 -1
  428. package/packages/jam/transition/block-verifier.js +3 -0
  429. package/packages/jam/transition/block-verifier.test.js +8 -8
  430. package/packages/jam/transition/chain-stf.d.ts +12 -4
  431. package/packages/jam/transition/chain-stf.d.ts.map +1 -1
  432. package/packages/jam/transition/chain-stf.js +7 -3
  433. package/packages/jam/transition/externalities/accumulate-externalities.d.ts +22 -8
  434. package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
  435. package/packages/jam/transition/externalities/accumulate-externalities.js +49 -29
  436. package/packages/jam/transition/externalities/accumulate-externalities.test.js +661 -101
  437. package/packages/jam/transition/externalities/index.d.ts +1 -0
  438. package/packages/jam/transition/externalities/index.d.ts.map +1 -1
  439. package/packages/jam/transition/externalities/index.js +1 -0
  440. package/packages/jam/transition/externalities/is-authorized-fetch-externalities.d.ts +22 -0
  441. package/packages/jam/transition/externalities/is-authorized-fetch-externalities.d.ts.map +1 -0
  442. package/packages/jam/transition/externalities/is-authorized-fetch-externalities.js +41 -0
  443. package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts +9 -8
  444. package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts.map +1 -1
  445. package/packages/jam/transition/externalities/refine-fetch-externalities.js +20 -9
  446. package/packages/jam/transition/externalities/refine-fetch-externalities.test.js +1 -1
  447. package/packages/jam/transition/hasher.d.ts +2 -1
  448. package/packages/jam/transition/hasher.d.ts.map +1 -1
  449. package/packages/jam/transition/hasher.js +5 -2
  450. package/packages/jam/transition/hasher.test.js +1 -1
  451. package/packages/jam/transition/preimages.test.js +4 -4
  452. package/packages/jam/transition/reports/test.utils.js +1 -1
  453. package/packages/workers/api-node/config.js +4 -4
  454. package/packages/workers/api-node/port.d.ts +2 -1
  455. package/packages/workers/api-node/port.d.ts.map +1 -1
  456. package/packages/workers/api-node/port.js +4 -1
  457. package/packages/workers/api-node/port.test.js +2 -2
  458. package/packages/workers/api-node/protocol.js +2 -2
  459. package/packages/workers/block-authorship/generator.d.ts +13 -2
  460. package/packages/workers/block-authorship/generator.d.ts.map +1 -1
  461. package/packages/workers/block-authorship/generator.js +13 -9
  462. package/packages/workers/block-authorship/generator.test.js +16 -2
  463. package/packages/workers/block-authorship/main.d.ts.map +1 -1
  464. package/packages/workers/block-authorship/main.js +8 -1
  465. package/packages/workers/importer/finality.test.js +1 -1
  466. package/packages/workers/importer/importer.d.ts +23 -6
  467. package/packages/workers/importer/importer.d.ts.map +1 -1
  468. package/packages/workers/importer/importer.js +34 -19
  469. package/packages/workers/importer/main.d.ts.map +1 -1
  470. package/packages/workers/importer/main.js +13 -5
@@ -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"}
@@ -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));
@@ -13,6 +13,9 @@ export type AccumulateHostCallExternalities = {
13
13
  fetchExternalities: general.IAccumulateFetch;
14
14
  serviceExternalities: general.AccountsInfo & general.AccountsLookup & general.AccountsWrite & general.AccountsRead;
15
15
  };
16
+ export type IsAuthorizedHostCallExternalities = {
17
+ fetchExternalities: general.IIsAuthorizedFetch;
18
+ };
16
19
  type OnTransferHostCallExternalities = {
17
20
  partialState: general.AccountsInfo & general.AccountsLookup & general.AccountsWrite & general.AccountsRead;
18
21
  fetchExternalities: general.IFetchExternalities;
@@ -31,6 +34,8 @@ export declare class PvmExecutor {
31
34
  private static prepareRefineHostCalls;
32
35
  /** Prepare accumulation host call handlers */
33
36
  private static prepareAccumulateHostCalls;
37
+ /** Prepare is-authorized host call handlers */
38
+ private static prepareIsAuthorizedHostCalls;
34
39
  /** Prepare on transfer host call handlers */
35
40
  private static prepareOnTransferHostCalls;
36
41
  /**
@@ -50,6 +55,8 @@ export declare class PvmExecutor {
50
55
  }>;
51
56
  /** A utility function that can be used to prepare refine executor */
52
57
  static createRefineExecutor(serviceId: ServiceId, serviceCode: BytesBlob, externalities: RefineHostCallExternalities, pvm: PvmBackend): Promise<PvmExecutor>;
58
+ /** A utility function that can be used to prepare is-authorized executor */
59
+ static createIsAuthorizedExecutor(serviceId: ServiceId, serviceCode: BytesBlob, externalities: IsAuthorizedHostCallExternalities, pvm: PvmBackend): Promise<PvmExecutor>;
53
60
  /** A utility function that can be used to prepare accumulate executor */
54
61
  static createAccumulateExecutor(serviceId: ServiceId, serviceCode: BytesBlob, externalities: AccumulateHostCallExternalities, chainSpec: ChainSpec, pvm: PvmBackend): Promise<PvmExecutor>;
55
62
  /** A utility function that can be used to prepare on transfer executor */
@@ -1 +1 @@
1
- {"version":3,"file":"pvm-executor.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/executor/pvm-executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAmB,MAAM,kBAAkB,CAAC;AACpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAc,OAAO,EAAU,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0DAA0D,CAAC;AAC7F,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,iEAAiE,CAAC;AAuCzE,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC,YAAY,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,YAAY,EAAE,YAAY,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAC7C,oBAAoB,EAAE,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CACpH,CAAC;AAEF,KAAK,+BAA+B,GAAG;IACrC,YAAY,EAAE,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAC3G,kBAAkB,EAAE,OAAO,CAAC,mBAAmB,CAAC;CACjD,CAAC;AAUF;;GAEG;AACH,qBAAa,WAAW;IAKpB,OAAO,CAAC,WAAW;IAEnB,OAAO,CAAC,UAAU;IANpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;IACxC,OAAO,CAAC,SAAS,CAAY;IAE7B,OAAO;mBAac,cAAc;IAInC,wCAAwC;IACxC,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAerC,8CAA8C;IAC9C,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAuBzC,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAazC;;;;;;OAMG;IACG,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU;;;;;;;;IAQ1C,qEAAqE;WACxD,oBAAoB,CAC/B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,2BAA2B,EAC1C,GAAG,EAAE,UAAU;IAOjB,yEAAyE;WAC5D,wBAAwB,CACnC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,+BAA+B,EAC9C,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,UAAU;IAQjB,0EAA0E;WAC7D,wBAAwB,CACnC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,+BAA+B,EAC9C,GAAG,EAAE,UAAU;CAMlB"}
1
+ {"version":3,"file":"pvm-executor.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/executor/pvm-executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAmB,MAAM,kBAAkB,CAAC;AACpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAc,OAAO,EAAU,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0DAA0D,CAAC;AAC7F,OAAO,EAEL,KAAK,mBAAmB,EAEzB,MAAM,iEAAiE,CAAC;AAuCzE,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,mBAAmB,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC,YAAY,CAAC;CAC1C,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,YAAY,EAAE,YAAY,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC,gBAAgB,CAAC;IAC7C,oBAAoB,EAAE,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CACpH,CAAC;AAEF,MAAM,MAAM,iCAAiC,GAAG;IAC9C,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,CAAC;CAChD,CAAC;AAEF,KAAK,+BAA+B,GAAG;IACrC,YAAY,EAAE,OAAO,CAAC,YAAY,GAAG,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAC3G,kBAAkB,EAAE,OAAO,CAAC,mBAAmB,CAAC;CACjD,CAAC;AAUF;;GAEG;AACH,qBAAa,WAAW;IAKpB,OAAO,CAAC,WAAW;IAEnB,OAAO,CAAC,UAAU;IANpB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAoB;IACxC,OAAO,CAAC,SAAS,CAAY;IAE7B,OAAO;mBAac,cAAc;IAInC,wCAAwC;IACxC,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAerC,8CAA8C;IAC9C,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAuBzC,+CAA+C;IAC/C,OAAO,CAAC,MAAM,CAAC,4BAA4B;IAU3C,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAAC,0BAA0B;IAazC;;;;;;OAMG;IACG,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU;;;;;;;;IAQ1C,qEAAqE;WACxD,oBAAoB,CAC/B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,2BAA2B,EAC1C,GAAG,EAAE,UAAU;IAOjB,4EAA4E;WAC/D,0BAA0B,CACrC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,iCAAiC,EAChD,GAAG,EAAE,UAAU;IAOjB,yEAAyE;WAC5D,wBAAwB,CACnC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,+BAA+B,EAC9C,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,UAAU;IAQjB,0EAA0E;WAC7D,wBAAwB,CACnC,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,SAAS,EACtB,aAAa,EAAE,+BAA+B,EAC9C,GAAG,EAAE,UAAU;CAMlB"}