@typeberry/lib 0.5.10 → 0.5.11-10b197e

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 (496) hide show
  1. package/README.md +2 -2
  2. package/bin/lib/examples/pvm-usage.test.js +2 -2
  3. package/package.json +1 -1
  4. package/packages/core/codec/descriptor.js +1 -1
  5. package/packages/core/codec/descriptors.js +7 -4
  6. package/packages/core/codec/encoder.d.ts +1 -1
  7. package/packages/core/codec/encoder.d.ts.map +1 -1
  8. package/packages/core/codec/encoder.js +3 -2
  9. package/packages/core/codec/index.test.js +1 -1
  10. package/packages/core/codec/skip.d.ts +2 -1
  11. package/packages/core/codec/skip.d.ts.map +1 -1
  12. package/packages/core/codec/skip.js +3 -0
  13. package/packages/core/codec/view.js +2 -2
  14. package/packages/core/collections/multi-map.d.ts +2 -1
  15. package/packages/core/collections/multi-map.d.ts.map +1 -1
  16. package/packages/core/collections/multi-map.js +3 -0
  17. package/packages/core/collections/multi-map.test.js +2 -2
  18. package/packages/core/concurrent/parent.js +4 -1
  19. package/packages/core/crypto/ed25519.d.ts +2 -5
  20. package/packages/core/crypto/ed25519.d.ts.map +1 -1
  21. package/packages/core/crypto/ed25519.js +4 -1
  22. package/packages/core/hash/hash.d.ts +4 -2
  23. package/packages/core/hash/hash.d.ts.map +1 -1
  24. package/packages/core/hash/hash.js +6 -1
  25. package/packages/core/networking/quic-network.d.ts +3 -2
  26. package/packages/core/networking/quic-network.d.ts.map +1 -1
  27. package/packages/core/networking/quic-network.js +3 -0
  28. package/packages/core/networking/quic-peer.d.ts +2 -1
  29. package/packages/core/networking/quic-peer.d.ts.map +1 -1
  30. package/packages/core/networking/quic-peer.js +5 -2
  31. package/packages/core/networking/quic-stream.d.ts +2 -1
  32. package/packages/core/networking/quic-stream.d.ts.map +1 -1
  33. package/packages/core/networking/quic-stream.js +3 -0
  34. package/packages/core/networking/setup.js +2 -2
  35. package/packages/core/pvm-host-calls/bin.js +2 -2
  36. package/packages/core/pvm-host-calls/ecalli-trace-logger.d.ts +5 -0
  37. package/packages/core/pvm-host-calls/ecalli-trace-logger.d.ts.map +1 -1
  38. package/packages/core/pvm-host-calls/ecalli-trace-logger.js +8 -1
  39. package/packages/core/pvm-host-calls/ecalli-trace-logger.test.js +1 -1
  40. package/packages/core/pvm-host-calls/host-call-memory.d.ts +2 -1
  41. package/packages/core/pvm-host-calls/host-call-memory.d.ts.map +1 -1
  42. package/packages/core/pvm-host-calls/host-call-memory.js +3 -0
  43. package/packages/core/pvm-host-calls/host-call-memory.test.js +1 -1
  44. package/packages/core/pvm-host-calls/host-call-registers.d.ts +5 -1
  45. package/packages/core/pvm-host-calls/host-call-registers.d.ts.map +1 -1
  46. package/packages/core/pvm-host-calls/host-call-registers.js +11 -1
  47. package/packages/core/pvm-host-calls/host-call-registers.test.js +2 -2
  48. package/packages/core/pvm-host-calls/host-calls-executor.d.ts +2 -1
  49. package/packages/core/pvm-host-calls/host-calls-executor.d.ts.map +1 -1
  50. package/packages/core/pvm-host-calls/host-calls-executor.js +5 -2
  51. package/packages/core/pvm-host-calls/host-calls.d.ts +4 -2
  52. package/packages/core/pvm-host-calls/host-calls.d.ts.map +1 -1
  53. package/packages/core/pvm-host-calls/host-calls.js +9 -4
  54. package/packages/core/pvm-host-calls/pvm-instance-manager.js +1 -1
  55. package/packages/core/pvm-interface/pvm.d.ts +2 -0
  56. package/packages/core/pvm-interface/pvm.d.ts.map +1 -1
  57. package/packages/core/pvm-interpreter/args-decoder/args-decoder.js +1 -1
  58. package/packages/core/pvm-interpreter/args-decoder/args-decoder.test.js +3 -3
  59. package/packages/core/pvm-interpreter/args-decoder/args-decoding-results.js +11 -11
  60. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts +2 -1
  61. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts.map +1 -1
  62. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.js +3 -0
  63. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.test.js +2 -2
  64. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts +2 -1
  65. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts.map +1 -1
  66. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.js +3 -0
  67. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.test.js +26 -26
  68. package/packages/core/pvm-interpreter/basic-blocks/basic-blocks.test.js +8 -8
  69. package/packages/core/pvm-interpreter/bin.js +1 -1
  70. package/packages/core/pvm-interpreter/debugger-adapter.d.ts +2 -1
  71. package/packages/core/pvm-interpreter/debugger-adapter.d.ts.map +1 -1
  72. package/packages/core/pvm-interpreter/debugger-adapter.js +6 -3
  73. package/packages/core/pvm-interpreter/gas.js +4 -1
  74. package/packages/core/pvm-interpreter/interpreter.d.ts +2 -1
  75. package/packages/core/pvm-interpreter/interpreter.d.ts.map +1 -1
  76. package/packages/core/pvm-interpreter/interpreter.js +19 -16
  77. package/packages/core/pvm-interpreter/memory/memory-builder.js +2 -2
  78. package/packages/core/pvm-interpreter/memory/memory-builder.test.js +7 -7
  79. package/packages/core/pvm-interpreter/memory/memory.d.ts +2 -1
  80. package/packages/core/pvm-interpreter/memory/memory.d.ts.map +1 -1
  81. package/packages/core/pvm-interpreter/memory/memory.js +4 -1
  82. package/packages/core/pvm-interpreter/memory/memory.test.js +31 -31
  83. package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts +2 -1
  84. package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts.map +1 -1
  85. package/packages/core/pvm-interpreter/memory/pages/readable-page.js +3 -0
  86. package/packages/core/pvm-interpreter/memory/pages/readable-page.test.js +3 -3
  87. package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts +2 -1
  88. package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts.map +1 -1
  89. package/packages/core/pvm-interpreter/memory/pages/writeable-page.js +3 -0
  90. package/packages/core/pvm-interpreter/memory/pages/writeable-page.test.js +4 -4
  91. package/packages/core/pvm-interpreter/ops/bit-ops.d.ts +2 -1
  92. package/packages/core/pvm-interpreter/ops/bit-ops.d.ts.map +1 -1
  93. package/packages/core/pvm-interpreter/ops/bit-ops.js +3 -0
  94. package/packages/core/pvm-interpreter/ops/bit-ops.test.js +3 -3
  95. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts +2 -1
  96. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts.map +1 -1
  97. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.js +3 -0
  98. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.test.js +5 -5
  99. package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts +2 -1
  100. package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts.map +1 -1
  101. package/packages/core/pvm-interpreter/ops/boolean-ops.js +3 -0
  102. package/packages/core/pvm-interpreter/ops/boolean-ops.test.js +3 -3
  103. package/packages/core/pvm-interpreter/ops/branch-ops.d.ts +2 -1
  104. package/packages/core/pvm-interpreter/ops/branch-ops.d.ts.map +1 -1
  105. package/packages/core/pvm-interpreter/ops/branch-ops.js +3 -0
  106. package/packages/core/pvm-interpreter/ops/branch-ops.test.js +4 -4
  107. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts +2 -1
  108. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts.map +1 -1
  109. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.js +3 -0
  110. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.test.js +5 -5
  111. package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts +2 -1
  112. package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts.map +1 -1
  113. package/packages/core/pvm-interpreter/ops/host-call-ops.js +3 -0
  114. package/packages/core/pvm-interpreter/ops/host-call-ops.test.js +2 -2
  115. package/packages/core/pvm-interpreter/ops/load-ops.d.ts +2 -1
  116. package/packages/core/pvm-interpreter/ops/load-ops.d.ts.map +1 -1
  117. package/packages/core/pvm-interpreter/ops/load-ops.js +3 -0
  118. package/packages/core/pvm-interpreter/ops/load-ops.test.js +10 -10
  119. package/packages/core/pvm-interpreter/ops/math-ops.d.ts +2 -1
  120. package/packages/core/pvm-interpreter/ops/math-ops.d.ts.map +1 -1
  121. package/packages/core/pvm-interpreter/ops/math-ops.js +3 -0
  122. package/packages/core/pvm-interpreter/ops/math-ops.test.js +3 -3
  123. package/packages/core/pvm-interpreter/ops/memory-ops.d.ts +2 -1
  124. package/packages/core/pvm-interpreter/ops/memory-ops.d.ts.map +1 -1
  125. package/packages/core/pvm-interpreter/ops/memory-ops.js +3 -0
  126. package/packages/core/pvm-interpreter/ops/memory-ops.test.js +3 -3
  127. package/packages/core/pvm-interpreter/ops/move-ops.d.ts +2 -1
  128. package/packages/core/pvm-interpreter/ops/move-ops.d.ts.map +1 -1
  129. package/packages/core/pvm-interpreter/ops/move-ops.js +3 -0
  130. package/packages/core/pvm-interpreter/ops/move-ops.test.js +3 -3
  131. package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts +2 -1
  132. package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts.map +1 -1
  133. package/packages/core/pvm-interpreter/ops/no-args-ops.js +3 -0
  134. package/packages/core/pvm-interpreter/ops/no-args-ops.test.js +2 -2
  135. package/packages/core/pvm-interpreter/ops/shift-ops.d.ts +2 -1
  136. package/packages/core/pvm-interpreter/ops/shift-ops.d.ts.map +1 -1
  137. package/packages/core/pvm-interpreter/ops/shift-ops.js +3 -0
  138. package/packages/core/pvm-interpreter/ops/shift-ops.test.js +3 -3
  139. package/packages/core/pvm-interpreter/ops/store-ops.d.ts +2 -1
  140. package/packages/core/pvm-interpreter/ops/store-ops.d.ts.map +1 -1
  141. package/packages/core/pvm-interpreter/ops/store-ops.js +3 -0
  142. package/packages/core/pvm-interpreter/ops/store-ops.test.js +7 -7
  143. package/packages/core/pvm-interpreter/ops-dispatchers/no-args-dispatcher.test.js +1 -1
  144. package/packages/core/pvm-interpreter/ops-dispatchers/one-imm-dispatcher.test.js +4 -4
  145. package/packages/core/pvm-interpreter/ops-dispatchers/one-offset-dispatcher.test.js +2 -2
  146. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-ext-imm-dispatcher.test.js +4 -4
  147. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-dispatcher.test.js +7 -7
  148. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-one-offset-dispatcher.test.js +10 -10
  149. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-two-imms-dispatcher.test.js +5 -5
  150. package/packages/core/pvm-interpreter/ops-dispatchers/three-regs-dispatcher.test.js +7 -7
  151. package/packages/core/pvm-interpreter/ops-dispatchers/two-imms-dispatcher.test.js +5 -5
  152. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-dispatcher.test.js +6 -6
  153. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-imm-dispatcher.test.js +11 -11
  154. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-offset-dispatcher.test.js +2 -2
  155. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-two-imms-dispatcher.test.js +14 -14
  156. package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts +5 -2
  157. package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts.map +1 -1
  158. package/packages/core/pvm-interpreter/program-decoder/jump-table.js +9 -4
  159. package/packages/core/pvm-interpreter/program-decoder/jump-table.test.js +6 -6
  160. package/packages/core/pvm-interpreter/program-decoder/mask.d.ts +2 -1
  161. package/packages/core/pvm-interpreter/program-decoder/mask.d.ts.map +1 -1
  162. package/packages/core/pvm-interpreter/program-decoder/mask.js +3 -0
  163. package/packages/core/pvm-interpreter/program-decoder/mask.test.js +10 -10
  164. package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts +2 -1
  165. package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts.map +1 -1
  166. package/packages/core/pvm-interpreter/program-decoder/program-decoder.js +6 -3
  167. package/packages/core/pvm-interpreter/program-decoder/program-decoder.test.js +5 -5
  168. package/packages/core/pvm-interpreter/program.js +3 -3
  169. package/packages/core/pvm-interpreter/registers.d.ts +5 -2
  170. package/packages/core/pvm-interpreter/registers.d.ts.map +1 -1
  171. package/packages/core/pvm-interpreter/registers.js +10 -6
  172. package/packages/core/pvm-interpreter/registers.test.js +10 -10
  173. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts +6 -3
  174. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts.map +1 -1
  175. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.js +11 -2
  176. package/packages/core/pvm-interpreter-ananas/index.d.ts +6 -3
  177. package/packages/core/pvm-interpreter-ananas/index.d.ts.map +1 -1
  178. package/packages/core/pvm-interpreter-ananas/index.js +12 -3
  179. package/packages/core/trie/nodes.d.ts +7 -2
  180. package/packages/core/trie/nodes.d.ts.map +1 -1
  181. package/packages/core/trie/nodes.js +20 -11
  182. package/packages/core/trie/nodesDb.d.ts +3 -1
  183. package/packages/core/trie/nodesDb.d.ts.map +1 -1
  184. package/packages/core/trie/nodesDb.js +6 -0
  185. package/packages/core/trie/trie.js +2 -2
  186. package/packages/extensions/ipc/index.js +5 -2
  187. package/packages/extensions/ipc/jamnp/handler.d.ts +4 -2
  188. package/packages/extensions/ipc/jamnp/handler.d.ts.map +1 -1
  189. package/packages/extensions/ipc/jamnp/handler.js +9 -3
  190. package/packages/extensions/ipc/jamnp/server.js +3 -3
  191. package/packages/extensions/ipc/server.d.ts +2 -1
  192. package/packages/extensions/ipc/server.d.ts.map +1 -1
  193. package/packages/extensions/ipc/server.js +4 -1
  194. package/packages/jam/block/header.js +1 -1
  195. package/packages/jam/block/work-package.d.ts +7 -7
  196. package/packages/jam/block/work-package.d.ts.map +1 -1
  197. package/packages/jam/block/work-package.js +12 -12
  198. package/packages/jam/config/chain-spec.d.ts +2 -1
  199. package/packages/jam/config/chain-spec.d.ts.map +1 -1
  200. package/packages/jam/config/chain-spec.js +5 -2
  201. package/packages/jam/config/network.d.ts +2 -7
  202. package/packages/jam/config/network.d.ts.map +1 -1
  203. package/packages/jam/config/network.js +3 -0
  204. package/packages/jam/config-node/jip-chain-spec.js +1 -1
  205. package/packages/jam/database/blocks.test.js +1 -1
  206. package/packages/jam/database/states.d.ts +2 -1
  207. package/packages/jam/database/states.d.ts.map +1 -1
  208. package/packages/jam/database/states.js +3 -0
  209. package/packages/jam/database/states.test.js +1 -1
  210. package/packages/jam/database-lmdb/blocks.d.ts +2 -1
  211. package/packages/jam/database-lmdb/blocks.d.ts.map +1 -1
  212. package/packages/jam/database-lmdb/blocks.js +3 -0
  213. package/packages/jam/database-lmdb/root.d.ts +2 -1
  214. package/packages/jam/database-lmdb/root.d.ts.map +1 -1
  215. package/packages/jam/database-lmdb/root.js +3 -0
  216. package/packages/jam/database-lmdb/states.d.ts +2 -1
  217. package/packages/jam/database-lmdb/states.d.ts.map +1 -1
  218. package/packages/jam/database-lmdb/states.js +3 -0
  219. package/packages/jam/database-lmdb/states.test.js +9 -9
  220. package/packages/jam/executor/index.d.ts +1 -1
  221. package/packages/jam/executor/index.d.ts.map +1 -1
  222. package/packages/jam/executor/index.js +1 -1
  223. package/packages/jam/executor/pvm-executor.d.ts +9 -2
  224. package/packages/jam/executor/pvm-executor.d.ts.map +1 -1
  225. package/packages/jam/executor/pvm-executor.js +36 -21
  226. package/packages/jam/fuzz-proto/v1/handler.d.ts +2 -1
  227. package/packages/jam/fuzz-proto/v1/handler.d.ts.map +1 -1
  228. package/packages/jam/fuzz-proto/v1/handler.js +3 -0
  229. package/packages/jam/fuzz-proto/v1/handler.test.js +10 -10
  230. package/packages/jam/in-core/externalities/refine.d.ts +18 -8
  231. package/packages/jam/in-core/externalities/refine.d.ts.map +1 -1
  232. package/packages/jam/in-core/externalities/refine.js +86 -7
  233. package/packages/jam/in-core/externalities/refine.test.js +168 -3
  234. package/packages/jam/in-core/in-core.d.ts +9 -23
  235. package/packages/jam/in-core/in-core.d.ts.map +1 -1
  236. package/packages/jam/in-core/in-core.js +19 -186
  237. package/packages/jam/in-core/in-core.test.js +52 -20
  238. package/packages/jam/in-core/is-authorized.d.ts +33 -0
  239. package/packages/jam/in-core/is-authorized.d.ts.map +1 -0
  240. package/packages/jam/in-core/is-authorized.js +72 -0
  241. package/packages/jam/in-core/is-authorized.test.d.ts +2 -0
  242. package/packages/jam/in-core/is-authorized.test.d.ts.map +1 -0
  243. package/packages/jam/in-core/is-authorized.test.js +125 -0
  244. package/packages/jam/in-core/refine.d.ts +34 -0
  245. package/packages/jam/in-core/refine.d.ts.map +1 -0
  246. package/packages/jam/in-core/refine.js +176 -0
  247. package/packages/jam/in-core/refine.test.d.ts +2 -0
  248. package/packages/jam/in-core/refine.test.d.ts.map +1 -0
  249. package/packages/jam/in-core/refine.test.js +6 -0
  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 +12 -9
  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/partial-state.d.ts +1 -1
  303. package/packages/jam/jam-host-calls/externalities/refine-externalities.d.ts +1 -1
  304. package/packages/jam/jam-host-calls/externalities/refine-externalities.d.ts.map +1 -1
  305. package/packages/jam/jam-host-calls/externalities/refine-externalities.test.js +9 -9
  306. package/packages/jam/jam-host-calls/externalities/state-update.d.ts +2 -3
  307. package/packages/jam/jam-host-calls/externalities/state-update.d.ts.map +1 -1
  308. package/packages/jam/jam-host-calls/externalities/state-update.js +5 -2
  309. package/packages/jam/jam-host-calls/externalities/test-accounts.js +2 -2
  310. package/packages/jam/jam-host-calls/general/fetch.d.ts +166 -104
  311. package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
  312. package/packages/jam/jam-host-calls/general/fetch.js +120 -23
  313. package/packages/jam/jam-host-calls/general/fetch.test.js +125 -92
  314. package/packages/jam/jam-host-calls/general/gas.d.ts +2 -1
  315. package/packages/jam/jam-host-calls/general/gas.d.ts.map +1 -1
  316. package/packages/jam/jam-host-calls/general/gas.js +3 -0
  317. package/packages/jam/jam-host-calls/general/gas.test.js +4 -5
  318. package/packages/jam/jam-host-calls/general/info.d.ts +2 -1
  319. package/packages/jam/jam-host-calls/general/info.d.ts.map +1 -1
  320. package/packages/jam/jam-host-calls/general/info.js +3 -0
  321. package/packages/jam/jam-host-calls/general/info.test.js +6 -7
  322. package/packages/jam/jam-host-calls/general/log.d.ts +2 -1
  323. package/packages/jam/jam-host-calls/general/log.d.ts.map +1 -1
  324. package/packages/jam/jam-host-calls/general/log.js +3 -0
  325. package/packages/jam/jam-host-calls/general/lookup.d.ts +2 -1
  326. package/packages/jam/jam-host-calls/general/lookup.d.ts.map +1 -1
  327. package/packages/jam/jam-host-calls/general/lookup.js +3 -0
  328. package/packages/jam/jam-host-calls/general/lookup.test.js +8 -9
  329. package/packages/jam/jam-host-calls/general/read.d.ts +2 -1
  330. package/packages/jam/jam-host-calls/general/read.d.ts.map +1 -1
  331. package/packages/jam/jam-host-calls/general/read.js +3 -0
  332. package/packages/jam/jam-host-calls/general/read.test.js +11 -12
  333. package/packages/jam/jam-host-calls/general/write.d.ts +2 -1
  334. package/packages/jam/jam-host-calls/general/write.d.ts.map +1 -1
  335. package/packages/jam/jam-host-calls/general/write.js +3 -0
  336. package/packages/jam/jam-host-calls/general/write.test.js +10 -11
  337. package/packages/jam/jam-host-calls/refine/export.d.ts +2 -1
  338. package/packages/jam/jam-host-calls/refine/export.d.ts.map +1 -1
  339. package/packages/jam/jam-host-calls/refine/export.js +3 -0
  340. package/packages/jam/jam-host-calls/refine/export.test.js +6 -7
  341. package/packages/jam/jam-host-calls/refine/expunge.d.ts +2 -1
  342. package/packages/jam/jam-host-calls/refine/expunge.d.ts.map +1 -1
  343. package/packages/jam/jam-host-calls/refine/expunge.js +3 -0
  344. package/packages/jam/jam-host-calls/refine/expunge.test.js +3 -4
  345. package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts +2 -1
  346. package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts.map +1 -1
  347. package/packages/jam/jam-host-calls/refine/historical-lookup.js +3 -0
  348. package/packages/jam/jam-host-calls/refine/historical-lookup.test.js +11 -12
  349. package/packages/jam/jam-host-calls/refine/invoke.d.ts +2 -1
  350. package/packages/jam/jam-host-calls/refine/invoke.d.ts.map +1 -1
  351. package/packages/jam/jam-host-calls/refine/invoke.js +4 -1
  352. package/packages/jam/jam-host-calls/refine/invoke.test.js +10 -11
  353. package/packages/jam/jam-host-calls/refine/machine.d.ts +2 -1
  354. package/packages/jam/jam-host-calls/refine/machine.d.ts.map +1 -1
  355. package/packages/jam/jam-host-calls/refine/machine.js +3 -0
  356. package/packages/jam/jam-host-calls/refine/machine.test.js +6 -7
  357. package/packages/jam/jam-host-calls/refine/pages.d.ts +2 -1
  358. package/packages/jam/jam-host-calls/refine/pages.d.ts.map +1 -1
  359. package/packages/jam/jam-host-calls/refine/pages.js +3 -0
  360. package/packages/jam/jam-host-calls/refine/pages.test.js +3 -4
  361. package/packages/jam/jam-host-calls/refine/peek.d.ts +2 -1
  362. package/packages/jam/jam-host-calls/refine/peek.d.ts.map +1 -1
  363. package/packages/jam/jam-host-calls/refine/peek.js +3 -0
  364. package/packages/jam/jam-host-calls/refine/peek.test.js +3 -4
  365. package/packages/jam/jam-host-calls/refine/poke.d.ts +2 -1
  366. package/packages/jam/jam-host-calls/refine/poke.d.ts.map +1 -1
  367. package/packages/jam/jam-host-calls/refine/poke.js +3 -0
  368. package/packages/jam/jam-host-calls/refine/poke.test.js +3 -4
  369. package/packages/jam/jamnp-s/network.js +1 -1
  370. package/packages/jam/jamnp-s/peers.d.ts +2 -1
  371. package/packages/jam/jamnp-s/peers.d.ts.map +1 -1
  372. package/packages/jam/jamnp-s/peers.js +3 -0
  373. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts +4 -2
  374. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts.map +1 -1
  375. package/packages/jam/jamnp-s/protocol/ce-128-block-request.js +6 -0
  376. package/packages/jam/jamnp-s/protocol/ce-128-block-request.test.js +2 -2
  377. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts +4 -2
  378. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts.map +1 -1
  379. package/packages/jam/jamnp-s/protocol/ce-129-state-request.js +6 -0
  380. package/packages/jam/jamnp-s/protocol/ce-129-state-request.test.js +4 -4
  381. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +4 -2
  382. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts.map +1 -1
  383. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.js +6 -0
  384. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.test.js +2 -2
  385. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +6 -3
  386. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts.map +1 -1
  387. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.js +7 -0
  388. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.test.js +2 -2
  389. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts +5 -2
  390. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts.map +1 -1
  391. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.js +7 -0
  392. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.test.js +2 -2
  393. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +4 -2
  394. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts.map +1 -1
  395. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.js +6 -0
  396. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.test.js +2 -2
  397. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +2 -1
  398. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts.map +1 -1
  399. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.js +3 -0
  400. package/packages/jam/jamnp-s/stream-manager.d.ts +2 -1
  401. package/packages/jam/jamnp-s/stream-manager.d.ts.map +1 -1
  402. package/packages/jam/jamnp-s/stream-manager.js +4 -1
  403. package/packages/jam/jamnp-s/tasks/sync.js +4 -4
  404. package/packages/jam/jamnp-s/tasks/sync.test.js +4 -4
  405. package/packages/jam/jamnp-s/tasks/ticket-distribution.js +2 -2
  406. package/packages/jam/jamnp-s/tasks/ticket-distribution.test.js +1 -1
  407. package/packages/jam/node/common.d.ts.map +1 -1
  408. package/packages/jam/node/common.js +3 -3
  409. package/packages/jam/rpc-client/index.d.ts +4 -2
  410. package/packages/jam/rpc-client/index.d.ts.map +1 -1
  411. package/packages/jam/rpc-client/index.js +7 -1
  412. package/packages/jam/state/in-memory-state-view.d.ts +2 -1
  413. package/packages/jam/state/in-memory-state-view.d.ts.map +1 -1
  414. package/packages/jam/state/in-memory-state-view.js +3 -0
  415. package/packages/jam/state/in-memory-state.d.ts +16 -21
  416. package/packages/jam/state/in-memory-state.d.ts.map +1 -1
  417. package/packages/jam/state/in-memory-state.js +10 -6
  418. package/packages/jam/state/in-memory-state.test.js +2 -2
  419. package/packages/jam/state/service.d.ts +2 -6
  420. package/packages/jam/state/service.d.ts.map +1 -1
  421. package/packages/jam/state/service.js +3 -0
  422. package/packages/jam/state/test.utils.js +3 -3
  423. package/packages/jam/state-json/accounts.js +5 -5
  424. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +3 -34
  425. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts.map +1 -1
  426. package/packages/jam/state-merkleization/in-memory-state-codec.js +1 -1
  427. package/packages/jam/state-merkleization/serialized-state-view.d.ts +8 -3
  428. package/packages/jam/state-merkleization/serialized-state-view.d.ts.map +1 -1
  429. package/packages/jam/state-merkleization/serialized-state-view.js +6 -3
  430. package/packages/jam/state-merkleization/serialized-state.d.ts +2 -3
  431. package/packages/jam/state-merkleization/serialized-state.d.ts.map +1 -1
  432. package/packages/jam/state-merkleization/serialized-state.js +10 -2
  433. package/packages/jam/state-merkleization/serialized-state.test.js +1 -1
  434. package/packages/jam/transition/accumulate/accumulate.d.ts.map +1 -1
  435. package/packages/jam/transition/accumulate/accumulate.js +20 -8
  436. package/packages/jam/transition/accumulate/accumulate.test.js +1 -1
  437. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.js +48 -39
  438. package/packages/jam/transition/block-verifier.d.ts +2 -1
  439. package/packages/jam/transition/block-verifier.d.ts.map +1 -1
  440. package/packages/jam/transition/block-verifier.js +3 -0
  441. package/packages/jam/transition/block-verifier.test.js +8 -8
  442. package/packages/jam/transition/chain-stf.d.ts +12 -4
  443. package/packages/jam/transition/chain-stf.d.ts.map +1 -1
  444. package/packages/jam/transition/chain-stf.js +7 -3
  445. package/packages/jam/transition/externalities/accumulate-externalities.d.ts +22 -8
  446. package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
  447. package/packages/jam/transition/externalities/accumulate-externalities.js +49 -29
  448. package/packages/jam/transition/externalities/accumulate-externalities.test.js +661 -101
  449. package/packages/jam/transition/externalities/accumulate-fetch-externalities.d.ts +19 -0
  450. package/packages/jam/transition/externalities/accumulate-fetch-externalities.d.ts.map +1 -0
  451. package/packages/jam/transition/externalities/accumulate-fetch-externalities.js +45 -0
  452. package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.d.ts +2 -0
  453. package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.d.ts.map +1 -0
  454. package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.js +192 -0
  455. package/packages/jam/transition/externalities/fetch-externalities.d.ts +3 -39
  456. package/packages/jam/transition/externalities/fetch-externalities.d.ts.map +1 -1
  457. package/packages/jam/transition/externalities/fetch-externalities.js +2 -88
  458. package/packages/jam/transition/externalities/index.d.ts +3 -0
  459. package/packages/jam/transition/externalities/index.d.ts.map +1 -1
  460. package/packages/jam/transition/externalities/index.js +3 -0
  461. package/packages/jam/transition/externalities/is-authorized-fetch-externalities.d.ts +22 -0
  462. package/packages/jam/transition/externalities/is-authorized-fetch-externalities.d.ts.map +1 -0
  463. package/packages/jam/transition/externalities/is-authorized-fetch-externalities.js +41 -0
  464. package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts +24 -0
  465. package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts.map +1 -0
  466. package/packages/jam/transition/externalities/refine-fetch-externalities.js +59 -0
  467. package/packages/jam/transition/externalities/refine-fetch-externalities.test.d.ts +2 -0
  468. package/packages/jam/transition/externalities/refine-fetch-externalities.test.d.ts.map +1 -0
  469. package/packages/jam/transition/externalities/refine-fetch-externalities.test.js +32 -0
  470. package/packages/jam/transition/hasher.d.ts +2 -1
  471. package/packages/jam/transition/hasher.d.ts.map +1 -1
  472. package/packages/jam/transition/hasher.js +5 -2
  473. package/packages/jam/transition/hasher.test.js +1 -1
  474. package/packages/jam/transition/preimages.test.js +4 -4
  475. package/packages/jam/transition/reports/test.utils.js +1 -1
  476. package/packages/workers/api-node/config.js +4 -4
  477. package/packages/workers/api-node/port.d.ts +2 -1
  478. package/packages/workers/api-node/port.d.ts.map +1 -1
  479. package/packages/workers/api-node/port.js +4 -1
  480. package/packages/workers/api-node/port.test.js +2 -2
  481. package/packages/workers/api-node/protocol.js +2 -2
  482. package/packages/workers/block-authorship/generator.d.ts +13 -2
  483. package/packages/workers/block-authorship/generator.d.ts.map +1 -1
  484. package/packages/workers/block-authorship/generator.js +13 -9
  485. package/packages/workers/block-authorship/generator.test.js +16 -2
  486. package/packages/workers/block-authorship/main.d.ts.map +1 -1
  487. package/packages/workers/block-authorship/main.js +8 -1
  488. package/packages/workers/importer/finality.test.js +1 -1
  489. package/packages/workers/importer/importer.d.ts +23 -6
  490. package/packages/workers/importer/importer.d.ts.map +1 -1
  491. package/packages/workers/importer/importer.js +34 -19
  492. package/packages/workers/importer/main.d.ts.map +1 -1
  493. package/packages/workers/importer/main.js +13 -5
  494. package/packages/jam/transition/externalities/fetch-externalities.test.d.ts +0 -2
  495. package/packages/jam/transition/externalities/fetch-externalities.test.d.ts.map +0 -1
  496. package/packages/jam/transition/externalities/fetch-externalities.test.js +0 -254
