@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
@@ -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 BooleanOps {
4
4
  private regs;
5
- constructor(regs: Registers);
5
+ static new(regs: Registers): BooleanOps;
6
+ private constructor();
6
7
  setLessThanSignedImmediate(firstIndex: number, immediate: ImmediateDecoder, resultIndex: number): void;
7
8
  setLessThanUnsignedImmediate(firstIndex: number, immediate: ImmediateDecoder, resultIndex: number): void;
8
9
  setLessThanSigned(firstIndex: number, secondIndex: number, resultIndex: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"boolean-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/boolean-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,UAAU;IACT,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,SAAS;IAEnC,0BAA0B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAI/F,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIjG,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAI9E,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIhF,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIlG,+BAA+B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;CAGrG"}
1
+ {"version":3,"file":"boolean-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/boolean-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,UAAU;IAKD,OAAO,CAAC,IAAI;IAJhC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS;IAI1B,OAAO;IAEP,0BAA0B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAI/F,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIjG,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAI9E,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIhF,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIlG,+BAA+B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;CAGrG"}
@@ -1,5 +1,8 @@
1
1
  export class BooleanOps {
2
2
  regs;
3
+ static new(regs) {
4
+ return new BooleanOps(regs);
5
+ }
3
6
  constructor(regs) {
4
7
  this.regs = regs;
5
8
  }
@@ -6,16 +6,16 @@ import { bigintToUint8ArrayLE } from "../test-utils.js";
6
6
  import { BooleanOps } from "./boolean-ops.js";
7
7
  describe("BooleanOps", () => {
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
15
  regs.setU64(resultRegisterIndex, 0xdeadbeefn);
16
- const immediate = new ImmediateDecoder();
16
+ const immediate = ImmediateDecoder.new();
17
17
  immediate.setBytes(bigintToUint8ArrayLE(secondValue));
18
- const bitOps = new BooleanOps(regs);
18
+ const bitOps = BooleanOps.new(regs);
19
19
  return { regs, bitOps, firstRegisterIndex, secondRegisterIndex, resultRegisterIndex, immediate };
20
20
  }
21
21
  it("setLessThanUnsignedImmediate - true", () => {
@@ -6,7 +6,8 @@ export declare class BranchOps {
6
6
  private regs;
7
7
  private instructionResult;
8
8
  private basicBlocks;
9
- constructor(regs: Registers, instructionResult: InstructionResult, basicBlocks: BasicBlocks);
9
+ static new(regs: Registers, instructionResult: InstructionResult, basicBlocks: BasicBlocks): BranchOps;
10
+ private constructor();
10
11
  setBasicBlocks(basicBlocks: BasicBlocks): void;
11
12
  private branch;
12
13
  jump(nextPc: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"branch-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/branch-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,qBAAa,SAAS;IAElB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,WAAW;gBAFX,IAAI,EAAE,SAAS,EACf,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,WAAW;IAGlC,cAAc,CAAC,WAAW,EAAE,WAAW;IAIvC,OAAO,CAAC,MAAM;IAad,IAAI,CAAC,MAAM,EAAE,MAAM;IAInB,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAIpF,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAIhE,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAIpF,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAIhE,yBAAyB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAI5F,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAIxE,yBAAyB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAI5F,yBAAyB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAI5F,yBAAyB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAI5F,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAIxE,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAI1F,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAItE,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAI1F,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAI1F,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAI1F,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAGvE"}
1
+ {"version":3,"file":"branch-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/branch-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,qBAAa,SAAS;IAMlB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,WAAW;IAPrB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW;IAI1F,OAAO;IAMP,cAAc,CAAC,WAAW,EAAE,WAAW;IAIvC,OAAO,CAAC,MAAM;IAad,IAAI,CAAC,MAAM,EAAE,MAAM;IAInB,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAIpF,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAIhE,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAIpF,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAIhE,yBAAyB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAI5F,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAIxE,yBAAyB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAI5F,yBAAyB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAI5F,yBAAyB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAI5F,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAIxE,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAI1F,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAItE,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAI1F,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAI1F,uBAAuB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM;IAI1F,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAGvE"}
@@ -3,6 +3,9 @@ export class BranchOps {
3
3
  regs;
4
4
  instructionResult;
5
5
  basicBlocks;
6
+ static new(regs, instructionResult, basicBlocks) {
7
+ return new BranchOps(regs, instructionResult, basicBlocks);
8
+ }
6
9
  constructor(regs, instructionResult, basicBlocks) {
7
10
  this.regs = regs;
8
11
  this.instructionResult = instructionResult;
@@ -12,18 +12,18 @@ import { bigintToUint8ArrayLE } from "../test-utils.js";
12
12
  import { BranchOps } from "./branch-ops.js";
13
13
  describe("BranchOps", () => {
14
14
  function prepareData(firstValue, secondValue, initialNextPc) {
15
- const regs = new Registers();
15
+ const regs = Registers.empty();
16
16
  const instructionResult = new InstructionResult();
17
17
  const code = new Uint8Array([Instruction.ADD_32, 5, 6, Instruction.SUB_32, 5, 6]);
18
18
  const basicBlocks = new BasicBlocks();
19
- basicBlocks.reset(code, new Mask(BitVec.fromBlob(new Uint8Array([0b0000_1001]), code.length)));
19
+ basicBlocks.reset(code, Mask.new(BitVec.fromBlob(new Uint8Array([0b0000_1001]), code.length)));
20
20
  instructionResult.nextPc = initialNextPc;
21
- const branchOps = new BranchOps(regs, instructionResult, basicBlocks);
21
+ const branchOps = BranchOps.new(regs, instructionResult, basicBlocks);
22
22
  const firstRegisterIndex = 0;
23
23
  const secondRegisterIndex = 1;
24
24
  regs.setU64(firstRegisterIndex, firstValue);
25
25
  regs.setU64(secondRegisterIndex, secondValue);
26
- const immediate = new ImmediateDecoder();
26
+ const immediate = ImmediateDecoder.new();
27
27
  immediate.setBytes(bigintToUint8ArrayLE(secondValue));
28
28
  return { regs, instructionResult, branchOps, firstRegisterIndex, secondRegisterIndex, immediate };
29
29
  }
@@ -8,7 +8,8 @@ export declare class DynamicJumpOps {
8
8
  private jumpTable;
9
9
  private instructionResult;
10
10
  private basicBlocks;
11
- constructor(regs: Registers, jumpTable: JumpTable, instructionResult: InstructionResult, basicBlocks: BasicBlocks);
11
+ static new(regs: Registers, jumpTable: JumpTable, instructionResult: InstructionResult, basicBlocks: BasicBlocks): DynamicJumpOps;
12
+ private constructor();
12
13
  private djump;
13
14
  caluclateJumpAddress(immediate: ImmediateDecoder, registerIndex: number): number;
14
15
  jumpInd(address: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic-jump-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/dynamic-jump-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAQjD,qBAAa,cAAc;IAEvB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,WAAW;gBAHX,IAAI,EAAE,SAAS,EACf,SAAS,EAAE,SAAS,EACpB,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,WAAW;IAGlC,OAAO,CAAC,KAAK;IA2Bb,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM;IAKvE,OAAO,CAAC,OAAO,EAAE,MAAM;CAGxB"}
1
+ {"version":3,"file":"dynamic-jump-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/dynamic-jump-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAQjD,qBAAa,cAAc;IAMvB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,iBAAiB;IACzB,OAAO,CAAC,WAAW;IARrB,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW;IAIhH,OAAO;IAOP,OAAO,CAAC,KAAK;IA2Bb,oBAAoB,CAAC,SAAS,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM;IAKvE,OAAO,CAAC,OAAO,EAAE,MAAM;CAGxB"}
@@ -8,6 +8,9 @@ export class DynamicJumpOps {
8
8
  jumpTable;
9
9
  instructionResult;
10
10
  basicBlocks;
11
+ static new(regs, jumpTable, instructionResult, basicBlocks) {
12
+ return new DynamicJumpOps(regs, jumpTable, instructionResult, basicBlocks);
13
+ }
11
14
  constructor(regs, jumpTable, instructionResult, basicBlocks) {
12
15
  this.regs = regs;
13
16
  this.jumpTable = jumpTable;
@@ -13,17 +13,17 @@ import { bigintToUint8ArrayLE } from "../test-utils.js";
13
13
  import { DynamicJumpOps } from "./dynamic-jump-ops.js";
14
14
  describe("DynamicJumpOps", () => {
15
15
  function prepareData(firstValue, secondValue) {
16
- const regs = new Registers();
17
- const jumpTable = new JumpTable(1, new Uint8Array([0, 3]));
16
+ const regs = Registers.empty();
17
+ const jumpTable = JumpTable.fromRaw(1, new Uint8Array([0, 3]));
18
18
  const instructionResult = new InstructionResult();
19
19
  const code = new Uint8Array([Instruction.TRAP, Instruction.TRAP, Instruction.TRAP, Instruction.ADD_32, 5, 6]);
20
- const mask = new Mask(BitVec.fromBlob(new Uint8Array([0b0000_1111]), code.length));
20
+ const mask = Mask.new(BitVec.fromBlob(new Uint8Array([0b0000_1111]), code.length));
21
21
  const basicBlocks = new BasicBlocks();
22
22
  basicBlocks.reset(code, mask);
23
- const dynamicJumpOps = new DynamicJumpOps(regs, jumpTable, instructionResult, basicBlocks);
23
+ const dynamicJumpOps = DynamicJumpOps.new(regs, jumpTable, instructionResult, basicBlocks);
24
24
  const registerIndex = 0;
25
25
  regs.setU64(registerIndex, firstValue);
26
- const immediate = new ImmediateDecoder();
26
+ const immediate = ImmediateDecoder.new();
27
27
  immediate.setBytes(bigintToUint8ArrayLE(secondValue));
28
28
  return {
29
29
  dynamicJumpOps,
@@ -2,7 +2,8 @@ import type { ImmediateDecoder } from "../args-decoder/decoders/immediate-decode
2
2
  import type { InstructionResult } from "../instruction-result.js";
3
3
  export declare class HostCallOps {
4
4
  private instructionResult;
5
- constructor(instructionResult: InstructionResult);
5
+ static new(instructionResult: InstructionResult): HostCallOps;
6
+ private constructor();
6
7
  hostCall(immediateDecoder: ImmediateDecoder): void;
7
8
  }
8
9
  //# sourceMappingURL=host-call-ops.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"host-call-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/host-call-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,qBAAa,WAAW;IACV,OAAO,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,iBAAiB;IAExD,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;CAI5C"}
1
+ {"version":3,"file":"host-call-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/host-call-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,qBAAa,WAAW;IAKF,OAAO,CAAC,iBAAiB;IAJ7C,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,iBAAiB;IAI/C,OAAO;IAEP,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;CAI5C"}
@@ -1,6 +1,9 @@
1
1
  import { Result } from "../result.js";
2
2
  export class HostCallOps {
3
3
  instructionResult;
4
+ static new(instructionResult) {
5
+ return new HostCallOps(instructionResult);
6
+ }
4
7
  constructor(instructionResult) {
5
8
  this.instructionResult = instructionResult;
6
9
  }
@@ -8,8 +8,8 @@ import { HostCallOps } from "./host-call-ops.js";
8
8
  describe("HostCallOps", () => {
9
9
  function prepareData(immediateValue) {
10
10
  const instructionResult = new InstructionResult();
11
- const hostCallOps = new HostCallOps(instructionResult);
12
- const immediate = new ImmediateDecoder();
11
+ const hostCallOps = HostCallOps.new(instructionResult);
12
+ const immediate = ImmediateDecoder.new();
13
13
  immediate.setBytes(bigintToUint8ArrayLE(immediateValue));
14
14
  return { hostCallOps, instructionResult, immediate };
15
15
  }
@@ -7,7 +7,8 @@ export declare class LoadOps {
7
7
  private regs;
8
8
  private memory;
9
9
  private instructionResult;
10
- constructor(regs: Registers, memory: Memory, instructionResult: InstructionResult);
10
+ static new(regs: Registers, memory: Memory, instructionResult: InstructionResult): LoadOps;
11
+ private constructor();
11
12
  loadImmediate(registerIndex: number, immediate: ImmediateDecoder): void;
12
13
  loadImmediateU64(registerIndex: number, immediate: ExtendedWitdthImmediateDecoder): void;
13
14
  private loadNumber;
@@ -1 +1 @@
1
- {"version":3,"file":"load-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/load-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,6DAA6D,CAAC;AAClH,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;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAMjD,qBAAa,OAAO;IAEhB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,iBAAiB;gBAFjB,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,iBAAiB;IAG9C,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB;IAIhE,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,8BAA8B;IAIjF,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,gBAAgB;IAwBxB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI7C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI9C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI9C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI9C,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI7C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI9C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI9C,SAAS,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKrG,UAAU,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKtG,UAAU,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKtG,UAAU,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKtG,SAAS,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKrG,UAAU,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKtG,UAAU,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;CAIvG"}
1
+ {"version":3,"file":"load-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/load-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,6DAA6D,CAAC;AAClH,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;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAMjD,qBAAa,OAAO;IAMhB,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,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB;IAIhE,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,8BAA8B;IAIjF,OAAO,CAAC,UAAU;IAkBlB,OAAO,CAAC,gBAAgB;IAwBxB,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI7C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI9C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI9C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI9C,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI7C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI9C,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI9C,SAAS,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKrG,UAAU,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKtG,UAAU,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKtG,UAAU,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKtG,SAAS,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKrG,UAAU,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKtG,UAAU,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;CAIvG"}
@@ -6,6 +6,9 @@ export class LoadOps {
6
6
  regs;
7
7
  memory;
8
8
  instructionResult;
9
+ static new(regs, memory, instructionResult) {
10
+ return new LoadOps(regs, memory, instructionResult);
11
+ }
9
12
  constructor(regs, memory, instructionResult) {
10
13
  this.regs = regs;
11
14
  this.memory = memory;
@@ -13,10 +13,10 @@ describe("LoadOps", () => {
13
13
  describe("loadImmediate", () => {
14
14
  function prepareLoadImmediateData(numberToLoad) {
15
15
  const instructionResult = new InstructionResult();
16
- const registers = new Registers();
17
- const memory = new Memory();
18
- const loadOps = new LoadOps(registers, memory, instructionResult);
19
- const immediateDecoder = new ImmediateDecoder();
16
+ const registers = Registers.empty();
17
+ const memory = Memory.new();
18
+ const loadOps = LoadOps.new(registers, memory, instructionResult);
19
+ const immediateDecoder = ImmediateDecoder.new();
20
20
  immediateDecoder.setBytes(bigintToUint8ArrayLE(numberToLoad));
21
21
  return {
22
22
  registers,
@@ -46,8 +46,8 @@ describe("LoadOps", () => {
46
46
  const memory = new MemoryBuilder()
47
47
  .setWriteablePages(getStartPageIndex(address), tryAsMemoryIndex(getStartPageIndex(address) + PAGE_SIZE), data)
48
48
  .finalize(tryAsMemoryIndex(20 * PAGE_SIZE), tryAsSbrkIndex(30 * PAGE_SIZE));
49
- const registers = new Registers();
50
- const loadOps = new LoadOps(registers, memory, instructionResult);
49
+ const registers = Registers.empty();
50
+ const loadOps = LoadOps.new(registers, memory, instructionResult);
51
51
  const registerIndex = 0;
52
52
  registers.setU64(registerIndex, 0x1122334455667788n);
53
53
  return {
@@ -141,12 +141,12 @@ describe("LoadOps", () => {
141
141
  const memory = new MemoryBuilder()
142
142
  .setWriteablePages(getStartPageIndex(address), tryAsMemoryIndex(getStartPageIndex(address) + PAGE_SIZE), data)
143
143
  .finalize(tryAsMemoryIndex(20 * PAGE_SIZE), tryAsSbrkIndex(30 * PAGE_SIZE));
144
- const registers = new Registers();
145
- const loadOps = new LoadOps(registers, memory, instructionResult);
144
+ const registers = Registers.empty();
145
+ const loadOps = LoadOps.new(registers, memory, instructionResult);
146
146
  const addressRegisterIndex = 1;
147
147
  const resultRegisterIndex = 0;
148
148
  registers.setU64(addressRegisterIndex, registerValue);
149
- const immediate = new ImmediateDecoder();
149
+ const immediate = ImmediateDecoder.new();
150
150
  immediate.setBytes(bigintToUint8ArrayLE(immediateValue));
151
151
  return {
152
152
  loadOps,
@@ -173,7 +173,7 @@ describe("LoadOps", () => {
173
173
  const { loadOps, registers, resultRegisterIndex, addressRegisterIndex, immediate } = prepareLoadIndData(address, data, 1n + 16n * BigInt(PAGE_SIZE), 1n);
174
174
  const expectedSignedValue = -8756n;
175
175
  const expectedUnsignedValue = 18446744073709542860n;
176
- const immediateDecoder = new ImmediateDecoder();
176
+ const immediateDecoder = ImmediateDecoder.new();
177
177
  immediateDecoder.setBytes(new Uint8Array([1]));
178
178
  loadOps.loadIndI16(resultRegisterIndex, addressRegisterIndex, immediate);
179
179
  assert.deepStrictEqual(registers.getU64(resultRegisterIndex), expectedUnsignedValue);
@@ -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 MathOps {
4
4
  private regs;
5
- constructor(regs: Registers);
5
+ static new(regs: Registers): MathOps;
6
+ private constructor();
6
7
  addU32(firstIndex: number, secondIndex: number, resultIndex: number): void;
7
8
  addU64(firstIndex: number, secondIndex: number, resultIndex: number): void;
8
9
  addImmediateU32(firstIndex: number, immediate: ImmediateDecoder, resultIndex: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"math-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/math-ops.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"math-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/math-ops.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,9 @@ import { MIN_VALUE_I32 } from "./math-consts.js";
3
3
  import { addWithOverflowU32, addWithOverflowU64, maxBigInt, minBigInt, mulLowerUnsignedU32, mulU64, mulUpperSS, mulUpperSU, mulUpperUU, subU32, subU64, } from "./math-utils.js";
4
4
  export class MathOps {
5
5
  regs;
6
+ static new(regs) {
7
+ return new MathOps(regs);
8
+ }
6
9
  constructor(regs) {
7
10
  this.regs = regs;
8
11
  }
@@ -6,15 +6,15 @@ import { bigintToUint8ArrayLE } from "../test-utils.js";
6
6
  import { MathOps } from "./math-ops.js";
7
7
  describe("MathOps", () => {
8
8
  function prepareData(firstValue, secondValue) {
9
- const regs = new Registers();
9
+ const regs = Registers.empty();
10
10
  const firstValRegIndex = 0;
11
11
  const secondValRegIndex = 1;
12
12
  const resultRegisterIndex = 12;
13
13
  regs.setU64(firstValRegIndex, firstValue);
14
14
  regs.setU64(secondValRegIndex, secondValue);
15
- const immediate = new ImmediateDecoder();
15
+ const immediate = ImmediateDecoder.new();
16
16
  immediate.setBytes(bigintToUint8ArrayLE(firstValue));
17
- const mathOps = new MathOps(regs);
17
+ const mathOps = MathOps.new(regs);
18
18
  return { regs, mathOps, immediate, firstValRegIndex, secondValRegIndex, resultRegisterIndex };
19
19
  }
20
20
  it("add U32", () => {
@@ -5,7 +5,8 @@ export declare class MemoryOps {
5
5
  private regs;
6
6
  private memory;
7
7
  private instructionResult;
8
- constructor(regs: Registers, memory: Memory, instructionResult: InstructionResult);
8
+ static new(regs: Registers, memory: Memory, instructionResult: InstructionResult): MemoryOps;
9
+ private constructor();
9
10
  sbrk(firstIndex: number, resultIndex: number): void;
10
11
  }
11
12
  //# sourceMappingURL=memory-ops.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/memory-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,qBAAa,SAAS;IAElB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,iBAAiB;gBAFjB,IAAI,EAAE,SAAS,EACf,MAAM,EAAE,MAAM,EACd,iBAAiB,EAAE,iBAAiB;IAG9C,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAO7C"}
1
+ {"version":3,"file":"memory-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/memory-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,qBAAa,SAAS;IAMlB,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,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAO7C"}
@@ -3,6 +3,9 @@ export class MemoryOps {
3
3
  regs;
4
4
  memory;
5
5
  instructionResult;
6
+ static new(regs, memory, instructionResult) {
7
+ return new MemoryOps(regs, memory, instructionResult);
8
+ }
6
9
  constructor(regs, memory, instructionResult) {
7
10
  this.regs = regs;
8
11
  this.memory = memory;
@@ -9,10 +9,10 @@ import { Registers } from "../registers.js";
9
9
  import { MemoryOps } from "./memory-ops.js";
10
10
  describe("MemoryOps", () => {
11
11
  function prepareData(pagesToAllocate, lengthRegisterValue = PAGE_SIZE) {
12
- const regs = new Registers();
13
- const memory = new Memory();
12
+ const regs = Registers.empty();
13
+ const memory = Memory.new();
14
14
  const instructionResult = new InstructionResult();
15
- const memoryOps = new MemoryOps(regs, memory, instructionResult);
15
+ const memoryOps = MemoryOps.new(regs, memory, instructionResult);
16
16
  const resultIndex = 1;
17
17
  const lengthIndex = 0;
18
18
  regs.setU32(lengthIndex, lengthRegisterValue);
@@ -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 MoveOps {
4
4
  private regs;
5
- constructor(regs: Registers);
5
+ static new(regs: Registers): MoveOps;
6
+ private constructor();
6
7
  cmovIfZeroImmediate(firstIndex: number, immediate: ImmediateDecoder, resultIndex: number): void;
7
8
  cmovIfNotZeroImmediate(firstIndex: number, immediate: ImmediateDecoder, resultIndex: number): void;
8
9
  cmovIfZero(firstIndex: number, secondIndex: number, resultIndex: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"move-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/move-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,OAAO;IACN,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,SAAS;IAEnC,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAMxF,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAM3F,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAMvE,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAM1E,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAGrD"}
1
+ {"version":3,"file":"move-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/move-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEjD,qBAAa,OAAO;IAKE,OAAO,CAAC,IAAI;IAJhC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS;IAI1B,OAAO;IAEP,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAMxF,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAM3F,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAMvE,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAM1E,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAGrD"}
@@ -1,5 +1,8 @@
1
1
  export class MoveOps {
2
2
  regs;
3
+ static new(regs) {
4
+ return new MoveOps(regs);
5
+ }
3
6
  constructor(regs) {
4
7
  this.regs = regs;
5
8
  }
@@ -6,15 +6,15 @@ import { bigintToUint8ArrayLE } from "../test-utils.js";
6
6
  import { MoveOps } from "./move-ops.js";
7
7
  describe("MoveOps", () => {
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 moveOps = new MoveOps(regs);
17
+ const moveOps = MoveOps.new(regs);
18
18
  return { regs, moveOps, immediate, firstRegisterIndex, secondRegisterIndex, resultRegisterIndex };
19
19
  }
20
20
  it("moveRegister", () => {
@@ -1,7 +1,8 @@
1
1
  import type { InstructionResult } from "../instruction-result.js";
2
2
  export declare class NoArgsOps {
3
3
  private instructionResult;
4
- constructor(instructionResult: InstructionResult);
4
+ static new(instructionResult: InstructionResult): NoArgsOps;
5
+ private constructor();
5
6
  trap(): void;
6
7
  fallthrough(): void;
7
8
  }
@@ -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;