@typeberry/lib 0.5.10-7338c21 → 0.5.10-9ffd7ac

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (443) hide show
  1. package/README.md +2 -2
  2. package/bin/lib/examples/pvm-usage.test.js +2 -2
  3. package/package.json +1 -1
  4. package/packages/core/codec/descriptor.js +1 -1
  5. package/packages/core/codec/descriptors.js +7 -4
  6. package/packages/core/codec/index.test.js +1 -1
  7. package/packages/core/codec/skip.d.ts +2 -1
  8. package/packages/core/codec/skip.d.ts.map +1 -1
  9. package/packages/core/codec/skip.js +3 -0
  10. package/packages/core/codec/view.js +2 -2
  11. package/packages/core/collections/multi-map.d.ts +2 -1
  12. package/packages/core/collections/multi-map.d.ts.map +1 -1
  13. package/packages/core/collections/multi-map.js +3 -0
  14. package/packages/core/collections/multi-map.test.js +2 -2
  15. package/packages/core/concurrent/parent.js +4 -1
  16. package/packages/core/crypto/ed25519.d.ts +2 -5
  17. package/packages/core/crypto/ed25519.d.ts.map +1 -1
  18. package/packages/core/crypto/ed25519.js +4 -1
  19. package/packages/core/hash/hash.d.ts +4 -2
  20. package/packages/core/hash/hash.d.ts.map +1 -1
  21. package/packages/core/hash/hash.js +6 -1
  22. package/packages/core/networking/quic-network.d.ts +3 -2
  23. package/packages/core/networking/quic-network.d.ts.map +1 -1
  24. package/packages/core/networking/quic-network.js +3 -0
  25. package/packages/core/networking/quic-peer.d.ts +2 -1
  26. package/packages/core/networking/quic-peer.d.ts.map +1 -1
  27. package/packages/core/networking/quic-peer.js +5 -2
  28. package/packages/core/networking/quic-stream.d.ts +2 -1
  29. package/packages/core/networking/quic-stream.d.ts.map +1 -1
  30. package/packages/core/networking/quic-stream.js +3 -0
  31. package/packages/core/networking/setup.js +2 -2
  32. package/packages/core/pvm-host-calls/bin.js +2 -2
  33. package/packages/core/pvm-host-calls/ecalli-trace-logger.test.js +1 -1
  34. package/packages/core/pvm-host-calls/host-call-memory.d.ts +2 -1
  35. package/packages/core/pvm-host-calls/host-call-memory.d.ts.map +1 -1
  36. package/packages/core/pvm-host-calls/host-call-memory.js +3 -0
  37. package/packages/core/pvm-host-calls/host-call-memory.test.js +1 -1
  38. package/packages/core/pvm-host-calls/host-call-registers.d.ts +5 -1
  39. package/packages/core/pvm-host-calls/host-call-registers.d.ts.map +1 -1
  40. package/packages/core/pvm-host-calls/host-call-registers.js +11 -1
  41. package/packages/core/pvm-host-calls/host-call-registers.test.js +2 -2
  42. package/packages/core/pvm-host-calls/host-calls-executor.d.ts +2 -1
  43. package/packages/core/pvm-host-calls/host-calls-executor.d.ts.map +1 -1
  44. package/packages/core/pvm-host-calls/host-calls-executor.js +5 -2
  45. package/packages/core/pvm-host-calls/host-calls.d.ts +4 -2
  46. package/packages/core/pvm-host-calls/host-calls.d.ts.map +1 -1
  47. package/packages/core/pvm-host-calls/host-calls.js +9 -4
  48. package/packages/core/pvm-host-calls/pvm-instance-manager.js +1 -1
  49. package/packages/core/pvm-interpreter/args-decoder/args-decoder.js +1 -1
  50. package/packages/core/pvm-interpreter/args-decoder/args-decoder.test.js +3 -3
  51. package/packages/core/pvm-interpreter/args-decoder/args-decoding-results.js +11 -11
  52. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts +2 -1
  53. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts.map +1 -1
  54. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.js +3 -0
  55. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.test.js +2 -2
  56. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts +2 -1
  57. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts.map +1 -1
  58. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.js +3 -0
  59. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.test.js +26 -26
  60. package/packages/core/pvm-interpreter/basic-blocks/basic-blocks.test.js +8 -8
  61. package/packages/core/pvm-interpreter/bin.js +1 -1
  62. package/packages/core/pvm-interpreter/debugger-adapter.d.ts +2 -1
  63. package/packages/core/pvm-interpreter/debugger-adapter.d.ts.map +1 -1
  64. package/packages/core/pvm-interpreter/debugger-adapter.js +6 -3
  65. package/packages/core/pvm-interpreter/gas.js +4 -1
  66. package/packages/core/pvm-interpreter/interpreter.d.ts +2 -1
  67. package/packages/core/pvm-interpreter/interpreter.d.ts.map +1 -1
  68. package/packages/core/pvm-interpreter/interpreter.js +19 -16
  69. package/packages/core/pvm-interpreter/memory/memory-builder.js +2 -2
  70. package/packages/core/pvm-interpreter/memory/memory-builder.test.js +7 -7
  71. package/packages/core/pvm-interpreter/memory/memory.d.ts +2 -1
  72. package/packages/core/pvm-interpreter/memory/memory.d.ts.map +1 -1
  73. package/packages/core/pvm-interpreter/memory/memory.js +4 -1
  74. package/packages/core/pvm-interpreter/memory/memory.test.js +31 -31
  75. package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts +2 -1
  76. package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts.map +1 -1
  77. package/packages/core/pvm-interpreter/memory/pages/readable-page.js +3 -0
  78. package/packages/core/pvm-interpreter/memory/pages/readable-page.test.js +3 -3
  79. package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts +2 -1
  80. package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts.map +1 -1
  81. package/packages/core/pvm-interpreter/memory/pages/writeable-page.js +3 -0
  82. package/packages/core/pvm-interpreter/memory/pages/writeable-page.test.js +4 -4
  83. package/packages/core/pvm-interpreter/ops/bit-ops.d.ts +2 -1
  84. package/packages/core/pvm-interpreter/ops/bit-ops.d.ts.map +1 -1
  85. package/packages/core/pvm-interpreter/ops/bit-ops.js +3 -0
  86. package/packages/core/pvm-interpreter/ops/bit-ops.test.js +3 -3
  87. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts +2 -1
  88. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts.map +1 -1
  89. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.js +3 -0
  90. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.test.js +5 -5
  91. package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts +2 -1
  92. package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts.map +1 -1
  93. package/packages/core/pvm-interpreter/ops/boolean-ops.js +3 -0
  94. package/packages/core/pvm-interpreter/ops/boolean-ops.test.js +3 -3
  95. package/packages/core/pvm-interpreter/ops/branch-ops.d.ts +2 -1
  96. package/packages/core/pvm-interpreter/ops/branch-ops.d.ts.map +1 -1
  97. package/packages/core/pvm-interpreter/ops/branch-ops.js +3 -0
  98. package/packages/core/pvm-interpreter/ops/branch-ops.test.js +4 -4
  99. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts +2 -1
  100. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts.map +1 -1
  101. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.js +3 -0
  102. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.test.js +5 -5
  103. package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts +2 -1
  104. package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts.map +1 -1
  105. package/packages/core/pvm-interpreter/ops/host-call-ops.js +3 -0
  106. package/packages/core/pvm-interpreter/ops/host-call-ops.test.js +2 -2
  107. package/packages/core/pvm-interpreter/ops/load-ops.d.ts +2 -1
  108. package/packages/core/pvm-interpreter/ops/load-ops.d.ts.map +1 -1
  109. package/packages/core/pvm-interpreter/ops/load-ops.js +3 -0
  110. package/packages/core/pvm-interpreter/ops/load-ops.test.js +10 -10
  111. package/packages/core/pvm-interpreter/ops/math-ops.d.ts +2 -1
  112. package/packages/core/pvm-interpreter/ops/math-ops.d.ts.map +1 -1
  113. package/packages/core/pvm-interpreter/ops/math-ops.js +3 -0
  114. package/packages/core/pvm-interpreter/ops/math-ops.test.js +3 -3
  115. package/packages/core/pvm-interpreter/ops/memory-ops.d.ts +2 -1
  116. package/packages/core/pvm-interpreter/ops/memory-ops.d.ts.map +1 -1
  117. package/packages/core/pvm-interpreter/ops/memory-ops.js +3 -0
  118. package/packages/core/pvm-interpreter/ops/memory-ops.test.js +3 -3
  119. package/packages/core/pvm-interpreter/ops/move-ops.d.ts +2 -1
  120. package/packages/core/pvm-interpreter/ops/move-ops.d.ts.map +1 -1
  121. package/packages/core/pvm-interpreter/ops/move-ops.js +3 -0
  122. package/packages/core/pvm-interpreter/ops/move-ops.test.js +3 -3
  123. package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts +2 -1
  124. package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts.map +1 -1
  125. package/packages/core/pvm-interpreter/ops/no-args-ops.js +3 -0
  126. package/packages/core/pvm-interpreter/ops/no-args-ops.test.js +2 -2
  127. package/packages/core/pvm-interpreter/ops/shift-ops.d.ts +2 -1
  128. package/packages/core/pvm-interpreter/ops/shift-ops.d.ts.map +1 -1
  129. package/packages/core/pvm-interpreter/ops/shift-ops.js +3 -0
  130. package/packages/core/pvm-interpreter/ops/shift-ops.test.js +3 -3
  131. package/packages/core/pvm-interpreter/ops/store-ops.d.ts +2 -1
  132. package/packages/core/pvm-interpreter/ops/store-ops.d.ts.map +1 -1
  133. package/packages/core/pvm-interpreter/ops/store-ops.js +3 -0
  134. package/packages/core/pvm-interpreter/ops/store-ops.test.js +7 -7
  135. package/packages/core/pvm-interpreter/ops-dispatchers/no-args-dispatcher.test.js +1 -1
  136. package/packages/core/pvm-interpreter/ops-dispatchers/one-imm-dispatcher.test.js +4 -4
  137. package/packages/core/pvm-interpreter/ops-dispatchers/one-offset-dispatcher.test.js +2 -2
  138. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-ext-imm-dispatcher.test.js +4 -4
  139. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-dispatcher.test.js +7 -7
  140. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-one-offset-dispatcher.test.js +10 -10
  141. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-two-imms-dispatcher.test.js +5 -5
  142. package/packages/core/pvm-interpreter/ops-dispatchers/three-regs-dispatcher.test.js +7 -7
  143. package/packages/core/pvm-interpreter/ops-dispatchers/two-imms-dispatcher.test.js +5 -5
  144. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-dispatcher.test.js +6 -6
  145. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-imm-dispatcher.test.js +11 -11
  146. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-offset-dispatcher.test.js +2 -2
  147. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-two-imms-dispatcher.test.js +14 -14
  148. package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts +5 -2
  149. package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts.map +1 -1
  150. package/packages/core/pvm-interpreter/program-decoder/jump-table.js +9 -4
  151. package/packages/core/pvm-interpreter/program-decoder/jump-table.test.js +6 -6
  152. package/packages/core/pvm-interpreter/program-decoder/mask.d.ts +2 -1
  153. package/packages/core/pvm-interpreter/program-decoder/mask.d.ts.map +1 -1
  154. package/packages/core/pvm-interpreter/program-decoder/mask.js +3 -0
  155. package/packages/core/pvm-interpreter/program-decoder/mask.test.js +10 -10
  156. package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts +2 -1
  157. package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts.map +1 -1
  158. package/packages/core/pvm-interpreter/program-decoder/program-decoder.js +6 -3
  159. package/packages/core/pvm-interpreter/program-decoder/program-decoder.test.js +5 -5
  160. package/packages/core/pvm-interpreter/program.js +3 -3
  161. package/packages/core/pvm-interpreter/registers.d.ts +5 -2
  162. package/packages/core/pvm-interpreter/registers.d.ts.map +1 -1
  163. package/packages/core/pvm-interpreter/registers.js +10 -6
  164. package/packages/core/pvm-interpreter/registers.test.js +10 -10
  165. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts +6 -3
  166. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts.map +1 -1
  167. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.js +11 -2
  168. package/packages/core/pvm-interpreter-ananas/index.d.ts +6 -3
  169. package/packages/core/pvm-interpreter-ananas/index.d.ts.map +1 -1
  170. package/packages/core/pvm-interpreter-ananas/index.js +12 -3
  171. package/packages/core/trie/nodes.d.ts +7 -2
  172. package/packages/core/trie/nodes.d.ts.map +1 -1
  173. package/packages/core/trie/nodes.js +20 -11
  174. package/packages/core/trie/nodesDb.d.ts +3 -1
  175. package/packages/core/trie/nodesDb.d.ts.map +1 -1
  176. package/packages/core/trie/nodesDb.js +6 -0
  177. package/packages/core/trie/trie.js +2 -2
  178. package/packages/extensions/ipc/index.js +5 -2
  179. package/packages/extensions/ipc/jamnp/handler.d.ts +4 -2
  180. package/packages/extensions/ipc/jamnp/handler.d.ts.map +1 -1
  181. package/packages/extensions/ipc/jamnp/handler.js +9 -3
  182. package/packages/extensions/ipc/jamnp/server.js +3 -3
  183. package/packages/extensions/ipc/server.d.ts +2 -1
  184. package/packages/extensions/ipc/server.d.ts.map +1 -1
  185. package/packages/extensions/ipc/server.js +4 -1
  186. package/packages/jam/block/header.js +1 -1
  187. package/packages/jam/config/chain-spec.d.ts +2 -1
  188. package/packages/jam/config/chain-spec.d.ts.map +1 -1
  189. package/packages/jam/config/chain-spec.js +5 -2
  190. package/packages/jam/config/network.d.ts +2 -7
  191. package/packages/jam/config/network.d.ts.map +1 -1
  192. package/packages/jam/config/network.js +3 -0
  193. package/packages/jam/config-node/jip-chain-spec.js +1 -1
  194. package/packages/jam/database/blocks.test.js +1 -1
  195. package/packages/jam/database/states.d.ts +2 -1
  196. package/packages/jam/database/states.d.ts.map +1 -1
  197. package/packages/jam/database/states.js +3 -0
  198. package/packages/jam/database/states.test.js +1 -1
  199. package/packages/jam/database-lmdb/blocks.d.ts +2 -1
  200. package/packages/jam/database-lmdb/blocks.d.ts.map +1 -1
  201. package/packages/jam/database-lmdb/blocks.js +3 -0
  202. package/packages/jam/database-lmdb/root.d.ts +2 -1
  203. package/packages/jam/database-lmdb/root.d.ts.map +1 -1
  204. package/packages/jam/database-lmdb/root.js +3 -0
  205. package/packages/jam/database-lmdb/states.d.ts +2 -1
  206. package/packages/jam/database-lmdb/states.d.ts.map +1 -1
  207. package/packages/jam/database-lmdb/states.js +3 -0
  208. package/packages/jam/database-lmdb/states.test.js +9 -9
  209. package/packages/jam/executor/pvm-executor.js +24 -24
  210. package/packages/jam/fuzz-proto/v1/handler.d.ts +2 -1
  211. package/packages/jam/fuzz-proto/v1/handler.d.ts.map +1 -1
  212. package/packages/jam/fuzz-proto/v1/handler.js +3 -0
  213. package/packages/jam/fuzz-proto/v1/handler.test.js +10 -10
  214. package/packages/jam/in-core/externalities/refine.js +1 -1
  215. package/packages/jam/in-core/externalities/refine.test.js +3 -3
  216. package/packages/jam/in-core/in-core.d.ts +2 -1
  217. package/packages/jam/in-core/in-core.d.ts.map +1 -1
  218. package/packages/jam/in-core/in-core.js +3 -0
  219. package/packages/jam/in-core/in-core.test.js +6 -6
  220. package/packages/jam/in-core/is-authorized.test.js +2 -2
  221. package/packages/jam/in-core/refine.js +1 -1
  222. package/packages/jam/jam-host-calls/accumulate/assign.d.ts +2 -1
  223. package/packages/jam/jam-host-calls/accumulate/assign.d.ts.map +1 -1
  224. package/packages/jam/jam-host-calls/accumulate/assign.js +3 -0
  225. package/packages/jam/jam-host-calls/accumulate/assign.test.js +8 -9
  226. package/packages/jam/jam-host-calls/accumulate/bless.d.ts +2 -1
  227. package/packages/jam/jam-host-calls/accumulate/bless.d.ts.map +1 -1
  228. package/packages/jam/jam-host-calls/accumulate/bless.js +3 -0
  229. package/packages/jam/jam-host-calls/accumulate/bless.test.js +11 -12
  230. package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts +2 -1
  231. package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts.map +1 -1
  232. package/packages/jam/jam-host-calls/accumulate/checkpoint.js +4 -1
  233. package/packages/jam/jam-host-calls/accumulate/checkpoint.test.js +2 -3
  234. package/packages/jam/jam-host-calls/accumulate/designate.d.ts +2 -1
  235. package/packages/jam/jam-host-calls/accumulate/designate.d.ts.map +1 -1
  236. package/packages/jam/jam-host-calls/accumulate/designate.js +3 -0
  237. package/packages/jam/jam-host-calls/accumulate/designate.test.js +5 -6
  238. package/packages/jam/jam-host-calls/accumulate/eject.d.ts +2 -1
  239. package/packages/jam/jam-host-calls/accumulate/eject.d.ts.map +1 -1
  240. package/packages/jam/jam-host-calls/accumulate/eject.js +3 -0
  241. package/packages/jam/jam-host-calls/accumulate/eject.test.js +8 -9
  242. package/packages/jam/jam-host-calls/accumulate/forget.d.ts +2 -1
  243. package/packages/jam/jam-host-calls/accumulate/forget.d.ts.map +1 -1
  244. package/packages/jam/jam-host-calls/accumulate/forget.js +3 -0
  245. package/packages/jam/jam-host-calls/accumulate/forget.test.js +5 -6
  246. package/packages/jam/jam-host-calls/accumulate/new.d.ts +2 -1
  247. package/packages/jam/jam-host-calls/accumulate/new.d.ts.map +1 -1
  248. package/packages/jam/jam-host-calls/accumulate/new.js +3 -0
  249. package/packages/jam/jam-host-calls/accumulate/new.test.js +9 -10
  250. package/packages/jam/jam-host-calls/accumulate/provide.d.ts +2 -1
  251. package/packages/jam/jam-host-calls/accumulate/provide.d.ts.map +1 -1
  252. package/packages/jam/jam-host-calls/accumulate/provide.js +3 -0
  253. package/packages/jam/jam-host-calls/accumulate/provide.test.js +8 -9
  254. package/packages/jam/jam-host-calls/accumulate/query.d.ts +2 -1
  255. package/packages/jam/jam-host-calls/accumulate/query.d.ts.map +1 -1
  256. package/packages/jam/jam-host-calls/accumulate/query.js +3 -0
  257. package/packages/jam/jam-host-calls/accumulate/query.test.js +8 -9
  258. package/packages/jam/jam-host-calls/accumulate/solicit.d.ts +2 -1
  259. package/packages/jam/jam-host-calls/accumulate/solicit.d.ts.map +1 -1
  260. package/packages/jam/jam-host-calls/accumulate/solicit.js +3 -0
  261. package/packages/jam/jam-host-calls/accumulate/solicit.test.js +7 -8
  262. package/packages/jam/jam-host-calls/accumulate/transfer.d.ts +2 -1
  263. package/packages/jam/jam-host-calls/accumulate/transfer.d.ts.map +1 -1
  264. package/packages/jam/jam-host-calls/accumulate/transfer.js +3 -0
  265. package/packages/jam/jam-host-calls/accumulate/transfer.test.js +9 -10
  266. package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts +2 -1
  267. package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts.map +1 -1
  268. package/packages/jam/jam-host-calls/accumulate/upgrade.js +3 -0
  269. package/packages/jam/jam-host-calls/accumulate/upgrade.test.js +4 -5
  270. package/packages/jam/jam-host-calls/accumulate/yield.d.ts +2 -1
  271. package/packages/jam/jam-host-calls/accumulate/yield.d.ts.map +1 -1
  272. package/packages/jam/jam-host-calls/accumulate/yield.js +3 -0
  273. package/packages/jam/jam-host-calls/accumulate/yield.test.js +4 -5
  274. package/packages/jam/jam-host-calls/externalities/refine-externalities.test.js +9 -9
  275. package/packages/jam/jam-host-calls/externalities/state-update.d.ts +2 -3
  276. package/packages/jam/jam-host-calls/externalities/state-update.d.ts.map +1 -1
  277. package/packages/jam/jam-host-calls/externalities/state-update.js +5 -2
  278. package/packages/jam/jam-host-calls/externalities/test-accounts.js +2 -2
  279. package/packages/jam/jam-host-calls/general/fetch.d.ts +2 -1
  280. package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
  281. package/packages/jam/jam-host-calls/general/fetch.js +3 -0
  282. package/packages/jam/jam-host-calls/general/fetch.test.js +27 -28
  283. package/packages/jam/jam-host-calls/general/gas.d.ts +2 -1
  284. package/packages/jam/jam-host-calls/general/gas.d.ts.map +1 -1
  285. package/packages/jam/jam-host-calls/general/gas.js +3 -0
  286. package/packages/jam/jam-host-calls/general/gas.test.js +4 -5
  287. package/packages/jam/jam-host-calls/general/info.d.ts +2 -1
  288. package/packages/jam/jam-host-calls/general/info.d.ts.map +1 -1
  289. package/packages/jam/jam-host-calls/general/info.js +3 -0
  290. package/packages/jam/jam-host-calls/general/info.test.js +6 -7
  291. package/packages/jam/jam-host-calls/general/log.d.ts +2 -1
  292. package/packages/jam/jam-host-calls/general/log.d.ts.map +1 -1
  293. package/packages/jam/jam-host-calls/general/log.js +3 -0
  294. package/packages/jam/jam-host-calls/general/lookup.d.ts +2 -1
  295. package/packages/jam/jam-host-calls/general/lookup.d.ts.map +1 -1
  296. package/packages/jam/jam-host-calls/general/lookup.js +3 -0
  297. package/packages/jam/jam-host-calls/general/lookup.test.js +8 -9
  298. package/packages/jam/jam-host-calls/general/read.d.ts +2 -1
  299. package/packages/jam/jam-host-calls/general/read.d.ts.map +1 -1
  300. package/packages/jam/jam-host-calls/general/read.js +3 -0
  301. package/packages/jam/jam-host-calls/general/read.test.js +11 -12
  302. package/packages/jam/jam-host-calls/general/write.d.ts +2 -1
  303. package/packages/jam/jam-host-calls/general/write.d.ts.map +1 -1
  304. package/packages/jam/jam-host-calls/general/write.js +3 -0
  305. package/packages/jam/jam-host-calls/general/write.test.js +10 -11
  306. package/packages/jam/jam-host-calls/refine/export.d.ts +2 -1
  307. package/packages/jam/jam-host-calls/refine/export.d.ts.map +1 -1
  308. package/packages/jam/jam-host-calls/refine/export.js +3 -0
  309. package/packages/jam/jam-host-calls/refine/export.test.js +6 -7
  310. package/packages/jam/jam-host-calls/refine/expunge.d.ts +2 -1
  311. package/packages/jam/jam-host-calls/refine/expunge.d.ts.map +1 -1
  312. package/packages/jam/jam-host-calls/refine/expunge.js +3 -0
  313. package/packages/jam/jam-host-calls/refine/expunge.test.js +3 -4
  314. package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts +2 -1
  315. package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts.map +1 -1
  316. package/packages/jam/jam-host-calls/refine/historical-lookup.js +3 -0
  317. package/packages/jam/jam-host-calls/refine/historical-lookup.test.js +11 -12
  318. package/packages/jam/jam-host-calls/refine/invoke.d.ts +2 -1
  319. package/packages/jam/jam-host-calls/refine/invoke.d.ts.map +1 -1
  320. package/packages/jam/jam-host-calls/refine/invoke.js +4 -1
  321. package/packages/jam/jam-host-calls/refine/invoke.test.js +10 -11
  322. package/packages/jam/jam-host-calls/refine/machine.d.ts +2 -1
  323. package/packages/jam/jam-host-calls/refine/machine.d.ts.map +1 -1
  324. package/packages/jam/jam-host-calls/refine/machine.js +3 -0
  325. package/packages/jam/jam-host-calls/refine/machine.test.js +6 -7
  326. package/packages/jam/jam-host-calls/refine/pages.d.ts +2 -1
  327. package/packages/jam/jam-host-calls/refine/pages.d.ts.map +1 -1
  328. package/packages/jam/jam-host-calls/refine/pages.js +3 -0
  329. package/packages/jam/jam-host-calls/refine/pages.test.js +3 -4
  330. package/packages/jam/jam-host-calls/refine/peek.d.ts +2 -1
  331. package/packages/jam/jam-host-calls/refine/peek.d.ts.map +1 -1
  332. package/packages/jam/jam-host-calls/refine/peek.js +3 -0
  333. package/packages/jam/jam-host-calls/refine/peek.test.js +3 -4
  334. package/packages/jam/jam-host-calls/refine/poke.d.ts +2 -1
  335. package/packages/jam/jam-host-calls/refine/poke.d.ts.map +1 -1
  336. package/packages/jam/jam-host-calls/refine/poke.js +3 -0
  337. package/packages/jam/jam-host-calls/refine/poke.test.js +3 -4
  338. package/packages/jam/jamnp-s/network.js +1 -1
  339. package/packages/jam/jamnp-s/peers.d.ts +2 -1
  340. package/packages/jam/jamnp-s/peers.d.ts.map +1 -1
  341. package/packages/jam/jamnp-s/peers.js +3 -0
  342. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts +4 -2
  343. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts.map +1 -1
  344. package/packages/jam/jamnp-s/protocol/ce-128-block-request.js +6 -0
  345. package/packages/jam/jamnp-s/protocol/ce-128-block-request.test.js +2 -2
  346. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts +4 -2
  347. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts.map +1 -1
  348. package/packages/jam/jamnp-s/protocol/ce-129-state-request.js +6 -0
  349. package/packages/jam/jamnp-s/protocol/ce-129-state-request.test.js +4 -4
  350. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +4 -2
  351. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts.map +1 -1
  352. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.js +6 -0
  353. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.test.js +2 -2
  354. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +4 -1
  355. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts.map +1 -1
  356. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.js +7 -0
  357. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.test.js +2 -2
  358. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts +5 -2
  359. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts.map +1 -1
  360. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.js +7 -0
  361. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.test.js +2 -2
  362. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +4 -2
  363. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts.map +1 -1
  364. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.js +6 -0
  365. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.test.js +2 -2
  366. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +2 -1
  367. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts.map +1 -1
  368. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.js +3 -0
  369. package/packages/jam/jamnp-s/stream-manager.d.ts +2 -1
  370. package/packages/jam/jamnp-s/stream-manager.d.ts.map +1 -1
  371. package/packages/jam/jamnp-s/stream-manager.js +4 -1
  372. package/packages/jam/jamnp-s/tasks/sync.js +4 -4
  373. package/packages/jam/jamnp-s/tasks/sync.test.js +4 -4
  374. package/packages/jam/jamnp-s/tasks/ticket-distribution.js +2 -2
  375. package/packages/jam/jamnp-s/tasks/ticket-distribution.test.js +1 -1
  376. package/packages/jam/node/common.d.ts.map +1 -1
  377. package/packages/jam/node/common.js +3 -3
  378. package/packages/jam/rpc-client/index.d.ts +4 -2
  379. package/packages/jam/rpc-client/index.d.ts.map +1 -1
  380. package/packages/jam/rpc-client/index.js +7 -1
  381. package/packages/jam/state/in-memory-state-view.d.ts +2 -1
  382. package/packages/jam/state/in-memory-state-view.d.ts.map +1 -1
  383. package/packages/jam/state/in-memory-state-view.js +3 -0
  384. package/packages/jam/state/in-memory-state.d.ts +16 -21
  385. package/packages/jam/state/in-memory-state.d.ts.map +1 -1
  386. package/packages/jam/state/in-memory-state.js +10 -6
  387. package/packages/jam/state/in-memory-state.test.js +2 -2
  388. package/packages/jam/state/service.d.ts +2 -6
  389. package/packages/jam/state/service.d.ts.map +1 -1
  390. package/packages/jam/state/service.js +3 -0
  391. package/packages/jam/state/test.utils.js +3 -3
  392. package/packages/jam/state-json/accounts.js +5 -5
  393. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +3 -34
  394. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts.map +1 -1
  395. package/packages/jam/state-merkleization/in-memory-state-codec.js +1 -1
  396. package/packages/jam/state-merkleization/serialized-state-view.d.ts +8 -3
  397. package/packages/jam/state-merkleization/serialized-state-view.d.ts.map +1 -1
  398. package/packages/jam/state-merkleization/serialized-state-view.js +6 -3
  399. package/packages/jam/state-merkleization/serialized-state.d.ts +2 -3
  400. package/packages/jam/state-merkleization/serialized-state.d.ts.map +1 -1
  401. package/packages/jam/state-merkleization/serialized-state.js +10 -2
  402. package/packages/jam/state-merkleization/serialized-state.test.js +1 -1
  403. package/packages/jam/transition/accumulate/accumulate.js +10 -3
  404. package/packages/jam/transition/accumulate/accumulate.test.js +1 -1
  405. package/packages/jam/transition/block-verifier.d.ts +2 -1
  406. package/packages/jam/transition/block-verifier.d.ts.map +1 -1
  407. package/packages/jam/transition/block-verifier.js +3 -0
  408. package/packages/jam/transition/block-verifier.test.js +8 -8
  409. package/packages/jam/transition/chain-stf.d.ts +12 -4
  410. package/packages/jam/transition/chain-stf.d.ts.map +1 -1
  411. package/packages/jam/transition/chain-stf.js +7 -3
  412. package/packages/jam/transition/externalities/accumulate-externalities.d.ts +20 -6
  413. package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
  414. package/packages/jam/transition/externalities/accumulate-externalities.js +29 -22
  415. package/packages/jam/transition/externalities/accumulate-externalities.test.js +590 -100
  416. package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts +2 -1
  417. package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts.map +1 -1
  418. package/packages/jam/transition/externalities/refine-fetch-externalities.js +3 -0
  419. package/packages/jam/transition/externalities/refine-fetch-externalities.test.js +1 -1
  420. package/packages/jam/transition/hasher.d.ts +2 -1
  421. package/packages/jam/transition/hasher.d.ts.map +1 -1
  422. package/packages/jam/transition/hasher.js +5 -2
  423. package/packages/jam/transition/hasher.test.js +1 -1
  424. package/packages/jam/transition/preimages.test.js +4 -4
  425. package/packages/jam/transition/reports/test.utils.js +1 -1
  426. package/packages/workers/api-node/config.js +4 -4
  427. package/packages/workers/api-node/port.d.ts +2 -1
  428. package/packages/workers/api-node/port.d.ts.map +1 -1
  429. package/packages/workers/api-node/port.js +4 -1
  430. package/packages/workers/api-node/port.test.js +2 -2
  431. package/packages/workers/api-node/protocol.js +2 -2
  432. package/packages/workers/block-authorship/generator.d.ts +13 -2
  433. package/packages/workers/block-authorship/generator.d.ts.map +1 -1
  434. package/packages/workers/block-authorship/generator.js +13 -9
  435. package/packages/workers/block-authorship/generator.test.js +16 -2
  436. package/packages/workers/block-authorship/main.d.ts.map +1 -1
  437. package/packages/workers/block-authorship/main.js +8 -1
  438. package/packages/workers/importer/finality.test.js +1 -1
  439. package/packages/workers/importer/importer.d.ts +23 -6
  440. package/packages/workers/importer/importer.d.ts.map +1 -1
  441. package/packages/workers/importer/importer.js +34 -19
  442. package/packages/workers/importer/main.d.ts.map +1 -1
  443. package/packages/workers/importer/main.js +13 -5