@@ -1 +1 @@
1
- {"version":3,"file":"no-args-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/no-args-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,qBAAa,SAAS;IACR,OAAO,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,iBAAiB;IAExD,IAAI;IAIJ,WAAW;CAGZ"}
1
+ {"version":3,"file":"no-args-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/no-args-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,qBAAa,SAAS;IAKA,OAAO,CAAC,iBAAiB;IAJ7C,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,iBAAiB;IAI/C,OAAO;IAEP,IAAI;IAIJ,WAAW;CAGZ"}
@@ -1,6 +1,9 @@
1
1
  import { Result } from "../result.js";
2
2
  export class NoArgsOps {
3
3
  instructionResult;
4
+ static new(instructionResult) {
5
+ return new NoArgsOps(instructionResult);
6
+ }
4
7
  constructor(instructionResult) {
5
8
  this.instructionResult = instructionResult;
6
9
  }
@@ -7,7 +7,7 @@ describe("NoArgsOps", () => {
7
7
  describe("trap", () => {
8
8
  it("should change status to panic", () => {
9
9
  const instructionResult = new InstructionResult();
10
- const noArgsOps = new NoArgsOps(instructionResult);
10
+ const noArgsOps = NoArgsOps.new(instructionResult);
11
11
  noArgsOps.trap();
12
12
  assert.strictEqual(instructionResult.status, Result.PANIC);
13
13
  });
@@ -16,7 +16,7 @@ describe("NoArgsOps", () => {
16
16
  it("should not change anything", () => {
17
17
  const instructionResult = new InstructionResult();
18
18
  const expectedInstructionResult = new InstructionResult();
19
- const noArgsOps = new NoArgsOps(instructionResult);
19
+ const noArgsOps = NoArgsOps.new(instructionResult);
20
20
  noArgsOps.fallthrough();
21
21
  assert.deepStrictEqual(instructionResult, expectedInstructionResult);
22
22
  });
@@ -2,7 +2,8 @@ import type { ImmediateDecoder } from "../args-decoder/decoders/immediate-decode
2
2
  import type { Registers } from "../registers.js";
3
3
  export declare class ShiftOps {
4
4
  private regs;
5
- constructor(regs: Registers);
5
+ static new(regs: Registers): ShiftOps;
6
+ private constructor();
6
7
  shiftLogicalLeftU32(firstIndex: number, secondIndex: number, resultIndex: number): void;
7
8
  shiftLogicalLeftU64(firstIndex: number, secondIndex: number, resultIndex: number): void;
8
9
  shiftLogicalRightU32(firstIndex: number, secondIndex: number, resultIndex: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"shift-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/shift-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD,qBAAa,QAAQ;IACP,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,SAAS;IAEnC,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAOhF,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIhF,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAOjF,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAOjF,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAOpF,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIpF,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIjG,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIjG,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIlG,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAOlG,gCAAgC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIrG,gCAAgC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIrG,uCAAuC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAI5G,uCAAuC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAI5G,wCAAwC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAI7G,wCAAwC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAO7G,2CAA2C,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIhH,2CAA2C,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;CAGjH"}
1
+ {"version":3,"file":"shift-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/shift-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD,qBAAa,QAAQ;IAKC,OAAO,CAAC,IAAI;IAJhC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS;IAI1B,OAAO;IAEP,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAOhF,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIhF,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAOjF,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAOjF,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAOpF,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIpF,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIjG,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIjG,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIlG,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAOlG,gCAAgC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIrG,gCAAgC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIrG,uCAAuC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAI5G,uCAAuC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAI5G,wCAAwC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAI7G,wCAAwC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAO7G,2CAA2C,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIhH,2CAA2C,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;CAGjH"}
@@ -2,6 +2,9 @@ import { MAX_SHIFT_U32, MAX_SHIFT_U64 } from "./math-consts.js";
2
2
  import { unsignedRightShiftBigInt } from "./math-utils.js";
3
3
  export class ShiftOps {
4
4
  regs;
5
+ static new(regs) {
6
+ return new ShiftOps(regs);
7
+ }
5
8
  constructor(regs) {
6
9
  this.regs = regs;
7
10
  }
@@ -6,15 +6,15 @@ import { bigintToUint8ArrayLE } from "../test-utils.js";
6
6
  import { ShiftOps } from "./shift-ops.js";
7
7
  describe("ShiftOps", () => {
8
8
  function prepareData(firstValue, secondValue) {
9
- const regs = new Registers();
9
+ const regs = Registers.empty();
10
10
  const firstRegisterIndex = 0;
11
11
  const secondRegisterIndex = 1;
12
12
  const resultRegisterIndex = 12;
13
13
  regs.setU64(firstRegisterIndex, firstValue);
14
14
  regs.setU64(secondRegisterIndex, secondValue);
15
- const immediate = new ImmediateDecoder();
15
+ const immediate = ImmediateDecoder.new();
16
16
  immediate.setBytes(bigintToUint8ArrayLE(secondValue));
17
- const shiftOps = new ShiftOps(regs);
17
+ const shiftOps = ShiftOps.new(regs);
18
18
  return { regs, shiftOps, immediate, firstRegisterIndex, secondRegisterIndex, resultRegisterIndex };
19
19
  }
20
20
  it("shiftLogicalLeft U32", () => {
@@ -6,7 +6,8 @@ export declare class StoreOps {
6
6
  private regs;
7
7
  private memory;
8
8
  private instructionResult;
9
- constructor(regs: Registers, memory: Memory, instructionResult: InstructionResult);
9
+ static new(regs: Registers, memory: Memory, instructionResult: InstructionResult): StoreOps;
10
+ private constructor();
10
11
  storeU8(address: number, registerIndex: number): void;
11
12
  storeU16(address: number, registerIndex: number): void;
12
13
  storeU32(address: number, registerIndex: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"store-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/store-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD,qBAAa,QAAQ;IAEjB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,iBAAiB;gBAFjB,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,iBAAiB;IAG9C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI9C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI/C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI/C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI/C,UAAU,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKtG,WAAW,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKvG,WAAW,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKvG,WAAW,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKvG,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAIpE,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAIrE,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAIrE,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAIrE,mBAAmB,CACjB,aAAa,EAAE,MAAM,EACrB,qBAAqB,EAAE,gBAAgB,EACvC,sBAAsB,EAAE,gBAAgB;IAM1C,oBAAoB,CAClB,aAAa,EAAE,MAAM,EACrB,qBAAqB,EAAE,gBAAgB,EACvC,sBAAsB,EAAE,gBAAgB;IAM1C,oBAAoB,CAClB,aAAa,EAAE,MAAM,EACrB,qBAAqB,EAAE,gBAAgB,EACvC,sBAAsB,EAAE,gBAAgB;IAM1C,oBAAoB,CAClB,aAAa,EAAE,MAAM,EACrB,qBAAqB,EAAE,gBAAgB,EACvC,sBAAsB,EAAE,gBAAgB;IAM1C,OAAO,CAAC,KAAK;CAad"}
1
+ {"version":3,"file":"store-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/store-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD,qBAAa,QAAQ;IAMjB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,iBAAiB;IAP3B,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB;IAIhF,OAAO;IAMP,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI9C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI/C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI/C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI/C,UAAU,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKtG,WAAW,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKvG,WAAW,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKvG,WAAW,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKvG,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAIpE,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAIrE,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAIrE,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAIrE,mBAAmB,CACjB,aAAa,EAAE,MAAM,EACrB,qBAAqB,EAAE,gBAAgB,EACvC,sBAAsB,EAAE,gBAAgB;IAM1C,oBAAoB,CAClB,aAAa,EAAE,MAAM,EACrB,qBAAqB,EAAE,gBAAgB,EACvC,sBAAsB,EAAE,gBAAgB;IAM1C,oBAAoB,CAClB,aAAa,EAAE,MAAM,EACrB,qBAAqB,EAAE,gBAAgB,EACvC,sBAAsB,EAAE,gBAAgB;IAM1C,oBAAoB,CAClB,aAAa,EAAE,MAAM,EACrB,qBAAqB,EAAE,gBAAgB,EACvC,sBAAsB,EAAE,gBAAgB;IAM1C,OAAO,CAAC,KAAK;CAad"}
@@ -6,6 +6,9 @@ export class StoreOps {
6
6
  regs;
7
7
  memory;
8
8
  instructionResult;
9
+ static new(regs, memory, instructionResult) {
10
+ return new StoreOps(regs, memory, instructionResult);
11
+ }
9
12
  constructor(regs, memory, instructionResult) {
10
13
  this.regs = regs;
11
14
  this.memory = memory;
@@ -21,7 +21,7 @@ const getExpectedPage = (address, contents, length) => {
21
21
  describe("StoreOps", () => {
22
22
  function prepareStoreData(valueToStore, noOfBytes) {
23
23
  const instructionResult = new InstructionResult();
24
- const regs = new Registers();
24
+ const regs = Registers.empty();
25
25
  const address = tryAsMemoryIndex(RESERVED_NUMBER_OF_PAGES * PAGE_SIZE + 1);
26
26
  const registerIndex = 1;
27
27
  regs.setU64(registerIndex, valueToStore);
@@ -30,9 +30,9 @@ describe("StoreOps", () => {
30
30
  const memory = new MemoryBuilder()
31
31
  .setWriteablePages(getStartPageIndex(address), tryAsMemoryIndex(getStartPageIndex(address) + PAGE_SIZE), initialMemory)
32
32
  .finalize(tryAsMemoryIndex(20 * PAGE_SIZE), tryAsSbrkIndex(30 * PAGE_SIZE));
33
- const storeOps = new StoreOps(regs, memory, instructionResult);
33
+ const storeOps = StoreOps.new(regs, memory, instructionResult);
34
34
  const expectedPage = getExpectedPage(address, bigintToUint8ArrayLE(valueToStore, noOfBytes), 32);
35
- const immediate = new ImmediateDecoder();
35
+ const immediate = ImmediateDecoder.new();
36
36
  immediate.setBytes(bigintToUint8ArrayLE(valueToStore, noOfBytes));
37
37
  return { storeOps, address, registerIndex, memory, expectedPage, immediate };
38
38
  }
@@ -98,7 +98,7 @@ describe("StoreOps", () => {
98
98
  });
99
99
  function prepareStoreIndData(valueToStore, noOfBytes, addressRegisterValue, addressImmediateValue) {
100
100
  const instructionResult = new InstructionResult();
101
- const regs = new Registers();
101
+ const regs = Registers.empty();
102
102
  const address = tryAsMemoryIndex(Number(addressRegisterValue + addressImmediateValue));
103
103
  const addressRegisterIndex = 0;
104
104
  const valueRegisterIndex = 1;
@@ -109,11 +109,11 @@ describe("StoreOps", () => {
109
109
  const memory = new MemoryBuilder()
110
110
  .setWriteablePages(getStartPageIndex(address), tryAsMemoryIndex(getStartPageIndex(address) + PAGE_SIZE), initialMemory)
111
111
  .finalize(tryAsMemoryIndex(20 * PAGE_SIZE), tryAsSbrkIndex(30 * PAGE_SIZE));
112
- const storeOps = new StoreOps(regs, memory, instructionResult);
112
+ const storeOps = StoreOps.new(regs, memory, instructionResult);
113
113
  const expectedPage = getExpectedPage(address, bigintToUint8ArrayLE(valueToStore, noOfBytes), 32);
114
- const valueImmediate = new ImmediateDecoder();
114
+ const valueImmediate = ImmediateDecoder.new();
115
115
  valueImmediate.setBytes(bigintToUint8ArrayLE(valueToStore, noOfBytes));
116
- const addressImmediate = new ImmediateDecoder();
116
+ const addressImmediate = ImmediateDecoder.new();
117
117
  addressImmediate.setBytes(bigintToUint8ArrayLE(addressImmediateValue));
118
118
  return {
119
119
  storeOps,
@@ -8,7 +8,7 @@ import { NoArgsOps } from "../ops/index.js";
8
8
  import { NoArgsDispatcher } from "./no-args-dispatcher.js";
9
9
  describe("NoArgsDispatcher", () => {
10
10
  const instructionResult = new InstructionResult();
11
- const noArgsOps = new NoArgsOps(instructionResult);
11
+ const noArgsOps = NoArgsOps.new(instructionResult);
12
12
  const mockFn = mock.fn();
13
13
  function mockAllMethods(obj) {
14
14
  const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
@@ -10,7 +10,7 @@ import { OneImmDispatcher } from "./one-imm-dispatcher.js";
10
10
  describe("OneImmDispatcher", () => {
11
11
  describe("check if it handles expected instructions", () => {
12
12
  const instructionResult = new InstructionResult();
13
- const hostCallOps = new HostCallOps(instructionResult);
13
+ const hostCallOps = HostCallOps.new(instructionResult);
14
14
  const hostCallMock = mock.fn();
15
15
  after(() => {
16
16
  mock.restoreAll();
@@ -22,7 +22,7 @@ describe("OneImmDispatcher", () => {
22
22
  mock.method(hostCallOps, "hostCall", hostCallMock);
23
23
  });
24
24
  const argsMock = {
25
- immediateDecoder: new ImmediateDecoder(),
25
+ immediateDecoder: ImmediateDecoder.new(),
26
26
  };
27
27
  it("should call HostCallOps.hostCall", () => {
28
28
  const dispatcher = new OneImmDispatcher(hostCallOps);
@@ -32,7 +32,7 @@ describe("OneImmDispatcher", () => {
32
32
  });
33
33
  describe("check if it handles other instructions than expected", () => {
34
34
  const instructionResult = new InstructionResult();
35
- const hostCallOps = new HostCallOps(instructionResult);
35
+ const hostCallOps = HostCallOps.new(instructionResult);
36
36
  const mockFn = mock.fn();
37
37
  function mockAllMethods(obj) {
38
38
  const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
@@ -50,7 +50,7 @@ describe("OneImmDispatcher", () => {
50
50
  mockFn.mock.resetCalls();
51
51
  });
52
52
  const argsMock = {
53
- immediateDecoder: new ImmediateDecoder(),
53
+ immediateDecoder: ImmediateDecoder.new(),
54
54
  };
55
55
  const otherInstructions = Object.entries(Instruction)
56
56
  .filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
@@ -9,10 +9,10 @@ import { BranchOps } from "../ops/index.js";
9
9
  import { Registers } from "../registers.js";
10
10
  import { OneOffsetDispatcher } from "./one-offset-dispatcher.js";
11
11
  test("OneOffsetDispatcher", async (t) => {
12
- const regs = new Registers();
12
+ const regs = Registers.empty();
13
13
  const instructionResult = new InstructionResult();
14
14
  const basicBlocks = new BasicBlocks();
15
- const branchOps = new BranchOps(regs, instructionResult, basicBlocks);
15
+ const branchOps = BranchOps.new(regs, instructionResult, basicBlocks);
16
16
  const mockFn = t.mock.fn();
17
17
  function mockAllMethods(obj) {
18
18
  const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
@@ -10,10 +10,10 @@ import { LoadOps } from "../ops/index.js";
10
10
  import { Registers } from "../registers.js";
11
11
  import { OneRegOneExtImmDispatcher } from "./one-reg-one-ext-imm-dispatcher.js";
12
12
  describe("OneRegOneExtImmDispatcher", () => {
13
- const regs = new Registers();
14
- const memory = new Memory();
13
+ const regs = Registers.empty();
14
+ const memory = Memory.new();
15
15
  const instructionResult = new InstructionResult();
16
- const loadOps = new LoadOps(regs, memory, instructionResult);
16
+ const loadOps = LoadOps.new(regs, memory, instructionResult);
17
17
  const mockFn = mock.fn();
18
18
  function mockAllMethods(obj) {
19
19
  const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
@@ -31,7 +31,7 @@ describe("OneRegOneExtImmDispatcher", () => {
31
31
  mockFn.mock.resetCalls();
32
32
  });
33
33
  const argsMock = {
34
- immediateDecoder: new ExtendedWitdthImmediateDecoder(),
34
+ immediateDecoder: ExtendedWitdthImmediateDecoder.new(),
35
35
  };
36
36
  const relevantInstructions = Object.entries(Instruction)
37
37
  .filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
@@ -12,14 +12,14 @@ import { JumpTable } from "../program-decoder/jump-table.js";
12
12
  import { Registers } from "../registers.js";
13
13
  import { OneRegOneImmDispatcher } from "./one-reg-one-imm-dispatcher.js";
14
14
  describe("OneRegOneImmDispatcher", () => {
15
- const regs = new Registers();
16
- const memory = new Memory();
17
- const jumpTable = new JumpTable(1, new Uint8Array([1]));
15
+ const regs = Registers.empty();
16
+ const memory = Memory.new();
17
+ const jumpTable = JumpTable.fromRaw(1, new Uint8Array([1]));
18
18
  const instructionResult = new InstructionResult();
19
- const storeOps = new StoreOps(regs, memory, instructionResult);
20
- const loadOps = new LoadOps(regs, memory, instructionResult);
19
+ const storeOps = StoreOps.new(regs, memory, instructionResult);
20
+ const loadOps = LoadOps.new(regs, memory, instructionResult);
21
21
  const basicBlocks = new BasicBlocks();
22
- const dynamicJumpOps = new DynamicJumpOps(regs, jumpTable, instructionResult, basicBlocks);
22
+ const dynamicJumpOps = DynamicJumpOps.new(regs, jumpTable, instructionResult, basicBlocks);
23
23
  const mockFn = mock.fn();
24
24
  function mockAllMethods(obj) {
25
25
  const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
@@ -39,7 +39,7 @@ describe("OneRegOneImmDispatcher", () => {
39
39
  mockFn.mock.resetCalls();
40
40
  });
41
41
  const argsMock = {
42
- immediateDecoder: new ImmediateDecoder(),
42
+ immediateDecoder: ImmediateDecoder.new(),
43
43
  };
44
44
  const relevantInstructions = Object.entries(Instruction)
45
45
  .filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
@@ -12,17 +12,17 @@ import { Registers } from "../registers.js";
12
12
  import { OneRegOneImmOneOffsetDispatcher } from "./one-reg-one-imm-one-offset-dispatcher.js";
13
13
  describe("OneRegOneImmOneOffsetDispatcher", () => {
14
14
  describe("check if it handles expected instructions", () => {
15
- const regs = new Registers();
16
- const memory = new Memory();
15
+ const regs = Registers.empty();
16
+ const memory = Memory.new();
17
17
  const instructionResult = new InstructionResult();
18
18
  const basicBlocks = new BasicBlocks();
19
- const branchOps = new BranchOps(regs, instructionResult, basicBlocks);
20
- const loadOps = new LoadOps(regs, memory, instructionResult);
19
+ const branchOps = BranchOps.new(regs, instructionResult, basicBlocks);
20
+ const loadOps = LoadOps.new(regs, memory, instructionResult);
21
21
  after(() => {
22
22
  mock.restoreAll();
23
23
  });
24
24
  const argsMock = {
25
- immediateDecoder: new ImmediateDecoder(),
25
+ immediateDecoder: ImmediateDecoder.new(),
26
26
  };
27
27
  it("it should call BranchOps.jump and LoadOps.loadImmediate", () => {
28
28
  const jumpMockFunction = mock.fn();
@@ -106,12 +106,12 @@ describe("OneRegOneImmOneOffsetDispatcher", () => {
106
106
  });
107
107
  });
108
108
  describe("check if it handles other instructions than expected", () => {
109
- const regs = new Registers();
110
- const memory = new Memory();
109
+ const regs = Registers.empty();
110
+ const memory = Memory.new();
111
111
  const instructionResult = new InstructionResult();
112
112
  const basicBlocks = new BasicBlocks();
113
- const branchOps = new BranchOps(regs, instructionResult, basicBlocks);
114
- const loadOps = new LoadOps(regs, memory, instructionResult);
113
+ const branchOps = BranchOps.new(regs, instructionResult, basicBlocks);
114
+ const loadOps = LoadOps.new(regs, memory, instructionResult);
115
115
  const mockFn = mock.fn();
116
116
  function mockAllMethods(obj) {
117
117
  const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
@@ -130,7 +130,7 @@ describe("OneRegOneImmOneOffsetDispatcher", () => {
130
130
  mockFn.mock.resetCalls();
131
131
  });
132
132
  const argsMock = {
133
- immediateDecoder: new ImmediateDecoder(),
133
+ immediateDecoder: ImmediateDecoder.new(),
134
134
  };
135
135
  const otherInstructions = Object.entries(Instruction)
136
136
  .filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
@@ -10,10 +10,10 @@ import { StoreOps } from "../ops/index.js";
10
10
  import { Registers } from "../registers.js";
11
11
  import { OneRegTwoImmsDispatcher } from "./one-reg-two-imms-dispatcher.js";
12
12
  describe("OneRegTwoImmsDispatcher", () => {
13
- const regs = new Registers();
14
- const memory = new Memory();
13
+ const regs = Registers.empty();
14
+ const memory = Memory.new();
15
15
  const instructionResult = new InstructionResult();
16
- const storeOps = new StoreOps(regs, memory, instructionResult);
16
+ const storeOps = StoreOps.new(regs, memory, instructionResult);
17
17
  const mockFn = mock.fn();
18
18
  function mockAllMethods(obj) {
19
19
  const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
@@ -31,8 +31,8 @@ describe("OneRegTwoImmsDispatcher", () => {
31
31
  mockFn.mock.resetCalls();
32
32
  });
33
33
  const argsMock = {
34
- firstImmediateDecoder: new ImmediateDecoder(),
35
- secondImmediateDecoder: new ImmediateDecoder(),
34
+ firstImmediateDecoder: ImmediateDecoder.new(),
35
+ secondImmediateDecoder: ImmediateDecoder.new(),
36
36
  };
37
37
  const relevantInstructions = Object.entries(Instruction)
38
38
  .filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
@@ -7,13 +7,13 @@ import { BitOps, BitRotationOps, BooleanOps, MathOps, MoveOps, ShiftOps } from "
7
7
  import { Registers } from "../registers.js";
8
8
  import { ThreeRegsDispatcher } from "./three-regs-dispatcher.js";
9
9
  test("ThreeRegsDispatcher", async (t) => {
10
- const regs = new Registers();
11
- const mathOps = new MathOps(regs);
12
- const bitOps = new BitOps(regs);
13
- const shiftOps = new ShiftOps(regs);
14
- const booleanOps = new BooleanOps(regs);
15
- const moveOps = new MoveOps(regs);
16
- const bitRotationOps = new BitRotationOps(regs);
10
+ const regs = Registers.empty();
11
+ const mathOps = MathOps.new(regs);
12
+ const bitOps = BitOps.new(regs);
13
+ const shiftOps = ShiftOps.new(regs);
14
+ const booleanOps = BooleanOps.new(regs);
15
+ const moveOps = MoveOps.new(regs);
16
+ const bitRotationOps = BitRotationOps.new(regs);
17
17
  const mockFn = t.mock.fn();
18
18
  function mockAllMethods(obj) {
19
19
  const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
@@ -10,10 +10,10 @@ import { StoreOps } from "../ops/index.js";
10
10
  import { Registers } from "../registers.js";
11
11
  import { TwoImmsDispatcher } from "./two-imms-dispatcher.js";
12
12
  describe("TwoImmsDispatcher", () => {
13
- const regs = new Registers();
14
- const memory = new Memory();
13
+ const regs = Registers.empty();
14
+ const memory = Memory.new();
15
15
  const instructionResult = new InstructionResult();
16
- const storeOps = new StoreOps(regs, memory, instructionResult);
16
+ const storeOps = StoreOps.new(regs, memory, instructionResult);
17
17
  const mockFn = mock.fn();
18
18
  function mockAllMethods(obj) {
19
19
  const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
@@ -31,8 +31,8 @@ describe("TwoImmsDispatcher", () => {
31
31
  mockFn.mock.resetCalls();
32
32
  });
33
33
  const argsMock = {
34
- firstImmediateDecoder: new ImmediateDecoder(),
35
- secondImmediateDecoder: new ImmediateDecoder(),
34
+ firstImmediateDecoder: ImmediateDecoder.new(),
35
+ secondImmediateDecoder: ImmediateDecoder.new(),
36
36
  };
37
37
  const relevantInstructions = Object.entries(Instruction)
38
38
  .filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
@@ -10,12 +10,12 @@ import { Registers } from "../registers.js";
10
10
  import { TwoRegsDispatcher } from "./two-regs-dispatcher.js";
11
11
  describe("TwoRegsDispatcher", () => {
12
12
  const instructionResult = new InstructionResult();
13
- const regs = new Registers();
14
- const memory = new Memory();
15
- const memoryOps = new MemoryOps(regs, memory, instructionResult);
16
- const moveOps = new MoveOps(regs);
17
- const bitOps = new BitOps(regs);
18
- const bitRotationOps = new BitRotationOps(regs);
13
+ const regs = Registers.empty();
14
+ const memory = Memory.new();
15
+ const memoryOps = MemoryOps.new(regs, memory, instructionResult);
16
+ const moveOps = MoveOps.new(regs);
17
+ const bitOps = BitOps.new(regs);
18
+ const bitRotationOps = BitRotationOps.new(regs);
19
19
  const mockFn = mock.fn();
20
20
  function mockAllMethods(obj) {
21
21
  const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
@@ -11,16 +11,16 @@ import { Registers } from "../registers.js";
11
11
  import { TwoRegsOneImmDispatcher } from "./two-regs-one-imm-dispatcher.js";
12
12
  describe("TwoRegsOneImmDispatcher", () => {
13
13
  const instructionResult = new InstructionResult();
14
- const regs = new Registers();
15
- const memory = new Memory();
16
- const mathOps = new MathOps(regs);
17
- const shiftOps = new ShiftOps(regs);
18
- const bitOps = new BitOps(regs);
19
- const booleanOps = new BooleanOps(regs);
20
- const moveOps = new MoveOps(regs);
21
- const storeOps = new StoreOps(regs, memory, instructionResult);
22
- const loadOps = new LoadOps(regs, memory, instructionResult);
23
- const bitRotationOps = new BitRotationOps(regs);
14
+ const regs = Registers.empty();
15
+ const memory = Memory.new();
16
+ const mathOps = MathOps.new(regs);
17
+ const shiftOps = ShiftOps.new(regs);
18
+ const bitOps = BitOps.new(regs);
19
+ const booleanOps = BooleanOps.new(regs);
20
+ const moveOps = MoveOps.new(regs);
21
+ const storeOps = StoreOps.new(regs, memory, instructionResult);
22
+ const loadOps = LoadOps.new(regs, memory, instructionResult);
23
+ const bitRotationOps = BitRotationOps.new(regs);
24
24
  const mockFn = mock.fn();
25
25
  function mockAllMethods(obj) {
26
26
  const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
@@ -45,7 +45,7 @@ describe("TwoRegsOneImmDispatcher", () => {
45
45
  mockFn.mock.resetCalls();
46
46
  });
47
47
  const argsMock = {
48
- immediateDecoder: new ImmediateDecoder(),
48
+ immediateDecoder: ImmediateDecoder.new(),
49
49
  };
50
50
  const relevantInstructions = Object.entries(Instruction)
51
51
  .filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
@@ -9,10 +9,10 @@ import { BranchOps } from "../ops/index.js";
9
9
  import { Registers } from "../registers.js";
10
10
  import { TwoRegsOneOffsetDispatcher } from "./two-regs-one-offset-dispatcher.js";
11
11
  test("TwoRegsOneOffsetDispatcher", async (t) => {
12
- const regs = new Registers();
12
+ const regs = Registers.empty();
13
13
  const instructionResult = new InstructionResult();
14
14
  const basicBlocks = new BasicBlocks();
15
- const branchOps = new BranchOps(regs, instructionResult, basicBlocks);
15
+ const branchOps = BranchOps.new(regs, instructionResult, basicBlocks);
16
16
  const mockFn = t.mock.fn();
17
17
  function mockAllMethods(obj) {
18
18
  const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
@@ -13,13 +13,13 @@ import { Registers } from "../registers.js";
13
13
  import { TwoRegsTwoImmsDispatcher } from "./two-regs-two-imms-dispatcher.js";
14
14
  describe("TwoRegsTwoImmsDispatcher", () => {
15
15
  describe("check if it handles expected instructions", () => {
16
- const regs = new Registers();
17
- const memory = new Memory();
18
- const jumpTable = new JumpTable(1, new Uint8Array([1]));
16
+ const regs = Registers.empty();
17
+ const memory = Memory.new();
18
+ const jumpTable = JumpTable.fromRaw(1, new Uint8Array([1]));
19
19
  const instructionResult = new InstructionResult();
20
- const loadOps = new LoadOps(regs, memory, instructionResult);
20
+ const loadOps = LoadOps.new(regs, memory, instructionResult);
21
21
  const basicBlocks = new BasicBlocks();
22
- const dynamicJumpOps = new DynamicJumpOps(regs, jumpTable, instructionResult, basicBlocks);
22
+ const dynamicJumpOps = DynamicJumpOps.new(regs, jumpTable, instructionResult, basicBlocks);
23
23
  const loadImmediateMock = mock.fn();
24
24
  const jumpIndMock = mock.fn();
25
25
  after(() => {
@@ -36,8 +36,8 @@ describe("TwoRegsTwoImmsDispatcher", () => {
36
36
  const argsMock = {
37
37
  firstRegisterIndex: 1,
38
38
  secondRegisterIndex: 2,
39
- firstImmediateDecoder: new ImmediateDecoder(),
40
- secondImmediateDecoder: new ImmediateDecoder(),
39
+ firstImmediateDecoder: ImmediateDecoder.new(),
40
+ secondImmediateDecoder: ImmediateDecoder.new(),
41
41
  };
42
42
  it("should call LoadOps.loadImmediate", () => {
43
43
  const dispatcher = new TwoRegsTwoImmsDispatcher(loadOps, dynamicJumpOps);
@@ -52,12 +52,12 @@ describe("TwoRegsTwoImmsDispatcher", () => {
52
52
  });
53
53
  describe("check if it handles other instructions than expected", () => {
54
54
  const instructionResult = new InstructionResult();
55
- const regs = new Registers();
56
- const memory = new Memory();
57
- const loadOps = new LoadOps(regs, memory, instructionResult);
58
- const jumpTable = new JumpTable(1, new Uint8Array([1]));
55
+ const regs = Registers.empty();
56
+ const memory = Memory.new();
57
+ const loadOps = LoadOps.new(regs, memory, instructionResult);
58
+ const jumpTable = JumpTable.fromRaw(1, new Uint8Array([1]));
59
59
  const basicBlocks = new BasicBlocks();
60
- const dynamicJumpOps = new DynamicJumpOps(regs, jumpTable, instructionResult, basicBlocks);
60
+ const dynamicJumpOps = DynamicJumpOps.new(regs, jumpTable, instructionResult, basicBlocks);
61
61
  const mockFn = mock.fn();
62
62
  function mockAllMethods(obj) {
63
63
  const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
@@ -76,8 +76,8 @@ describe("TwoRegsTwoImmsDispatcher", () => {
76
76
  mockFn.mock.resetCalls();
77
77
  });
78
78
  const argsMock = {
79
- firstImmediateDecoder: new ImmediateDecoder(),
80
- secondImmediateDecoder: new ImmediateDecoder(),
79
+ firstImmediateDecoder: ImmediateDecoder.new(),
80
+ secondImmediateDecoder: ImmediateDecoder.new(),
81
81
  };
82
82
  const otherInstructions = Object.entries(Instruction)
83
83
  .filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
@@ -1,10 +1,13 @@
1
1
  export declare class JumpTable {
2
2
  private indices;
3
- constructor(itemByteLength: number, bytes: Uint8Array);
3
+ /** Create an empty jump table. */
4
+ static empty(): JumpTable;
5
+ /** Decode a jump table from a raw bytes buffer. */
6
+ static fromRaw(itemByteLength: number, bytes: Uint8Array): JumpTable;
7
+ private constructor();
4
8
  private decodeNext;
5
9
  hasIndex(index: number): boolean;
6
10
  getDestination(index: number): number;
7
- static empty(): JumpTable;
8
11
  getSize(): number;
9
12
  copyFrom(jt: JumpTable): void;
10
13
  }
@@ -1 +1 @@
1
- {"version":3,"file":"jump-table.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/program-decoder/jump-table.ts"],"names":[],"mappings":"AAEA,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAc;gBAEjB,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAerD,OAAO,CAAC,UAAU;IAgBlB,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,cAAc,CAAC,KAAK,EAAE,MAAM;IAI5B,MAAM,CAAC,KAAK;IAIZ,OAAO;IAIP,QAAQ,CAAC,EAAE,EAAE,SAAS;CAGvB"}
1
+ {"version":3,"file":"jump-table.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/program-decoder/jump-table.ts"],"names":[],"mappings":"AAEA,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAc;IAE7B,kCAAkC;IAClC,MAAM,CAAC,KAAK;IAIZ,mDAAmD;IACnD,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAQxD,OAAO;IAUP,OAAO,CAAC,UAAU;IAgBlB,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,cAAc,CAAC,KAAK,EAAE,MAAM;IAI5B,OAAO;IAIP,QAAQ,CAAC,EAAE,EAAE,SAAS;CAGvB"}
@@ -1,11 +1,19 @@
1
1
  import { check } from "#@typeberry/utils";
2
2
  export class JumpTable {
3
3
  indices;
4
- constructor(itemByteLength, bytes) {
4
+ /** Create an empty jump table. */
5
+ static empty() {
6
+ return new JumpTable(0, new Uint8Array());
7
+ }
8
+ /** Decode a jump table from a raw bytes buffer. */
9
+ static fromRaw(itemByteLength, bytes) {
5
10
  check `
6
11
  ${itemByteLength === 0 || bytes.length % itemByteLength === 0}
7
12
  Length of jump table (${bytes.length}) should be a multiple of item lenght (${itemByteLength})!
8
13
  `;
14
+ return new JumpTable(itemByteLength, bytes);
15
+ }
16
+ constructor(itemByteLength, bytes) {
9
17
  const length = itemByteLength === 0 ? 0 : bytes.length / itemByteLength;
10
18
  this.indices = new Uint32Array(length);
11
19
  for (let i = 0; i < length; i++) {
@@ -31,9 +39,6 @@ export class JumpTable {
31
39
  getDestination(index) {
32
40
  return this.indices[index];
33
41
  }
34
- static empty() {
35
- return new JumpTable(0, new Uint8Array());
36
- }
37
42
  getSize() {
38
43
  return this.indices.length;
39
44
  }