@typeberry/lib 0.5.10 → 0.5.11-10b197e

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (496) hide show
  1. package/README.md +2 -2
  2. package/bin/lib/examples/pvm-usage.test.js +2 -2
  3. package/package.json +1 -1
  4. package/packages/core/codec/descriptor.js +1 -1
  5. package/packages/core/codec/descriptors.js +7 -4
  6. package/packages/core/codec/encoder.d.ts +1 -1
  7. package/packages/core/codec/encoder.d.ts.map +1 -1
  8. package/packages/core/codec/encoder.js +3 -2
  9. package/packages/core/codec/index.test.js +1 -1
  10. package/packages/core/codec/skip.d.ts +2 -1
  11. package/packages/core/codec/skip.d.ts.map +1 -1
  12. package/packages/core/codec/skip.js +3 -0
  13. package/packages/core/codec/view.js +2 -2
  14. package/packages/core/collections/multi-map.d.ts +2 -1
  15. package/packages/core/collections/multi-map.d.ts.map +1 -1
  16. package/packages/core/collections/multi-map.js +3 -0
  17. package/packages/core/collections/multi-map.test.js +2 -2
  18. package/packages/core/concurrent/parent.js +4 -1
  19. package/packages/core/crypto/ed25519.d.ts +2 -5
  20. package/packages/core/crypto/ed25519.d.ts.map +1 -1
  21. package/packages/core/crypto/ed25519.js +4 -1
  22. package/packages/core/hash/hash.d.ts +4 -2
  23. package/packages/core/hash/hash.d.ts.map +1 -1
  24. package/packages/core/hash/hash.js +6 -1
  25. package/packages/core/networking/quic-network.d.ts +3 -2
  26. package/packages/core/networking/quic-network.d.ts.map +1 -1
  27. package/packages/core/networking/quic-network.js +3 -0
  28. package/packages/core/networking/quic-peer.d.ts +2 -1
  29. package/packages/core/networking/quic-peer.d.ts.map +1 -1
  30. package/packages/core/networking/quic-peer.js +5 -2
  31. package/packages/core/networking/quic-stream.d.ts +2 -1
  32. package/packages/core/networking/quic-stream.d.ts.map +1 -1
  33. package/packages/core/networking/quic-stream.js +3 -0
  34. package/packages/core/networking/setup.js +2 -2
  35. package/packages/core/pvm-host-calls/bin.js +2 -2
  36. package/packages/core/pvm-host-calls/ecalli-trace-logger.d.ts +5 -0
  37. package/packages/core/pvm-host-calls/ecalli-trace-logger.d.ts.map +1 -1
  38. package/packages/core/pvm-host-calls/ecalli-trace-logger.js +8 -1
  39. package/packages/core/pvm-host-calls/ecalli-trace-logger.test.js +1 -1
  40. package/packages/core/pvm-host-calls/host-call-memory.d.ts +2 -1
  41. package/packages/core/pvm-host-calls/host-call-memory.d.ts.map +1 -1
  42. package/packages/core/pvm-host-calls/host-call-memory.js +3 -0
  43. package/packages/core/pvm-host-calls/host-call-memory.test.js +1 -1
  44. package/packages/core/pvm-host-calls/host-call-registers.d.ts +5 -1
  45. package/packages/core/pvm-host-calls/host-call-registers.d.ts.map +1 -1
  46. package/packages/core/pvm-host-calls/host-call-registers.js +11 -1
  47. package/packages/core/pvm-host-calls/host-call-registers.test.js +2 -2
  48. package/packages/core/pvm-host-calls/host-calls-executor.d.ts +2 -1
  49. package/packages/core/pvm-host-calls/host-calls-executor.d.ts.map +1 -1
  50. package/packages/core/pvm-host-calls/host-calls-executor.js +5 -2
  51. package/packages/core/pvm-host-calls/host-calls.d.ts +4 -2
  52. package/packages/core/pvm-host-calls/host-calls.d.ts.map +1 -1
  53. package/packages/core/pvm-host-calls/host-calls.js +9 -4
  54. package/packages/core/pvm-host-calls/pvm-instance-manager.js +1 -1
  55. package/packages/core/pvm-interface/pvm.d.ts +2 -0
  56. package/packages/core/pvm-interface/pvm.d.ts.map +1 -1
  57. package/packages/core/pvm-interpreter/args-decoder/args-decoder.js +1 -1
  58. package/packages/core/pvm-interpreter/args-decoder/args-decoder.test.js +3 -3
  59. package/packages/core/pvm-interpreter/args-decoder/args-decoding-results.js +11 -11
  60. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts +2 -1
  61. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts.map +1 -1
  62. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.js +3 -0
  63. package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.test.js +2 -2
  64. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts +2 -1
  65. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts.map +1 -1
  66. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.js +3 -0
  67. package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.test.js +26 -26
  68. package/packages/core/pvm-interpreter/basic-blocks/basic-blocks.test.js +8 -8
  69. package/packages/core/pvm-interpreter/bin.js +1 -1
  70. package/packages/core/pvm-interpreter/debugger-adapter.d.ts +2 -1
  71. package/packages/core/pvm-interpreter/debugger-adapter.d.ts.map +1 -1
  72. package/packages/core/pvm-interpreter/debugger-adapter.js +6 -3
  73. package/packages/core/pvm-interpreter/gas.js +4 -1
  74. package/packages/core/pvm-interpreter/interpreter.d.ts +2 -1
  75. package/packages/core/pvm-interpreter/interpreter.d.ts.map +1 -1
  76. package/packages/core/pvm-interpreter/interpreter.js +19 -16
  77. package/packages/core/pvm-interpreter/memory/memory-builder.js +2 -2
  78. package/packages/core/pvm-interpreter/memory/memory-builder.test.js +7 -7
  79. package/packages/core/pvm-interpreter/memory/memory.d.ts +2 -1
  80. package/packages/core/pvm-interpreter/memory/memory.d.ts.map +1 -1
  81. package/packages/core/pvm-interpreter/memory/memory.js +4 -1
  82. package/packages/core/pvm-interpreter/memory/memory.test.js +31 -31
  83. package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts +2 -1
  84. package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts.map +1 -1
  85. package/packages/core/pvm-interpreter/memory/pages/readable-page.js +3 -0
  86. package/packages/core/pvm-interpreter/memory/pages/readable-page.test.js +3 -3
  87. package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts +2 -1
  88. package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts.map +1 -1
  89. package/packages/core/pvm-interpreter/memory/pages/writeable-page.js +3 -0
  90. package/packages/core/pvm-interpreter/memory/pages/writeable-page.test.js +4 -4
  91. package/packages/core/pvm-interpreter/ops/bit-ops.d.ts +2 -1
  92. package/packages/core/pvm-interpreter/ops/bit-ops.d.ts.map +1 -1
  93. package/packages/core/pvm-interpreter/ops/bit-ops.js +3 -0
  94. package/packages/core/pvm-interpreter/ops/bit-ops.test.js +3 -3
  95. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts +2 -1
  96. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts.map +1 -1
  97. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.js +3 -0
  98. package/packages/core/pvm-interpreter/ops/bit-rotation-ops.test.js +5 -5
  99. package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts +2 -1
  100. package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts.map +1 -1
  101. package/packages/core/pvm-interpreter/ops/boolean-ops.js +3 -0
  102. package/packages/core/pvm-interpreter/ops/boolean-ops.test.js +3 -3
  103. package/packages/core/pvm-interpreter/ops/branch-ops.d.ts +2 -1
  104. package/packages/core/pvm-interpreter/ops/branch-ops.d.ts.map +1 -1
  105. package/packages/core/pvm-interpreter/ops/branch-ops.js +3 -0
  106. package/packages/core/pvm-interpreter/ops/branch-ops.test.js +4 -4
  107. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts +2 -1
  108. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts.map +1 -1
  109. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.js +3 -0
  110. package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.test.js +5 -5
  111. package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts +2 -1
  112. package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts.map +1 -1
  113. package/packages/core/pvm-interpreter/ops/host-call-ops.js +3 -0
  114. package/packages/core/pvm-interpreter/ops/host-call-ops.test.js +2 -2
  115. package/packages/core/pvm-interpreter/ops/load-ops.d.ts +2 -1
  116. package/packages/core/pvm-interpreter/ops/load-ops.d.ts.map +1 -1
  117. package/packages/core/pvm-interpreter/ops/load-ops.js +3 -0
  118. package/packages/core/pvm-interpreter/ops/load-ops.test.js +10 -10
  119. package/packages/core/pvm-interpreter/ops/math-ops.d.ts +2 -1
  120. package/packages/core/pvm-interpreter/ops/math-ops.d.ts.map +1 -1
  121. package/packages/core/pvm-interpreter/ops/math-ops.js +3 -0
  122. package/packages/core/pvm-interpreter/ops/math-ops.test.js +3 -3
  123. package/packages/core/pvm-interpreter/ops/memory-ops.d.ts +2 -1
  124. package/packages/core/pvm-interpreter/ops/memory-ops.d.ts.map +1 -1
  125. package/packages/core/pvm-interpreter/ops/memory-ops.js +3 -0
  126. package/packages/core/pvm-interpreter/ops/memory-ops.test.js +3 -3
  127. package/packages/core/pvm-interpreter/ops/move-ops.d.ts +2 -1
  128. package/packages/core/pvm-interpreter/ops/move-ops.d.ts.map +1 -1
  129. package/packages/core/pvm-interpreter/ops/move-ops.js +3 -0
  130. package/packages/core/pvm-interpreter/ops/move-ops.test.js +3 -3
  131. package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts +2 -1
  132. package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts.map +1 -1
  133. package/packages/core/pvm-interpreter/ops/no-args-ops.js +3 -0
  134. package/packages/core/pvm-interpreter/ops/no-args-ops.test.js +2 -2
  135. package/packages/core/pvm-interpreter/ops/shift-ops.d.ts +2 -1
  136. package/packages/core/pvm-interpreter/ops/shift-ops.d.ts.map +1 -1
  137. package/packages/core/pvm-interpreter/ops/shift-ops.js +3 -0
  138. package/packages/core/pvm-interpreter/ops/shift-ops.test.js +3 -3
  139. package/packages/core/pvm-interpreter/ops/store-ops.d.ts +2 -1
  140. package/packages/core/pvm-interpreter/ops/store-ops.d.ts.map +1 -1
  141. package/packages/core/pvm-interpreter/ops/store-ops.js +3 -0
  142. package/packages/core/pvm-interpreter/ops/store-ops.test.js +7 -7
  143. package/packages/core/pvm-interpreter/ops-dispatchers/no-args-dispatcher.test.js +1 -1
  144. package/packages/core/pvm-interpreter/ops-dispatchers/one-imm-dispatcher.test.js +4 -4
  145. package/packages/core/pvm-interpreter/ops-dispatchers/one-offset-dispatcher.test.js +2 -2
  146. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-ext-imm-dispatcher.test.js +4 -4
  147. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-dispatcher.test.js +7 -7
  148. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-one-offset-dispatcher.test.js +10 -10
  149. package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-two-imms-dispatcher.test.js +5 -5
  150. package/packages/core/pvm-interpreter/ops-dispatchers/three-regs-dispatcher.test.js +7 -7
  151. package/packages/core/pvm-interpreter/ops-dispatchers/two-imms-dispatcher.test.js +5 -5
  152. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-dispatcher.test.js +6 -6
  153. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-imm-dispatcher.test.js +11 -11
  154. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-offset-dispatcher.test.js +2 -2
  155. package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-two-imms-dispatcher.test.js +14 -14
  156. package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts +5 -2
  157. package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts.map +1 -1
  158. package/packages/core/pvm-interpreter/program-decoder/jump-table.js +9 -4
  159. package/packages/core/pvm-interpreter/program-decoder/jump-table.test.js +6 -6
  160. package/packages/core/pvm-interpreter/program-decoder/mask.d.ts +2 -1
  161. package/packages/core/pvm-interpreter/program-decoder/mask.d.ts.map +1 -1
  162. package/packages/core/pvm-interpreter/program-decoder/mask.js +3 -0
  163. package/packages/core/pvm-interpreter/program-decoder/mask.test.js +10 -10
  164. package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts +2 -1
  165. package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts.map +1 -1
  166. package/packages/core/pvm-interpreter/program-decoder/program-decoder.js +6 -3
  167. package/packages/core/pvm-interpreter/program-decoder/program-decoder.test.js +5 -5
  168. package/packages/core/pvm-interpreter/program.js +3 -3
  169. package/packages/core/pvm-interpreter/registers.d.ts +5 -2
  170. package/packages/core/pvm-interpreter/registers.d.ts.map +1 -1
  171. package/packages/core/pvm-interpreter/registers.js +10 -6
  172. package/packages/core/pvm-interpreter/registers.test.js +10 -10
  173. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts +6 -3
  174. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts.map +1 -1
  175. package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.js +11 -2
  176. package/packages/core/pvm-interpreter-ananas/index.d.ts +6 -3
  177. package/packages/core/pvm-interpreter-ananas/index.d.ts.map +1 -1
  178. package/packages/core/pvm-interpreter-ananas/index.js +12 -3
  179. package/packages/core/trie/nodes.d.ts +7 -2
  180. package/packages/core/trie/nodes.d.ts.map +1 -1
  181. package/packages/core/trie/nodes.js +20 -11
  182. package/packages/core/trie/nodesDb.d.ts +3 -1
  183. package/packages/core/trie/nodesDb.d.ts.map +1 -1
  184. package/packages/core/trie/nodesDb.js +6 -0
  185. package/packages/core/trie/trie.js +2 -2
  186. package/packages/extensions/ipc/index.js +5 -2
  187. package/packages/extensions/ipc/jamnp/handler.d.ts +4 -2
  188. package/packages/extensions/ipc/jamnp/handler.d.ts.map +1 -1
  189. package/packages/extensions/ipc/jamnp/handler.js +9 -3
  190. package/packages/extensions/ipc/jamnp/server.js +3 -3
  191. package/packages/extensions/ipc/server.d.ts +2 -1
  192. package/packages/extensions/ipc/server.d.ts.map +1 -1
  193. package/packages/extensions/ipc/server.js +4 -1
  194. package/packages/jam/block/header.js +1 -1
  195. package/packages/jam/block/work-package.d.ts +7 -7
  196. package/packages/jam/block/work-package.d.ts.map +1 -1
  197. package/packages/jam/block/work-package.js +12 -12
  198. package/packages/jam/config/chain-spec.d.ts +2 -1
  199. package/packages/jam/config/chain-spec.d.ts.map +1 -1
  200. package/packages/jam/config/chain-spec.js +5 -2
  201. package/packages/jam/config/network.d.ts +2 -7
  202. package/packages/jam/config/network.d.ts.map +1 -1
  203. package/packages/jam/config/network.js +3 -0
  204. package/packages/jam/config-node/jip-chain-spec.js +1 -1
  205. package/packages/jam/database/blocks.test.js +1 -1
  206. package/packages/jam/database/states.d.ts +2 -1
  207. package/packages/jam/database/states.d.ts.map +1 -1
  208. package/packages/jam/database/states.js +3 -0
  209. package/packages/jam/database/states.test.js +1 -1
  210. package/packages/jam/database-lmdb/blocks.d.ts +2 -1
  211. package/packages/jam/database-lmdb/blocks.d.ts.map +1 -1
  212. package/packages/jam/database-lmdb/blocks.js +3 -0
  213. package/packages/jam/database-lmdb/root.d.ts +2 -1
  214. package/packages/jam/database-lmdb/root.d.ts.map +1 -1
  215. package/packages/jam/database-lmdb/root.js +3 -0
  216. package/packages/jam/database-lmdb/states.d.ts +2 -1
  217. package/packages/jam/database-lmdb/states.d.ts.map +1 -1
  218. package/packages/jam/database-lmdb/states.js +3 -0
  219. package/packages/jam/database-lmdb/states.test.js +9 -9
  220. package/packages/jam/executor/index.d.ts +1 -1
  221. package/packages/jam/executor/index.d.ts.map +1 -1
  222. package/packages/jam/executor/index.js +1 -1
  223. package/packages/jam/executor/pvm-executor.d.ts +9 -2
  224. package/packages/jam/executor/pvm-executor.d.ts.map +1 -1
  225. package/packages/jam/executor/pvm-executor.js +36 -21
  226. package/packages/jam/fuzz-proto/v1/handler.d.ts +2 -1
  227. package/packages/jam/fuzz-proto/v1/handler.d.ts.map +1 -1
  228. package/packages/jam/fuzz-proto/v1/handler.js +3 -0
  229. package/packages/jam/fuzz-proto/v1/handler.test.js +10 -10
  230. package/packages/jam/in-core/externalities/refine.d.ts +18 -8
  231. package/packages/jam/in-core/externalities/refine.d.ts.map +1 -1
  232. package/packages/jam/in-core/externalities/refine.js +86 -7
  233. package/packages/jam/in-core/externalities/refine.test.js +168 -3
  234. package/packages/jam/in-core/in-core.d.ts +9 -23
  235. package/packages/jam/in-core/in-core.d.ts.map +1 -1
  236. package/packages/jam/in-core/in-core.js +19 -186
  237. package/packages/jam/in-core/in-core.test.js +52 -20
  238. package/packages/jam/in-core/is-authorized.d.ts +33 -0
  239. package/packages/jam/in-core/is-authorized.d.ts.map +1 -0
  240. package/packages/jam/in-core/is-authorized.js +72 -0
  241. package/packages/jam/in-core/is-authorized.test.d.ts +2 -0
  242. package/packages/jam/in-core/is-authorized.test.d.ts.map +1 -0
  243. package/packages/jam/in-core/is-authorized.test.js +125 -0
  244. package/packages/jam/in-core/refine.d.ts +34 -0
  245. package/packages/jam/in-core/refine.d.ts.map +1 -0
  246. package/packages/jam/in-core/refine.js +176 -0
  247. package/packages/jam/in-core/refine.test.d.ts +2 -0
  248. package/packages/jam/in-core/refine.test.d.ts.map +1 -0
  249. package/packages/jam/in-core/refine.test.js +6 -0
  250. package/packages/jam/jam-host-calls/accumulate/assign.d.ts +2 -1
  251. package/packages/jam/jam-host-calls/accumulate/assign.d.ts.map +1 -1
  252. package/packages/jam/jam-host-calls/accumulate/assign.js +3 -0
  253. package/packages/jam/jam-host-calls/accumulate/assign.test.js +8 -9
  254. package/packages/jam/jam-host-calls/accumulate/bless.d.ts +2 -1
  255. package/packages/jam/jam-host-calls/accumulate/bless.d.ts.map +1 -1
  256. package/packages/jam/jam-host-calls/accumulate/bless.js +12 -9
  257. package/packages/jam/jam-host-calls/accumulate/bless.test.js +11 -12
  258. package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts +2 -1
  259. package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts.map +1 -1
  260. package/packages/jam/jam-host-calls/accumulate/checkpoint.js +4 -1
  261. package/packages/jam/jam-host-calls/accumulate/checkpoint.test.js +2 -3
  262. package/packages/jam/jam-host-calls/accumulate/designate.d.ts +2 -1
  263. package/packages/jam/jam-host-calls/accumulate/designate.d.ts.map +1 -1
  264. package/packages/jam/jam-host-calls/accumulate/designate.js +3 -0
  265. package/packages/jam/jam-host-calls/accumulate/designate.test.js +5 -6
  266. package/packages/jam/jam-host-calls/accumulate/eject.d.ts +2 -1
  267. package/packages/jam/jam-host-calls/accumulate/eject.d.ts.map +1 -1
  268. package/packages/jam/jam-host-calls/accumulate/eject.js +3 -0
  269. package/packages/jam/jam-host-calls/accumulate/eject.test.js +8 -9
  270. package/packages/jam/jam-host-calls/accumulate/forget.d.ts +2 -1
  271. package/packages/jam/jam-host-calls/accumulate/forget.d.ts.map +1 -1
  272. package/packages/jam/jam-host-calls/accumulate/forget.js +3 -0
  273. package/packages/jam/jam-host-calls/accumulate/forget.test.js +5 -6
  274. package/packages/jam/jam-host-calls/accumulate/new.d.ts +2 -1
  275. package/packages/jam/jam-host-calls/accumulate/new.d.ts.map +1 -1
  276. package/packages/jam/jam-host-calls/accumulate/new.js +3 -0
  277. package/packages/jam/jam-host-calls/accumulate/new.test.js +9 -10
  278. package/packages/jam/jam-host-calls/accumulate/provide.d.ts +2 -1
  279. package/packages/jam/jam-host-calls/accumulate/provide.d.ts.map +1 -1
  280. package/packages/jam/jam-host-calls/accumulate/provide.js +3 -0
  281. package/packages/jam/jam-host-calls/accumulate/provide.test.js +8 -9
  282. package/packages/jam/jam-host-calls/accumulate/query.d.ts +2 -1
  283. package/packages/jam/jam-host-calls/accumulate/query.d.ts.map +1 -1
  284. package/packages/jam/jam-host-calls/accumulate/query.js +3 -0
  285. package/packages/jam/jam-host-calls/accumulate/query.test.js +8 -9
  286. package/packages/jam/jam-host-calls/accumulate/solicit.d.ts +2 -1
  287. package/packages/jam/jam-host-calls/accumulate/solicit.d.ts.map +1 -1
  288. package/packages/jam/jam-host-calls/accumulate/solicit.js +3 -0
  289. package/packages/jam/jam-host-calls/accumulate/solicit.test.js +7 -8
  290. package/packages/jam/jam-host-calls/accumulate/transfer.d.ts +2 -1
  291. package/packages/jam/jam-host-calls/accumulate/transfer.d.ts.map +1 -1
  292. package/packages/jam/jam-host-calls/accumulate/transfer.js +3 -0
  293. package/packages/jam/jam-host-calls/accumulate/transfer.test.js +9 -10
  294. package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts +2 -1
  295. package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts.map +1 -1
  296. package/packages/jam/jam-host-calls/accumulate/upgrade.js +3 -0
  297. package/packages/jam/jam-host-calls/accumulate/upgrade.test.js +4 -5
  298. package/packages/jam/jam-host-calls/accumulate/yield.d.ts +2 -1
  299. package/packages/jam/jam-host-calls/accumulate/yield.d.ts.map +1 -1
  300. package/packages/jam/jam-host-calls/accumulate/yield.js +3 -0
  301. package/packages/jam/jam-host-calls/accumulate/yield.test.js +4 -5
  302. package/packages/jam/jam-host-calls/externalities/partial-state.d.ts +1 -1
  303. package/packages/jam/jam-host-calls/externalities/refine-externalities.d.ts +1 -1
  304. package/packages/jam/jam-host-calls/externalities/refine-externalities.d.ts.map +1 -1
  305. package/packages/jam/jam-host-calls/externalities/refine-externalities.test.js +9 -9
  306. package/packages/jam/jam-host-calls/externalities/state-update.d.ts +2 -3
  307. package/packages/jam/jam-host-calls/externalities/state-update.d.ts.map +1 -1
  308. package/packages/jam/jam-host-calls/externalities/state-update.js +5 -2
  309. package/packages/jam/jam-host-calls/externalities/test-accounts.js +2 -2
  310. package/packages/jam/jam-host-calls/general/fetch.d.ts +166 -104
  311. package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
  312. package/packages/jam/jam-host-calls/general/fetch.js +120 -23
  313. package/packages/jam/jam-host-calls/general/fetch.test.js +125 -92
  314. package/packages/jam/jam-host-calls/general/gas.d.ts +2 -1
  315. package/packages/jam/jam-host-calls/general/gas.d.ts.map +1 -1
  316. package/packages/jam/jam-host-calls/general/gas.js +3 -0
  317. package/packages/jam/jam-host-calls/general/gas.test.js +4 -5
  318. package/packages/jam/jam-host-calls/general/info.d.ts +2 -1
  319. package/packages/jam/jam-host-calls/general/info.d.ts.map +1 -1
  320. package/packages/jam/jam-host-calls/general/info.js +3 -0
  321. package/packages/jam/jam-host-calls/general/info.test.js +6 -7
  322. package/packages/jam/jam-host-calls/general/log.d.ts +2 -1
  323. package/packages/jam/jam-host-calls/general/log.d.ts.map +1 -1
  324. package/packages/jam/jam-host-calls/general/log.js +3 -0
  325. package/packages/jam/jam-host-calls/general/lookup.d.ts +2 -1
  326. package/packages/jam/jam-host-calls/general/lookup.d.ts.map +1 -1
  327. package/packages/jam/jam-host-calls/general/lookup.js +3 -0
  328. package/packages/jam/jam-host-calls/general/lookup.test.js +8 -9
  329. package/packages/jam/jam-host-calls/general/read.d.ts +2 -1
  330. package/packages/jam/jam-host-calls/general/read.d.ts.map +1 -1
  331. package/packages/jam/jam-host-calls/general/read.js +3 -0
  332. package/packages/jam/jam-host-calls/general/read.test.js +11 -12
  333. package/packages/jam/jam-host-calls/general/write.d.ts +2 -1
  334. package/packages/jam/jam-host-calls/general/write.d.ts.map +1 -1
  335. package/packages/jam/jam-host-calls/general/write.js +3 -0
  336. package/packages/jam/jam-host-calls/general/write.test.js +10 -11
  337. package/packages/jam/jam-host-calls/refine/export.d.ts +2 -1
  338. package/packages/jam/jam-host-calls/refine/export.d.ts.map +1 -1
  339. package/packages/jam/jam-host-calls/refine/export.js +3 -0
  340. package/packages/jam/jam-host-calls/refine/export.test.js +6 -7
  341. package/packages/jam/jam-host-calls/refine/expunge.d.ts +2 -1
  342. package/packages/jam/jam-host-calls/refine/expunge.d.ts.map +1 -1
  343. package/packages/jam/jam-host-calls/refine/expunge.js +3 -0
  344. package/packages/jam/jam-host-calls/refine/expunge.test.js +3 -4
  345. package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts +2 -1
  346. package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts.map +1 -1
  347. package/packages/jam/jam-host-calls/refine/historical-lookup.js +3 -0
  348. package/packages/jam/jam-host-calls/refine/historical-lookup.test.js +11 -12
  349. package/packages/jam/jam-host-calls/refine/invoke.d.ts +2 -1
  350. package/packages/jam/jam-host-calls/refine/invoke.d.ts.map +1 -1
  351. package/packages/jam/jam-host-calls/refine/invoke.js +4 -1
  352. package/packages/jam/jam-host-calls/refine/invoke.test.js +10 -11
  353. package/packages/jam/jam-host-calls/refine/machine.d.ts +2 -1
  354. package/packages/jam/jam-host-calls/refine/machine.d.ts.map +1 -1
  355. package/packages/jam/jam-host-calls/refine/machine.js +3 -0
  356. package/packages/jam/jam-host-calls/refine/machine.test.js +6 -7
  357. package/packages/jam/jam-host-calls/refine/pages.d.ts +2 -1
  358. package/packages/jam/jam-host-calls/refine/pages.d.ts.map +1 -1
  359. package/packages/jam/jam-host-calls/refine/pages.js +3 -0
  360. package/packages/jam/jam-host-calls/refine/pages.test.js +3 -4
  361. package/packages/jam/jam-host-calls/refine/peek.d.ts +2 -1
  362. package/packages/jam/jam-host-calls/refine/peek.d.ts.map +1 -1
  363. package/packages/jam/jam-host-calls/refine/peek.js +3 -0
  364. package/packages/jam/jam-host-calls/refine/peek.test.js +3 -4
  365. package/packages/jam/jam-host-calls/refine/poke.d.ts +2 -1
  366. package/packages/jam/jam-host-calls/refine/poke.d.ts.map +1 -1
  367. package/packages/jam/jam-host-calls/refine/poke.js +3 -0
  368. package/packages/jam/jam-host-calls/refine/poke.test.js +3 -4
  369. package/packages/jam/jamnp-s/network.js +1 -1
  370. package/packages/jam/jamnp-s/peers.d.ts +2 -1
  371. package/packages/jam/jamnp-s/peers.d.ts.map +1 -1
  372. package/packages/jam/jamnp-s/peers.js +3 -0
  373. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts +4 -2
  374. package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts.map +1 -1
  375. package/packages/jam/jamnp-s/protocol/ce-128-block-request.js +6 -0
  376. package/packages/jam/jamnp-s/protocol/ce-128-block-request.test.js +2 -2
  377. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts +4 -2
  378. package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts.map +1 -1
  379. package/packages/jam/jamnp-s/protocol/ce-129-state-request.js +6 -0
  380. package/packages/jam/jamnp-s/protocol/ce-129-state-request.test.js +4 -4
  381. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +4 -2
  382. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts.map +1 -1
  383. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.js +6 -0
  384. package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.test.js +2 -2
  385. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +6 -3
  386. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts.map +1 -1
  387. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.js +7 -0
  388. package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.test.js +2 -2
  389. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts +5 -2
  390. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts.map +1 -1
  391. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.js +7 -0
  392. package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.test.js +2 -2
  393. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +4 -2
  394. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts.map +1 -1
  395. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.js +6 -0
  396. package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.test.js +2 -2
  397. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +2 -1
  398. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts.map +1 -1
  399. package/packages/jam/jamnp-s/protocol/up-0-block-announcement.js +3 -0
  400. package/packages/jam/jamnp-s/stream-manager.d.ts +2 -1
  401. package/packages/jam/jamnp-s/stream-manager.d.ts.map +1 -1
  402. package/packages/jam/jamnp-s/stream-manager.js +4 -1
  403. package/packages/jam/jamnp-s/tasks/sync.js +4 -4
  404. package/packages/jam/jamnp-s/tasks/sync.test.js +4 -4
  405. package/packages/jam/jamnp-s/tasks/ticket-distribution.js +2 -2
  406. package/packages/jam/jamnp-s/tasks/ticket-distribution.test.js +1 -1
  407. package/packages/jam/node/common.d.ts.map +1 -1
  408. package/packages/jam/node/common.js +3 -3
  409. package/packages/jam/rpc-client/index.d.ts +4 -2
  410. package/packages/jam/rpc-client/index.d.ts.map +1 -1
  411. package/packages/jam/rpc-client/index.js +7 -1
  412. package/packages/jam/state/in-memory-state-view.d.ts +2 -1
  413. package/packages/jam/state/in-memory-state-view.d.ts.map +1 -1
  414. package/packages/jam/state/in-memory-state-view.js +3 -0
  415. package/packages/jam/state/in-memory-state.d.ts +16 -21
  416. package/packages/jam/state/in-memory-state.d.ts.map +1 -1
  417. package/packages/jam/state/in-memory-state.js +10 -6
  418. package/packages/jam/state/in-memory-state.test.js +2 -2
  419. package/packages/jam/state/service.d.ts +2 -6
  420. package/packages/jam/state/service.d.ts.map +1 -1
  421. package/packages/jam/state/service.js +3 -0
  422. package/packages/jam/state/test.utils.js +3 -3
  423. package/packages/jam/state-json/accounts.js +5 -5
  424. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +3 -34
  425. package/packages/jam/state-merkleization/in-memory-state-codec.d.ts.map +1 -1
  426. package/packages/jam/state-merkleization/in-memory-state-codec.js +1 -1
  427. package/packages/jam/state-merkleization/serialized-state-view.d.ts +8 -3
  428. package/packages/jam/state-merkleization/serialized-state-view.d.ts.map +1 -1
  429. package/packages/jam/state-merkleization/serialized-state-view.js +6 -3
  430. package/packages/jam/state-merkleization/serialized-state.d.ts +2 -3
  431. package/packages/jam/state-merkleization/serialized-state.d.ts.map +1 -1
  432. package/packages/jam/state-merkleization/serialized-state.js +10 -2
  433. package/packages/jam/state-merkleization/serialized-state.test.js +1 -1
  434. package/packages/jam/transition/accumulate/accumulate.d.ts.map +1 -1
  435. package/packages/jam/transition/accumulate/accumulate.js +20 -8
  436. package/packages/jam/transition/accumulate/accumulate.test.js +1 -1
  437. package/packages/jam/transition/accumulate/accumulation-result-merge-utils.js +48 -39
  438. package/packages/jam/transition/block-verifier.d.ts +2 -1
  439. package/packages/jam/transition/block-verifier.d.ts.map +1 -1
  440. package/packages/jam/transition/block-verifier.js +3 -0
  441. package/packages/jam/transition/block-verifier.test.js +8 -8
  442. package/packages/jam/transition/chain-stf.d.ts +12 -4
  443. package/packages/jam/transition/chain-stf.d.ts.map +1 -1
  444. package/packages/jam/transition/chain-stf.js +7 -3
  445. package/packages/jam/transition/externalities/accumulate-externalities.d.ts +22 -8
  446. package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
  447. package/packages/jam/transition/externalities/accumulate-externalities.js +49 -29
  448. package/packages/jam/transition/externalities/accumulate-externalities.test.js +661 -101
  449. package/packages/jam/transition/externalities/accumulate-fetch-externalities.d.ts +19 -0
  450. package/packages/jam/transition/externalities/accumulate-fetch-externalities.d.ts.map +1 -0
  451. package/packages/jam/transition/externalities/accumulate-fetch-externalities.js +45 -0
  452. package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.d.ts +2 -0
  453. package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.d.ts.map +1 -0
  454. package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.js +192 -0
  455. package/packages/jam/transition/externalities/fetch-externalities.d.ts +3 -39
  456. package/packages/jam/transition/externalities/fetch-externalities.d.ts.map +1 -1
  457. package/packages/jam/transition/externalities/fetch-externalities.js +2 -88
  458. package/packages/jam/transition/externalities/index.d.ts +3 -0
  459. package/packages/jam/transition/externalities/index.d.ts.map +1 -1
  460. package/packages/jam/transition/externalities/index.js +3 -0
  461. package/packages/jam/transition/externalities/is-authorized-fetch-externalities.d.ts +22 -0
  462. package/packages/jam/transition/externalities/is-authorized-fetch-externalities.d.ts.map +1 -0
  463. package/packages/jam/transition/externalities/is-authorized-fetch-externalities.js +41 -0
  464. package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts +24 -0
  465. package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts.map +1 -0
  466. package/packages/jam/transition/externalities/refine-fetch-externalities.js +59 -0
  467. package/packages/jam/transition/externalities/refine-fetch-externalities.test.d.ts +2 -0
  468. package/packages/jam/transition/externalities/refine-fetch-externalities.test.d.ts.map +1 -0
  469. package/packages/jam/transition/externalities/refine-fetch-externalities.test.js +32 -0
  470. package/packages/jam/transition/hasher.d.ts +2 -1
  471. package/packages/jam/transition/hasher.d.ts.map +1 -1
  472. package/packages/jam/transition/hasher.js +5 -2
  473. package/packages/jam/transition/hasher.test.js +1 -1
  474. package/packages/jam/transition/preimages.test.js +4 -4
  475. package/packages/jam/transition/reports/test.utils.js +1 -1
  476. package/packages/workers/api-node/config.js +4 -4
  477. package/packages/workers/api-node/port.d.ts +2 -1
  478. package/packages/workers/api-node/port.d.ts.map +1 -1
  479. package/packages/workers/api-node/port.js +4 -1
  480. package/packages/workers/api-node/port.test.js +2 -2
  481. package/packages/workers/api-node/protocol.js +2 -2
  482. package/packages/workers/block-authorship/generator.d.ts +13 -2
  483. package/packages/workers/block-authorship/generator.d.ts.map +1 -1
  484. package/packages/workers/block-authorship/generator.js +13 -9
  485. package/packages/workers/block-authorship/generator.test.js +16 -2
  486. package/packages/workers/block-authorship/main.d.ts.map +1 -1
  487. package/packages/workers/block-authorship/main.js +8 -1
  488. package/packages/workers/importer/finality.test.js +1 -1
  489. package/packages/workers/importer/importer.d.ts +23 -6
  490. package/packages/workers/importer/importer.d.ts.map +1 -1
  491. package/packages/workers/importer/importer.js +34 -19
  492. package/packages/workers/importer/main.d.ts.map +1 -1
  493. package/packages/workers/importer/main.js +13 -5
  494. package/packages/jam/transition/externalities/fetch-externalities.test.d.ts +0 -2
  495. package/packages/jam/transition/externalities/fetch-externalities.test.d.ts.map +0 -1
  496. package/packages/jam/transition/externalities/fetch-externalities.test.js +0 -254
