@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-args-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/no-args-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,qBAAa,SAAS;
|
|
1
|
+
{"version":3,"file":"no-args-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/no-args-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,qBAAa,SAAS;IAKA,OAAO,CAAC,iBAAiB;IAJ7C,MAAM,CAAC,GAAG,CAAC,iBAAiB,EAAE,iBAAiB;IAI/C,OAAO;IAEP,IAAI;IAIJ,WAAW;CAGZ"}
|
|
@@ -7,7 +7,7 @@ describe("NoArgsOps", () => {
|
|
|
7
7
|
describe("trap", () => {
|
|
8
8
|
it("should change status to panic", () => {
|
|
9
9
|
const instructionResult = new InstructionResult();
|
|
10
|
-
const noArgsOps = new
|
|
10
|
+
const noArgsOps = NoArgsOps.new(instructionResult);
|
|
11
11
|
noArgsOps.trap();
|
|
12
12
|
assert.strictEqual(instructionResult.status, Result.PANIC);
|
|
13
13
|
});
|
|
@@ -16,7 +16,7 @@ describe("NoArgsOps", () => {
|
|
|
16
16
|
it("should not change anything", () => {
|
|
17
17
|
const instructionResult = new InstructionResult();
|
|
18
18
|
const expectedInstructionResult = new InstructionResult();
|
|
19
|
-
const noArgsOps = new
|
|
19
|
+
const noArgsOps = NoArgsOps.new(instructionResult);
|
|
20
20
|
noArgsOps.fallthrough();
|
|
21
21
|
assert.deepStrictEqual(instructionResult, expectedInstructionResult);
|
|
22
22
|
});
|
|
@@ -2,7 +2,8 @@ import type { ImmediateDecoder } from "../args-decoder/decoders/immediate-decode
|
|
|
2
2
|
import type { Registers } from "../registers.js";
|
|
3
3
|
export declare class ShiftOps {
|
|
4
4
|
private regs;
|
|
5
|
-
|
|
5
|
+
static new(regs: Registers): ShiftOps;
|
|
6
|
+
private constructor();
|
|
6
7
|
shiftLogicalLeftU32(firstIndex: number, secondIndex: number, resultIndex: number): void;
|
|
7
8
|
shiftLogicalLeftU64(firstIndex: number, secondIndex: number, resultIndex: number): void;
|
|
8
9
|
shiftLogicalRightU32(firstIndex: number, secondIndex: number, resultIndex: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shift-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/shift-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD,qBAAa,QAAQ;
|
|
1
|
+
{"version":3,"file":"shift-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/shift-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD,qBAAa,QAAQ;IAKC,OAAO,CAAC,IAAI;IAJhC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS;IAI1B,OAAO;IAEP,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAOhF,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIhF,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAOjF,oBAAoB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAOjF,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAOpF,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;IAIpF,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIjG,4BAA4B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIjG,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIlG,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAOlG,gCAAgC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIrG,gCAAgC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIrG,uCAAuC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAI5G,uCAAuC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAI5G,wCAAwC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAI7G,wCAAwC,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAO7G,2CAA2C,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;IAIhH,2CAA2C,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM;CAGjH"}
|
|
@@ -6,15 +6,15 @@ import { bigintToUint8ArrayLE } from "../test-utils.js";
|
|
|
6
6
|
import { ShiftOps } from "./shift-ops.js";
|
|
7
7
|
describe("ShiftOps", () => {
|
|
8
8
|
function prepareData(firstValue, secondValue) {
|
|
9
|
-
const regs =
|
|
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 shiftOps = new
|
|
17
|
+
const shiftOps = ShiftOps.new(regs);
|
|
18
18
|
return { regs, shiftOps, immediate, firstRegisterIndex, secondRegisterIndex, resultRegisterIndex };
|
|
19
19
|
}
|
|
20
20
|
it("shiftLogicalLeft U32", () => {
|
|
@@ -6,7 +6,8 @@ export declare class StoreOps {
|
|
|
6
6
|
private regs;
|
|
7
7
|
private memory;
|
|
8
8
|
private instructionResult;
|
|
9
|
-
|
|
9
|
+
static new(regs: Registers, memory: Memory, instructionResult: InstructionResult): StoreOps;
|
|
10
|
+
private constructor();
|
|
10
11
|
storeU8(address: number, registerIndex: number): void;
|
|
11
12
|
storeU16(address: number, registerIndex: number): void;
|
|
12
13
|
storeU32(address: number, registerIndex: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/store-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD,qBAAa,QAAQ;
|
|
1
|
+
{"version":3,"file":"store-ops.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/ops/store-ops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+CAA+C,CAAC;AACtF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAGjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAIjD,qBAAa,QAAQ;IAMjB,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,iBAAiB;IAP3B,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB;IAIhF,OAAO;IAMP,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI9C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI/C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI/C,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM;IAI/C,UAAU,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKtG,WAAW,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKvG,WAAW,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKvG,WAAW,CAAC,kBAAkB,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAKvG,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAIpE,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAIrE,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAIrE,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,gBAAgB;IAIrE,mBAAmB,CACjB,aAAa,EAAE,MAAM,EACrB,qBAAqB,EAAE,gBAAgB,EACvC,sBAAsB,EAAE,gBAAgB;IAM1C,oBAAoB,CAClB,aAAa,EAAE,MAAM,EACrB,qBAAqB,EAAE,gBAAgB,EACvC,sBAAsB,EAAE,gBAAgB;IAM1C,oBAAoB,CAClB,aAAa,EAAE,MAAM,EACrB,qBAAqB,EAAE,gBAAgB,EACvC,sBAAsB,EAAE,gBAAgB;IAM1C,oBAAoB,CAClB,aAAa,EAAE,MAAM,EACrB,qBAAqB,EAAE,gBAAgB,EACvC,sBAAsB,EAAE,gBAAgB;IAM1C,OAAO,CAAC,KAAK;CAad"}
|
|
@@ -6,6 +6,9 @@ export class StoreOps {
|
|
|
6
6
|
regs;
|
|
7
7
|
memory;
|
|
8
8
|
instructionResult;
|
|
9
|
+
static new(regs, memory, instructionResult) {
|
|
10
|
+
return new StoreOps(regs, memory, instructionResult);
|
|
11
|
+
}
|
|
9
12
|
constructor(regs, memory, instructionResult) {
|
|
10
13
|
this.regs = regs;
|
|
11
14
|
this.memory = memory;
|
|
@@ -21,7 +21,7 @@ const getExpectedPage = (address, contents, length) => {
|
|
|
21
21
|
describe("StoreOps", () => {
|
|
22
22
|
function prepareStoreData(valueToStore, noOfBytes) {
|
|
23
23
|
const instructionResult = new InstructionResult();
|
|
24
|
-
const regs =
|
|
24
|
+
const regs = Registers.empty();
|
|
25
25
|
const address = tryAsMemoryIndex(RESERVED_NUMBER_OF_PAGES * PAGE_SIZE + 1);
|
|
26
26
|
const registerIndex = 1;
|
|
27
27
|
regs.setU64(registerIndex, valueToStore);
|
|
@@ -30,9 +30,9 @@ describe("StoreOps", () => {
|
|
|
30
30
|
const memory = new MemoryBuilder()
|
|
31
31
|
.setWriteablePages(getStartPageIndex(address), tryAsMemoryIndex(getStartPageIndex(address) + PAGE_SIZE), initialMemory)
|
|
32
32
|
.finalize(tryAsMemoryIndex(20 * PAGE_SIZE), tryAsSbrkIndex(30 * PAGE_SIZE));
|
|
33
|
-
const storeOps = new
|
|
33
|
+
const storeOps = StoreOps.new(regs, memory, instructionResult);
|
|
34
34
|
const expectedPage = getExpectedPage(address, bigintToUint8ArrayLE(valueToStore, noOfBytes), 32);
|
|
35
|
-
const immediate = new
|
|
35
|
+
const immediate = ImmediateDecoder.new();
|
|
36
36
|
immediate.setBytes(bigintToUint8ArrayLE(valueToStore, noOfBytes));
|
|
37
37
|
return { storeOps, address, registerIndex, memory, expectedPage, immediate };
|
|
38
38
|
}
|
|
@@ -98,7 +98,7 @@ describe("StoreOps", () => {
|
|
|
98
98
|
});
|
|
99
99
|
function prepareStoreIndData(valueToStore, noOfBytes, addressRegisterValue, addressImmediateValue) {
|
|
100
100
|
const instructionResult = new InstructionResult();
|
|
101
|
-
const regs =
|
|
101
|
+
const regs = Registers.empty();
|
|
102
102
|
const address = tryAsMemoryIndex(Number(addressRegisterValue + addressImmediateValue));
|
|
103
103
|
const addressRegisterIndex = 0;
|
|
104
104
|
const valueRegisterIndex = 1;
|
|
@@ -109,11 +109,11 @@ describe("StoreOps", () => {
|
|
|
109
109
|
const memory = new MemoryBuilder()
|
|
110
110
|
.setWriteablePages(getStartPageIndex(address), tryAsMemoryIndex(getStartPageIndex(address) + PAGE_SIZE), initialMemory)
|
|
111
111
|
.finalize(tryAsMemoryIndex(20 * PAGE_SIZE), tryAsSbrkIndex(30 * PAGE_SIZE));
|
|
112
|
-
const storeOps = new
|
|
112
|
+
const storeOps = StoreOps.new(regs, memory, instructionResult);
|
|
113
113
|
const expectedPage = getExpectedPage(address, bigintToUint8ArrayLE(valueToStore, noOfBytes), 32);
|
|
114
|
-
const valueImmediate = new
|
|
114
|
+
const valueImmediate = ImmediateDecoder.new();
|
|
115
115
|
valueImmediate.setBytes(bigintToUint8ArrayLE(valueToStore, noOfBytes));
|
|
116
|
-
const addressImmediate = new
|
|
116
|
+
const addressImmediate = ImmediateDecoder.new();
|
|
117
117
|
addressImmediate.setBytes(bigintToUint8ArrayLE(addressImmediateValue));
|
|
118
118
|
return {
|
|
119
119
|
storeOps,
|
|
@@ -8,7 +8,7 @@ import { NoArgsOps } from "../ops/index.js";
|
|
|
8
8
|
import { NoArgsDispatcher } from "./no-args-dispatcher.js";
|
|
9
9
|
describe("NoArgsDispatcher", () => {
|
|
10
10
|
const instructionResult = new InstructionResult();
|
|
11
|
-
const noArgsOps = new
|
|
11
|
+
const noArgsOps = NoArgsOps.new(instructionResult);
|
|
12
12
|
const mockFn = mock.fn();
|
|
13
13
|
function mockAllMethods(obj) {
|
|
14
14
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -10,7 +10,7 @@ import { OneImmDispatcher } from "./one-imm-dispatcher.js";
|
|
|
10
10
|
describe("OneImmDispatcher", () => {
|
|
11
11
|
describe("check if it handles expected instructions", () => {
|
|
12
12
|
const instructionResult = new InstructionResult();
|
|
13
|
-
const hostCallOps = new
|
|
13
|
+
const hostCallOps = HostCallOps.new(instructionResult);
|
|
14
14
|
const hostCallMock = mock.fn();
|
|
15
15
|
after(() => {
|
|
16
16
|
mock.restoreAll();
|
|
@@ -22,7 +22,7 @@ describe("OneImmDispatcher", () => {
|
|
|
22
22
|
mock.method(hostCallOps, "hostCall", hostCallMock);
|
|
23
23
|
});
|
|
24
24
|
const argsMock = {
|
|
25
|
-
immediateDecoder: new
|
|
25
|
+
immediateDecoder: ImmediateDecoder.new(),
|
|
26
26
|
};
|
|
27
27
|
it("should call HostCallOps.hostCall", () => {
|
|
28
28
|
const dispatcher = new OneImmDispatcher(hostCallOps);
|
|
@@ -32,7 +32,7 @@ describe("OneImmDispatcher", () => {
|
|
|
32
32
|
});
|
|
33
33
|
describe("check if it handles other instructions than expected", () => {
|
|
34
34
|
const instructionResult = new InstructionResult();
|
|
35
|
-
const hostCallOps = new
|
|
35
|
+
const hostCallOps = HostCallOps.new(instructionResult);
|
|
36
36
|
const mockFn = mock.fn();
|
|
37
37
|
function mockAllMethods(obj) {
|
|
38
38
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -50,7 +50,7 @@ describe("OneImmDispatcher", () => {
|
|
|
50
50
|
mockFn.mock.resetCalls();
|
|
51
51
|
});
|
|
52
52
|
const argsMock = {
|
|
53
|
-
immediateDecoder: new
|
|
53
|
+
immediateDecoder: ImmediateDecoder.new(),
|
|
54
54
|
};
|
|
55
55
|
const otherInstructions = Object.entries(Instruction)
|
|
56
56
|
.filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
|
|
@@ -9,10 +9,10 @@ import { BranchOps } from "../ops/index.js";
|
|
|
9
9
|
import { Registers } from "../registers.js";
|
|
10
10
|
import { OneOffsetDispatcher } from "./one-offset-dispatcher.js";
|
|
11
11
|
test("OneOffsetDispatcher", async (t) => {
|
|
12
|
-
const regs =
|
|
12
|
+
const regs = Registers.empty();
|
|
13
13
|
const instructionResult = new InstructionResult();
|
|
14
14
|
const basicBlocks = new BasicBlocks();
|
|
15
|
-
const branchOps = new
|
|
15
|
+
const branchOps = BranchOps.new(regs, instructionResult, basicBlocks);
|
|
16
16
|
const mockFn = t.mock.fn();
|
|
17
17
|
function mockAllMethods(obj) {
|
|
18
18
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-ext-imm-dispatcher.test.js
CHANGED
|
@@ -10,10 +10,10 @@ import { LoadOps } from "../ops/index.js";
|
|
|
10
10
|
import { Registers } from "../registers.js";
|
|
11
11
|
import { OneRegOneExtImmDispatcher } from "./one-reg-one-ext-imm-dispatcher.js";
|
|
12
12
|
describe("OneRegOneExtImmDispatcher", () => {
|
|
13
|
-
const regs =
|
|
14
|
-
const memory = new
|
|
13
|
+
const regs = Registers.empty();
|
|
14
|
+
const memory = Memory.new();
|
|
15
15
|
const instructionResult = new InstructionResult();
|
|
16
|
-
const loadOps = new
|
|
16
|
+
const loadOps = LoadOps.new(regs, memory, instructionResult);
|
|
17
17
|
const mockFn = mock.fn();
|
|
18
18
|
function mockAllMethods(obj) {
|
|
19
19
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -31,7 +31,7 @@ describe("OneRegOneExtImmDispatcher", () => {
|
|
|
31
31
|
mockFn.mock.resetCalls();
|
|
32
32
|
});
|
|
33
33
|
const argsMock = {
|
|
34
|
-
immediateDecoder: new
|
|
34
|
+
immediateDecoder: ExtendedWitdthImmediateDecoder.new(),
|
|
35
35
|
};
|
|
36
36
|
const relevantInstructions = Object.entries(Instruction)
|
|
37
37
|
.filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
|
|
@@ -12,14 +12,14 @@ import { JumpTable } from "../program-decoder/jump-table.js";
|
|
|
12
12
|
import { Registers } from "../registers.js";
|
|
13
13
|
import { OneRegOneImmDispatcher } from "./one-reg-one-imm-dispatcher.js";
|
|
14
14
|
describe("OneRegOneImmDispatcher", () => {
|
|
15
|
-
const regs =
|
|
16
|
-
const memory = new
|
|
17
|
-
const jumpTable =
|
|
15
|
+
const regs = Registers.empty();
|
|
16
|
+
const memory = Memory.new();
|
|
17
|
+
const jumpTable = JumpTable.fromRaw(1, new Uint8Array([1]));
|
|
18
18
|
const instructionResult = new InstructionResult();
|
|
19
|
-
const storeOps = new
|
|
20
|
-
const loadOps = new
|
|
19
|
+
const storeOps = StoreOps.new(regs, memory, instructionResult);
|
|
20
|
+
const loadOps = LoadOps.new(regs, memory, instructionResult);
|
|
21
21
|
const basicBlocks = new BasicBlocks();
|
|
22
|
-
const dynamicJumpOps = new
|
|
22
|
+
const dynamicJumpOps = DynamicJumpOps.new(regs, jumpTable, instructionResult, basicBlocks);
|
|
23
23
|
const mockFn = mock.fn();
|
|
24
24
|
function mockAllMethods(obj) {
|
|
25
25
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -39,7 +39,7 @@ describe("OneRegOneImmDispatcher", () => {
|
|
|
39
39
|
mockFn.mock.resetCalls();
|
|
40
40
|
});
|
|
41
41
|
const argsMock = {
|
|
42
|
-
immediateDecoder: new
|
|
42
|
+
immediateDecoder: ImmediateDecoder.new(),
|
|
43
43
|
};
|
|
44
44
|
const relevantInstructions = Object.entries(Instruction)
|
|
45
45
|
.filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
|
package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-one-offset-dispatcher.test.js
CHANGED
|
@@ -12,17 +12,17 @@ import { Registers } from "../registers.js";
|
|
|
12
12
|
import { OneRegOneImmOneOffsetDispatcher } from "./one-reg-one-imm-one-offset-dispatcher.js";
|
|
13
13
|
describe("OneRegOneImmOneOffsetDispatcher", () => {
|
|
14
14
|
describe("check if it handles expected instructions", () => {
|
|
15
|
-
const regs =
|
|
16
|
-
const memory = new
|
|
15
|
+
const regs = Registers.empty();
|
|
16
|
+
const memory = Memory.new();
|
|
17
17
|
const instructionResult = new InstructionResult();
|
|
18
18
|
const basicBlocks = new BasicBlocks();
|
|
19
|
-
const branchOps = new
|
|
20
|
-
const loadOps = new
|
|
19
|
+
const branchOps = BranchOps.new(regs, instructionResult, basicBlocks);
|
|
20
|
+
const loadOps = LoadOps.new(regs, memory, instructionResult);
|
|
21
21
|
after(() => {
|
|
22
22
|
mock.restoreAll();
|
|
23
23
|
});
|
|
24
24
|
const argsMock = {
|
|
25
|
-
immediateDecoder: new
|
|
25
|
+
immediateDecoder: ImmediateDecoder.new(),
|
|
26
26
|
};
|
|
27
27
|
it("it should call BranchOps.jump and LoadOps.loadImmediate", () => {
|
|
28
28
|
const jumpMockFunction = mock.fn();
|
|
@@ -106,12 +106,12 @@ describe("OneRegOneImmOneOffsetDispatcher", () => {
|
|
|
106
106
|
});
|
|
107
107
|
});
|
|
108
108
|
describe("check if it handles other instructions than expected", () => {
|
|
109
|
-
const regs =
|
|
110
|
-
const memory = new
|
|
109
|
+
const regs = Registers.empty();
|
|
110
|
+
const memory = Memory.new();
|
|
111
111
|
const instructionResult = new InstructionResult();
|
|
112
112
|
const basicBlocks = new BasicBlocks();
|
|
113
|
-
const branchOps = new
|
|
114
|
-
const loadOps = new
|
|
113
|
+
const branchOps = BranchOps.new(regs, instructionResult, basicBlocks);
|
|
114
|
+
const loadOps = LoadOps.new(regs, memory, instructionResult);
|
|
115
115
|
const mockFn = mock.fn();
|
|
116
116
|
function mockAllMethods(obj) {
|
|
117
117
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -130,7 +130,7 @@ describe("OneRegOneImmOneOffsetDispatcher", () => {
|
|
|
130
130
|
mockFn.mock.resetCalls();
|
|
131
131
|
});
|
|
132
132
|
const argsMock = {
|
|
133
|
-
immediateDecoder: new
|
|
133
|
+
immediateDecoder: ImmediateDecoder.new(),
|
|
134
134
|
};
|
|
135
135
|
const otherInstructions = Object.entries(Instruction)
|
|
136
136
|
.filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
|
|
@@ -10,10 +10,10 @@ import { StoreOps } from "../ops/index.js";
|
|
|
10
10
|
import { Registers } from "../registers.js";
|
|
11
11
|
import { OneRegTwoImmsDispatcher } from "./one-reg-two-imms-dispatcher.js";
|
|
12
12
|
describe("OneRegTwoImmsDispatcher", () => {
|
|
13
|
-
const regs =
|
|
14
|
-
const memory = new
|
|
13
|
+
const regs = Registers.empty();
|
|
14
|
+
const memory = Memory.new();
|
|
15
15
|
const instructionResult = new InstructionResult();
|
|
16
|
-
const storeOps = new
|
|
16
|
+
const storeOps = StoreOps.new(regs, memory, instructionResult);
|
|
17
17
|
const mockFn = mock.fn();
|
|
18
18
|
function mockAllMethods(obj) {
|
|
19
19
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -31,8 +31,8 @@ describe("OneRegTwoImmsDispatcher", () => {
|
|
|
31
31
|
mockFn.mock.resetCalls();
|
|
32
32
|
});
|
|
33
33
|
const argsMock = {
|
|
34
|
-
firstImmediateDecoder: new
|
|
35
|
-
secondImmediateDecoder: new
|
|
34
|
+
firstImmediateDecoder: ImmediateDecoder.new(),
|
|
35
|
+
secondImmediateDecoder: ImmediateDecoder.new(),
|
|
36
36
|
};
|
|
37
37
|
const relevantInstructions = Object.entries(Instruction)
|
|
38
38
|
.filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
|
|
@@ -7,13 +7,13 @@ import { BitOps, BitRotationOps, BooleanOps, MathOps, MoveOps, ShiftOps } from "
|
|
|
7
7
|
import { Registers } from "../registers.js";
|
|
8
8
|
import { ThreeRegsDispatcher } from "./three-regs-dispatcher.js";
|
|
9
9
|
test("ThreeRegsDispatcher", async (t) => {
|
|
10
|
-
const regs =
|
|
11
|
-
const mathOps = new
|
|
12
|
-
const bitOps = new
|
|
13
|
-
const shiftOps = new
|
|
14
|
-
const booleanOps = new
|
|
15
|
-
const moveOps = new
|
|
16
|
-
const bitRotationOps = new
|
|
10
|
+
const regs = Registers.empty();
|
|
11
|
+
const mathOps = MathOps.new(regs);
|
|
12
|
+
const bitOps = BitOps.new(regs);
|
|
13
|
+
const shiftOps = ShiftOps.new(regs);
|
|
14
|
+
const booleanOps = BooleanOps.new(regs);
|
|
15
|
+
const moveOps = MoveOps.new(regs);
|
|
16
|
+
const bitRotationOps = BitRotationOps.new(regs);
|
|
17
17
|
const mockFn = t.mock.fn();
|
|
18
18
|
function mockAllMethods(obj) {
|
|
19
19
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -10,10 +10,10 @@ import { StoreOps } from "../ops/index.js";
|
|
|
10
10
|
import { Registers } from "../registers.js";
|
|
11
11
|
import { TwoImmsDispatcher } from "./two-imms-dispatcher.js";
|
|
12
12
|
describe("TwoImmsDispatcher", () => {
|
|
13
|
-
const regs =
|
|
14
|
-
const memory = new
|
|
13
|
+
const regs = Registers.empty();
|
|
14
|
+
const memory = Memory.new();
|
|
15
15
|
const instructionResult = new InstructionResult();
|
|
16
|
-
const storeOps = new
|
|
16
|
+
const storeOps = StoreOps.new(regs, memory, instructionResult);
|
|
17
17
|
const mockFn = mock.fn();
|
|
18
18
|
function mockAllMethods(obj) {
|
|
19
19
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -31,8 +31,8 @@ describe("TwoImmsDispatcher", () => {
|
|
|
31
31
|
mockFn.mock.resetCalls();
|
|
32
32
|
});
|
|
33
33
|
const argsMock = {
|
|
34
|
-
firstImmediateDecoder: new
|
|
35
|
-
secondImmediateDecoder: new
|
|
34
|
+
firstImmediateDecoder: ImmediateDecoder.new(),
|
|
35
|
+
secondImmediateDecoder: ImmediateDecoder.new(),
|
|
36
36
|
};
|
|
37
37
|
const relevantInstructions = Object.entries(Instruction)
|
|
38
38
|
.filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
|
|
@@ -10,12 +10,12 @@ import { Registers } from "../registers.js";
|
|
|
10
10
|
import { TwoRegsDispatcher } from "./two-regs-dispatcher.js";
|
|
11
11
|
describe("TwoRegsDispatcher", () => {
|
|
12
12
|
const instructionResult = new InstructionResult();
|
|
13
|
-
const regs =
|
|
14
|
-
const memory = new
|
|
15
|
-
const memoryOps = new
|
|
16
|
-
const moveOps = new
|
|
17
|
-
const bitOps = new
|
|
18
|
-
const bitRotationOps = new
|
|
13
|
+
const regs = Registers.empty();
|
|
14
|
+
const memory = Memory.new();
|
|
15
|
+
const memoryOps = MemoryOps.new(regs, memory, instructionResult);
|
|
16
|
+
const moveOps = MoveOps.new(regs);
|
|
17
|
+
const bitOps = BitOps.new(regs);
|
|
18
|
+
const bitRotationOps = BitRotationOps.new(regs);
|
|
19
19
|
const mockFn = mock.fn();
|
|
20
20
|
function mockAllMethods(obj) {
|
|
21
21
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -11,16 +11,16 @@ import { Registers } from "../registers.js";
|
|
|
11
11
|
import { TwoRegsOneImmDispatcher } from "./two-regs-one-imm-dispatcher.js";
|
|
12
12
|
describe("TwoRegsOneImmDispatcher", () => {
|
|
13
13
|
const instructionResult = new InstructionResult();
|
|
14
|
-
const regs =
|
|
15
|
-
const memory = new
|
|
16
|
-
const mathOps = new
|
|
17
|
-
const shiftOps = new
|
|
18
|
-
const bitOps = new
|
|
19
|
-
const booleanOps = new
|
|
20
|
-
const moveOps = new
|
|
21
|
-
const storeOps = new
|
|
22
|
-
const loadOps = new
|
|
23
|
-
const bitRotationOps = new
|
|
14
|
+
const regs = Registers.empty();
|
|
15
|
+
const memory = Memory.new();
|
|
16
|
+
const mathOps = MathOps.new(regs);
|
|
17
|
+
const shiftOps = ShiftOps.new(regs);
|
|
18
|
+
const bitOps = BitOps.new(regs);
|
|
19
|
+
const booleanOps = BooleanOps.new(regs);
|
|
20
|
+
const moveOps = MoveOps.new(regs);
|
|
21
|
+
const storeOps = StoreOps.new(regs, memory, instructionResult);
|
|
22
|
+
const loadOps = LoadOps.new(regs, memory, instructionResult);
|
|
23
|
+
const bitRotationOps = BitRotationOps.new(regs);
|
|
24
24
|
const mockFn = mock.fn();
|
|
25
25
|
function mockAllMethods(obj) {
|
|
26
26
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -45,7 +45,7 @@ describe("TwoRegsOneImmDispatcher", () => {
|
|
|
45
45
|
mockFn.mock.resetCalls();
|
|
46
46
|
});
|
|
47
47
|
const argsMock = {
|
|
48
|
-
immediateDecoder: new
|
|
48
|
+
immediateDecoder: ImmediateDecoder.new(),
|
|
49
49
|
};
|
|
50
50
|
const relevantInstructions = Object.entries(Instruction)
|
|
51
51
|
.filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
|
package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-offset-dispatcher.test.js
CHANGED
|
@@ -9,10 +9,10 @@ import { BranchOps } from "../ops/index.js";
|
|
|
9
9
|
import { Registers } from "../registers.js";
|
|
10
10
|
import { TwoRegsOneOffsetDispatcher } from "./two-regs-one-offset-dispatcher.js";
|
|
11
11
|
test("TwoRegsOneOffsetDispatcher", async (t) => {
|
|
12
|
-
const regs =
|
|
12
|
+
const regs = Registers.empty();
|
|
13
13
|
const instructionResult = new InstructionResult();
|
|
14
14
|
const basicBlocks = new BasicBlocks();
|
|
15
|
-
const branchOps = new
|
|
15
|
+
const branchOps = BranchOps.new(regs, instructionResult, basicBlocks);
|
|
16
16
|
const mockFn = t.mock.fn();
|
|
17
17
|
function mockAllMethods(obj) {
|
|
18
18
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -13,13 +13,13 @@ import { Registers } from "../registers.js";
|
|
|
13
13
|
import { TwoRegsTwoImmsDispatcher } from "./two-regs-two-imms-dispatcher.js";
|
|
14
14
|
describe("TwoRegsTwoImmsDispatcher", () => {
|
|
15
15
|
describe("check if it handles expected instructions", () => {
|
|
16
|
-
const regs =
|
|
17
|
-
const memory = new
|
|
18
|
-
const jumpTable =
|
|
16
|
+
const regs = Registers.empty();
|
|
17
|
+
const memory = Memory.new();
|
|
18
|
+
const jumpTable = JumpTable.fromRaw(1, new Uint8Array([1]));
|
|
19
19
|
const instructionResult = new InstructionResult();
|
|
20
|
-
const loadOps = new
|
|
20
|
+
const loadOps = LoadOps.new(regs, memory, instructionResult);
|
|
21
21
|
const basicBlocks = new BasicBlocks();
|
|
22
|
-
const dynamicJumpOps = new
|
|
22
|
+
const dynamicJumpOps = DynamicJumpOps.new(regs, jumpTable, instructionResult, basicBlocks);
|
|
23
23
|
const loadImmediateMock = mock.fn();
|
|
24
24
|
const jumpIndMock = mock.fn();
|
|
25
25
|
after(() => {
|
|
@@ -36,8 +36,8 @@ describe("TwoRegsTwoImmsDispatcher", () => {
|
|
|
36
36
|
const argsMock = {
|
|
37
37
|
firstRegisterIndex: 1,
|
|
38
38
|
secondRegisterIndex: 2,
|
|
39
|
-
firstImmediateDecoder: new
|
|
40
|
-
secondImmediateDecoder: new
|
|
39
|
+
firstImmediateDecoder: ImmediateDecoder.new(),
|
|
40
|
+
secondImmediateDecoder: ImmediateDecoder.new(),
|
|
41
41
|
};
|
|
42
42
|
it("should call LoadOps.loadImmediate", () => {
|
|
43
43
|
const dispatcher = new TwoRegsTwoImmsDispatcher(loadOps, dynamicJumpOps);
|
|
@@ -52,12 +52,12 @@ describe("TwoRegsTwoImmsDispatcher", () => {
|
|
|
52
52
|
});
|
|
53
53
|
describe("check if it handles other instructions than expected", () => {
|
|
54
54
|
const instructionResult = new InstructionResult();
|
|
55
|
-
const regs =
|
|
56
|
-
const memory = new
|
|
57
|
-
const loadOps = new
|
|
58
|
-
const jumpTable =
|
|
55
|
+
const regs = Registers.empty();
|
|
56
|
+
const memory = Memory.new();
|
|
57
|
+
const loadOps = LoadOps.new(regs, memory, instructionResult);
|
|
58
|
+
const jumpTable = JumpTable.fromRaw(1, new Uint8Array([1]));
|
|
59
59
|
const basicBlocks = new BasicBlocks();
|
|
60
|
-
const dynamicJumpOps = new
|
|
60
|
+
const dynamicJumpOps = DynamicJumpOps.new(regs, jumpTable, instructionResult, basicBlocks);
|
|
61
61
|
const mockFn = mock.fn();
|
|
62
62
|
function mockAllMethods(obj) {
|
|
63
63
|
const methodNames = Object.getOwnPropertyNames(Object.getPrototypeOf(obj));
|
|
@@ -76,8 +76,8 @@ describe("TwoRegsTwoImmsDispatcher", () => {
|
|
|
76
76
|
mockFn.mock.resetCalls();
|
|
77
77
|
});
|
|
78
78
|
const argsMock = {
|
|
79
|
-
firstImmediateDecoder: new
|
|
80
|
-
secondImmediateDecoder: new
|
|
79
|
+
firstImmediateDecoder: ImmediateDecoder.new(),
|
|
80
|
+
secondImmediateDecoder: ImmediateDecoder.new(),
|
|
81
81
|
};
|
|
82
82
|
const otherInstructions = Object.entries(Instruction)
|
|
83
83
|
.filter((entry) => typeof entry[0] === "string" && typeof entry[1] === "number")
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
export declare class JumpTable {
|
|
2
2
|
private indices;
|
|
3
|
-
|
|
3
|
+
/** Create an empty jump table. */
|
|
4
|
+
static empty(): JumpTable;
|
|
5
|
+
/** Decode a jump table from a raw bytes buffer. */
|
|
6
|
+
static fromRaw(itemByteLength: number, bytes: Uint8Array): JumpTable;
|
|
7
|
+
private constructor();
|
|
4
8
|
private decodeNext;
|
|
5
9
|
hasIndex(index: number): boolean;
|
|
6
10
|
getDestination(index: number): number;
|
|
7
|
-
static empty(): JumpTable;
|
|
8
11
|
getSize(): number;
|
|
9
12
|
copyFrom(jt: JumpTable): void;
|
|
10
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jump-table.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/program-decoder/jump-table.ts"],"names":[],"mappings":"AAEA,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAc;
|
|
1
|
+
{"version":3,"file":"jump-table.d.ts","sourceRoot":"","sources":["../../../../../../packages/core/pvm-interpreter/program-decoder/jump-table.ts"],"names":[],"mappings":"AAEA,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAc;IAE7B,kCAAkC;IAClC,MAAM,CAAC,KAAK;IAIZ,mDAAmD;IACnD,MAAM,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU;IAQxD,OAAO;IAUP,OAAO,CAAC,UAAU;IAgBlB,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,cAAc,CAAC,KAAK,EAAE,MAAM;IAI5B,OAAO;IAIP,QAAQ,CAAC,EAAE,EAAE,SAAS;CAGvB"}
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import { check } from "#@typeberry/utils";
|
|
2
2
|
export class JumpTable {
|
|
3
3
|
indices;
|
|
4
|
-
|
|
4
|
+
/** Create an empty jump table. */
|
|
5
|
+
static empty() {
|
|
6
|
+
return new JumpTable(0, new Uint8Array());
|
|
7
|
+
}
|
|
8
|
+
/** Decode a jump table from a raw bytes buffer. */
|
|
9
|
+
static fromRaw(itemByteLength, bytes) {
|
|
5
10
|
check `
|
|
6
11
|
${itemByteLength === 0 || bytes.length % itemByteLength === 0}
|
|
7
12
|
Length of jump table (${bytes.length}) should be a multiple of item lenght (${itemByteLength})!
|
|
8
13
|
`;
|
|
14
|
+
return new JumpTable(itemByteLength, bytes);
|
|
15
|
+
}
|
|
16
|
+
constructor(itemByteLength, bytes) {
|
|
9
17
|
const length = itemByteLength === 0 ? 0 : bytes.length / itemByteLength;
|
|
10
18
|
this.indices = new Uint32Array(length);
|
|
11
19
|
for (let i = 0; i < length; i++) {
|
|
@@ -31,9 +39,6 @@ export class JumpTable {
|
|
|
31
39
|
getDestination(index) {
|
|
32
40
|
return this.indices[index];
|
|
33
41
|
}
|
|
34
|
-
static empty() {
|
|
35
|
-
return new JumpTable(0, new Uint8Array());
|
|
36
|
-
}
|
|
37
42
|
getSize() {
|
|
38
43
|
return this.indices.length;
|
|
39
44
|
}
|