@typeberry/lib 0.5.10 → 0.5.11-1fbacf3
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.
- package/README.md +2 -2
- package/bin/lib/examples/pvm-usage.test.js +2 -2
- package/package.json +1 -1
- package/packages/core/codec/descriptor.js +1 -1
- package/packages/core/codec/descriptors.js +7 -4
- package/packages/core/codec/encoder.d.ts +1 -1
- package/packages/core/codec/encoder.d.ts.map +1 -1
- package/packages/core/codec/encoder.js +3 -2
- package/packages/core/codec/index.test.js +1 -1
- package/packages/core/codec/skip.d.ts +2 -1
- package/packages/core/codec/skip.d.ts.map +1 -1
- package/packages/core/codec/skip.js +3 -0
- package/packages/core/codec/view.js +2 -2
- package/packages/core/collections/multi-map.d.ts +2 -1
- package/packages/core/collections/multi-map.d.ts.map +1 -1
- package/packages/core/collections/multi-map.js +3 -0
- package/packages/core/collections/multi-map.test.js +2 -2
- package/packages/core/concurrent/parent.js +4 -1
- package/packages/core/crypto/ed25519.d.ts +2 -5
- package/packages/core/crypto/ed25519.d.ts.map +1 -1
- package/packages/core/crypto/ed25519.js +4 -1
- package/packages/core/hash/hash.d.ts +4 -2
- package/packages/core/hash/hash.d.ts.map +1 -1
- package/packages/core/hash/hash.js +6 -1
- package/packages/core/networking/quic-network.d.ts +3 -2
- package/packages/core/networking/quic-network.d.ts.map +1 -1
- package/packages/core/networking/quic-network.js +3 -0
- package/packages/core/networking/quic-peer.d.ts +2 -1
- package/packages/core/networking/quic-peer.d.ts.map +1 -1
- package/packages/core/networking/quic-peer.js +5 -2
- package/packages/core/networking/quic-stream.d.ts +2 -1
- package/packages/core/networking/quic-stream.d.ts.map +1 -1
- package/packages/core/networking/quic-stream.js +3 -0
- package/packages/core/networking/setup.js +2 -2
- package/packages/core/pvm-host-calls/bin.js +2 -2
- package/packages/core/pvm-host-calls/ecalli-trace-logger.d.ts +5 -0
- package/packages/core/pvm-host-calls/ecalli-trace-logger.d.ts.map +1 -1
- package/packages/core/pvm-host-calls/ecalli-trace-logger.js +8 -1
- package/packages/core/pvm-host-calls/ecalli-trace-logger.test.js +1 -1
- package/packages/core/pvm-host-calls/host-call-memory.d.ts +2 -1
- package/packages/core/pvm-host-calls/host-call-memory.d.ts.map +1 -1
- package/packages/core/pvm-host-calls/host-call-memory.js +3 -0
- package/packages/core/pvm-host-calls/host-call-memory.test.js +1 -1
- package/packages/core/pvm-host-calls/host-call-registers.d.ts +5 -1
- package/packages/core/pvm-host-calls/host-call-registers.d.ts.map +1 -1
- package/packages/core/pvm-host-calls/host-call-registers.js +11 -1
- package/packages/core/pvm-host-calls/host-call-registers.test.js +2 -2
- package/packages/core/pvm-host-calls/host-calls-executor.d.ts +2 -1
- package/packages/core/pvm-host-calls/host-calls-executor.d.ts.map +1 -1
- package/packages/core/pvm-host-calls/host-calls-executor.js +5 -2
- package/packages/core/pvm-host-calls/host-calls.d.ts +4 -2
- package/packages/core/pvm-host-calls/host-calls.d.ts.map +1 -1
- package/packages/core/pvm-host-calls/host-calls.js +9 -4
- package/packages/core/pvm-host-calls/pvm-instance-manager.js +1 -1
- package/packages/core/pvm-interface/pvm.d.ts +2 -0
- package/packages/core/pvm-interface/pvm.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/args-decoder/args-decoder.js +1 -1
- package/packages/core/pvm-interpreter/args-decoder/args-decoder.test.js +3 -3
- package/packages/core/pvm-interpreter/args-decoder/args-decoding-results.js +11 -11
- package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts +2 -1
- package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.js +3 -0
- package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.test.js +2 -2
- package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts +2 -1
- package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.js +3 -0
- package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.test.js +26 -26
- package/packages/core/pvm-interpreter/basic-blocks/basic-blocks.test.js +8 -8
- package/packages/core/pvm-interpreter/bin.js +1 -1
- package/packages/core/pvm-interpreter/debugger-adapter.d.ts +2 -1
- package/packages/core/pvm-interpreter/debugger-adapter.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/debugger-adapter.js +6 -3
- package/packages/core/pvm-interpreter/gas.js +4 -1
- package/packages/core/pvm-interpreter/interpreter.d.ts +2 -1
- package/packages/core/pvm-interpreter/interpreter.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/interpreter.js +19 -16
- package/packages/core/pvm-interpreter/memory/memory-builder.js +2 -2
- package/packages/core/pvm-interpreter/memory/memory-builder.test.js +7 -7
- package/packages/core/pvm-interpreter/memory/memory.d.ts +2 -1
- package/packages/core/pvm-interpreter/memory/memory.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/memory/memory.js +4 -1
- package/packages/core/pvm-interpreter/memory/memory.test.js +31 -31
- package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts +2 -1
- package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/memory/pages/readable-page.js +3 -0
- package/packages/core/pvm-interpreter/memory/pages/readable-page.test.js +3 -3
- package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts +2 -1
- package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/memory/pages/writeable-page.js +3 -0
- package/packages/core/pvm-interpreter/memory/pages/writeable-page.test.js +4 -4
- package/packages/core/pvm-interpreter/ops/bit-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/bit-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/bit-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/bit-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/bit-rotation-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/bit-rotation-ops.test.js +5 -5
- package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/boolean-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/boolean-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/branch-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/branch-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/branch-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/branch-ops.test.js +4 -4
- package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.test.js +5 -5
- package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/host-call-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/host-call-ops.test.js +2 -2
- package/packages/core/pvm-interpreter/ops/load-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/load-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/load-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/load-ops.test.js +10 -10
- package/packages/core/pvm-interpreter/ops/math-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/math-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/math-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/math-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/memory-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/memory-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/memory-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/memory-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/move-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/move-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/move-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/move-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/no-args-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/no-args-ops.test.js +2 -2
- package/packages/core/pvm-interpreter/ops/shift-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/shift-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/shift-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/shift-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/store-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/store-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/store-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/store-ops.test.js +7 -7
- package/packages/core/pvm-interpreter/ops-dispatchers/no-args-dispatcher.test.js +1 -1
- package/packages/core/pvm-interpreter/ops-dispatchers/one-imm-dispatcher.test.js +4 -4
- package/packages/core/pvm-interpreter/ops-dispatchers/one-offset-dispatcher.test.js +2 -2
- package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-ext-imm-dispatcher.test.js +4 -4
- package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-dispatcher.test.js +7 -7
- package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-one-offset-dispatcher.test.js +10 -10
- package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-two-imms-dispatcher.test.js +5 -5
- package/packages/core/pvm-interpreter/ops-dispatchers/three-regs-dispatcher.test.js +7 -7
- package/packages/core/pvm-interpreter/ops-dispatchers/two-imms-dispatcher.test.js +5 -5
- package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-dispatcher.test.js +6 -6
- package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-imm-dispatcher.test.js +11 -11
- package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-offset-dispatcher.test.js +2 -2
- package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-two-imms-dispatcher.test.js +14 -14
- package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts +5 -2
- package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/program-decoder/jump-table.js +9 -4
- package/packages/core/pvm-interpreter/program-decoder/jump-table.test.js +6 -6
- package/packages/core/pvm-interpreter/program-decoder/mask.d.ts +2 -1
- package/packages/core/pvm-interpreter/program-decoder/mask.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/program-decoder/mask.js +3 -0
- package/packages/core/pvm-interpreter/program-decoder/mask.test.js +10 -10
- package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts +2 -1
- package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/program-decoder/program-decoder.js +6 -3
- package/packages/core/pvm-interpreter/program-decoder/program-decoder.test.js +5 -5
- package/packages/core/pvm-interpreter/program.js +3 -3
- package/packages/core/pvm-interpreter/registers.d.ts +5 -2
- package/packages/core/pvm-interpreter/registers.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/registers.js +10 -6
- package/packages/core/pvm-interpreter/registers.test.js +10 -10
- package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts +6 -3
- package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.js +11 -2
- package/packages/core/pvm-interpreter-ananas/index.d.ts +6 -3
- package/packages/core/pvm-interpreter-ananas/index.d.ts.map +1 -1
- package/packages/core/pvm-interpreter-ananas/index.js +12 -3
- package/packages/core/trie/nodes.d.ts +7 -2
- package/packages/core/trie/nodes.d.ts.map +1 -1
- package/packages/core/trie/nodes.js +20 -11
- package/packages/core/trie/nodesDb.d.ts +3 -1
- package/packages/core/trie/nodesDb.d.ts.map +1 -1
- package/packages/core/trie/nodesDb.js +6 -0
- package/packages/core/trie/trie.js +2 -2
- package/packages/extensions/ipc/index.js +5 -2
- package/packages/extensions/ipc/jamnp/handler.d.ts +4 -2
- package/packages/extensions/ipc/jamnp/handler.d.ts.map +1 -1
- package/packages/extensions/ipc/jamnp/handler.js +9 -3
- package/packages/extensions/ipc/jamnp/server.js +3 -3
- package/packages/extensions/ipc/server.d.ts +2 -1
- package/packages/extensions/ipc/server.d.ts.map +1 -1
- package/packages/extensions/ipc/server.js +4 -1
- package/packages/jam/block/header.js +1 -1
- package/packages/jam/block/work-package.d.ts +7 -7
- package/packages/jam/block/work-package.d.ts.map +1 -1
- package/packages/jam/block/work-package.js +12 -12
- package/packages/jam/config/chain-spec.d.ts +2 -1
- package/packages/jam/config/chain-spec.d.ts.map +1 -1
- package/packages/jam/config/chain-spec.js +5 -2
- package/packages/jam/config/network.d.ts +2 -7
- package/packages/jam/config/network.d.ts.map +1 -1
- package/packages/jam/config/network.js +3 -0
- package/packages/jam/config-node/jip-chain-spec.js +1 -1
- package/packages/jam/database/blocks.test.js +1 -1
- package/packages/jam/database/states.d.ts +2 -1
- package/packages/jam/database/states.d.ts.map +1 -1
- package/packages/jam/database/states.js +3 -0
- package/packages/jam/database/states.test.js +1 -1
- package/packages/jam/database-lmdb/blocks.d.ts +2 -1
- package/packages/jam/database-lmdb/blocks.d.ts.map +1 -1
- package/packages/jam/database-lmdb/blocks.js +3 -0
- package/packages/jam/database-lmdb/root.d.ts +2 -1
- package/packages/jam/database-lmdb/root.d.ts.map +1 -1
- package/packages/jam/database-lmdb/root.js +3 -0
- package/packages/jam/database-lmdb/states.d.ts +2 -1
- package/packages/jam/database-lmdb/states.d.ts.map +1 -1
- package/packages/jam/database-lmdb/states.js +3 -0
- package/packages/jam/database-lmdb/states.test.js +9 -9
- package/packages/jam/executor/index.d.ts +1 -1
- package/packages/jam/executor/index.d.ts.map +1 -1
- package/packages/jam/executor/index.js +1 -1
- package/packages/jam/executor/pvm-executor.d.ts +9 -2
- package/packages/jam/executor/pvm-executor.d.ts.map +1 -1
- package/packages/jam/executor/pvm-executor.js +36 -21
- package/packages/jam/fuzz-proto/v1/handler.d.ts +2 -1
- package/packages/jam/fuzz-proto/v1/handler.d.ts.map +1 -1
- package/packages/jam/fuzz-proto/v1/handler.js +3 -0
- package/packages/jam/fuzz-proto/v1/handler.test.js +10 -10
- package/packages/jam/in-core/externalities/index.d.ts +4 -0
- package/packages/jam/in-core/externalities/index.d.ts.map +1 -0
- package/packages/jam/in-core/externalities/index.js +3 -0
- package/packages/jam/in-core/externalities/is-authorized-fetch.d.ts +20 -0
- package/packages/jam/in-core/externalities/is-authorized-fetch.d.ts.map +1 -0
- package/packages/jam/in-core/externalities/is-authorized-fetch.js +41 -0
- package/packages/jam/in-core/externalities/is-authorized-fetch.test.d.ts +2 -0
- package/packages/jam/in-core/externalities/is-authorized-fetch.test.d.ts.map +1 -0
- package/packages/jam/in-core/externalities/is-authorized-fetch.test.js +101 -0
- package/packages/jam/in-core/externalities/refine-fetch.d.ts +51 -0
- package/packages/jam/in-core/externalities/refine-fetch.d.ts.map +1 -0
- package/packages/jam/in-core/externalities/refine-fetch.js +80 -0
- package/packages/jam/in-core/externalities/refine-fetch.test.d.ts +2 -0
- package/packages/jam/in-core/externalities/refine-fetch.test.d.ts.map +1 -0
- package/packages/jam/in-core/externalities/refine-fetch.test.js +219 -0
- package/packages/jam/in-core/externalities/refine.d.ts +18 -8
- package/packages/jam/in-core/externalities/refine.d.ts.map +1 -1
- package/packages/jam/in-core/externalities/refine.js +86 -7
- package/packages/jam/in-core/externalities/refine.test.js +168 -3
- package/packages/jam/in-core/in-core.d.ts +9 -23
- package/packages/jam/in-core/in-core.d.ts.map +1 -1
- package/packages/jam/in-core/in-core.js +22 -187
- package/packages/jam/in-core/in-core.test.js +52 -20
- package/packages/jam/in-core/is-authorized.d.ts +34 -0
- package/packages/jam/in-core/is-authorized.d.ts.map +1 -0
- package/packages/jam/in-core/is-authorized.js +73 -0
- package/packages/jam/in-core/is-authorized.test.d.ts +2 -0
- package/packages/jam/in-core/is-authorized.test.d.ts.map +1 -0
- package/packages/jam/in-core/is-authorized.test.js +167 -0
- package/packages/jam/in-core/refine.d.ts +31 -0
- package/packages/jam/in-core/refine.d.ts.map +1 -0
- package/packages/jam/in-core/refine.js +182 -0
- package/packages/jam/in-core/refine.test.d.ts +2 -0
- package/packages/jam/in-core/refine.test.d.ts.map +1 -0
- package/packages/jam/in-core/refine.test.js +6 -0
- package/packages/jam/jam-host-calls/accumulate/assign.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/assign.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/assign.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/assign.test.js +8 -9
- package/packages/jam/jam-host-calls/accumulate/bless.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/bless.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/bless.js +12 -9
- package/packages/jam/jam-host-calls/accumulate/bless.test.js +11 -12
- package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/checkpoint.js +4 -1
- package/packages/jam/jam-host-calls/accumulate/checkpoint.test.js +2 -3
- package/packages/jam/jam-host-calls/accumulate/designate.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/designate.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/designate.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/designate.test.js +5 -6
- package/packages/jam/jam-host-calls/accumulate/eject.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/eject.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/eject.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/eject.test.js +8 -9
- package/packages/jam/jam-host-calls/accumulate/forget.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/forget.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/forget.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/forget.test.js +5 -6
- package/packages/jam/jam-host-calls/accumulate/new.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/new.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/new.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/new.test.js +9 -10
- package/packages/jam/jam-host-calls/accumulate/provide.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/provide.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/provide.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/provide.test.js +8 -9
- package/packages/jam/jam-host-calls/accumulate/query.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/query.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/query.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/query.test.js +8 -9
- package/packages/jam/jam-host-calls/accumulate/solicit.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/solicit.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/solicit.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/solicit.test.js +7 -8
- package/packages/jam/jam-host-calls/accumulate/transfer.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/transfer.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/transfer.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/transfer.test.js +9 -10
- package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/upgrade.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/upgrade.test.js +4 -5
- package/packages/jam/jam-host-calls/accumulate/yield.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/yield.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/yield.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/yield.test.js +4 -5
- package/packages/jam/jam-host-calls/externalities/partial-state.d.ts +1 -1
- package/packages/jam/jam-host-calls/externalities/refine-externalities.d.ts +1 -1
- package/packages/jam/jam-host-calls/externalities/refine-externalities.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/externalities/refine-externalities.test.js +9 -9
- package/packages/jam/jam-host-calls/externalities/state-update.d.ts +2 -3
- package/packages/jam/jam-host-calls/externalities/state-update.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/externalities/state-update.js +5 -2
- package/packages/jam/jam-host-calls/externalities/test-accounts.js +2 -2
- package/packages/jam/jam-host-calls/general/fetch.d.ts +166 -104
- package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/fetch.js +120 -23
- package/packages/jam/jam-host-calls/general/fetch.test.js +125 -92
- package/packages/jam/jam-host-calls/general/gas.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/gas.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/gas.js +3 -0
- package/packages/jam/jam-host-calls/general/gas.test.js +4 -5
- package/packages/jam/jam-host-calls/general/info.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/info.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/info.js +3 -0
- package/packages/jam/jam-host-calls/general/info.test.js +6 -7
- package/packages/jam/jam-host-calls/general/log.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/log.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/log.js +3 -0
- package/packages/jam/jam-host-calls/general/lookup.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/lookup.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/lookup.js +3 -0
- package/packages/jam/jam-host-calls/general/lookup.test.js +8 -9
- package/packages/jam/jam-host-calls/general/read.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/read.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/read.js +3 -0
- package/packages/jam/jam-host-calls/general/read.test.js +11 -12
- package/packages/jam/jam-host-calls/general/write.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/write.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/write.js +3 -0
- package/packages/jam/jam-host-calls/general/write.test.js +10 -11
- package/packages/jam/jam-host-calls/refine/export.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/export.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/export.js +3 -0
- package/packages/jam/jam-host-calls/refine/export.test.js +6 -7
- package/packages/jam/jam-host-calls/refine/expunge.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/expunge.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/expunge.js +3 -0
- package/packages/jam/jam-host-calls/refine/expunge.test.js +3 -4
- package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/historical-lookup.js +3 -0
- package/packages/jam/jam-host-calls/refine/historical-lookup.test.js +11 -12
- package/packages/jam/jam-host-calls/refine/invoke.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/invoke.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/invoke.js +4 -1
- package/packages/jam/jam-host-calls/refine/invoke.test.js +10 -11
- package/packages/jam/jam-host-calls/refine/machine.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/machine.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/machine.js +3 -0
- package/packages/jam/jam-host-calls/refine/machine.test.js +6 -7
- package/packages/jam/jam-host-calls/refine/pages.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/pages.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/pages.js +3 -0
- package/packages/jam/jam-host-calls/refine/pages.test.js +3 -4
- package/packages/jam/jam-host-calls/refine/peek.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/peek.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/peek.js +3 -0
- package/packages/jam/jam-host-calls/refine/peek.test.js +3 -4
- package/packages/jam/jam-host-calls/refine/poke.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/poke.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/poke.js +3 -0
- package/packages/jam/jam-host-calls/refine/poke.test.js +3 -4
- package/packages/jam/jamnp-s/network.js +1 -1
- package/packages/jam/jamnp-s/peers.d.ts +2 -1
- package/packages/jam/jamnp-s/peers.d.ts.map +1 -1
- package/packages/jam/jamnp-s/peers.js +3 -0
- package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts +4 -2
- package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-128-block-request.js +6 -0
- package/packages/jam/jamnp-s/protocol/ce-128-block-request.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts +4 -2
- package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-129-state-request.js +6 -0
- package/packages/jam/jamnp-s/protocol/ce-129-state-request.test.js +4 -4
- package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +4 -2
- package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.js +6 -0
- package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +6 -3
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.js +7 -0
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts +5 -2
- package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.js +7 -0
- package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +4 -2
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.js +6 -0
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +2 -1
- package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/up-0-block-announcement.js +3 -0
- package/packages/jam/jamnp-s/stream-manager.d.ts +2 -1
- package/packages/jam/jamnp-s/stream-manager.d.ts.map +1 -1
- package/packages/jam/jamnp-s/stream-manager.js +4 -1
- package/packages/jam/jamnp-s/tasks/sync.js +4 -4
- package/packages/jam/jamnp-s/tasks/sync.test.js +4 -4
- package/packages/jam/jamnp-s/tasks/ticket-distribution.js +2 -2
- package/packages/jam/jamnp-s/tasks/ticket-distribution.test.js +1 -1
- package/packages/jam/node/common.d.ts.map +1 -1
- package/packages/jam/node/common.js +3 -3
- package/packages/jam/rpc-client/index.d.ts +4 -2
- package/packages/jam/rpc-client/index.d.ts.map +1 -1
- package/packages/jam/rpc-client/index.js +7 -1
- package/packages/jam/state/in-memory-state-view.d.ts +2 -1
- package/packages/jam/state/in-memory-state-view.d.ts.map +1 -1
- package/packages/jam/state/in-memory-state-view.js +3 -0
- package/packages/jam/state/in-memory-state.d.ts +16 -21
- package/packages/jam/state/in-memory-state.d.ts.map +1 -1
- package/packages/jam/state/in-memory-state.js +10 -6
- package/packages/jam/state/in-memory-state.test.js +2 -2
- package/packages/jam/state/service.d.ts +2 -6
- package/packages/jam/state/service.d.ts.map +1 -1
- package/packages/jam/state/service.js +3 -0
- package/packages/jam/state/test.utils.js +3 -3
- package/packages/jam/state-json/accounts.js +5 -5
- package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +3 -34
- package/packages/jam/state-merkleization/in-memory-state-codec.d.ts.map +1 -1
- package/packages/jam/state-merkleization/in-memory-state-codec.js +1 -1
- package/packages/jam/state-merkleization/serialized-state-view.d.ts +8 -3
- package/packages/jam/state-merkleization/serialized-state-view.d.ts.map +1 -1
- package/packages/jam/state-merkleization/serialized-state-view.js +6 -3
- package/packages/jam/state-merkleization/serialized-state.d.ts +2 -3
- package/packages/jam/state-merkleization/serialized-state.d.ts.map +1 -1
- package/packages/jam/state-merkleization/serialized-state.js +10 -2
- package/packages/jam/state-merkleization/serialized-state.test.js +1 -1
- package/packages/jam/transition/accumulate/accumulate.d.ts.map +1 -1
- package/packages/jam/transition/accumulate/accumulate.js +20 -8
- package/packages/jam/transition/accumulate/accumulate.test.js +1 -1
- package/packages/jam/transition/accumulate/accumulation-result-merge-utils.js +48 -39
- package/packages/jam/transition/block-verifier.d.ts +2 -1
- package/packages/jam/transition/block-verifier.d.ts.map +1 -1
- package/packages/jam/transition/block-verifier.js +3 -0
- package/packages/jam/transition/block-verifier.test.js +8 -8
- package/packages/jam/transition/chain-stf.d.ts +12 -4
- package/packages/jam/transition/chain-stf.d.ts.map +1 -1
- package/packages/jam/transition/chain-stf.js +7 -3
- package/packages/jam/transition/externalities/accumulate-externalities.d.ts +22 -8
- package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
- package/packages/jam/transition/externalities/accumulate-externalities.js +49 -29
- package/packages/jam/transition/externalities/accumulate-externalities.test.js +661 -101
- package/packages/jam/transition/externalities/accumulate-fetch-externalities.d.ts +19 -0
- package/packages/jam/transition/externalities/accumulate-fetch-externalities.d.ts.map +1 -0
- package/packages/jam/transition/externalities/accumulate-fetch-externalities.js +45 -0
- package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.d.ts +2 -0
- package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.d.ts.map +1 -0
- package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.js +192 -0
- package/packages/jam/transition/externalities/fetch-externalities.d.ts +54 -37
- package/packages/jam/transition/externalities/fetch-externalities.d.ts.map +1 -1
- package/packages/jam/transition/externalities/fetch-externalities.js +45 -89
- package/packages/jam/transition/externalities/index.d.ts +1 -0
- package/packages/jam/transition/externalities/index.d.ts.map +1 -1
- package/packages/jam/transition/externalities/index.js +1 -0
- package/packages/jam/transition/hasher.d.ts +2 -1
- package/packages/jam/transition/hasher.d.ts.map +1 -1
- package/packages/jam/transition/hasher.js +5 -2
- package/packages/jam/transition/hasher.test.js +1 -1
- package/packages/jam/transition/preimages.test.js +4 -4
- package/packages/jam/transition/reports/test.utils.js +1 -1
- package/packages/workers/api-node/config.js +4 -4
- package/packages/workers/api-node/port.d.ts +2 -1
- package/packages/workers/api-node/port.d.ts.map +1 -1
- package/packages/workers/api-node/port.js +4 -1
- package/packages/workers/api-node/port.test.js +2 -2
- package/packages/workers/api-node/protocol.js +2 -2
- package/packages/workers/block-authorship/generator.d.ts +13 -2
- package/packages/workers/block-authorship/generator.d.ts.map +1 -1
- package/packages/workers/block-authorship/generator.js +13 -9
- package/packages/workers/block-authorship/generator.test.js +16 -2
- package/packages/workers/block-authorship/main.d.ts.map +1 -1
- package/packages/workers/block-authorship/main.js +8 -1
- package/packages/workers/importer/finality.test.js +1 -1
- package/packages/workers/importer/importer.d.ts +23 -6
- package/packages/workers/importer/importer.d.ts.map +1 -1
- package/packages/workers/importer/importer.js +34 -19
- package/packages/workers/importer/main.d.ts.map +1 -1
- package/packages/workers/importer/main.js +13 -5
- package/packages/jam/transition/externalities/fetch-externalities.test.d.ts +0 -2
- package/packages/jam/transition/externalities/fetch-externalities.test.d.ts.map +0 -1
- 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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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;
|
|
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"}
|
|
@@ -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 =
|
|
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
|
|
15
|
+
const immediate = ImmediateDecoder.new();
|
|
16
16
|
immediate.setBytes(bigintToUint8ArrayLE(secondValue));
|
|
17
|
-
const bitOps = new
|
|
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
|
-
|
|
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;
|
|
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"}
|
|
@@ -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 =
|
|
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
|
|
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 =
|
|
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
|
|
39
|
+
const immediate = ImmediateDecoder.new();
|
|
40
40
|
immediate.setBytes(bigintToUint8ArrayLE(secondValue));
|
|
41
|
-
const bitRotationOps = new
|
|
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
|
-
|
|
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;
|
|
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"}
|
|
@@ -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 =
|
|
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
|
|
16
|
+
const immediate = ImmediateDecoder.new();
|
|
17
17
|
immediate.setBytes(bigintToUint8ArrayLE(secondValue));
|
|
18
|
-
const bitOps = new
|
|
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
|
-
|
|
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;
|
|
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 =
|
|
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
|
|
19
|
+
basicBlocks.reset(code, Mask.new(BitVec.fromBlob(new Uint8Array([0b0000_1001]), code.length)));
|
|
20
20
|
instructionResult.nextPc = initialNextPc;
|
|
21
|
-
const branchOps = new
|
|
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
|
|
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
|
-
|
|
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;
|
|
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 =
|
|
17
|
-
const jumpTable =
|
|
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
|
|
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
|
|
23
|
+
const dynamicJumpOps = DynamicJumpOps.new(regs, jumpTable, instructionResult, basicBlocks);
|
|
24
24
|
const registerIndex = 0;
|
|
25
25
|
regs.setU64(registerIndex, firstValue);
|
|
26
|
-
const immediate = new
|
|
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
|
-
|
|
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;
|
|
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"}
|
|
@@ -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
|
|
12
|
-
const immediate = new
|
|
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
|
-
|
|
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;
|
|
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 =
|
|
17
|
-
const memory = new
|
|
18
|
-
const loadOps = new
|
|
19
|
-
const immediateDecoder = new
|
|
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 =
|
|
50
|
-
const loadOps = new
|
|
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 =
|
|
145
|
-
const loadOps = new
|
|
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
|
|
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
|
|
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
|
-
|
|
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":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,iBAAiB,CAAC;AAgBnE,qBAAa,OAAO;
|
|
1
|
+
{"version":3,"file":"math-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/math-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,EAAE,KAAK,SAAS,EAAoB,MAAM,iBAAiB,CAAC;AAgBnE,qBAAa,OAAO;IAKE,OAAO,CAAC,IAAI;IAJhC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS;IAI1B,OAAO;IAEP,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAOnE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAInE,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAOpF,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIpF,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAOnE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAInE,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIvE,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIvE,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIvE,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAOpF,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIpF,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIxF,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIxF,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;IAInE,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIvF,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIvF,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAazE,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAUzE,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAW3E,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAQ3E,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAazE,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAUzE,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAW3E,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAQ3E,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIhE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIjE,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIhE,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAGlE"}
|
|
@@ -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 =
|
|
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
|
|
15
|
+
const immediate = ImmediateDecoder.new();
|
|
16
16
|
immediate.setBytes(bigintToUint8ArrayLE(firstValue));
|
|
17
|
-
const mathOps = new
|
|
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
|
-
|
|
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;
|
|
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 =
|
|
13
|
-
const memory = new
|
|
12
|
+
const regs = Registers.empty();
|
|
13
|
+
const memory = Memory.new();
|
|
14
14
|
const instructionResult = new InstructionResult();
|
|
15
|
-
const memoryOps = new
|
|
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
|
-
|
|
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;
|
|
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"}
|
|
@@ -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 =
|
|
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
|
|
15
|
+
const immediate = ImmediateDecoder.new();
|
|
16
16
|
immediate.setBytes(bigintToUint8ArrayLE(secondValue));
|
|
17
|
-
const moveOps = new
|
|
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
|
-
|
|
4
|
+
static new(instructionResult: InstructionResult): NoArgsOps;
|
|
5
|
+
private constructor();
|
|
5
6
|
trap(): void;
|
|
6
7
|
fallthrough(): void;
|
|
7
8
|
}
|