@@ -5,6 +5,9 @@ import { MemoryPage } from "./memory-page.js";
5
5
  export class WriteablePage extends MemoryPage {
6
6
  buffer;
7
7
  view;
8
+ static new(pageNumber, initialData) {
9
+ return new WriteablePage(pageNumber, initialData);
10
+ }
8
11
  constructor(pageNumber, initialData) {
9
12
  super(pageNumber);
10
13
  const dataLength = initialData?.length ?? 0;
@@ -11,7 +11,7 @@ describe("WriteablePage", () => {
11
11
  const initialMemory = new Uint8Array([0, ...bytes]);
12
12
  const startIndex = tryAsMemoryIndex(0);
13
13
  const pageNumber = tryAsPageNumber(0);
14
- const readablePage = new WriteablePage(pageNumber, initialMemory);
14
+ const readablePage = WriteablePage.new(pageNumber, initialMemory);
15
15
  const lengthToLoad = 4;
16
16
  const result = new Uint8Array(lengthToLoad);
17
17
  const expectedResult = bytes;
@@ -25,7 +25,7 @@ describe("WriteablePage", () => {
25
25
  const initialMemory = new Uint8Array([0, ...bytes]);
26
26
  const startIndex = tryAsMemoryIndex(0);
27
27
  const pageNumber = tryAsPageNumber(0);
28
- const readablePage = new WriteablePage(pageNumber, initialMemory);
28
+ const readablePage = WriteablePage.new(pageNumber, initialMemory);
29
29
  const lengthToLoad = 4;
30
30
  const result = new Uint8Array(lengthToLoad);
31
31
  const expectedResult = new Uint8Array([3, 4, 0, 0]);
@@ -39,7 +39,7 @@ describe("WriteablePage", () => {
39
39
  const pageNumber = tryAsPageNumber(0);
40
40
  const bytesToStore = new Uint8Array([1, 2, 3, 4]);
41
41
  const indexToStore = tryAsPageIndex(1);
42
- const writeablePage = new WriteablePage(pageNumber);
42
+ const writeablePage = WriteablePage.new(pageNumber);
43
43
  const expectedBuffer = new ArrayBuffer(MIN_ALLOCATION_LENGTH);
44
44
  const expectedView = new Uint8Array(expectedBuffer);
45
45
  expectedView.set(bytesToStore, indexToStore);
@@ -57,7 +57,7 @@ describe("WriteablePage", () => {
57
57
  const pageNumber = tryAsPageNumber(0);
58
58
  const bytesToStore = new Uint8Array([1, 2, 3, 4]);
59
59
  const indexToStore = tryAsPageIndex(MIN_ALLOCATION_LENGTH);
60
- const writeablePage = new WriteablePage(pageNumber);
60
+ const writeablePage = WriteablePage.new(pageNumber);
61
61
  const expectedBuffer = new ArrayBuffer(MIN_ALLOCATION_LENGTH + bytesToStore.length);
62
62
  const expectedView = new Uint8Array(expectedBuffer);
63
63
  expectedView.set(bytesToStore, MIN_ALLOCATION_LENGTH);
@@ -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 BitOps {
4
4
  private regs;
5
- constructor(regs: Registers);
5
+ static new(regs: Registers): BitOps;
6
+ private constructor();
6
7
  or(firstIndex: number, secondIndex: number, resultIndex: number): void;
7
8
  orImmediate(firstIndex: number, immediate: ImmediateDecoder, resultIndex: number): void;
8
9
  and(firstIndex: number, secondIndex: number, resultIndex: number): void;
@@ -1 +1 @@
1
- {"version":3,"file":"bit-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/bit-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,qBAAa,MAAM;IACL,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,SAAS;IAEnC,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAI/D,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIhF,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIhE,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIjF,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIhE,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIjF,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAInE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIlE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIjE,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAItD,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAItD,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIzD,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIzD,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAI1D,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAI1D,OAAO,CAAC,UAAU;IAYlB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAKnD,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAKpD,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAIrD"}
1
+ {"version":3,"file":"bit-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/bit-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,qBAAa,MAAM;IAKG,OAAO,CAAC,IAAI;IAJhC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS;IAI1B,OAAO;IAEP,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAI/D,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIhF,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIhE,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIjF,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIhE,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIjF,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAInE,KAAK,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIlE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIjE,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAItD,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAItD,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIzD,iBAAiB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIzD,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAI1D,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAI1D,OAAO,CAAC,UAAU;IAYlB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAKnD,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAKpD,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAIrD"}
@@ -1,6 +1,9 @@
1
1
  import { clz64, countBits32, countBits64, ctz32, ctz64 } from "./bit-utils.js";
2
2
  export class BitOps {
3
3
  regs;
4
+ static new(regs) {
5
+ return new BitOps(regs);
6
+ }
4
7
  constructor(regs) {
5
8
  this.regs = regs;
6
9
  }
@@ -6,15 +6,15 @@ import { bigintToUint8ArrayLE } from "../test-utils.js";
6
6
  import { BitOps } from "./bit-ops.js";
7
7
  describe("BitOps", () => {
8
8
  function prepareData(firstValue, secondValue = 0n) {
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 bitOps = new BitOps(regs);
17
+ const bitOps = BitOps.new(regs);
18
18
  return { regs, bitOps, immediate, firstRegisterIndex, secondRegisterIndex, resultRegisterIndex };
19
19
  }
20
20
  it("or", () => {
@@ -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 BitRotationOps {
4
4
  private regs;
5
- constructor(regs: Registers);
5
+ static new(regs: Registers): BitRotationOps;
6
+ private constructor();
6
7
  reverseBytes(valueIndex: number, resultIndex: number): void;
7
8
  private rotate32Left;
8
9
  private rotate64Left;
@@ -1 +1 @@
1
- {"version":3,"file":"bit-rotation-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/bit-rotation-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,qBAAa,cAAc;IACb,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,SAAS;IAEnC,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAYpD,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,aAAa;IAQrB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAM9E,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAMjF,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAM9E,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAMjF,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAMnE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAMnE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAMnE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAKpE"}
1
+ {"version":3,"file":"bit-rotation-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/bit-rotation-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,qBAAa,cAAc;IAKL,OAAO,CAAC,IAAI;IAJhC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS;IAI1B,OAAO;IAEP,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAYpD,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,aAAa;IAQrB,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAM9E,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAMjF,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAM9E,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAMjF,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAMnE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAMnE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAMnE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAKpE"}
@@ -1,6 +1,9 @@
1
1
  import { unsignedRightShiftBigInt } from "./math-utils.js";
2
2
  export class BitRotationOps {
3
3
  regs;
4
+ static new(regs) {
5
+ return new BitRotationOps(regs);
6
+ }
4
7
  constructor(regs) {
5
8
  this.regs = regs;
6
9
  }
@@ -7,11 +7,11 @@ import { BitRotationOps } from "./bit-rotation-ops.js";
7
7
  describe("BitRotationOps", () => {
8
8
  describe("reverseBytes", () => {
9
9
  function prepareData(firstValue) {
10
- const regs = new Registers();
10
+ const regs = Registers.empty();
11
11
  const valueRegisterIndex = 0;
12
12
  const resultRegisterIndex = 12;
13
13
  regs.setU64(valueRegisterIndex, firstValue);
14
- const bitRotationOps = new BitRotationOps(regs);
14
+ const bitRotationOps = BitRotationOps.new(regs);
15
15
  return { regs, bitRotationOps, valueRegisterIndex, resultRegisterIndex };
16
16
  }
17
17
  it("should reverse bytes in positive number", () => {
@@ -30,15 +30,15 @@ describe("BitRotationOps", () => {
30
30
  });
31
31
  });
32
32
  function prepareData(firstValue, secondValue) {
33
- const regs = new Registers();
33
+ const regs = Registers.empty();
34
34
  const firstRegisterIndex = 0;
35
35
  const secondRegisterIndex = 1;
36
36
  const resultRegisterIndex = 12;
37
37
  regs.setU64(firstRegisterIndex, firstValue);
38
38
  regs.setU64(secondRegisterIndex, secondValue);
39
- const immediate = new ImmediateDecoder();
39
+ const immediate = ImmediateDecoder.new();
40
40
  immediate.setBytes(bigintToUint8ArrayLE(secondValue));
41
- const bitRotationOps = new BitRotationOps(regs);
41
+ const bitRotationOps = BitRotationOps.new(regs);
42
42
  return { regs, bitRotationOps, immediate, firstRegisterIndex, secondRegisterIndex, resultRegisterIndex };
43
43
  }
44
44
  describe("rot left", () => {
@@ -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
  }