@typeberry/lib 0.5.10-ec38e0b → 0.5.11-019e542

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 (482) hide show
  1. package/README.md +2 -2
  2. package/bin/lib/examples/pvm-usage.test.js +2 -2
  3. package/package.json +2 -2
  4. package/packages/core/codec/descriptor.js +1 -1
  5. package/packages/core/codec/descriptors.js +7 -4
  6. package/packages/core/codec/index.test.js +1 -1
  7. package/packages/core/codec/skip.d.ts +2 -1
  8. package/packages/core/codec/skip.d.ts.map +1 -1
  9. package/packages/core/codec/skip.js +3 -0
  10. package/packages/core/codec/view.js +2 -2
  11. package/packages/core/collections/multi-map.d.ts +2 -1
  12. package/packages/core/collections/multi-map.d.ts.map +1 -1
  13. package/packages/core/collections/multi-map.js +3 -0
  14. package/packages/core/collections/multi-map.test.js +2 -2
  15. package/packages/core/concurrent/parent.js +4 -1
  16. package/packages/core/crypto/ed25519.d.ts +2 -5
  17. package/packages/core/crypto/ed25519.d.ts.map +1 -1
  18. package/packages/core/crypto/ed25519.js +4 -1
  19. package/packages/core/hash/hash.d.ts +4 -2
  20. package/packages/core/hash/hash.d.ts.map +1 -1
  21. package/packages/core/hash/hash.js +6 -1
  22. package/packages/core/networking/quic-network.d.ts +3 -2
  23. package/packages/core/networking/quic-network.d.ts.map +1 -1
  24. package/packages/core/networking/quic-network.js +3 -0
  25. package/packages/core/networking/quic-peer.d.ts +2 -1
  26. package/packages/core/networking/quic-peer.d.ts.map +1 -1
  27. package/packages/core/networking/quic-peer.js +5 -2
  28. package/packages/core/networking/quic-stream.d.ts +2 -1
  29. package/packages/core/networking/quic-stream.d.ts.map +1 -1
  30. package/packages/core/networking/quic-stream.js +3 -0
  31. package/packages/core/networking/setup.js +2 -2
  32. package/packages/core/pvm-host-calls/bin.js +2 -2
  33. package/packages/core/pvm-host-calls/ecalli-trace-logger.d.ts +5 -0
  34. package/packages/core/pvm-host-calls/ecalli-trace-logger.d.ts.map +1 -1
  35. package/packages/core/pvm-host-calls/ecalli-trace-logger.js +8 -1
  36. package/packages/core/pvm-host-calls/ecalli-trace-logger.test.js +1 -1
  37. package/packages/core/pvm-host-calls/host-call-memory.d.ts +2 -1
  38. package/packages/core/pvm-host-calls/host-call-memory.d.ts.map +1 -1
  39. package/packages/core/pvm-host-calls/host-call-memory.js +3 -0
  40. package/packages/core/pvm-host-calls/host-call-memory.test.js +1 -1
  41. package/packages/core/pvm-host-calls/host-call-registers.d.ts +5 -1
  42. package/packages/core/pvm-host-calls/host-call-registers.d.ts.map +1 -1
  43. package/packages/core/pvm-host-calls/host-call-registers.js +11 -1
  44. package/packages/core/pvm-host-calls/host-call-registers.test.js +2 -2
  45. package/packages/core/pvm-host-calls/host-calls-executor.d.ts +2 -1
  46. package/packages/core/pvm-host-calls/host-calls-executor.d.ts.map +1 -1
  47. package/packages/core/pvm-host-calls/host-calls-executor.js +5 -2
  48. package/packages/core/pvm-host-calls/host-calls.d.ts +4 -2
  49. package/packages/core/pvm-host-calls/host-calls.d.ts.map +1 -1
  50. package/packages/core/pvm-host-calls/host-calls.js +9 -4
  51. package/packages/core/pvm-host-calls/pvm-instance-manager.js +1 -1
  52. package/packages/core/pvm-interpreter/args-decoder/args-decoder.js +1 -1
  53. package/packages/core/pvm-interpreter/args-decoder/args-decoder.test.js +3 -3
  54. package/packages/core/pvm-interpreter/args-decoder/args-decoding-results.js +11 -11
  55. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts +2 -1
  56. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts.map +1 -1
  57. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.js +3 -0
  58. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.test.js +2 -2
  59. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts +2 -1
  60. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts.map +1 -1
  61. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.js +3 -0
  62. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.test.js +26 -26
  63. package/packages/core/pvm-interpreter/basic-blocks/basic-blocks.test.js +8 -8
  64. package/packages/core/pvm-interpreter/bin.js +1 -1
  65. package/packages/core/pvm-interpreter/debugger-adapter.d.ts +2 -1
  66. package/packages/core/pvm-interpreter/debugger-adapter.d.ts.map +1 -1
  67. package/packages/core/pvm-interpreter/debugger-adapter.js +6 -3
  68. package/packages/core/pvm-interpreter/gas.js +4 -1
  69. package/packages/core/pvm-interpreter/interpreter.d.ts +2 -1
  70. package/packages/core/pvm-interpreter/interpreter.d.ts.map +1 -1
  71. package/packages/core/pvm-interpreter/interpreter.js +19 -16
  72. package/packages/core/pvm-interpreter/memory/memory-builder.js +2 -2
  73. package/packages/core/pvm-interpreter/memory/memory-builder.test.js +7 -7
  74. package/packages/core/pvm-interpreter/memory/memory.d.ts +2 -1
  75. package/packages/core/pvm-interpreter/memory/memory.d.ts.map +1 -1
  76. package/packages/core/pvm-interpreter/memory/memory.js +4 -1
  77. package/packages/core/pvm-interpreter/memory/memory.test.js +31 -31
  78. package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts +2 -1
  79. package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts.map +1 -1
  80. package/packages/core/pvm-interpreter/memory/pages/readable-page.js +3 -0
  81. package/packages/core/pvm-interpreter/memory/pages/readable-page.test.js +3 -3
  82. package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts +2 -1
  83. package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts.map +1 -1
  84. package/packages/core/pvm-interpreter/memory/pages/writeable-page.js +3 -0
  85. package/packages/core/pvm-interpreter/memory/pages/writeable-page.test.js +4 -4
  86. package/packages/core/pvm-interpreter/ops/bit-ops.d.ts +2 -1
  87. package/packages/core/pvm-interpreter/ops/bit-ops.d.ts.map +1 -1
  88. package/packages/core/pvm-interpreter/ops/bit-ops.js +3 -0
  89. package/packages/core/pvm-interpreter/ops/bit-ops.test.js +3 -3
  90. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts +2 -1
  91. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts.map +1 -1
  92. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.js +3 -0
  93. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.test.js +5 -5
  94. package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts +2 -1
  95. package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts.map +1 -1
  96. package/packages/core/pvm-interpreter/ops/boolean-ops.js +3 -0
  97. package/packages/core/pvm-interpreter/ops/boolean-ops.test.js +3 -3
  98. package/packages/core/pvm-interpreter/ops/branch-ops.d.ts +2 -1
  99. package/packages/core/pvm-interpreter/ops/branch-ops.d.ts.map +1 -1
  100. package/packages/core/pvm-interpreter/ops/branch-ops.js +3 -0
  101. package/packages/core/pvm-interpreter/ops/branch-ops.test.js +4 -4
  102. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts +2 -1
  103. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts.map +1 -1
  104. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.js +3 -0
  105. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.test.js +5 -5
  106. package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts +2 -1
  107. package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts.map +1 -1
  108. package/packages/core/pvm-interpreter/ops/host-call-ops.js +3 -0
  109. package/packages/core/pvm-interpreter/ops/host-call-ops.test.js +2 -2
  110. package/packages/core/pvm-interpreter/ops/load-ops.d.ts +2 -1
  111. package/packages/core/pvm-interpreter/ops/load-ops.d.ts.map +1 -1
  112. package/packages/core/pvm-interpreter/ops/load-ops.js +3 -0
  113. package/packages/core/pvm-interpreter/ops/load-ops.test.js +10 -10
  114. package/packages/core/pvm-interpreter/ops/math-ops.d.ts +2 -1
  115. package/packages/core/pvm-interpreter/ops/math-ops.d.ts.map +1 -1
  116. package/packages/core/pvm-interpreter/ops/math-ops.js +3 -0
  117. package/packages/core/pvm-interpreter/ops/math-ops.test.js +3 -3
  118. package/packages/core/pvm-interpreter/ops/memory-ops.d.ts +2 -1
  119. package/packages/core/pvm-interpreter/ops/memory-ops.d.ts.map +1 -1
  120. package/packages/core/pvm-interpreter/ops/memory-ops.js +3 -0
  121. package/packages/core/pvm-interpreter/ops/memory-ops.test.js +3 -3
  122. package/packages/core/pvm-interpreter/ops/move-ops.d.ts +2 -1
  123. package/packages/core/pvm-interpreter/ops/move-ops.d.ts.map +1 -1
  124. package/packages/core/pvm-interpreter/ops/move-ops.js +3 -0
  125. package/packages/core/pvm-interpreter/ops/move-ops.test.js +3 -3
  126. package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts +2 -1
  127. package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts.map +1 -1
  128. package/packages/core/pvm-interpreter/ops/no-args-ops.js +3 -0
  129. package/packages/core/pvm-interpreter/ops/no-args-ops.test.js +2 -2
  130. package/packages/core/pvm-interpreter/ops/shift-ops.d.ts +2 -1
  131. package/packages/core/pvm-interpreter/ops/shift-ops.d.ts.map +1 -1
  132. package/packages/core/pvm-interpreter/ops/shift-ops.js +3 -0
  133. package/packages/core/pvm-interpreter/ops/shift-ops.test.js +3 -3
  134. package/packages/core/pvm-interpreter/ops/store-ops.d.ts +2 -1
  135. package/packages/core/pvm-interpreter/ops/store-ops.d.ts.map +1 -1
  136. package/packages/core/pvm-interpreter/ops/store-ops.js +3 -0
  137. package/packages/core/pvm-interpreter/ops/store-ops.test.js +7 -7
  138. package/packages/core/pvm-interpreter/ops-dispatchers/no-args-dispatcher.test.js +1 -1
  139. package/packages/core/pvm-interpreter/ops-dispatchers/one-imm-dispatcher.test.js +4 -4
  140. package/packages/core/pvm-interpreter/ops-dispatchers/one-offset-dispatcher.test.js +2 -2
  141. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-ext-imm-dispatcher.test.js +4 -4
  142. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-dispatcher.test.js +7 -7
  143. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-one-offset-dispatcher.test.js +10 -10
  144. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-two-imms-dispatcher.test.js +5 -5
  145. package/packages/core/pvm-interpreter/ops-dispatchers/three-regs-dispatcher.test.js +7 -7
  146. package/packages/core/pvm-interpreter/ops-dispatchers/two-imms-dispatcher.test.js +5 -5
  147. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-dispatcher.test.js +6 -6
  148. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-imm-dispatcher.test.js +11 -11
  149. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-offset-dispatcher.test.js +2 -2
  150. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-two-imms-dispatcher.test.js +14 -14
  151. package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts +5 -2
  152. package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts.map +1 -1
  153. package/packages/core/pvm-interpreter/program-decoder/jump-table.js +9 -4
  154. package/packages/core/pvm-interpreter/program-decoder/jump-table.test.js +6 -6
  155. package/packages/core/pvm-interpreter/program-decoder/mask.d.ts +2 -1
  156. package/packages/core/pvm-interpreter/program-decoder/mask.d.ts.map +1 -1
  157. package/packages/core/pvm-interpreter/program-decoder/mask.js +3 -0
  158. package/packages/core/pvm-interpreter/program-decoder/mask.test.js +10 -10
  159. package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts +2 -1
  160. package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts.map +1 -1
  161. package/packages/core/pvm-interpreter/program-decoder/program-decoder.js +6 -3
  162. package/packages/core/pvm-interpreter/program-decoder/program-decoder.test.js +5 -5
  163. package/packages/core/pvm-interpreter/program.js +3 -3
  164. package/packages/core/pvm-interpreter/registers.d.ts +5 -2
  165. package/packages/core/pvm-interpreter/registers.d.ts.map +1 -1
  166. package/packages/core/pvm-interpreter/registers.js +10 -6
  167. package/packages/core/pvm-interpreter/registers.test.js +10 -10
  168. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts +6 -3
  169. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts.map +1 -1
  170. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.js +11 -2
  171. package/packages/core/pvm-interpreter-ananas/index.d.ts +6 -3
  172. package/packages/core/pvm-interpreter-ananas/index.d.ts.map +1 -1
  173. package/packages/core/pvm-interpreter-ananas/index.js +12 -3
  174. package/packages/core/trie/nodes.d.ts +7 -2
  175. package/packages/core/trie/nodes.d.ts.map +1 -1
  176. package/packages/core/trie/nodes.js +20 -11
  177. package/packages/core/trie/nodesDb.d.ts +3 -1
  178. package/packages/core/trie/nodesDb.d.ts.map +1 -1
  179. package/packages/core/trie/nodesDb.js +6 -0
  180. package/packages/core/trie/trie.js +2 -2
  181. package/packages/extensions/ipc/index.js +5 -2
  182. package/packages/extensions/ipc/jamnp/handler.d.ts +4 -2
  183. package/packages/extensions/ipc/jamnp/handler.d.ts.map +1 -1
  184. package/packages/extensions/ipc/jamnp/handler.js +9 -3
  185. package/packages/extensions/ipc/jamnp/server.js +3 -3
  186. package/packages/extensions/ipc/server.d.ts +2 -1
  187. package/packages/extensions/ipc/server.d.ts.map +1 -1
  188. package/packages/extensions/ipc/server.js +4 -1
  189. package/packages/jam/block/header.js +1 -1
  190. package/packages/jam/config/chain-spec.d.ts +2 -1
  191. package/packages/jam/config/chain-spec.d.ts.map +1 -1
  192. package/packages/jam/config/chain-spec.js +5 -2
  193. package/packages/jam/config/network.d.ts +2 -7
  194. package/packages/jam/config/network.d.ts.map +1 -1
  195. package/packages/jam/config/network.js +3 -0
  196. package/packages/jam/config-node/jip-chain-spec.js +1 -1
  197. package/packages/jam/database/blocks.test.js +1 -1
  198. package/packages/jam/database/states.d.ts +2 -1
  199. package/packages/jam/database/states.d.ts.map +1 -1
  200. package/packages/jam/database/states.js +3 -0
  201. package/packages/jam/database/states.test.js +1 -1
  202. package/packages/jam/database-lmdb/blocks.d.ts +2 -1
  203. package/packages/jam/database-lmdb/blocks.d.ts.map +1 -1
  204. package/packages/jam/database-lmdb/blocks.js +3 -0
  205. package/packages/jam/database-lmdb/root.d.ts +2 -1
  206. package/packages/jam/database-lmdb/root.d.ts.map +1 -1
  207. package/packages/jam/database-lmdb/root.js +3 -0
  208. package/packages/jam/database-lmdb/states.d.ts +2 -1
  209. package/packages/jam/database-lmdb/states.d.ts.map +1 -1
  210. package/packages/jam/database-lmdb/states.js +3 -0
  211. package/packages/jam/database-lmdb/states.test.js +9 -9
  212. package/packages/jam/executor/index.d.ts +1 -1
  213. package/packages/jam/executor/index.d.ts.map +1 -1
  214. package/packages/jam/executor/index.js +1 -1
  215. package/packages/jam/executor/pvm-executor.js +24 -24
  216. package/packages/jam/fuzz-proto/v1/handler.d.ts +2 -1
  217. package/packages/jam/fuzz-proto/v1/handler.d.ts.map +1 -1
  218. package/packages/jam/fuzz-proto/v1/handler.js +3 -0
  219. package/packages/jam/fuzz-proto/v1/handler.test.js +10 -10
  220. package/packages/jam/in-core/externalities/index.d.ts +4 -0
  221. package/packages/jam/in-core/externalities/index.d.ts.map +1 -0
  222. package/packages/jam/in-core/externalities/index.js +3 -0
  223. package/packages/jam/{transition/externalities/is-authorized-fetch-externalities.d.ts → in-core/externalities/is-authorized-fetch.d.ts} +7 -9
  224. package/packages/jam/in-core/externalities/is-authorized-fetch.d.ts.map +1 -0
  225. package/packages/jam/in-core/externalities/is-authorized-fetch.js +41 -0
  226. package/packages/jam/in-core/externalities/is-authorized-fetch.test.d.ts +2 -0
  227. package/packages/jam/in-core/externalities/is-authorized-fetch.test.d.ts.map +1 -0
  228. package/packages/jam/in-core/externalities/is-authorized-fetch.test.js +101 -0
  229. package/packages/jam/in-core/externalities/refine-fetch.d.ts +51 -0
  230. package/packages/jam/in-core/externalities/refine-fetch.d.ts.map +1 -0
  231. package/packages/jam/in-core/externalities/refine-fetch.js +80 -0
  232. package/packages/jam/in-core/externalities/refine-fetch.test.d.ts +2 -0
  233. package/packages/jam/in-core/externalities/refine-fetch.test.d.ts.map +1 -0
  234. package/packages/jam/in-core/externalities/refine-fetch.test.js +219 -0
  235. package/packages/jam/in-core/externalities/refine.d.ts +3 -3
  236. package/packages/jam/in-core/externalities/refine.d.ts.map +1 -1
  237. package/packages/jam/in-core/externalities/refine.js +33 -5
  238. package/packages/jam/in-core/externalities/refine.test.js +66 -1
  239. package/packages/jam/in-core/in-core.d.ts +4 -3
  240. package/packages/jam/in-core/in-core.d.ts.map +1 -1
  241. package/packages/jam/in-core/in-core.js +9 -4
  242. package/packages/jam/in-core/in-core.test.js +6 -6
  243. package/packages/jam/in-core/is-authorized.d.ts +3 -2
  244. package/packages/jam/in-core/is-authorized.d.ts.map +1 -1
  245. package/packages/jam/in-core/is-authorized.js +7 -6
  246. package/packages/jam/in-core/is-authorized.test.js +51 -9
  247. package/packages/jam/in-core/refine.d.ts +5 -8
  248. package/packages/jam/in-core/refine.d.ts.map +1 -1
  249. package/packages/jam/in-core/refine.js +12 -6
  250. package/packages/jam/jam-host-calls/accumulate/assign.d.ts +2 -1
  251. package/packages/jam/jam-host-calls/accumulate/assign.d.ts.map +1 -1
  252. package/packages/jam/jam-host-calls/accumulate/assign.js +3 -0
  253. package/packages/jam/jam-host-calls/accumulate/assign.test.js +8 -9
  254. package/packages/jam/jam-host-calls/accumulate/bless.d.ts +2 -1
  255. package/packages/jam/jam-host-calls/accumulate/bless.d.ts.map +1 -1
  256. package/packages/jam/jam-host-calls/accumulate/bless.js +3 -0
  257. package/packages/jam/jam-host-calls/accumulate/bless.test.js +11 -12
  258. package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts +2 -1
  259. package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts.map +1 -1
  260. package/packages/jam/jam-host-calls/accumulate/checkpoint.js +4 -1
  261. package/packages/jam/jam-host-calls/accumulate/checkpoint.test.js +2 -3
  262. package/packages/jam/jam-host-calls/accumulate/designate.d.ts +2 -1
  263. package/packages/jam/jam-host-calls/accumulate/designate.d.ts.map +1 -1
  264. package/packages/jam/jam-host-calls/accumulate/designate.js +3 -0
  265. package/packages/jam/jam-host-calls/accumulate/designate.test.js +5 -6
  266. package/packages/jam/jam-host-calls/accumulate/eject.d.ts +2 -1
  267. package/packages/jam/jam-host-calls/accumulate/eject.d.ts.map +1 -1
  268. package/packages/jam/jam-host-calls/accumulate/eject.js +3 -0
  269. package/packages/jam/jam-host-calls/accumulate/eject.test.js +8 -9
  270. package/packages/jam/jam-host-calls/accumulate/forget.d.ts +2 -1
  271. package/packages/jam/jam-host-calls/accumulate/forget.d.ts.map +1 -1
  272. package/packages/jam/jam-host-calls/accumulate/forget.js +3 -0
  273. package/packages/jam/jam-host-calls/accumulate/forget.test.js +5 -6
  274. package/packages/jam/jam-host-calls/accumulate/new.d.ts +2 -1
  275. package/packages/jam/jam-host-calls/accumulate/new.d.ts.map +1 -1
  276. package/packages/jam/jam-host-calls/accumulate/new.js +3 -0
  277. package/packages/jam/jam-host-calls/accumulate/new.test.js +9 -10
  278. package/packages/jam/jam-host-calls/accumulate/provide.d.ts +2 -1
  279. package/packages/jam/jam-host-calls/accumulate/provide.d.ts.map +1 -1
  280. package/packages/jam/jam-host-calls/accumulate/provide.js +3 -0
  281. package/packages/jam/jam-host-calls/accumulate/provide.test.js +8 -9
  282. package/packages/jam/jam-host-calls/accumulate/query.d.ts +2 -1
  283. package/packages/jam/jam-host-calls/accumulate/query.d.ts.map +1 -1
  284. package/packages/jam/jam-host-calls/accumulate/query.js +3 -0
  285. package/packages/jam/jam-host-calls/accumulate/query.test.js +8 -9
  286. package/packages/jam/jam-host-calls/accumulate/solicit.d.ts +2 -1
  287. package/packages/jam/jam-host-calls/accumulate/solicit.d.ts.map +1 -1
  288. package/packages/jam/jam-host-calls/accumulate/solicit.js +3 -0
  289. package/packages/jam/jam-host-calls/accumulate/solicit.test.js +7 -8
  290. package/packages/jam/jam-host-calls/accumulate/transfer.d.ts +2 -1
  291. package/packages/jam/jam-host-calls/accumulate/transfer.d.ts.map +1 -1
  292. package/packages/jam/jam-host-calls/accumulate/transfer.js +3 -0
  293. package/packages/jam/jam-host-calls/accumulate/transfer.test.js +9 -10
  294. package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts +2 -1
  295. package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts.map +1 -1
  296. package/packages/jam/jam-host-calls/accumulate/upgrade.js +3 -0
  297. package/packages/jam/jam-host-calls/accumulate/upgrade.test.js +4 -5
  298. package/packages/jam/jam-host-calls/accumulate/yield.d.ts +2 -1
  299. package/packages/jam/jam-host-calls/accumulate/yield.d.ts.map +1 -1
  300. package/packages/jam/jam-host-calls/accumulate/yield.js +3 -0
  301. package/packages/jam/jam-host-calls/accumulate/yield.test.js +4 -5
  302. package/packages/jam/jam-host-calls/externalities/refine-externalities.test.js +9 -9
  303. package/packages/jam/jam-host-calls/externalities/state-update.d.ts +2 -3
  304. package/packages/jam/jam-host-calls/externalities/state-update.d.ts.map +1 -1
  305. package/packages/jam/jam-host-calls/externalities/state-update.js +5 -2
  306. package/packages/jam/jam-host-calls/externalities/test-accounts.js +2 -2
  307. package/packages/jam/jam-host-calls/general/fetch.d.ts +2 -1
  308. package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
  309. package/packages/jam/jam-host-calls/general/fetch.js +3 -0
  310. package/packages/jam/jam-host-calls/general/fetch.test.js +27 -28
  311. package/packages/jam/jam-host-calls/general/gas.d.ts +2 -1
  312. package/packages/jam/jam-host-calls/general/gas.d.ts.map +1 -1
  313. package/packages/jam/jam-host-calls/general/gas.js +3 -0
  314. package/packages/jam/jam-host-calls/general/gas.test.js +4 -5
  315. package/packages/jam/jam-host-calls/general/info.d.ts +2 -1
  316. package/packages/jam/jam-host-calls/general/info.d.ts.map +1 -1
  317. package/packages/jam/jam-host-calls/general/info.js +3 -0
  318. package/packages/jam/jam-host-calls/general/info.test.js +6 -7
  319. package/packages/jam/jam-host-calls/general/log.d.ts +2 -1
  320. package/packages/jam/jam-host-calls/general/log.d.ts.map +1 -1
  321. package/packages/jam/jam-host-calls/general/log.js +3 -0
  322. package/packages/jam/jam-host-calls/general/lookup.d.ts +2 -1
  323. package/packages/jam/jam-host-calls/general/lookup.d.ts.map +1 -1
  324. package/packages/jam/jam-host-calls/general/lookup.js +3 -0
  325. package/packages/jam/jam-host-calls/general/lookup.test.js +8 -9
  326. package/packages/jam/jam-host-calls/general/read.d.ts +2 -1
  327. package/packages/jam/jam-host-calls/general/read.d.ts.map +1 -1
  328. package/packages/jam/jam-host-calls/general/read.js +3 -0
  329. package/packages/jam/jam-host-calls/general/read.test.js +11 -12
  330. package/packages/jam/jam-host-calls/general/write.d.ts +2 -1
  331. package/packages/jam/jam-host-calls/general/write.d.ts.map +1 -1
  332. package/packages/jam/jam-host-calls/general/write.js +3 -0
  333. package/packages/jam/jam-host-calls/general/write.test.js +10 -11
  334. package/packages/jam/jam-host-calls/refine/export.d.ts +2 -1
  335. package/packages/jam/jam-host-calls/refine/export.d.ts.map +1 -1
  336. package/packages/jam/jam-host-calls/refine/export.js +3 -0
  337. package/packages/jam/jam-host-calls/refine/export.test.js +6 -7
  338. package/packages/jam/jam-host-calls/refine/expunge.d.ts +2 -1
  339. package/packages/jam/jam-host-calls/refine/expunge.d.ts.map +1 -1
  340. package/packages/jam/jam-host-calls/refine/expunge.js +3 -0
  341. package/packages/jam/jam-host-calls/refine/expunge.test.js +3 -4
  342. package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts +2 -1
  343. package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts.map +1 -1
  344. package/packages/jam/jam-host-calls/refine/historical-lookup.js +3 -0
  345. package/packages/jam/jam-host-calls/refine/historical-lookup.test.js +11 -12
  346. package/packages/jam/jam-host-calls/refine/invoke.d.ts +2 -1
  347. package/packages/jam/jam-host-calls/refine/invoke.d.ts.map +1 -1
  348. package/packages/jam/jam-host-calls/refine/invoke.js +4 -1
  349. package/packages/jam/jam-host-calls/refine/invoke.test.js +10 -11
  350. package/packages/jam/jam-host-calls/refine/machine.d.ts +2 -1
  351. package/packages/jam/jam-host-calls/refine/machine.d.ts.map +1 -1
  352. package/packages/jam/jam-host-calls/refine/machine.js +3 -0
  353. package/packages/jam/jam-host-calls/refine/machine.test.js +6 -7
  354. package/packages/jam/jam-host-calls/refine/pages.d.ts +2 -1
  355. package/packages/jam/jam-host-calls/refine/pages.d.ts.map +1 -1
  356. package/packages/jam/jam-host-calls/refine/pages.js +3 -0
  357. package/packages/jam/jam-host-calls/refine/pages.test.js +3 -4
  358. package/packages/jam/jam-host-calls/refine/peek.d.ts +2 -1
  359. package/packages/jam/jam-host-calls/refine/peek.d.ts.map +1 -1
  360. package/packages/jam/jam-host-calls/refine/peek.js +3 -0
  361. package/packages/jam/jam-host-calls/refine/peek.test.js +3 -4
  362. package/packages/jam/jam-host-calls/refine/poke.d.ts +2 -1
  363. package/packages/jam/jam-host-calls/refine/poke.d.ts.map +1 -1
  364. package/packages/jam/jam-host-calls/refine/poke.js +3 -0
  365. package/packages/jam/jam-host-calls/refine/poke.test.js +3 -4
  366. package/packages/jam/jamnp-s/network.js +1 -1
  367. package/packages/jam/jamnp-s/peers.d.ts +2 -1
  368. package/packages/jam/jamnp-s/peers.d.ts.map +1 -1
  369. package/packages/jam/jamnp-s/peers.js +3 -0
  370. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts +4 -2
  371. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts.map +1 -1
  372. package/packages/jam/jamnp-s/protocol/ce-128-block-request.js +6 -0
  373. package/packages/jam/jamnp-s/protocol/ce-128-block-request.test.js +2 -2
  374. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts +4 -2
  375. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts.map +1 -1
  376. package/packages/jam/jamnp-s/protocol/ce-129-state-request.js +6 -0
  377. package/packages/jam/jamnp-s/protocol/ce-129-state-request.test.js +4 -4
  378. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +4 -2
  379. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts.map +1 -1
  380. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.js +6 -0
  381. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.test.js +2 -2
  382. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +4 -1
  383. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts.map +1 -1
  384. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.js +7 -0
  385. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.test.js +2 -2
  386. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts +5 -2
  387. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts.map +1 -1
  388. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.js +7 -0
  389. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.test.js +2 -2
  390. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +4 -2
  391. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts.map +1 -1
  392. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.js +6 -0
  393. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.test.js +2 -2
  394. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +2 -1
  395. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts.map +1 -1
  396. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.js +3 -0
  397. package/packages/jam/jamnp-s/stream-manager.d.ts +2 -1
  398. package/packages/jam/jamnp-s/stream-manager.d.ts.map +1 -1
  399. package/packages/jam/jamnp-s/stream-manager.js +4 -1
  400. package/packages/jam/jamnp-s/tasks/sync.js +4 -4
  401. package/packages/jam/jamnp-s/tasks/sync.test.js +4 -4
  402. package/packages/jam/jamnp-s/tasks/ticket-distribution.js +2 -2
  403. package/packages/jam/jamnp-s/tasks/ticket-distribution.test.js +1 -1
  404. package/packages/jam/node/common.d.ts.map +1 -1
  405. package/packages/jam/node/common.js +3 -3
  406. package/packages/jam/rpc-client/index.d.ts +4 -2
  407. package/packages/jam/rpc-client/index.d.ts.map +1 -1
  408. package/packages/jam/rpc-client/index.js +7 -1
  409. package/packages/jam/state/in-memory-state-view.d.ts +2 -1
  410. package/packages/jam/state/in-memory-state-view.d.ts.map +1 -1
  411. package/packages/jam/state/in-memory-state-view.js +3 -0
  412. package/packages/jam/state/in-memory-state.d.ts +16 -21
  413. package/packages/jam/state/in-memory-state.d.ts.map +1 -1
  414. package/packages/jam/state/in-memory-state.js +10 -6
  415. package/packages/jam/state/in-memory-state.test.js +2 -2
  416. package/packages/jam/state/service.d.ts +2 -6
  417. package/packages/jam/state/service.d.ts.map +1 -1
  418. package/packages/jam/state/service.js +3 -0
  419. package/packages/jam/state/test.utils.js +3 -3
  420. package/packages/jam/state-json/accounts.js +5 -5
  421. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +3 -34
  422. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts.map +1 -1
  423. package/packages/jam/state-merkleization/in-memory-state-codec.js +1 -1
  424. package/packages/jam/state-merkleization/serialized-state-view.d.ts +8 -3
  425. package/packages/jam/state-merkleization/serialized-state-view.d.ts.map +1 -1
  426. package/packages/jam/state-merkleization/serialized-state-view.js +6 -3
  427. package/packages/jam/state-merkleization/serialized-state.d.ts +2 -3
  428. package/packages/jam/state-merkleization/serialized-state.d.ts.map +1 -1
  429. package/packages/jam/state-merkleization/serialized-state.js +10 -2
  430. package/packages/jam/state-merkleization/serialized-state.test.js +1 -1
  431. package/packages/jam/transition/accumulate/accumulate.d.ts.map +1 -1
  432. package/packages/jam/transition/accumulate/accumulate.js +18 -6
  433. package/packages/jam/transition/accumulate/accumulate.test.js +1 -1
  434. package/packages/jam/transition/block-verifier.d.ts +2 -1
  435. package/packages/jam/transition/block-verifier.d.ts.map +1 -1
  436. package/packages/jam/transition/block-verifier.js +3 -0
  437. package/packages/jam/transition/block-verifier.test.js +8 -8
  438. package/packages/jam/transition/chain-stf.d.ts +12 -4
  439. package/packages/jam/transition/chain-stf.d.ts.map +1 -1
  440. package/packages/jam/transition/chain-stf.js +7 -3
  441. package/packages/jam/transition/externalities/accumulate-externalities.d.ts +20 -6
  442. package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
  443. package/packages/jam/transition/externalities/accumulate-externalities.js +29 -22
  444. package/packages/jam/transition/externalities/accumulate-externalities.test.js +590 -100
  445. package/packages/jam/transition/externalities/fetch-externalities.d.ts +55 -2
  446. package/packages/jam/transition/externalities/fetch-externalities.d.ts.map +1 -1
  447. package/packages/jam/transition/externalities/fetch-externalities.js +44 -2
  448. package/packages/jam/transition/externalities/index.d.ts +0 -2
  449. package/packages/jam/transition/externalities/index.d.ts.map +1 -1
  450. package/packages/jam/transition/externalities/index.js +0 -2
  451. package/packages/jam/transition/hasher.d.ts +2 -1
  452. package/packages/jam/transition/hasher.d.ts.map +1 -1
  453. package/packages/jam/transition/hasher.js +5 -2
  454. package/packages/jam/transition/hasher.test.js +1 -1
  455. package/packages/jam/transition/preimages.test.js +4 -4
  456. package/packages/jam/transition/reports/test.utils.js +1 -1
  457. package/packages/workers/api-node/config.js +4 -4
  458. package/packages/workers/api-node/port.d.ts +2 -1
  459. package/packages/workers/api-node/port.d.ts.map +1 -1
  460. package/packages/workers/api-node/port.js +4 -1
  461. package/packages/workers/api-node/port.test.js +2 -2
  462. package/packages/workers/api-node/protocol.js +2 -2
  463. package/packages/workers/block-authorship/generator.d.ts +13 -2
  464. package/packages/workers/block-authorship/generator.d.ts.map +1 -1
  465. package/packages/workers/block-authorship/generator.js +13 -9
  466. package/packages/workers/block-authorship/generator.test.js +16 -2
  467. package/packages/workers/block-authorship/main.d.ts.map +1 -1
  468. package/packages/workers/block-authorship/main.js +8 -1
  469. package/packages/workers/importer/finality.test.js +1 -1
  470. package/packages/workers/importer/importer.d.ts +23 -6
  471. package/packages/workers/importer/importer.d.ts.map +1 -1
  472. package/packages/workers/importer/importer.js +34 -19
  473. package/packages/workers/importer/main.d.ts.map +1 -1
  474. package/packages/workers/importer/main.js +13 -5
  475. package/packages/jam/transition/externalities/is-authorized-fetch-externalities.d.ts.map +0 -1
  476. package/packages/jam/transition/externalities/is-authorized-fetch-externalities.js +0 -41
  477. package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts +0 -23
  478. package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts.map +0 -1
  479. package/packages/jam/transition/externalities/refine-fetch-externalities.js +0 -56
  480. package/packages/jam/transition/externalities/refine-fetch-externalities.test.d.ts +0 -2
  481. package/packages/jam/transition/externalities/refine-fetch-externalities.test.d.ts.map +0 -1
  482. package/packages/jam/transition/externalities/refine-fetch-externalities.test.js +0 -32
