@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
@@ -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
  }
@@ -5,7 +5,7 @@ describe("JumpTable", () => {
5
5
  it("should return true when an index exist in jump table", () => {
6
6
  const jumpTableItemLength = 4;
7
7
  const bytes = new Uint8Array([0x78, 0x56, 0x34, 0x12]);
8
- const jumpTable = new JumpTable(jumpTableItemLength, bytes);
8
+ const jumpTable = JumpTable.fromRaw(jumpTableItemLength, bytes);
9
9
  const indexToCheck = 0;
10
10
  const result = jumpTable.hasIndex(indexToCheck);
11
11
  assert.strictEqual(result, true);
@@ -13,7 +13,7 @@ describe("JumpTable", () => {
13
13
  it("should return false when an index not exist in jump table", () => {
14
14
  const jumpTableItemLength = 4;
15
15
  const bytes = new Uint8Array([0x78, 0x56, 0x34, 0x12]);
16
- const jumpTable = new JumpTable(jumpTableItemLength, bytes);
16
+ const jumpTable = JumpTable.fromRaw(jumpTableItemLength, bytes);
17
17
  const indexToCheck = 5;
18
18
  const result = jumpTable.hasIndex(indexToCheck);
19
19
  assert.strictEqual(result, false);
@@ -22,7 +22,7 @@ describe("JumpTable", () => {
22
22
  const jumpTableItemLength = 4;
23
23
  const expectedValue = 0x12_34_56_78;
24
24
  const bytes = new Uint8Array([0xff, 0xff, 0xff, 0xff, 0x78, 0x56, 0x34, 0x12]);
25
- const jumpTable = new JumpTable(jumpTableItemLength, bytes);
25
+ const jumpTable = JumpTable.fromRaw(jumpTableItemLength, bytes);
26
26
  const indexToCheck = 1;
27
27
  const result = jumpTable.getDestination(indexToCheck);
28
28
  assert.strictEqual(result, expectedValue);
@@ -31,7 +31,7 @@ describe("JumpTable", () => {
31
31
  const jumpTableItemLength = 8;
32
32
  const expectedValue = 0xff_ff_ff_ff;
33
33
  const bytes = new Uint8Array([0xff, 0xff, 0xff, 0xff, 0x78, 0x56, 0x34, 0x12]);
34
- const jumpTable = new JumpTable(jumpTableItemLength, bytes);
34
+ const jumpTable = JumpTable.fromRaw(jumpTableItemLength, bytes);
35
35
  const indexToCheck = 0;
36
36
  const result = jumpTable.getDestination(indexToCheck);
37
37
  assert.strictEqual(result, expectedValue);
@@ -40,7 +40,7 @@ describe("JumpTable", () => {
40
40
  const jumpTableItemLength = 8;
41
41
  const expectedValue = 0x00_00_00_00_12_34_56_78;
42
42
  const bytes = new Uint8Array([0x78, 0x56, 0x34, 0x12, 0, 0, 0, 0]);
43
- const jumpTable = new JumpTable(jumpTableItemLength, bytes);
43
+ const jumpTable = JumpTable.fromRaw(jumpTableItemLength, bytes);
44
44
  const indexToCheck = 0;
45
45
  const result = jumpTable.getDestination(indexToCheck);
46
46
  assert.strictEqual(result, expectedValue);
@@ -50,7 +50,7 @@ describe("JumpTable", () => {
50
50
  const expectedValue = 2 ** 32 - 1;
51
51
  const bytes = new Uint8Array(255);
52
52
  bytes.fill(1);
53
- const jumpTable = new JumpTable(jumpTableItemLength, bytes);
53
+ const jumpTable = JumpTable.fromRaw(jumpTableItemLength, bytes);
54
54
  const indexToCheck = 0;
55
55
  const result = jumpTable.getDestination(indexToCheck);
56
56
  assert.strictEqual(result, expectedValue);
@@ -17,7 +17,8 @@ export declare class Mask {
17
17
  * There are instructions at indices `0, 3, 5, 9`.
18
18
  */
19
19
  private lookupTableForward;
20
- constructor(mask: BitVec);
20
+ static new(mask: BitVec): Mask;
21
+ private constructor();
21
22
  isInstruction(index: number): boolean;
22
23
  getNoOfBytesToNextInstruction(index: number): number;
23
24
  private buildLookupTableForward;
@@ -1 +1 @@
1
- {"version":3,"file":"mask.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/program-decoder/mask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAQ1C;;;;GAIG;AACH,qBAAa,IAAI;IACf;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB,CAAa;gBAE3B,IAAI,EAAE,MAAM;IAIxB,aAAa,CAAC,KAAK,EAAE,MAAM;IAI3B,6BAA6B,CAAC,KAAK,EAAE,MAAM;IAK3C,OAAO,CAAC,uBAAuB;IAc/B,MAAM,CAAC,KAAK;CAGb"}
1
+ {"version":3,"file":"mask.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/program-decoder/mask.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAQ1C;;;;GAIG;AACH,qBAAa,IAAI;IACf;;;;;;;;;;OAUG;IACH,OAAO,CAAC,kBAAkB,CAAa;IAEvC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM;IAIvB,OAAO;IAIP,aAAa,CAAC,KAAK,EAAE,MAAM;IAI3B,6BAA6B,CAAC,KAAK,EAAE,MAAM;IAK3C,OAAO,CAAC,uBAAuB;IAc/B,MAAM,CAAC,KAAK;CAGb"}
@@ -22,6 +22,9 @@ export class Mask {
22
22
  * There are instructions at indices `0, 3, 5, 9`.
23
23
  */
24
24
  lookupTableForward;
25
+ static new(mask) {
26
+ return new Mask(mask);
27
+ }
25
28
  constructor(mask) {
26
29
  this.lookupTableForward = this.buildLookupTableForward(mask);
27
30
  }
@@ -8,7 +8,7 @@ describe("Mask", () => {
8
8
  const input = [0b0000_0001];
9
9
  const index = 0;
10
10
  const expectedResult = true;
11
- const mask = new Mask(BitVec.fromBlob(new Uint8Array(input), 3));
11
+ const mask = Mask.new(BitVec.fromBlob(new Uint8Array(input), 3));
12
12
  const result = mask.isInstruction(index);
13
13
  assert.strictEqual(result, expectedResult);
14
14
  });
@@ -16,7 +16,7 @@ describe("Mask", () => {
16
16
  const input = [0b0000_0001];
17
17
  const index = 1;
18
18
  const expectedResult = false;
19
- const mask = new Mask(BitVec.fromBlob(new Uint8Array(input), 3));
19
+ const mask = Mask.new(BitVec.fromBlob(new Uint8Array(input), 3));
20
20
  const result = mask.isInstruction(index);
21
21
  assert.strictEqual(result, expectedResult);
22
22
  });
@@ -24,7 +24,7 @@ describe("Mask", () => {
24
24
  const input = [0x0, 0b0000_0001];
25
25
  const index = 8;
26
26
  const expectedResult = true;
27
- const mask = new Mask(BitVec.fromBlob(new Uint8Array(input), 11));
27
+ const mask = Mask.new(BitVec.fromBlob(new Uint8Array(input), 11));
28
28
  const result = mask.isInstruction(index);
29
29
  assert.strictEqual(result, expectedResult);
30
30
  });
@@ -32,7 +32,7 @@ describe("Mask", () => {
32
32
  const input = [0xff, 0b0000_0001];
33
33
  const index = 10;
34
34
  const expectedResult = false;
35
- const mask = new Mask(BitVec.fromBlob(new Uint8Array(input), 11));
35
+ const mask = Mask.new(BitVec.fromBlob(new Uint8Array(input), 11));
36
36
  const result = mask.isInstruction(index);
37
37
  assert.strictEqual(result, expectedResult);
38
38
  });
@@ -42,7 +42,7 @@ describe("Mask", () => {
42
42
  const input = [0b0000_0001];
43
43
  const index = 1;
44
44
  const expectedResult = 2;
45
- const mask = new Mask(BitVec.fromBlob(new Uint8Array(input), 3));
45
+ const mask = Mask.new(BitVec.fromBlob(new Uint8Array(input), 3));
46
46
  const result = mask.getNoOfBytesToNextInstruction(index);
47
47
  assert.strictEqual(result, expectedResult);
48
48
  });
@@ -50,7 +50,7 @@ describe("Mask", () => {
50
50
  const input = [0b0000_1001];
51
51
  const index = 1;
52
52
  const expectedResult = 2;
53
- const mask = new Mask(BitVec.fromBlob(new Uint8Array(input), 8));
53
+ const mask = Mask.new(BitVec.fromBlob(new Uint8Array(input), 8));
54
54
  const result = mask.getNoOfBytesToNextInstruction(index);
55
55
  assert.strictEqual(result, expectedResult);
56
56
  });
@@ -58,7 +58,7 @@ describe("Mask", () => {
58
58
  const input = [0b0000_0001];
59
59
  const index = 0;
60
60
  const expectedResult = 0;
61
- const mask = new Mask(BitVec.fromBlob(new Uint8Array(input), 3));
61
+ const mask = Mask.new(BitVec.fromBlob(new Uint8Array(input), 3));
62
62
  const result = mask.getNoOfBytesToNextInstruction(index);
63
63
  assert.strictEqual(result, expectedResult);
64
64
  });
@@ -66,7 +66,7 @@ describe("Mask", () => {
66
66
  const input = [0b0001_1001, 0b0001_1000];
67
67
  const index = 5;
68
68
  const expectedResult = 6;
69
- const mask = new Mask(BitVec.fromBlob(new Uint8Array(input), 16));
69
+ const mask = Mask.new(BitVec.fromBlob(new Uint8Array(input), 16));
70
70
  const result = mask.getNoOfBytesToNextInstruction(index);
71
71
  assert.strictEqual(result, expectedResult);
72
72
  });
@@ -74,7 +74,7 @@ describe("Mask", () => {
74
74
  const input = [0b0001_1001];
75
75
  const index = 5;
76
76
  const expectedResult = 3;
77
- const mask = new Mask(BitVec.fromBlob(new Uint8Array(input), 8));
77
+ const mask = Mask.new(BitVec.fromBlob(new Uint8Array(input), 8));
78
78
  const result = mask.getNoOfBytesToNextInstruction(index);
79
79
  assert.strictEqual(result, expectedResult);
80
80
  });
@@ -82,7 +82,7 @@ describe("Mask", () => {
82
82
  const input = [0b0000_0001, 0b0000_0000, 0b0000_0000, 0b1000_0000];
83
83
  const index = 1;
84
84
  const expectedResult = 25;
85
- const mask = new Mask(BitVec.fromBlob(new Uint8Array(input), input.length * 8));
85
+ const mask = Mask.new(BitVec.fromBlob(new Uint8Array(input), input.length * 8));
86
86
  const result = mask.getNoOfBytesToNextInstruction(index);
87
87
  assert.strictEqual(result, expectedResult);
88
88
  });