@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
@@ -2,6 +2,9 @@ import * as lmdb from "lmdb";
2
2
  /** A thin abstraction over lmdb database interface. */
3
3
  export class LmdbRoot {
4
4
  db;
5
+ static new(dbPath, readOnly = false) {
6
+ return new LmdbRoot(dbPath, readOnly);
7
+ }
5
8
  constructor(dbPath, readOnly = false) {
6
9
  this.db = lmdb.open(dbPath, {
7
10
  compression: true,
@@ -61,7 +61,8 @@ export declare class LmdbStates implements StatesDb<SerializedState<LeafDb>>, In
61
61
  private readonly root;
62
62
  private readonly states;
63
63
  private readonly values;
64
- constructor(spec: ChainSpec, blake2b: Blake2b, root: LmdbRoot);
64
+ static new(spec: ChainSpec, blake2b: Blake2b, root: LmdbRoot): LmdbStates;
65
+ private constructor();
65
66
  insertInitialState(headerHash: HeaderHash, serializedState: StateEntries): Promise<Result<OK, StateUpdateError>>;
66
67
  private updateAndCommit;
67
68
  updateAndSetState(headerHash: HeaderHash, state: SerializedState<LeafDb>, update: Partial<State & ServicesUpdate>): Promise<Result<OK, StateUpdateError>>;
@@ -1 +1 @@
1
- {"version":3,"file":"states.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/database-lmdb/states.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,EAAE,KAAK,QAAQ,EAAE,gBAAgB,EAAe,MAAM,qBAAqB,CAAC;AAC9G,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,iBAAiB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAgD,MAAM,gCAAgC,CAAC;AAG/G,OAAO,EAAE,EAAE,EAAE,MAAM,EAAkB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAS,MAAM,WAAW,CAAC;AAGjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,qBAAa,UAAW,YAAW,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC;IAK5F,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IANvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;gBAGZ,IAAI,EAAE,SAAS,EACf,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,QAAQ;IAM3B,kBAAkB,CACtB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,YAAY,GAC5B,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAQ1B,eAAe;IA0BvB,iBAAiB,CACrB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,EAC9B,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAWlC,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAI1E,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI;IAsB1D,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAI9B,KAAK;CAGZ"}
1
+ {"version":3,"file":"states.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/database-lmdb/states.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,EAAE,KAAK,QAAQ,EAAE,gBAAgB,EAAe,MAAM,qBAAqB,CAAC;AAC9G,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,iBAAiB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAgD,MAAM,gCAAgC,CAAC;AAG/G,OAAO,EAAE,EAAE,EAAE,MAAM,EAAkB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAS,MAAM,WAAW,CAAC;AAGjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,qBAAa,UAAW,YAAW,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC;IAS5F,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAE/B,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ;IAI5D,OAAO;IASD,kBAAkB,CACtB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,YAAY,GAC5B,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAQ1B,eAAe;IA0BvB,iBAAiB,CACrB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,EAC9B,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAWlC,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAI1E,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI;IAsB1D,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAI9B,KAAK;CAGZ"}
@@ -60,6 +60,9 @@ export class LmdbStates {
60
60
  root;
61
61
  states;
62
62
  values;
63
+ static new(spec, blake2b, root) {
64
+ return new LmdbStates(spec, blake2b, root);
65
+ }
63
66
  constructor(spec, blake2b, root) {
64
67
  this.spec = spec;
65
68
  this.blake2b = blake2b;
@@ -37,8 +37,8 @@ describe("LMDB States database", () => {
37
37
  const headerHash = Bytes.zero(HASH_SIZE).asOpaque();
38
38
  const spec = tinyChainSpec;
39
39
  it("should import state and read state", async () => {
40
- const root = new LmdbRoot(tmpDir);
41
- const states = new LmdbStates(spec, blake2b, root);
40
+ const root = LmdbRoot.new(tmpDir);
41
+ const states = LmdbStates.new(spec, blake2b, root);
42
42
  try {
43
43
  const emptyState = InMemoryState.empty(spec);
44
44
  const serialized = StateEntries.serializeInMemory(spec, blake2b, emptyState);
@@ -58,15 +58,15 @@ describe("LMDB States database", () => {
58
58
  }
59
59
  });
60
60
  it("should update the state", async () => {
61
- const root = new LmdbRoot(tmpDir);
62
- const states = new LmdbStates(spec, blake2b, root);
61
+ const root = LmdbRoot.new(tmpDir);
62
+ const states = LmdbStates.new(spec, blake2b, root);
63
63
  try {
64
64
  const state = InMemoryState.empty(spec);
65
65
  await states.insertInitialState(headerHash, StateEntries.serializeInMemory(spec, blake2b, state));
66
66
  const newState = states.getState(headerHash);
67
67
  assert.ok(newState !== null);
68
68
  const headerHash2 = Bytes.fill(HASH_SIZE, 2).asOpaque();
69
- const lookupHistory = new LookupHistoryItem(Bytes.fill(HASH_SIZE, 0xff).asOpaque(), tryAsU32(5), tryAsLookupHistorySlots([]));
69
+ const lookupHistory = LookupHistoryItem.new(Bytes.fill(HASH_SIZE, 0xff).asOpaque(), tryAsU32(5), tryAsLookupHistorySlots([]));
70
70
  const stateUpdate = {
71
71
  timeslot: tryAsTimeSlot(15),
72
72
  privilegedServices: PrivilegedServices.create({
@@ -142,8 +142,8 @@ describe("LMDB States database", () => {
142
142
  deepEqual(Array.from(set), Array.from(SortedSet.fromArray(leafComparator, Array.from(trie.nodes.leaves()))));
143
143
  });
144
144
  it("should import more complex state", async () => {
145
- const root = new LmdbRoot(tmpDir);
146
- const states = new LmdbStates(spec, blake2b, root);
145
+ const root = LmdbRoot.new(tmpDir);
146
+ const states = LmdbStates.new(spec, blake2b, root);
147
147
  try {
148
148
  const initialState = testState();
149
149
  const initialService = initialState.services.get(tryAsServiceId(0));
@@ -167,8 +167,8 @@ describe("LMDB States database", () => {
167
167
  }
168
168
  });
169
169
  it("should update more complex entries", async () => {
170
- const root = new LmdbRoot(tmpDir);
171
- const states = new LmdbStates(spec, blake2b, root);
170
+ const root = LmdbRoot.new(tmpDir);
171
+ const states = LmdbStates.new(spec, blake2b, root);
172
172
  try {
173
173
  const state = testState();
174
174
  const initialService = state.services.get(tryAsServiceId(0));
@@ -1,4 +1,4 @@
1
1
  export type { ReturnValue } from "#@typeberry/pvm-host-calls";
2
- export { ReturnStatus } from "#@typeberry/pvm-host-calls";
2
+ export { EcalliTraceLogger, ReturnStatus } from "#@typeberry/pvm-host-calls";
3
3
  export * from "./pvm-executor.js";
4
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/executor/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/executor/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC5E,cAAc,mBAAmB,CAAC"}
@@ -1,2 +1,2 @@
1
- export { ReturnStatus } from "#@typeberry/pvm-host-calls";
1
+ export { EcalliTraceLogger, ReturnStatus } from "#@typeberry/pvm-host-calls";
2
2
  export * from "./pvm-executor.js";
@@ -6,13 +6,16 @@ import type { PartialState } from "#@typeberry/jam-host-calls/externalities/part
6
6
  import { type RefineExternalities } from "#@typeberry/jam-host-calls/externalities/refine-externalities.js";
7
7
  export type RefineHostCallExternalities = {
8
8
  refine: RefineExternalities;
9
- fetchExternalities: general.IFetchExternalities;
9
+ fetchExternalities: general.IRefineFetch;
10
10
  };
11
11
  export type AccumulateHostCallExternalities = {
12
12
  partialState: PartialState;
13
- fetchExternalities: general.IFetchExternalities;
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,mBAAmB,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,+BAA+B,GAAG;IAC5C,YAAY,EAAE,YAAY,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC,mBAAmB,CAAC;IAChD,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"}
@@ -55,51 +55,60 @@ export class PvmExecutor {
55
55
  constructor(serviceCode, hostCallHandlers, entrypoint, pvmInstanceManager) {
56
56
  this.serviceCode = serviceCode;
57
57
  this.entrypoint = entrypoint;
58
- this.hostCalls = new HostCalls({
58
+ this.hostCalls = HostCalls.new({
59
59
  missing: new general.Missing(),
60
60
  handlers: hostCallHandlers,
61
61
  });
62
- this.pvm = new HostCallsExecutor(pvmInstanceManager, this.hostCalls);
62
+ this.pvm = HostCallsExecutor.new(pvmInstanceManager, this.hostCalls);
63
63
  }
64
64
  static async prepareBackend(pvm) {
65
65
  return PvmInstanceManager.new(pvm);
66
66
  }
67
67
  /** Prepare refine host call handlers */
68
68
  static prepareRefineHostCalls(serviceId, externalities) {
69
- const refineHandlers = REFINE_HOST_CALL_CLASSES.map((HandlerClass) => new HandlerClass(externalities.refine));
69
+ const refineHandlers = REFINE_HOST_CALL_CLASSES.map((HandlerClass) => HandlerClass.new(externalities.refine));
70
70
  /** https://graypaper.fluffylabs.dev/#/ab2cdbd/2fa7022fa702?v=0.7.2 */
71
71
  const generalHandlers = [
72
- new general.LogHostCall(serviceId),
73
- new general.GasHostCall(serviceId),
74
- new general.Fetch(serviceId, externalities.fetchExternalities),
72
+ general.LogHostCall.new(serviceId),
73
+ general.GasHostCall.new(serviceId),
74
+ general.Fetch.new(serviceId, externalities.fetchExternalities),
75
75
  ];
76
76
  return refineHandlers.concat(generalHandlers);
77
77
  }
78
78
  /** Prepare accumulation host call handlers */
79
79
  static prepareAccumulateHostCalls(serviceId, externalities, chainSpec) {
80
- const accumulateHandlers = ACCUMULATE_HOST_CALL_CLASSES.map((HandlerClass) => new HandlerClass(serviceId, externalities.partialState, chainSpec));
80
+ const accumulateHandlers = ACCUMULATE_HOST_CALL_CLASSES.map((HandlerClass) => HandlerClass.new(serviceId, externalities.partialState, chainSpec));
81
81
  /** https://graypaper.fluffylabs.dev/#/ab2cdbd/30d00130d001?v=0.7.2 */
82
82
  const generalHandlers = [
83
- new general.LogHostCall(serviceId),
84
- new general.GasHostCall(serviceId),
85
- new general.Read(serviceId, externalities.serviceExternalities),
86
- new general.Write(serviceId, externalities.serviceExternalities),
87
- new general.Fetch(serviceId, externalities.fetchExternalities),
88
- new general.Lookup(serviceId, externalities.serviceExternalities),
89
- new general.Info(serviceId, externalities.serviceExternalities),
83
+ general.LogHostCall.new(serviceId),
84
+ general.GasHostCall.new(serviceId),
85
+ general.Read.new(serviceId, externalities.serviceExternalities),
86
+ general.Write.new(serviceId, externalities.serviceExternalities),
87
+ general.Fetch.new(serviceId, externalities.fetchExternalities),
88
+ general.Lookup.new(serviceId, externalities.serviceExternalities),
89
+ general.Info.new(serviceId, externalities.serviceExternalities),
90
90
  ];
91
91
  return accumulateHandlers.concat(generalHandlers);
92
92
  }
93
+ /** Prepare is-authorized host call handlers */
94
+ static prepareIsAuthorizedHostCalls(serviceId, externalities) {
95
+ const generalHandlers = [
96
+ general.LogHostCall.new(serviceId),
97
+ general.GasHostCall.new(serviceId),
98
+ general.Fetch.new(serviceId, externalities.fetchExternalities),
99
+ ];
100
+ return generalHandlers;
101
+ }
93
102
  /** Prepare on transfer host call handlers */
94
103
  static prepareOnTransferHostCalls(serviceId, externalities) {
95
104
  const generalHandlers = [
96
- new general.LogHostCall(serviceId),
97
- new general.GasHostCall(serviceId),
98
- new general.Fetch(serviceId, externalities.fetchExternalities),
99
- new general.Read(serviceId, externalities.partialState),
100
- new general.Write(serviceId, externalities.partialState),
101
- new general.Lookup(serviceId, externalities.partialState),
102
- new general.Info(serviceId, externalities.partialState),
105
+ general.LogHostCall.new(serviceId),
106
+ general.GasHostCall.new(serviceId),
107
+ general.Fetch.new(serviceId, externalities.fetchExternalities),
108
+ general.Read.new(serviceId, externalities.partialState),
109
+ general.Write.new(serviceId, externalities.partialState),
110
+ general.Lookup.new(serviceId, externalities.partialState),
111
+ general.Info.new(serviceId, externalities.partialState),
103
112
  ];
104
113
  return generalHandlers;
105
114
  }
@@ -123,6 +132,12 @@ export class PvmExecutor {
123
132
  const instances = await PvmExecutor.prepareBackend(pvm);
124
133
  return new PvmExecutor(serviceCode, hostCallHandlers, entrypoint.REFINE, instances);
125
134
  }
135
+ /** A utility function that can be used to prepare is-authorized executor */
136
+ static async createIsAuthorizedExecutor(serviceId, serviceCode, externalities, pvm) {
137
+ const hostCallHandlers = PvmExecutor.prepareIsAuthorizedHostCalls(serviceId, externalities);
138
+ const instances = await PvmExecutor.prepareBackend(pvm);
139
+ return new PvmExecutor(serviceCode, hostCallHandlers, entrypoint.IS_AUTHORIZED, instances);
140
+ }
126
141
  /** A utility function that can be used to prepare accumulate executor */
127
142
  static async createAccumulateExecutor(serviceId, serviceCode, externalities, chainSpec, pvm) {
128
143
  const hostCallHandlers = PvmExecutor.prepareAccumulateHostCalls(serviceId, externalities, chainSpec);
@@ -31,7 +31,8 @@ export declare class FuzzTarget implements IpcHandler {
31
31
  readonly sender: IpcSender;
32
32
  readonly spec: ChainSpec;
33
33
  private sessionFeatures;
34
- constructor(msgHandler: FuzzMessageHandler, sender: IpcSender, spec: ChainSpec);
34
+ static new(msgHandler: FuzzMessageHandler, sender: IpcSender, spec: ChainSpec): FuzzTarget;
35
+ private constructor();
35
36
  onSocketMessage(msg: Uint8Array): Promise<void>;
36
37
  private processAndRespond;
37
38
  onClose({ error }: {
@@ -1 +1 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/fuzz-proto/v1/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,YAAY,EAEZ,KAAK,UAAU,EACf,KAAK,QAAQ,EAKb,KAAK,QAAQ,EACd,MAAM,YAAY,CAAC;AAIpB;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEhD;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEvD;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;IAE5E,gEAAgE;IAChE,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CAC5D;AAED,qBAAa,UAAW,YAAW,UAAU;aAIzB,UAAU,EAAE,kBAAkB;aAC9B,MAAM,EAAE,SAAS;aACjB,IAAI,EAAE,SAAS;IALjC,OAAO,CAAC,eAAe,CAAK;gBAGV,UAAU,EAAE,kBAAkB,EAC9B,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,SAAS;IAG3B,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAiBvC,iBAAiB;IA2H/B,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI;IAI3C,4DAA4D;IAC5D,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAGrC"}
1
+ {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/fuzz-proto/v1/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,YAAY,EAEZ,KAAK,UAAU,EACf,KAAK,QAAQ,EAKb,KAAK,QAAQ,EACd,MAAM,YAAY,CAAC;AAIpB;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEhD;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEvD;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;IAE5E,gEAAgE;IAChE,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CAC5D;AAED,qBAAa,UAAW,YAAW,UAAU;aAQzB,UAAU,EAAE,kBAAkB;aAC9B,MAAM,EAAE,SAAS;aACjB,IAAI,EAAE,SAAS;IATjC,OAAO,CAAC,eAAe,CAAK;IAE5B,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAI7E,OAAO;IAMD,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAiBvC,iBAAiB;IA2H/B,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI;IAI3C,4DAA4D;IAC5D,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAGrC"}
@@ -8,6 +8,9 @@ export class FuzzTarget {
8
8
  sender;
9
9
  spec;
10
10
  sessionFeatures = 0;
11
+ static new(msgHandler, sender, spec) {
12
+ return new FuzzTarget(msgHandler, sender, spec);
13
+ }
11
14
  constructor(msgHandler, sender, spec) {
12
15
  this.msgHandler = msgHandler;
13
16
  this.sender = sender;
@@ -70,7 +70,7 @@ describe("FuzzV1Target Handler", () => {
70
70
  value: responsePeerInfo,
71
71
  };
72
72
  mockMessageHandler.getPeerInfo.mock.mockImplementation(async () => responsePeerInfo);
73
- const fuzzTarget = new FuzzTarget(mockMessageHandler, mockSender, spec);
73
+ const fuzzTarget = FuzzTarget.new(mockMessageHandler, mockSender, spec);
74
74
  const testMessage = encode(incomingMessage);
75
75
  await fuzzTarget.onSocketMessage(testMessage);
76
76
  // Verify handshake completion and feature negotiation
@@ -116,7 +116,7 @@ describe("FuzzV1Target Handler", () => {
116
116
  value: expectedStateRoot,
117
117
  };
118
118
  mockMessageHandler.initialize.mock.mockImplementation(async () => expectedStateRoot);
119
- const fuzzTarget = new FuzzTarget(mockMessageHandler, mockSender, spec);
119
+ const fuzzTarget = FuzzTarget.new(mockMessageHandler, mockSender, spec);
120
120
  await completeHandshake(mockMessageHandler, mockSender, fuzzTarget);
121
121
  mockSender._sentData = []; // Clear handshake response
122
122
  const testMessage = encode(incomingMessage);
@@ -144,7 +144,7 @@ describe("FuzzV1Target Handler", () => {
144
144
  value: expectedStateRoot,
145
145
  };
146
146
  mockMessageHandler.importBlock.mock.mockImplementation(async () => Result.ok(expectedStateRoot));
147
- const fuzzTarget = new FuzzTarget(mockMessageHandler, mockSender, spec);
147
+ const fuzzTarget = FuzzTarget.new(mockMessageHandler, mockSender, spec);
148
148
  await completeHandshake(mockMessageHandler, mockSender, fuzzTarget);
149
149
  mockSender._sentData = []; // Clear handshake response
150
150
  const testMessage = encode(incomingMessage);
@@ -169,7 +169,7 @@ describe("FuzzV1Target Handler", () => {
169
169
  value: expectedError,
170
170
  };
171
171
  mockMessageHandler.importBlock.mock.mockImplementation(async () => Result.error(expectedError, () => "Test: ImportBlock error"));
172
- const fuzzTarget = new FuzzTarget(mockMessageHandler, mockSender, spec);
172
+ const fuzzTarget = FuzzTarget.new(mockMessageHandler, mockSender, spec);
173
173
  await completeHandshake(mockMessageHandler, mockSender, fuzzTarget);
174
174
  mockSender._sentData = []; // Clear handshake response
175
175
  const testMessage = encode(incomingMessage);
@@ -205,7 +205,7 @@ describe("FuzzV1Target Handler", () => {
205
205
  value: keyValues,
206
206
  };
207
207
  mockMessageHandler.getSerializedState.mock.mockImplementation(async () => keyValues);
208
- const fuzzTarget = new FuzzTarget(mockMessageHandler, mockSender, spec);
208
+ const fuzzTarget = FuzzTarget.new(mockMessageHandler, mockSender, spec);
209
209
  await completeHandshake(mockMessageHandler, mockSender, fuzzTarget);
210
210
  mockSender._sentData = []; // Clear handshake response
211
211
  const testMessage = encode(incomingMessage);
@@ -227,7 +227,7 @@ describe("FuzzV1Target Handler", () => {
227
227
  type: MessageType.StateRoot,
228
228
  value: stateRoot,
229
229
  };
230
- const fuzzTarget = new FuzzTarget(mockMessageHandler, mockSender, spec);
230
+ const fuzzTarget = FuzzTarget.new(mockMessageHandler, mockSender, spec);
231
231
  await completeHandshake(mockMessageHandler, mockSender, fuzzTarget);
232
232
  mockSender._sentData = []; // Clear handshake response
233
233
  const testMessage = encode(incomingMessage);
@@ -248,7 +248,7 @@ describe("FuzzV1Target Handler", () => {
248
248
  type: MessageType.State,
249
249
  value: keyValues,
250
250
  };
251
- const fuzzTarget = new FuzzTarget(mockMessageHandler, mockSender, spec);
251
+ const fuzzTarget = FuzzTarget.new(mockMessageHandler, mockSender, spec);
252
252
  await completeHandshake(mockMessageHandler, mockSender, fuzzTarget);
253
253
  mockSender._sentData = []; // Clear handshake response
254
254
  const testMessage = encode(incomingMessage);
@@ -264,7 +264,7 @@ describe("FuzzV1Target Handler", () => {
264
264
  type: MessageType.Error,
265
265
  value: error,
266
266
  };
267
- const fuzzTarget = new FuzzTarget(mockMessageHandler, mockSender, spec);
267
+ const fuzzTarget = FuzzTarget.new(mockMessageHandler, mockSender, spec);
268
268
  await completeHandshake(mockMessageHandler, mockSender, fuzzTarget);
269
269
  mockSender._sentData = []; // Clear handshake response
270
270
  const testMessage = encode(incomingMessage);
@@ -277,7 +277,7 @@ describe("FuzzV1Target Handler", () => {
277
277
  it("should handle decoding error gracefully", async () => {
278
278
  const mockMessageHandler = new MockV1MessageHandler();
279
279
  const mockSender = new MockSender();
280
- const fuzzTarget = new FuzzTarget(mockMessageHandler, mockSender, spec);
280
+ const fuzzTarget = FuzzTarget.new(mockMessageHandler, mockSender, spec);
281
281
  // Create malformed message with valid length prefix but invalid data
282
282
  const malformedMessage = new Uint8Array(8);
283
283
  const dataView = new DataView(malformedMessage.buffer);
@@ -300,7 +300,7 @@ describe("FuzzV1Target Handler", () => {
300
300
  return Decoder.decodeObject(messageCodec, data, spec);
301
301
  }
302
302
  async function completeHandshake(mockMessageHandler, mockSender, fuzzTarget) {
303
- const target = fuzzTarget ?? new FuzzTarget(mockMessageHandler, mockSender, spec);
303
+ const target = fuzzTarget ?? FuzzTarget.new(mockMessageHandler, mockSender, spec);
304
304
  const inputPeerInfo = PeerInfo.create({
305
305
  fuzzVersion: tryAsU8(1),
306
306
  features: tryAsU32(Features.Ancestry),
@@ -0,0 +1,4 @@
1
+ export * from "./is-authorized-fetch.js";
2
+ export * from "./refine.js";
3
+ export * from "./refine-fetch.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/in-core/externalities/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./is-authorized-fetch.js";
2
+ export * from "./refine.js";
3
+ export * from "./refine-fetch.js";
@@ -0,0 +1,20 @@
1
+ import type { BytesBlob } from "#@typeberry/bytes";
2
+ import type { ChainSpec } from "#@typeberry/config";
3
+ import { general } from "#@typeberry/jam-host-calls";
4
+ import type { U64 } from "#@typeberry/numbers";
5
+ import { type WorkPackageFetchData } from "#@typeberry/transition/externalities/fetch-externalities.js";
6
+ export declare class IsAuthorizedFetchExternalities implements general.IIsAuthorizedFetch {
7
+ private readonly chainSpec;
8
+ private readonly pkg;
9
+ readonly context = general.FetchContext.IsAuthorized;
10
+ constructor(chainSpec: ChainSpec, pkg: WorkPackageFetchData);
11
+ constants(): BytesBlob;
12
+ workPackage(): BytesBlob;
13
+ authConfiguration(): BytesBlob;
14
+ authToken(): BytesBlob;
15
+ refineContext(): BytesBlob;
16
+ allWorkItems(): BytesBlob;
17
+ oneWorkItem(workItem: U64): BytesBlob | null;
18
+ workItemPayload(workItem: U64): BytesBlob | null;
19
+ }
20
+ //# sourceMappingURL=is-authorized-fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-authorized-fetch.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/in-core/externalities/is-authorized-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,4DAA4D,CAAC;AAEpE,qBAAa,8BAA+B,YAAW,OAAO,CAAC,kBAAkB;IAI7E,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG;IAJtB,QAAQ,CAAC,OAAO,qCAAqC;gBAGlC,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,oBAAoB;IAG5C,SAAS,IAAI,SAAS;IAItB,WAAW,IAAI,SAAS;IAIxB,iBAAiB,IAAI,SAAS;IAI9B,SAAS,IAAI,SAAS;IAItB,aAAa,IAAI,SAAS;IAI1B,YAAY,IAAI,SAAS;IAIzB,WAAW,CAAC,QAAQ,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI;IAK5C,eAAe,CAAC,QAAQ,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI;CAQjD"}
@@ -0,0 +1,41 @@
1
+ import { general } from "#@typeberry/jam-host-calls";
2
+ import { getEncodedConstants, u64ToArrayIndex, } from "#@typeberry/transition/externalities/fetch-externalities.js";
3
+ export class IsAuthorizedFetchExternalities {
4
+ chainSpec;
5
+ pkg;
6
+ context = general.FetchContext.IsAuthorized;
7
+ constructor(chainSpec, pkg) {
8
+ this.chainSpec = chainSpec;
9
+ this.pkg = pkg;
10
+ }
11
+ constants() {
12
+ return getEncodedConstants(this.chainSpec);
13
+ }
14
+ workPackage() {
15
+ return this.pkg.packageView.encoded();
16
+ }
17
+ authConfiguration() {
18
+ return this.pkg.packageView.authConfiguration.view();
19
+ }
20
+ authToken() {
21
+ return this.pkg.packageView.authToken.view();
22
+ }
23
+ refineContext() {
24
+ return this.pkg.packageView.context.encoded();
25
+ }
26
+ allWorkItems() {
27
+ return this.pkg.workItemSummaries.encoded();
28
+ }
29
+ oneWorkItem(workItem) {
30
+ const idx = u64ToArrayIndex(workItem, this.pkg.workItemSummaries.length);
31
+ return idx === null ? null : (this.pkg.workItemSummaries.get(idx)?.encoded() ?? null);
32
+ }
33
+ workItemPayload(workItem) {
34
+ const items = this.pkg.packageView.items.view();
35
+ const idx = u64ToArrayIndex(workItem, items.length);
36
+ if (idx === null) {
37
+ return null;
38
+ }
39
+ return items.get(idx)?.view().payload.view() ?? null;
40
+ }
41
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=is-authorized-fetch.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-authorized-fetch.test.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/in-core/externalities/is-authorized-fetch.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,101 @@
1
+ import assert from "node:assert";
2
+ import { describe, it } from "node:test";
3
+ import { tryAsServiceGas, tryAsServiceId, tryAsTimeSlot } from "#@typeberry/block";
4
+ import { RefineContext } from "#@typeberry/block/refine-context.js";
5
+ import { WorkItem } from "#@typeberry/block/work-item.js";
6
+ import { tryAsWorkItemsCount, WorkPackage } from "#@typeberry/block/work-package.js";
7
+ import { Bytes, BytesBlob } from "#@typeberry/bytes";
8
+ import { Encoder } from "#@typeberry/codec";
9
+ import { asKnownSize, FixedSizeArray } from "#@typeberry/collections";
10
+ import { fullChainSpec, tinyChainSpec } from "#@typeberry/config";
11
+ import { HASH_SIZE } from "#@typeberry/hash";
12
+ import { tryAsU16, tryAsU64 } from "#@typeberry/numbers";
13
+ import { buildWorkPackageFetchData } from "#@typeberry/transition/externalities/fetch-externalities.js";
14
+ import { IsAuthorizedFetchExternalities } from "./is-authorized-fetch.js";
15
+ function fetchDataFor(pkg, chainSpec = tinyChainSpec) {
16
+ return buildWorkPackageFetchData(chainSpec, pkg);
17
+ }
18
+ function buildWorkItem(overrides = {}) {
19
+ return WorkItem.create({
20
+ service: tryAsServiceId(overrides.service ?? 1),
21
+ codeHash: Bytes.fill(HASH_SIZE, 7).asOpaque(),
22
+ payload: BytesBlob.blobFrom(new Uint8Array(overrides.payloadLen ?? 3).fill(0xab)),
23
+ refineGasLimit: tryAsServiceGas(1_000_000),
24
+ accumulateGasLimit: tryAsServiceGas(2_000_000),
25
+ importSegments: asKnownSize([]),
26
+ extrinsic: [],
27
+ exportCount: tryAsU16(0),
28
+ });
29
+ }
30
+ function buildPackage(items = [buildWorkItem({})]) {
31
+ return WorkPackage.create({
32
+ authToken: BytesBlob.blobFrom(new Uint8Array([1, 2, 3])),
33
+ authCodeHost: tryAsServiceId(42),
34
+ authCodeHash: Bytes.fill(HASH_SIZE, 9).asOpaque(),
35
+ authConfiguration: BytesBlob.blobFrom(new Uint8Array([4, 5, 6, 7])),
36
+ context: RefineContext.create({
37
+ anchor: Bytes.fill(HASH_SIZE, 1).asOpaque(),
38
+ stateRoot: Bytes.fill(HASH_SIZE, 2).asOpaque(),
39
+ beefyRoot: Bytes.fill(HASH_SIZE, 3).asOpaque(),
40
+ lookupAnchor: Bytes.fill(HASH_SIZE, 4).asOpaque(),
41
+ lookupAnchorSlot: tryAsTimeSlot(16),
42
+ prerequisites: [],
43
+ }),
44
+ items: FixedSizeArray.new(items, tryAsWorkItemsCount(items.length)),
45
+ });
46
+ }
47
+ describe("IsAuthorizedFetchExternalities", () => {
48
+ it("returns different constants for different chain specs", () => {
49
+ const tinyExt = new IsAuthorizedFetchExternalities(tinyChainSpec, fetchDataFor(buildPackage(), tinyChainSpec));
50
+ const fullExt = new IsAuthorizedFetchExternalities(fullChainSpec, fetchDataFor(buildPackage(), fullChainSpec));
51
+ assert.notStrictEqual(tinyExt.constants().length, 0);
52
+ assert.notDeepStrictEqual(tinyExt.constants(), fullExt.constants());
53
+ });
54
+ it("returns encoded work package", () => {
55
+ const pkg = buildPackage();
56
+ const ext = new IsAuthorizedFetchExternalities(tinyChainSpec, fetchDataFor(pkg));
57
+ const expected = Encoder.encodeObject(WorkPackage.Codec, pkg, tinyChainSpec);
58
+ assert.deepStrictEqual(ext.workPackage().raw, expected.raw);
59
+ });
60
+ it("returns auth configuration and auth token from the package", () => {
61
+ const ext = new IsAuthorizedFetchExternalities(tinyChainSpec, fetchDataFor(buildPackage()));
62
+ assert.deepStrictEqual(ext.authConfiguration().raw, new Uint8Array([4, 5, 6, 7]));
63
+ assert.deepStrictEqual(ext.authToken().raw, new Uint8Array([1, 2, 3]));
64
+ });
65
+ it("returns encoded refine context", () => {
66
+ const pkg = buildPackage();
67
+ const ext = new IsAuthorizedFetchExternalities(tinyChainSpec, fetchDataFor(pkg));
68
+ const expected = Encoder.encodeObject(RefineContext.Codec, pkg.context);
69
+ assert.deepStrictEqual(ext.refineContext().raw, expected.raw);
70
+ });
71
+ it("returns concatenated work item summaries with 62 bytes per item", () => {
72
+ const items = [buildWorkItem({ service: 1 }), buildWorkItem({ service: 2, payloadLen: 5 })];
73
+ const ext = new IsAuthorizedFetchExternalities(tinyChainSpec, fetchDataFor(buildPackage(items)));
74
+ assert.strictEqual(ext.allWorkItems().length, 62 * items.length);
75
+ });
76
+ it("returns a single work item summary (kind 12)", () => {
77
+ const items = [buildWorkItem({ service: 1 }), buildWorkItem({ service: 2, payloadLen: 10 })];
78
+ const ext = new IsAuthorizedFetchExternalities(tinyChainSpec, fetchDataFor(buildPackage(items)));
79
+ const one = ext.oneWorkItem(tryAsU64(1));
80
+ assert.ok(one !== null);
81
+ assert.strictEqual(one.length, 62);
82
+ const serviceId = new DataView(one.raw.buffer, one.raw.byteOffset, 4).getUint32(0, true);
83
+ assert.strictEqual(serviceId, 2);
84
+ });
85
+ it("returns null for one work item when index is out of range", () => {
86
+ const ext = new IsAuthorizedFetchExternalities(tinyChainSpec, fetchDataFor(buildPackage()));
87
+ assert.strictEqual(ext.oneWorkItem(tryAsU64(99)), null);
88
+ });
89
+ it("returns the raw payload of a work item (kind 13)", () => {
90
+ const items = [buildWorkItem({ service: 1, payloadLen: 2 }), buildWorkItem({ service: 2, payloadLen: 5 })];
91
+ const ext = new IsAuthorizedFetchExternalities(tinyChainSpec, fetchDataFor(buildPackage(items)));
92
+ const payload = ext.workItemPayload(tryAsU64(1));
93
+ assert.ok(payload !== null);
94
+ assert.strictEqual(payload.length, 5);
95
+ assert.ok(payload.raw.every((x) => x === 0xab));
96
+ });
97
+ it("returns null for payload when index is out of range", () => {
98
+ const ext = new IsAuthorizedFetchExternalities(tinyChainSpec, fetchDataFor(buildPackage()));
99
+ assert.strictEqual(ext.workItemPayload(tryAsU64(99)), null);
100
+ });
101
+ });
@@ -0,0 +1,51 @@
1
+ import type { EntropyHash, Segment, SegmentIndex } from "#@typeberry/block";
2
+ import type { WorkItemExtrinsic } from "#@typeberry/block/work-item.js";
3
+ import { type BytesBlob } from "#@typeberry/bytes";
4
+ import type { KnownSizeArray } from "#@typeberry/collections";
5
+ import type { ChainSpec } from "#@typeberry/config";
6
+ import { general } from "#@typeberry/jam-host-calls";
7
+ import type { U64 } from "#@typeberry/numbers";
8
+ import { type WorkPackageFetchData } from "#@typeberry/transition/externalities/fetch-externalities.js";
9
+ /** A single decoded import segment passed into refine. */
10
+ export type ImportedSegment = {
11
+ index: SegmentIndex;
12
+ data: Segment;
13
+ };
14
+ /** An array whose length matches the work-package's work-item count. */
15
+ export type PerWorkItem<T> = KnownSizeArray<T, "for each work item">;
16
+ export type RefineFetchData = {
17
+ /** Pre-computed per-work-package encodings. */
18
+ packageData: WorkPackageFetchData;
19
+ /** Index of the work item currently being refined (`i` in GP). */
20
+ currentWorkItemIndex: number;
21
+ /** Imports per work item (`ī`). */
22
+ imports: PerWorkItem<ImportedSegment[]>;
23
+ /** Extrinsics per work item (`x̄`). */
24
+ extrinsics: PerWorkItem<WorkItemExtrinsic[]>;
25
+ /** Authorizer trace produced by Is-Authorized (`r`). */
26
+ authorizerTrace: BytesBlob;
27
+ };
28
+ export declare class RefineFetchExternalities implements general.IRefineFetch {
29
+ private readonly chainSpec;
30
+ private readonly data;
31
+ readonly context = general.FetchContext.Refine;
32
+ constructor(chainSpec: ChainSpec, data: RefineFetchData);
33
+ constants(): BytesBlob;
34
+ /**
35
+ * Refine entropy is `H₀` (zero hash) per GP §B.3.
36
+ *
37
+ * https://graypaper.fluffylabs.dev/#/ab2cdbd/2fe0012fe201?v=0.7.2
38
+ */
39
+ entropy(): EntropyHash;
40
+ authorizerTrace(): BytesBlob;
41
+ workItemExtrinsic(workItem: U64 | null, index: U64): BytesBlob | null;
42
+ workItemImport(workItem: U64 | null, index: U64): BytesBlob | null;
43
+ workPackage(): BytesBlob;
44
+ authConfiguration(): BytesBlob;
45
+ authToken(): BytesBlob;
46
+ refineContext(): BytesBlob;
47
+ allWorkItems(): BytesBlob;
48
+ oneWorkItem(workItem: U64): BytesBlob | null;
49
+ workItemPayload(workItem: U64): BytesBlob | null;
50
+ }
51
+ //# sourceMappingURL=refine-fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refine-fetch.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/in-core/externalities/refine-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,4DAA4D,CAAC;AAEpE,0DAA0D;AAC1D,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,wEAAwE;AACxE,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;AAErE,MAAM,MAAM,eAAe,GAAG;IAC5B,+CAA+C;IAC/C,WAAW,EAAE,oBAAoB,CAAC;IAClC,kEAAkE;IAClE,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mCAAmC;IACnC,OAAO,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;IACxC,uCAAuC;IACvC,UAAU,EAAE,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC7C,wDAAwD;IACxD,eAAe,EAAE,SAAS,CAAC;CAC5B,CAAC;AAEF,qBAAa,wBAAyB,YAAW,OAAO,CAAC,YAAY;IAIjE,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJvB,QAAQ,CAAC,OAAO,+BAA+B;gBAG5B,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,eAAe;IAGxC,SAAS,IAAI,SAAS;IAItB;;;;OAIG;IACH,OAAO,IAAI,WAAW;IAItB,eAAe,IAAI,SAAS;IAI5B,iBAAiB,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI;IAcrE,cAAc,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI;IAelE,WAAW,IAAI,SAAS;IAIxB,iBAAiB,IAAI,SAAS;IAI9B,SAAS,IAAI,SAAS;IAItB,aAAa,IAAI,SAAS;IAI1B,YAAY,IAAI,SAAS;IAIzB,WAAW,CAAC,QAAQ,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI;IAM5C,eAAe,CAAC,QAAQ,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI;CAQjD"}