@@ -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";
@@ -1,22 +1,20 @@
1
- import { BytesBlob } from "#@typeberry/bytes";
1
+ import type { BytesBlob } from "#@typeberry/bytes";
2
2
  import type { ChainSpec } from "#@typeberry/config";
3
3
  import { general } from "#@typeberry/jam-host-calls";
4
4
  import type { U64 } from "#@typeberry/numbers";
5
+ import { type WorkPackageFetchData } from "#@typeberry/transition/externalities/fetch-externalities.js";
5
6
  export declare class IsAuthorizedFetchExternalities implements general.IIsAuthorizedFetch {
6
7
  private readonly chainSpec;
7
- private readonly params;
8
+ private readonly pkg;
8
9
  readonly context = general.FetchContext.IsAuthorized;
9
- constructor(chainSpec: ChainSpec, params: {
10
- authToken: BytesBlob;
11
- authConfiguration: BytesBlob;
12
- });
10
+ constructor(chainSpec: ChainSpec, pkg: WorkPackageFetchData);
13
11
  constants(): BytesBlob;
14
12
  workPackage(): BytesBlob;
15
13
  authConfiguration(): BytesBlob;
16
14
  authToken(): BytesBlob;
17
15
  refineContext(): BytesBlob;
18
16
  allWorkItems(): BytesBlob;
19
- oneWorkItem(_workItem: U64): BytesBlob | null;
20
- workItemPayload(_workItem: U64): BytesBlob | null;
17
+ oneWorkItem(workItem: U64): BytesBlob | null;
18
+ workItemPayload(workItem: U64): BytesBlob | null;
21
19
  }