@@ -15,21 +15,20 @@ import { deepEqual, OK, Result } from "#@typeberry/utils";
15
15
  import { EjectError } from "../externalities/partial-state.js";
16
16
  import { PartialStateMock } from "../externalities/partial-state-mock.js";
17
17
  import { HostCallResult } from "../general/results.js";
18
- import { emptyRegistersBuffer } from "../utils.js";
19
18
  import { Eject } from "./eject.js";
20
19
  const RESULT_REG = 7;
21
20
  const SOURCE_REG = 7;
22
21
  const HASH_START_REG = 8;
23
22
  function prepareRegsAndMemory(source, hash, { skipHash = false } = {}) {
24
23
  const hashStart = 2 ** 16;
25
- const registers = new HostCallRegisters(emptyRegistersBuffer());
24
+ const registers = HostCallRegisters.empty();
26
25
  registers.set(SOURCE_REG, tryAsU64(source));
27
26
  registers.set(HASH_START_REG, tryAsU64(hashStart));
28
27
  const builder = new MemoryBuilder();
29
28
  if (!skipHash) {
30
29
  builder.setReadablePages(tryAsMemoryIndex(hashStart), tryAsMemoryIndex(hashStart + PAGE_SIZE), hash.raw);
31
30
  }
32
- const memory = new HostCallMemory(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
31
+ const memory = HostCallMemory.new(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
33
32
  return {
34
33
  registers,
35
34
  memory,
@@ -40,7 +39,7 @@ describe("HostCalls: Eject", () => {
40
39
  it("should eject the account and transfer the funds", async () => {
41
40
  const accumulate = new PartialStateMock();
42
41
  const serviceId = tryAsServiceId(10_000);
43
- const eject = new Eject(serviceId, accumulate);
42
+ const eject = Eject.new(serviceId, accumulate);
44
43
  const sourceServiceId = tryAsServiceId(15_000);
45
44
  const hash = Bytes.fill(HASH_SIZE, 5);
46
45
  const { registers, memory } = prepareRegsAndMemory(sourceServiceId, hash);
@@ -55,7 +54,7 @@ describe("HostCalls: Eject", () => {
55
54
  it("should fail if there is no memory for hash", async () => {
56
55
  const accumulate = new PartialStateMock();
57
56
  const serviceId = tryAsServiceId(10_000);
58
- const eject = new Eject(serviceId, accumulate);
57
+ const eject = Eject.new(serviceId, accumulate);
59
58
  const sourceServiceId = tryAsServiceId(15_000);
60
59
  const hash = Bytes.fill(HASH_SIZE, 5);
61
60
  const { registers, memory } = prepareRegsAndMemory(sourceServiceId, hash, { skipHash: true });
@@ -68,7 +67,7 @@ describe("HostCalls: Eject", () => {
68
67
  it("should fail if destination does not exist", async () => {
69
68
  const accumulate = new PartialStateMock();
70
69
  const serviceId = tryAsServiceId(10_000);
71
- const eject = new Eject(serviceId, accumulate);
70
+ const eject = Eject.new(serviceId, accumulate);
72
71
  const sourceServiceId = tryAsServiceId(15_000);
73
72
  const hash = Bytes.fill(HASH_SIZE, 5);
74
73
  accumulate.ejectReturnValue = Result.error(EjectError.InvalidService, () => "Test: destination service does not exist for eject");
@@ -84,7 +83,7 @@ describe("HostCalls: Eject", () => {
84
83
  it("should fail if destination and source are the same", async () => {
85
84
  const accumulate = new PartialStateMock();
86
85
  const serviceId = tryAsServiceId(15_000);
87
- const eject = new Eject(serviceId, accumulate);
86
+ const eject = Eject.new(serviceId, accumulate);
88
87
  const sourceServiceId = tryAsServiceId(15_000);
89
88
  const hash = Bytes.fill(HASH_SIZE, 5);
90
89
  const { registers, memory } = prepareRegsAndMemory(sourceServiceId, hash);
@@ -98,7 +97,7 @@ describe("HostCalls: Eject", () => {
98
97
  it("should fail if destination has no available preimage", async () => {
99
98
  const accumulate = new PartialStateMock();
100
99
  const serviceId = tryAsServiceId(10_000);
101
- const eject = new Eject(serviceId, accumulate);
100
+ const eject = Eject.new(serviceId, accumulate);
102
101
  const sourceServiceId = tryAsServiceId(15_000);
103
102
  const hash = Bytes.fill(HASH_SIZE, 5);
104
103
  accumulate.ejectReturnValue = Result.error(EjectError.InvalidPreimage, () => "Test: no available preimage for eject");
@@ -114,7 +113,7 @@ describe("HostCalls: Eject", () => {
114
113
  it("should fail if preimage is too old", async () => {
115
114
  const accumulate = new PartialStateMock();
116
115
  const serviceId = tryAsServiceId(10_000);
117
- const eject = new Eject(serviceId, accumulate);
116
+ const eject = Eject.new(serviceId, accumulate);
118
117
  const sourceServiceId = tryAsServiceId(15_000);
119
118
  const hash = Bytes.fill(HASH_SIZE, 5);
120
119
  accumulate.ejectReturnValue = Result.error(EjectError.InvalidPreimage, () => "Test: preimage is too old for eject");
@@ -14,7 +14,8 @@ export declare class Forget implements HostCallHandler {
14
14
  index: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"HostCallIndex[U32]">;
15
15
  basicGasCost: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"SmallGas[U32]">;
16
16
  tracedRegisters: (number & import("@typeberry/utils").WithOpaque<"register index">)[];
17
- constructor(currentServiceId: ServiceId, partialState: PartialState);
17
+ static new(currentServiceId: ServiceId, partialState: PartialState): Forget;
18
+ private constructor();
18
19
  execute(_gas: IGasCounter, regs: HostCallRegisters, memory: HostCallMemory): Promise<PvmExecution | undefined>;
19
20
  }
20
21
  //# sourceMappingURL=forget.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"forget.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/forget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAsC,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAMtE;;;;GAIG;AACH,qBAAa,MAAO,YAAW,eAAe;aAM1B,gBAAgB,EAAE,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAN/B,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,eAAe,uEAAiC;gBAG9B,gBAAgB,EAAE,SAAS,EAC1B,YAAY,EAAE,YAAY;IAGvC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAuBrH"}
1
+ {"version":3,"file":"forget.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/forget.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAsC,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAMtE;;;;GAIG;AACH,qBAAa,MAAO,YAAW,eAAe;aAU1B,gBAAgB,EAAE,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAV/B,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,eAAe,uEAAiC;IAEhD,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY;IAIlE,OAAO;IAKD,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAuBrH"}
@@ -17,6 +17,9 @@ export class Forget {
17
17
  index = tryAsHostCallIndex(24);
18
18
  basicGasCost = tryAsSmallGas(10);
19
19
  tracedRegisters = traceRegisters(IN_OUT_REG, 8);
20
+ static new(currentServiceId, partialState) {
21
+ return new Forget(currentServiceId, partialState);
22
+ }
20
23
  constructor(currentServiceId, partialState) {
21
24
  this.currentServiceId = currentServiceId;
22
25
  this.partialState = partialState;
@@ -14,7 +14,6 @@ import { Result } from "#@typeberry/utils";
14
14
  import { ForgetPreimageError } from "../externalities/partial-state.js";
15
15
  import { PartialStateMock } from "../externalities/partial-state-mock.js";
16
16
  import { HostCallResult } from "../general/results.js";
17
- import { emptyRegistersBuffer } from "../utils.js";
18
17
  import { Forget } from "./forget.js";
19
18
  const gas = gasCounter(tryAsGas(0));
20
19
  const RESULT_REG = 7;
@@ -22,14 +21,14 @@ const HASH_START_REG = 7;
22
21
  const LENGTH_REG = 8;
23
22
  function prepareRegsAndMemory(preimageHash, preimageLength, { skipPreimageHash = false } = {}) {
24
23
  const memStart = 2 ** 16;
25
- const registers = new HostCallRegisters(emptyRegistersBuffer());
24
+ const registers = HostCallRegisters.empty();
26
25
  registers.set(HASH_START_REG, tryAsU64(memStart));
27
26
  registers.set(LENGTH_REG, preimageLength);
28
27
  const builder = new MemoryBuilder();
29
28
  if (!skipPreimageHash) {
30
29
  builder.setReadablePages(tryAsMemoryIndex(memStart), tryAsMemoryIndex(memStart + PAGE_SIZE), preimageHash.raw);
31
30
  }
32
- const memory = new HostCallMemory(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
31
+ const memory = HostCallMemory.new(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
33
32
  return {
34
33
  registers,
35
34
  memory,
@@ -39,7 +38,7 @@ describe("HostCalls: Solicit", () => {
39
38
  it("should request a preimage hash", async () => {
40
39
  const accumulate = new PartialStateMock();
41
40
  const serviceId = tryAsServiceId(10_000);
42
- const forget = new Forget(serviceId, accumulate);
41
+ const forget = Forget.new(serviceId, accumulate);
43
42
  const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4_096));
44
43
  // when
45
44
  await forget.execute(gas, registers, memory);
@@ -50,7 +49,7 @@ describe("HostCalls: Solicit", () => {
50
49
  it("should fail if hash not available", async () => {
51
50
  const accumulate = new PartialStateMock();
52
51
  const serviceId = tryAsServiceId(10_000);
53
- const forget = new Forget(serviceId, accumulate);
52
+ const forget = Forget.new(serviceId, accumulate);
54
53
  const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4_096), {
55
54
  skipPreimageHash: true,
56
55
  });
@@ -63,7 +62,7 @@ describe("HostCalls: Solicit", () => {
63
62
  it("should fail if preimage not available", async () => {
64
63
  const accumulate = new PartialStateMock();
65
64
  const serviceId = tryAsServiceId(10_000);
66
- const forget = new Forget(serviceId, accumulate);
65
+ const forget = Forget.new(serviceId, accumulate);
67
66
  accumulate.forgetPreimageResponse = Result.error(ForgetPreimageError.NotFound, () => "Test: preimage not found for forget");
68
67
  const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4_096));
69
68
  // when
@@ -14,7 +14,8 @@ export declare class New implements HostCallHandler {
14
14
  index: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"HostCallIndex[U32]">;
15
15
  basicGasCost: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"SmallGas[U32]">;
16
16
  tracedRegisters: (number & import("@typeberry/utils").WithOpaque<"register index">)[];
17
- constructor(currentServiceId: ServiceId, partialState: PartialState);
17
+ static new(currentServiceId: ServiceId, partialState: PartialState): New;
18
+ private constructor();
18
19
  execute(_gas: IGasCounter, regs: HostCallRegisters, memory: HostCallMemory): Promise<undefined | PvmExecution>;
19
20
  }
20
21
  //# sourceMappingURL=new.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,kBAAkB,CAAC;AAInE,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAsC,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAMvF;;;;GAIG;AACH,qBAAa,GAAI,YAAW,eAAe;aAMvB,gBAAgB,EAAE,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAN/B,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,eAAe,uEAAgD;gBAG7C,gBAAgB,EAAE,SAAS,EAC1B,YAAY,EAAE,YAAY;IAGvC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC;CA0DrH"}
1
+ {"version":3,"file":"new.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/new.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,kBAAkB,CAAC;AAInE,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAsC,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAMvF;;;;GAIG;AACH,qBAAa,GAAI,YAAW,eAAe;aAUvB,gBAAgB,EAAE,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAV/B,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,eAAe,uEAAgD;IAE/D,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY;IAIlE,OAAO;IAKD,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC;CA0DrH"}
@@ -20,6 +20,9 @@ export class New {
20
20
  index = tryAsHostCallIndex(18);
21
21
  basicGasCost = tryAsSmallGas(10);
22
22
  tracedRegisters = traceRegisters(IN_OUT_REG, 8, 9, 10, 11, 12);
23
+ static new(currentServiceId, partialState) {
24
+ return new New(currentServiceId, partialState);
25
+ }
23
26
  constructor(currentServiceId, partialState) {
24
27
  this.currentServiceId = currentServiceId;
25
28
  this.partialState = partialState;
@@ -14,7 +14,6 @@ import { Result } from "#@typeberry/utils";
14
14
  import { NewServiceError } from "../externalities/partial-state.js";
15
15
  import { PartialStateMock } from "../externalities/partial-state-mock.js";
16
16
  import { HostCallResult } from "../general/results.js";
17
- import { emptyRegistersBuffer } from "../utils.js";
18
17
  import { New } from "./new.js";
19
18
  const gas = gasCounter(tryAsGas(0));
20
19
  const RESULT_REG = 7;
@@ -28,7 +27,7 @@ function prepareRegsAndMemory(codeHash, codeLength, gas, balance, gratisStorage,
28
27
  // If value exceeds 2 ** 16 or the service is not registrar, it's ignored.
29
28
  wantedServiceId = tryAsU64(2 ** 32 - 1), { skipCodeHash = false } = {}) {
30
29
  const memStart = 2 ** 16;
31
- const registers = new HostCallRegisters(emptyRegistersBuffer());
30
+ const registers = HostCallRegisters.empty();
32
31
  registers.set(CODE_HASH_START_REG, tryAsU64(memStart));
33
32
  registers.set(CODE_LENGTH_REG, tryAsU64(codeLength));
34
33
  registers.set(GAS_REG, gas);
@@ -39,7 +38,7 @@ wantedServiceId = tryAsU64(2 ** 32 - 1), { skipCodeHash = false } = {}) {
39
38
  if (!skipCodeHash) {
40
39
  builder.setReadablePages(tryAsMemoryIndex(memStart), tryAsMemoryIndex(memStart + PAGE_SIZE), codeHash.raw);
41
40
  }
42
- const memory = new HostCallMemory(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
41
+ const memory = HostCallMemory.new(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
43
42
  return {
44
43
  registers,
45
44
  memory,
@@ -49,7 +48,7 @@ describe("HostCalls: New", () => {
49
48
  it("should create a new service", async () => {
50
49
  const accumulate = new PartialStateMock();
51
50
  const serviceId = tryAsServiceId(10_000);
52
- const n = new New(serviceId, accumulate);
51
+ const n = New.new(serviceId, accumulate);
53
52
  accumulate.newServiceResponse = Result.ok(tryAsServiceId(23_000));
54
53
  const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4096n), tryAsU64(2n ** 40n), tryAsU64(2n ** 50n), tryAsU64(1024n));
55
54
  // when
@@ -64,7 +63,7 @@ describe("HostCalls: New", () => {
64
63
  it("should fail when balance is not enough", async () => {
65
64
  const accumulate = new PartialStateMock();
66
65
  const serviceId = tryAsServiceId(10_000);
67
- const n = new New(serviceId, accumulate);
66
+ const n = New.new(serviceId, accumulate);
68
67
  accumulate.newServiceResponse = Result.error(NewServiceError.InsufficientFunds, () => "Test: insufficient funds for new service");
69
68
  const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4096n), tryAsU64(2n ** 40n), tryAsU64(2n ** 50n), tryAsU64(1n));
70
69
  // when
@@ -76,7 +75,7 @@ describe("HostCalls: New", () => {
76
75
  it("should fail when code not readable", async () => {
77
76
  const accumulate = new PartialStateMock();
78
77
  const serviceId = tryAsServiceId(10_000);
79
- const n = new New(serviceId, accumulate);
78
+ const n = New.new(serviceId, accumulate);
80
79
  const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4096n), tryAsU64(2n ** 40n), tryAsU64(2n ** 50n), tryAsU64(1024n), tryAsU64(2 ** 32 - 1), // default service id
81
80
  { skipCodeHash: true });
82
81
  // when
@@ -88,7 +87,7 @@ describe("HostCalls: New", () => {
88
87
  it("should fail when trying to set gratis storage by unprivileged service", async () => {
89
88
  const accumulate = new PartialStateMock();
90
89
  const serviceId = tryAsServiceId(10_000);
91
- const n = new New(serviceId, accumulate);
90
+ const n = New.new(serviceId, accumulate);
92
91
  accumulate.newServiceResponse = Result.error(NewServiceError.UnprivilegedService, () => "Test: unprivileged service trying to set gratis storage");
93
92
  const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4096n), tryAsU64(2n ** 40n), tryAsU64(2n ** 50n), tryAsU64(1024n));
94
93
  // when
@@ -100,7 +99,7 @@ describe("HostCalls: New", () => {
100
99
  it("should create a new service with selected id", async () => {
101
100
  const accumulate = new PartialStateMock();
102
101
  const serviceId = tryAsServiceId(10); // service has registrar privilege
103
- const n = new New(serviceId, accumulate);
102
+ const n = New.new(serviceId, accumulate);
104
103
  accumulate.newServiceResponse = Result.ok(tryAsServiceId(42));
105
104
  const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4096n), tryAsU64(2n ** 40n), tryAsU64(2n ** 50n), tryAsU64(1024n), tryAsU64(42n));
106
105
  // when
@@ -115,7 +114,7 @@ describe("HostCalls: New", () => {
115
114
  it("should create a new service with random id", async () => {
116
115
  const accumulate = new PartialStateMock();
117
116
  const serviceId = tryAsServiceId(10_000); // service does not have registrar privilege
118
- const n = new New(serviceId, accumulate);
117
+ const n = New.new(serviceId, accumulate);
119
118
  accumulate.newServiceResponse = Result.ok(tryAsServiceId(2 ** 20));
120
119
  const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4096n), tryAsU64(2n ** 40n), tryAsU64(2n ** 50n), tryAsU64(1024n), tryAsU64(42n));
121
120
  // when
@@ -130,7 +129,7 @@ describe("HostCalls: New", () => {
130
129
  it("should fail when trying to set selected id, but service already exists", async () => {
131
130
  const accumulate = new PartialStateMock();
132
131
  const serviceId = tryAsServiceId(10);
133
- const n = new New(serviceId, accumulate);
132
+ const n = New.new(serviceId, accumulate);
134
133
  accumulate.newServiceResponse = Result.error(NewServiceError.RegistrarServiceIdAlreadyTaken, () => "Test: service ID already taken");
135
134
  const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4096n), tryAsU64(2n ** 40n), tryAsU64(2n ** 50n), tryAsU64(1024n), tryAsU64(serviceId));
136
135
  // when
@@ -13,7 +13,8 @@ export declare class Provide implements HostCallHandler {
13
13
  index: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"HostCallIndex[U32]">;
14
14
  basicGasCost: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"SmallGas[U32]">;
15
15
  tracedRegisters: (number & import("@typeberry/utils").WithOpaque<"register index">)[];
16
- constructor(currentServiceId: ServiceId, partialState: PartialState);
16
+ static new(currentServiceId: ServiceId, partialState: PartialState): Provide;
17
+ private constructor();
17
18
  execute(_gas: IGasCounter, regs: HostCallRegisters, memory: HostCallMemory): Promise<PvmExecution.Panic | undefined>;
18
19
  }
19
20
  //# sourceMappingURL=provide.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provide.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/provide.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,YAAY,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,KAAK,YAAY,EAAwB,MAAM,mCAAmC,CAAC;AAO5F;;;;GAIG;AACH,qBAAa,OAAQ,YAAW,eAAe;aAM3B,gBAAgB,EAAE,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAN/B,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,eAAe,uEAAoC;gBAGjC,gBAAgB,EAAE,SAAS,EAC1B,YAAY,EAAE,YAAY;IAGvC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc;CA0CjF"}
1
+ {"version":3,"file":"provide.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/provide.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,YAAY,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,KAAK,YAAY,EAAwB,MAAM,mCAAmC,CAAC;AAO5F;;;;GAIG;AACH,qBAAa,OAAQ,YAAW,eAAe;aAU3B,gBAAgB,EAAE,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAV/B,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,eAAe,uEAAoC;IAEnD,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY;IAIlE,OAAO;IAKD,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc;CA0CjF"}
@@ -18,6 +18,9 @@ export class Provide {
18
18
  index = tryAsHostCallIndex(26);
19
19
  basicGasCost = tryAsSmallGas(10);
20
20
  tracedRegisters = traceRegisters(IN_OUT_REG, 8, 9);
21
+ static new(currentServiceId, partialState) {
22
+ return new Provide(currentServiceId, partialState);
23
+ }
21
24
  constructor(currentServiceId, partialState) {
22
25
  this.currentServiceId = currentServiceId;
23
26
  this.partialState = partialState;
@@ -11,7 +11,6 @@ import { deepEqual, Result } from "#@typeberry/utils";
11
11
  import { ProvidePreimageError } from "../externalities/partial-state.js";
12
12
  import { PartialStateMock } from "../externalities/partial-state-mock.js";
13
13
  import { HostCallResult } from "../general/results.js";
14
- import { emptyRegistersBuffer } from "../utils.js";
15
14
  import { Provide } from "./provide.js";
16
15
  const gas = gasCounter(tryAsGas(0));
17
16
  const RESULT_REG = 7;
@@ -19,7 +18,7 @@ const PREIMAGE_START_REG = 8;
19
18
  const LENGTH_REG = 9;
20
19
  function prepareRegsAndMemory(service, preimage, { registerMemory = true } = {}) {
21
20
  const preimageStart = 2 ** 16;
22
- const registers = new HostCallRegisters(emptyRegistersBuffer());
21
+ const registers = HostCallRegisters.empty();
23
22
  registers.set(RESULT_REG, tryAsU64(service));
24
23
  registers.set(PREIMAGE_START_REG, tryAsU64(preimageStart));
25
24
  registers.set(LENGTH_REG, tryAsU64(preimage.length));
@@ -27,7 +26,7 @@ function prepareRegsAndMemory(service, preimage, { registerMemory = true } = {})
27
26
  if (registerMemory) {
28
27
  builder.setReadablePages(tryAsMemoryIndex(preimageStart), tryAsMemoryIndex(preimageStart + PAGE_SIZE), preimage.raw);
29
28
  }
30
- const memory = new HostCallMemory(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
29
+ const memory = HostCallMemory.new(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
31
30
  return {
32
31
  registers,
33
32
  memory,
@@ -37,7 +36,7 @@ describe("HostCalls: Provide", () => {
37
36
  it("should return panic if memory is unreadable", async () => {
38
37
  const accumulate = new PartialStateMock();
39
38
  const currentServiceId = tryAsServiceId(10_000);
40
- const provide = new Provide(currentServiceId, accumulate);
39
+ const provide = Provide.new(currentServiceId, accumulate);
41
40
  const serviceId = tryAsServiceId(15_000);
42
41
  const preimage = BytesBlob.blobFromNumbers([0xaa, 0xbb, 0xcc, 0xdd]);
43
42
  const { registers, memory } = prepareRegsAndMemory(serviceId, preimage, { registerMemory: false });
@@ -48,7 +47,7 @@ describe("HostCalls: Provide", () => {
48
47
  it("should return WHO if service not found", async () => {
49
48
  const accumulate = new PartialStateMock();
50
49
  const currentServiceId = tryAsServiceId(10_000);
51
- const provide = new Provide(currentServiceId, accumulate);
50
+ const provide = Provide.new(currentServiceId, accumulate);
52
51
  const serviceId = tryAsServiceId(15_000);
53
52
  const preimage = BytesBlob.blobFromNumbers([0xaa, 0xbb, 0xcc, 0xdd]);
54
53
  accumulate.providePreimageResponse = Result.error(ProvidePreimageError.ServiceNotFound, () => "Test: service not found for provide");
@@ -62,7 +61,7 @@ describe("HostCalls: Provide", () => {
62
61
  it("should return HUH if preimage was not previously requested", async () => {
63
62
  const accumulate = new PartialStateMock();
64
63
  const currentServiceId = tryAsServiceId(10_000);
65
- const provide = new Provide(currentServiceId, accumulate);
64
+ const provide = Provide.new(currentServiceId, accumulate);
66
65
  const serviceId = tryAsServiceId(15_000);
67
66
  const preimage = BytesBlob.blobFromNumbers([0xaa, 0xbb, 0xcc, 0xdd]);
68
67
  accumulate.providePreimageResponse = Result.error(ProvidePreimageError.WasNotRequested, () => "Test: preimage was not requested for provide");
@@ -76,7 +75,7 @@ describe("HostCalls: Provide", () => {
76
75
  it("should return HUH if preimage already provided", async () => {
77
76
  const accumulate = new PartialStateMock();
78
77
  const currentServiceId = tryAsServiceId(10_000);
79
- const provide = new Provide(currentServiceId, accumulate);
78
+ const provide = Provide.new(currentServiceId, accumulate);
80
79
  const serviceId = tryAsServiceId(15_000);
81
80
  const preimage = BytesBlob.blobFromNumbers([0xaa, 0xbb, 0xcc, 0xdd]);
82
81
  accumulate.providePreimageResponse = Result.error(ProvidePreimageError.AlreadyProvided, () => "Test: preimage already provided");
@@ -90,7 +89,7 @@ describe("HostCalls: Provide", () => {
90
89
  it("should return OK if preimage was not provided before (for other service)", async () => {
91
90
  const accumulate = new PartialStateMock();
92
91
  const currentServiceId = tryAsServiceId(10_000);
93
- const provide = new Provide(currentServiceId, accumulate);
92
+ const provide = Provide.new(currentServiceId, accumulate);
94
93
  const serviceId = tryAsServiceId(15_000);
95
94
  const preimage = BytesBlob.blobFromNumbers([0xaa, 0xbb, 0xcc, 0xdd]);
96
95
  const { registers, memory } = prepareRegsAndMemory(serviceId, preimage);
@@ -102,7 +101,7 @@ describe("HostCalls: Provide", () => {
102
101
  it("should return OK if preimage was not provided before (for self)", async () => {
103
102
  const accumulate = new PartialStateMock();
104
103
  const currentServiceId = tryAsServiceId(10_000);
105
- const provide = new Provide(currentServiceId, accumulate);
104
+ const provide = Provide.new(currentServiceId, accumulate);
106
105
  const serviceId = tryAsServiceId(15_000);
107
106
  const preimage = BytesBlob.blobFromNumbers([0xaa, 0xbb, 0xcc, 0xdd]);
108
107
  const { registers, memory } = prepareRegsAndMemory(serviceId, preimage);
@@ -15,7 +15,8 @@ export declare class Query implements HostCallHandler {
15
15
  index: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"HostCallIndex[U32]">;
16
16
  basicGasCost: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"SmallGas[U32]">;
17
17
  tracedRegisters: (number & import("@typeberry/utils").WithOpaque<"register index">)[];
18
- constructor(currentServiceId: ServiceId, partialState: PartialState);
18
+ static new(currentServiceId: ServiceId, partialState: PartialState): Query;
19
+ private constructor();
19
20
  execute(_gas: IGasCounter, regs: HostCallRegisters, memory: HostCallMemory): Promise<PvmExecution | undefined>;
20
21
  }
21
22
  //# sourceMappingURL=query.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAIlD,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,YAAY,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,mCAAmC,CAAC;AAQ1F;;;;;;GAMG;AACH,qBAAa,KAAM,YAAW,eAAe;aAMzB,gBAAgB,EAAE,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAN/B,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,eAAe,uEAA8C;gBAG3C,gBAAgB,EAAE,SAAS,EAC1B,YAAY,EAAE,YAAY;IAGvC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CA+CrH"}
1
+ {"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAIlD,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,YAAY,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,mCAAmC,CAAC;AAQ1F;;;;;;GAMG;AACH,qBAAa,KAAM,YAAW,eAAe;aAUzB,gBAAgB,EAAE,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAV/B,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,eAAe,uEAA8C;IAE7D,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY;IAIlE,OAAO;IAKD,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CA+CrH"}
@@ -22,6 +22,9 @@ export class Query {
22
22
  index = tryAsHostCallIndex(22);
23
23
  basicGasCost = tryAsSmallGas(10);
24
24
  tracedRegisters = traceRegisters(IN_OUT_REG_1, IN_OUT_REG_2);
25
+ static new(currentServiceId, partialState) {
26
+ return new Query(currentServiceId, partialState);
27
+ }
25
28
  constructor(currentServiceId, partialState) {
26
29
  this.currentServiceId = currentServiceId;
27
30
  this.partialState = partialState;
@@ -11,7 +11,6 @@ import { PAGE_SIZE } from "#@typeberry/pvm-interpreter/spi-decoder/memory-conts.
11
11
  import { PreimageStatusKind } from "../externalities/partial-state.js";
12
12
  import { PartialStateMock } from "../externalities/partial-state-mock.js";
13
13
  import { HostCallResult } from "../general/results.js";
14
- import { emptyRegistersBuffer } from "../utils.js";
15
14
  import { Query } from "./query.js";
16
15
  const gas = gasCounter(tryAsGas(0));
17
16
  const HASH_START_REG = 7;
@@ -20,14 +19,14 @@ const RESULT_REG_1 = 7;
20
19
  const RESULT_REG_2 = 8;
21
20
  const UPPER_BITS_SHIFT = 32n;
22
21
  function prepareRegsAndMemory(hashStart, length, data, { registerMemory = true } = {}) {
23
- const registers = new HostCallRegisters(emptyRegistersBuffer());
22
+ const registers = HostCallRegisters.empty();
24
23
  registers.set(HASH_START_REG, tryAsU64(hashStart));
25
24
  registers.set(LENGTH_REG, tryAsU64(length));
26
25
  const builder = new MemoryBuilder();
27
26
  if (registerMemory) {
28
27
  builder.setReadablePages(tryAsMemoryIndex(hashStart), tryAsMemoryIndex(hashStart + PAGE_SIZE), data.raw);
29
28
  }
30
- const memory = new HostCallMemory(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
29
+ const memory = HostCallMemory.new(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
31
30
  return {
32
31
  registers,
33
32
  memory,
@@ -37,7 +36,7 @@ describe("HostCalls: Query", () => {
37
36
  it("should return panic if memory is unreadable", async () => {
38
37
  const accumulate = new PartialStateMock();
39
38
  const currentServiceId = tryAsServiceId(10_000);
40
- const query = new Query(currentServiceId, accumulate);
39
+ const query = Query.new(currentServiceId, accumulate);
41
40
  const w7 = tryAsU64(2 ** 16);
42
41
  const w8 = tryAsU64(0);
43
42
  const data = Bytes.fill(HASH_SIZE, 0xaa).asOpaque();
@@ -55,7 +54,7 @@ describe("HostCalls: Query", () => {
55
54
  it("should return none if preimage is not found", async () => {
56
55
  const accumulate = new PartialStateMock();
57
56
  const currentServiceId = tryAsServiceId(10_000);
58
- const query = new Query(currentServiceId, accumulate);
57
+ const query = Query.new(currentServiceId, accumulate);
59
58
  const w7 = tryAsU64(2 ** 16);
60
59
  const w8 = tryAsU64(32);
61
60
  const data = Bytes.fill(HASH_SIZE, 0xaa).asOpaque();
@@ -72,7 +71,7 @@ describe("HostCalls: Query", () => {
72
71
  it("should return requested if preimage is requested", async () => {
73
72
  const accumulate = new PartialStateMock();
74
73
  const currentServiceId = tryAsServiceId(10_000);
75
- const query = new Query(currentServiceId, accumulate);
74
+ const query = Query.new(currentServiceId, accumulate);
76
75
  const w7 = tryAsU64(2 ** 16);
77
76
  const w8 = tryAsU64(32);
78
77
  const data = Bytes.fill(HASH_SIZE, 0xaa).asOpaque();
@@ -92,7 +91,7 @@ describe("HostCalls: Query", () => {
92
91
  it("should return available if preimage is available", async () => {
93
92
  const accumulate = new PartialStateMock();
94
93
  const currentServiceId = tryAsServiceId(10_000);
95
- const query = new Query(currentServiceId, accumulate);
94
+ const query = Query.new(currentServiceId, accumulate);
96
95
  const w7 = tryAsU64(2 ** 16);
97
96
  const w8 = tryAsU64(32);
98
97
  const data = Bytes.fill(HASH_SIZE, 0xaa).asOpaque();
@@ -114,7 +113,7 @@ describe("HostCalls: Query", () => {
114
113
  it("should return unavailable if preimage is unavailable", async () => {
115
114
  const accumulate = new PartialStateMock();
116
115
  const currentServiceId = tryAsServiceId(10_000);
117
- const query = new Query(currentServiceId, accumulate);
116
+ const query = Query.new(currentServiceId, accumulate);
118
117
  const w7 = tryAsU64(2 ** 16);
119
118
  const w8 = tryAsU64(32);
120
119
  const data = Bytes.fill(HASH_SIZE, 0xaa).asOpaque();
@@ -137,7 +136,7 @@ describe("HostCalls: Query", () => {
137
136
  it("should return reavailable if preimage is reavailable", async () => {
138
137
  const accumulate = new PartialStateMock();
139
138
  const currentServiceId = tryAsServiceId(10_000);
140
- const query = new Query(currentServiceId, accumulate);
139
+ const query = Query.new(currentServiceId, accumulate);
141
140
  const w7 = tryAsU64(2 ** 16);
142
141
  const w8 = tryAsU64(32);
143
142
  const data = Bytes.fill(HASH_SIZE, 0xaa).asOpaque();
@@ -14,7 +14,8 @@ export declare class Solicit implements HostCallHandler {
14
14
  index: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"HostCallIndex[U32]">;
15
15
  basicGasCost: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"SmallGas[U32]">;
16
16
  tracedRegisters: (number & import("@typeberry/utils").WithOpaque<"register index">)[];
17
- constructor(currentServiceId: ServiceId, partialState: PartialState);
17
+ static new(currentServiceId: ServiceId, partialState: PartialState): Solicit;
18
+ private constructor();
18
19
  execute(_gas: IGasCounter, regs: HostCallRegisters, memory: HostCallMemory): Promise<PvmExecution | undefined>;
19
20
  }
20
21
  //# sourceMappingURL=solicit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"solicit.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/solicit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAsC,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,KAAK,YAAY,EAAwB,MAAM,mCAAmC,CAAC;AAM5F;;;;GAIG;AACH,qBAAa,OAAQ,YAAW,eAAe;aAM3B,gBAAgB,EAAE,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAN/B,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,eAAe,uEAAiC;gBAG9B,gBAAgB,EAAE,SAAS,EAC1B,YAAY,EAAE,YAAY;IAGvC,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAmCrH"}
1
+ {"version":3,"file":"solicit.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/solicit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAsC,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,KAAK,YAAY,EAAwB,MAAM,mCAAmC,CAAC;AAM5F;;;;GAIG;AACH,qBAAa,OAAQ,YAAW,eAAe;aAU3B,gBAAgB,EAAE,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAV/B,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,eAAe,uEAAiC;IAEhD,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY;IAIlE,OAAO;IAKD,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAmCrH"}
@@ -18,6 +18,9 @@ export class Solicit {
18
18
  index = tryAsHostCallIndex(23);
19
19
  basicGasCost = tryAsSmallGas(10);
20
20
  tracedRegisters = traceRegisters(IN_OUT_REG, 8);
21
+ static new(currentServiceId, partialState) {
22
+ return new Solicit(currentServiceId, partialState);
23
+ }
21
24
  constructor(currentServiceId, partialState) {
22
25
  this.currentServiceId = currentServiceId;
23
26
  this.partialState = partialState;
@@ -14,7 +14,6 @@ import { Result } from "#@typeberry/utils";
14
14
  import { RequestPreimageError } from "../externalities/partial-state.js";
15
15
  import { PartialStateMock } from "../externalities/partial-state-mock.js";
16
16
  import { HostCallResult } from "../general/results.js";
17
- import { emptyRegistersBuffer } from "../utils.js";
18
17
  import { Solicit } from "./solicit.js";
19
18
  const gas = gasCounter(tryAsGas(0));
20
19
  const RESULT_REG = 7;
@@ -22,14 +21,14 @@ const HASH_START_REG = 7;
22
21
  const LENGTH_REG = 8;
23
22
  function prepareRegsAndMemory(preimageHash, preimageLength, { skipPreimageHash = false } = {}) {
24
23
  const memStart = 2 ** 16;
25
- const registers = new HostCallRegisters(emptyRegistersBuffer());
24
+ const registers = HostCallRegisters.empty();
26
25
  registers.set(HASH_START_REG, tryAsU64(memStart));
27
26
  registers.set(LENGTH_REG, preimageLength);
28
27
  const builder = new MemoryBuilder();
29
28
  if (!skipPreimageHash) {
30
29
  builder.setReadablePages(tryAsMemoryIndex(memStart), tryAsMemoryIndex(memStart + PAGE_SIZE), preimageHash.raw);
31
30
  }
32
- const memory = new HostCallMemory(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
31
+ const memory = HostCallMemory.new(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
33
32
  return {
34
33
  registers,
35
34
  memory,
@@ -39,7 +38,7 @@ describe("HostCalls: Solicit", () => {
39
38
  it("should request a preimage hash", async () => {
40
39
  const accumulate = new PartialStateMock();
41
40
  const currentServiceId = tryAsServiceId(10_000);
42
- const solicit = new Solicit(currentServiceId, accumulate);
41
+ const solicit = Solicit.new(currentServiceId, accumulate);
43
42
  const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4_096));
44
43
  // when
45
44
  await solicit.execute(gas, registers, memory);
@@ -50,7 +49,7 @@ describe("HostCalls: Solicit", () => {
50
49
  it("should fail if hash not available", async () => {
51
50
  const accumulate = new PartialStateMock();
52
51
  const currentServiceId = tryAsServiceId(10_000);
53
- const solicit = new Solicit(currentServiceId, accumulate);
52
+ const solicit = Solicit.new(currentServiceId, accumulate);
54
53
  const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4_096), {
55
54
  skipPreimageHash: true,
56
55
  });
@@ -63,7 +62,7 @@ describe("HostCalls: Solicit", () => {
63
62
  it("should fail if already requested", async () => {
64
63
  const accumulate = new PartialStateMock();
65
64
  const currentServiceId = tryAsServiceId(10_000);
66
- const solicit = new Solicit(currentServiceId, accumulate);
65
+ const solicit = Solicit.new(currentServiceId, accumulate);
67
66
  accumulate.requestPreimageResponse = Result.error(RequestPreimageError.AlreadyRequested, () => "Test: preimage already requested for solicit");
68
67
  const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4_096));
69
68
  // when
@@ -75,7 +74,7 @@ describe("HostCalls: Solicit", () => {
75
74
  it("should fail if already available", async () => {
76
75
  const accumulate = new PartialStateMock();
77
76
  const currentServiceId = tryAsServiceId(10_000);
78
- const solicit = new Solicit(currentServiceId, accumulate);
77
+ const solicit = Solicit.new(currentServiceId, accumulate);
79
78
  accumulate.requestPreimageResponse = Result.error(RequestPreimageError.AlreadyAvailable, () => "Test: preimage already available for solicit");
80
79
  const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4_096));
81
80
  // when
@@ -87,7 +86,7 @@ describe("HostCalls: Solicit", () => {
87
86
  it("should fail if balance too low", async () => {
88
87
  const accumulate = new PartialStateMock();
89
88
  const currentServiceId = tryAsServiceId(10_000);
90
- const solicit = new Solicit(currentServiceId, accumulate);
89
+ const solicit = Solicit.new(currentServiceId, accumulate);
91
90
  accumulate.requestPreimageResponse = Result.error(RequestPreimageError.InsufficientFunds, () => "Test: insufficient funds for solicit");
92
91
  const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4_096));
93
92
  // when
@@ -24,7 +24,8 @@ export declare class Transfer implements HostCallHandler {
24
24
  */
25
25
  basicGasCost: (number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"SmallGas[U32]">) | ((regs: HostCallRegisters) => import("@typeberry/pvm-interface").Gas);
26
26
  tracedRegisters: (number & import("@typeberry/utils").WithOpaque<"register index">)[];
27
- constructor(currentServiceId: ServiceId, partialState: PartialState);
27
+ static new(currentServiceId: ServiceId, partialState: PartialState): Transfer;
28
+ private constructor();
28
29
  execute(gas: IGasCounter, regs: HostCallRegisters, memory: HostCallMemory): Promise<undefined | PvmExecution>;
29
30
  }
30
31
  //# sourceMappingURL=transfer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,kBAAkB,CAAC;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAsC,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,0BAA0B,CAAC;AAErF,OAAO,EAAE,KAAK,YAAY,EAAsC,MAAM,mCAAmC,CAAC;AAU1G;;;;GAIG;AACH,qBAAa,QAAS,YAAW,eAAe;aAmB5B,gBAAgB,EAAE,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAnB/B,KAAK,iIAA0B;IAC/B;;;;;;;;;OASG;IACH,YAAY,wIAED,iBAAiB,6CAAoD;IAEhF,eAAe,uEAAgF;gBAG7E,gBAAgB,EAAE,SAAS,EAC1B,YAAY,EAAE,YAAY;IAGvC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC;CAsDpH"}
1
+ {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,kBAAkB,CAAC;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAsC,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,0BAA0B,CAAC;AAErF,OAAO,EAAE,KAAK,YAAY,EAAsC,MAAM,mCAAmC,CAAC;AAU1G;;;;GAIG;AACH,qBAAa,QAAS,YAAW,eAAe;aAuB5B,gBAAgB,EAAE,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAvB/B,KAAK,iIAA0B;IAC/B;;;;;;;;;OASG;IACH,YAAY,wIAED,iBAAiB,6CAAoD;IAEhF,eAAe,uEAAgF;IAE/F,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY;IAIlE,OAAO;IAKD,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC;CAsDpH"}
@@ -34,6 +34,9 @@ export class Transfer {
34
34
  ? tryAsSmallGas(10)
35
35
  : (regs) => tryAsGas(10n + regs.get(TRANSFER_GAS_FEE_REG));
36
36
  tracedRegisters = traceRegisters(IN_OUT_REG, AMOUNT_REG, TRANSFER_GAS_FEE_REG, MEMO_START_REG);
37
+ static new(currentServiceId, partialState) {
38
+ return new Transfer(currentServiceId, partialState);
39
+ }
37
40
  constructor(currentServiceId, partialState) {
38
41
  this.currentServiceId = currentServiceId;
39
42
  this.partialState = partialState;