22
- //# sourceMappingURL=is-authorized-fetch-externalities.d.ts.map
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"}
@@ -0,0 +1,80 @@
1
+ import { Bytes } from "#@typeberry/bytes";
2
+ import { HASH_SIZE } from "#@typeberry/hash";
3
+ import { general } from "#@typeberry/jam-host-calls";
4
+ import { getEncodedConstants, u64ToArrayIndex, } from "#@typeberry/transition/externalities/fetch-externalities.js";
5
+ export class RefineFetchExternalities {
6
+ chainSpec;
7
+ data;
8
+ context = general.FetchContext.Refine;
9
+ constructor(chainSpec, data) {
10
+ this.chainSpec = chainSpec;
11
+ this.data = data;
12
+ }
13
+ constants() {
14
+ return getEncodedConstants(this.chainSpec);
15
+ }
16
+ /**
17
+ * Refine entropy is `H₀` (zero hash) per GP §B.3.
18
+ *
19
+ * https://graypaper.fluffylabs.dev/#/ab2cdbd/2fe0012fe201?v=0.7.2
20
+ */
21
+ entropy() {
22
+ return Bytes.zero(HASH_SIZE).asOpaque();
23
+ }
24
+ authorizerTrace() {
25
+ return this.data.authorizerTrace;
26
+ }
27
+ workItemExtrinsic(workItem, index) {
28
+ const itemIdx = workItem === null ? this.data.currentWorkItemIndex : u64ToArrayIndex(workItem, this.data.extrinsics.length);
29
+ if (itemIdx === null) {
30
+ return null;
31
+ }
32
+ const perItem = this.data.extrinsics[itemIdx];
33
+ const xIdx = u64ToArrayIndex(index, perItem.length);
34
+ if (xIdx === null) {
35
+ return null;
36
+ }
37
+ return perItem[xIdx];
38
+ }
39
+ workItemImport(workItem, index) {
40
+ const itemIdx = workItem === null ? this.data.currentWorkItemIndex : u64ToArrayIndex(workItem, this.data.imports.length);
41
+ if (itemIdx === null) {
42
+ return null;
43
+ }
44
+ const perItem = this.data.imports[itemIdx];
45
+ const segIdx = u64ToArrayIndex(index, perItem.length);
46
+ if (segIdx === null) {
47
+ return null;
48
+ }
49
+ // `Segment` extends `BytesBlob`, so it can be returned directly.
50
+ return perItem[segIdx].data;
51
+ }
52
+ workPackage() {
53
+ return this.data.packageData.packageView.encoded();
54
+ }
55
+ authConfiguration() {
56
+ return this.data.packageData.packageView.authConfiguration.view();
57
+ }
58
+ authToken() {
59
+ return this.data.packageData.packageView.authToken.view();
60
+ }
61
+ refineContext() {
62
+ return this.data.packageData.packageView.context.encoded();
63
+ }
64
+ allWorkItems() {
65
+ return this.data.packageData.workItemSummaries.encoded();
66
+ }
67
+ oneWorkItem(workItem) {
68
+ const summaries = this.data.packageData.workItemSummaries;
69
+ const idx = u64ToArrayIndex(workItem, summaries.length);
70
+ return idx === null ? null : (summaries.get(idx)?.encoded() ?? null);
71
+ }
72
+ workItemPayload(workItem) {
73
+ const items = this.data.packageData.packageView.items.view();
74
+ const idx = u64ToArrayIndex(workItem, items.length);
75
+ if (idx === null) {
76
+ return null;
77
+ }
78
+ return items.get(idx)?.view().payload.view() ?? null;
79
+ }
80
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=refine-fetch.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refine-fetch.test.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/in-core/externalities/refine-fetch.test.ts"],"names":[],"mappings":""}