@typeberry/lib 0.5.10-ec38e0b → 0.5.11-10b197e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/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-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/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.js +24 -24
- 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/refine.d.ts +3 -3
- package/packages/jam/in-core/externalities/refine.d.ts.map +1 -1
- package/packages/jam/in-core/externalities/refine.js +33 -5
- package/packages/jam/in-core/externalities/refine.test.js +66 -1
- package/packages/jam/in-core/in-core.d.ts +2 -1
- package/packages/jam/in-core/in-core.d.ts.map +1 -1
- package/packages/jam/in-core/in-core.js +3 -0
- package/packages/jam/in-core/in-core.test.js +6 -6
- package/packages/jam/in-core/is-authorized.test.js +2 -2
- package/packages/jam/in-core/refine.js +1 -1
- 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 +3 -0
- 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/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 +2 -1
- package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/fetch.js +3 -0
- package/packages/jam/jam-host-calls/general/fetch.test.js +27 -28
- 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 +4 -1
- 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 +18 -6
- package/packages/jam/transition/accumulate/accumulate.test.js +1 -1
- 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 +20 -6
- package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
- package/packages/jam/transition/externalities/accumulate-externalities.js +29 -22
- package/packages/jam/transition/externalities/accumulate-externalities.test.js +590 -100
- package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts +2 -1
- package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts.map +1 -1
- package/packages/jam/transition/externalities/refine-fetch-externalities.js +3 -0
- package/packages/jam/transition/externalities/refine-fetch-externalities.test.js +1 -1
- 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/README.md
CHANGED
|
@@ -243,7 +243,7 @@ const programHex = "0x0000213308013309012803009577ff51070c648ac8980864a928f36487
|
|
|
243
243
|
const program = BytesBlob.parseBlob(programHex);
|
|
244
244
|
|
|
245
245
|
// Create interpreter and initialize with program
|
|
246
|
-
const pvm = new
|
|
246
|
+
const pvm = Interpreter.new();
|
|
247
247
|
pvm.resetGeneric(program.raw, 0, tryAsGas(1000));
|
|
248
248
|
|
|
249
249
|
// dump the program data
|
|
@@ -269,7 +269,7 @@ import { BytesBlob } from "@typeberry/lib/bytes";
|
|
|
269
269
|
const programHex = "0x0000210408010409010503000277ff07070c528a08980852a905f3528704080409111300499352d500";
|
|
270
270
|
const program = BytesBlob.parseBlob(programHex);
|
|
271
271
|
|
|
272
|
-
const pvm = new
|
|
272
|
+
const pvm = Interpreter.new();
|
|
273
273
|
pvm.resetGeneric(program.raw, 0, tryAsGas(1000));
|
|
274
274
|
pvm.runProgram();
|
|
275
275
|
|
|
@@ -11,7 +11,7 @@ describe("PVM Examples", () => {
|
|
|
11
11
|
const programHex = "0x0000213308013309012803009577ff51070c648ac8980864a928f3648733083309013200499352d500";
|
|
12
12
|
const program = BytesBlob.parseBlob(programHex);
|
|
13
13
|
// Create interpreter and initialize with program
|
|
14
|
-
const pvm = new
|
|
14
|
+
const pvm = Interpreter.new();
|
|
15
15
|
pvm.resetGeneric(program.raw, 0, tryAsGas(1000));
|
|
16
16
|
// dump the program data
|
|
17
17
|
console.table(pvm.dumpProgram());
|
|
@@ -29,7 +29,7 @@ describe("PVM Examples", () => {
|
|
|
29
29
|
const { BytesBlob } = await import("@typeberry/lib/bytes");
|
|
30
30
|
const programHex = "0x0000210408010409010503000277ff07070c528a08980852a905f3528704080409111300499352d500";
|
|
31
31
|
const program = BytesBlob.parseBlob(programHex);
|
|
32
|
-
const pvm = new
|
|
32
|
+
const pvm = Interpreter.new();
|
|
33
33
|
pvm.resetGeneric(program.raw, 0, tryAsGas(1000));
|
|
34
34
|
pvm.runProgram();
|
|
35
35
|
// Access register values after execution
|
package/package.json
CHANGED
|
@@ -54,7 +54,7 @@ export class Descriptor {
|
|
|
54
54
|
*/
|
|
55
55
|
skipEncoded(decoder) {
|
|
56
56
|
const initBytes = decoder.bytesRead();
|
|
57
|
-
this.skip(new
|
|
57
|
+
this.skip(Skipper.new(decoder));
|
|
58
58
|
const endBytes = decoder.bytesRead();
|
|
59
59
|
return BytesBlob.blobFrom(decoder.source.subarray(initBytes, endBytes));
|
|
60
60
|
}
|
|
@@ -311,6 +311,9 @@ function hasUniqueView(a) {
|
|
|
311
311
|
function objectView(Class, descriptors, sizeHint, skipper) {
|
|
312
312
|
// Create a View, based on the `AbstractView`.
|
|
313
313
|
class ClassView extends ObjectView {
|
|
314
|
+
static new(d) {
|
|
315
|
+
return new ClassView(d);
|
|
316
|
+
}
|
|
314
317
|
constructor(d) {
|
|
315
318
|
super(d, Class, descriptors);
|
|
316
319
|
}
|
|
@@ -330,8 +333,8 @@ function objectView(Class, descriptors, sizeHint, skipper) {
|
|
|
330
333
|
const encoded = t.encoded();
|
|
331
334
|
e.bytes(Bytes.fromBlob(encoded.raw, encoded.length));
|
|
332
335
|
}, (d) => {
|
|
333
|
-
const view = new
|
|
334
|
-
skipper(new
|
|
336
|
+
const view = ClassView.new(d.clone());
|
|
337
|
+
skipper(Skipper.new(d));
|
|
335
338
|
return view;
|
|
336
339
|
}, skipper);
|
|
337
340
|
}
|
|
@@ -351,7 +354,7 @@ function sequenceViewVarLen(type, options) {
|
|
|
351
354
|
e.bytes(Bytes.fromBlob(encoded.raw, encoded.length));
|
|
352
355
|
}, (d) => {
|
|
353
356
|
const view = new SequenceView(d.clone(), type);
|
|
354
|
-
skipper(new
|
|
357
|
+
skipper(Skipper.new(d));
|
|
355
358
|
return view;
|
|
356
359
|
}, skipper);
|
|
357
360
|
}
|
|
@@ -366,7 +369,7 @@ function sequenceViewFixLen(type, { fixedLength }) {
|
|
|
366
369
|
e.bytes(Bytes.fromBlob(encoded.raw, encoded.length));
|
|
367
370
|
}, (d) => {
|
|
368
371
|
const view = new SequenceView(d.clone(), type, fixedLength);
|
|
369
|
-
skipper(new
|
|
372
|
+
skipper(Skipper.new(d));
|
|
370
373
|
return view;
|
|
371
374
|
}, skipper);
|
|
372
375
|
}
|
|
@@ -67,7 +67,7 @@ describe("JAM encoder / decoder", () => {
|
|
|
67
67
|
const encoded = encoder.viewResult();
|
|
68
68
|
const decoder = Decoder.fromBytesBlob(encoded);
|
|
69
69
|
// skipping
|
|
70
|
-
const skip = new
|
|
70
|
+
const skip = Skipper.new(decoder.clone());
|
|
71
71
|
g.descriptor.skip(skip);
|
|
72
72
|
skip.decoder.finish();
|
|
73
73
|
// decoding
|
|
@@ -7,7 +7,8 @@ export type Skip = {
|
|
|
7
7
|
/** Wrapper for `Decoder` that can skip bytes of fields in the data buffer instead of decoding them. */
|
|
8
8
|
export declare class Skipper {
|
|
9
9
|
readonly decoder: Decoder;
|
|
10
|
-
|
|
10
|
+
static new(decoder: Decoder): Skipper;
|
|
11
|
+
private constructor();
|
|
11
12
|
/** Skip U64/I64. */
|
|
12
13
|
u64: () => void;
|
|
13
14
|
/** Skip U32/I32. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skip.d.ts","sourceRoot":"","sources":["../../../../../packages/core/codec/skip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAkC,MAAM,cAAc,CAAC;AAE5E,yDAAyD;AACzD,MAAM,MAAM,IAAI,GAAG;IACjB,4CAA4C;IAC5C,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5B,CAAC;AAEF,uGAAuG;AACvG,qBAAa,OAAO;
|
|
1
|
+
{"version":3,"file":"skip.d.ts","sourceRoot":"","sources":["../../../../../packages/core/codec/skip.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAkC,MAAM,cAAc,CAAC;AAE5E,yDAAyD;AACzD,MAAM,MAAM,IAAI,GAAG;IACjB,4CAA4C;IAC5C,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAC5B,CAAC;AAEF,uGAAuG;AACvG,qBAAa,OAAO;aAKkB,OAAO,EAAE,OAAO;IAJpD,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO;IAI3B,OAAO;IACP,oBAAoB;IACpB,GAAG,aAA8B;IACjC,oBAAoB;IACpB,GAAG,aAA8B;IACjC,oBAAoB;IACpB,GAAG,aAA8B;IACjC,oBAAoB;IACpB,GAAG,aAA8B;IACjC,kBAAkB;IAClB,EAAE,aAA8B;IAChC,oBAAoB;IACpB,IAAI,aAA8B;IAClC,gCAAgC;IAChC,MAAM,aAAuB;IAC7B,gCAAgC;IAChC,MAAM;IAKN,+BAA+B;IAC/B,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,GAAG,EAAE,CAAC;IAG9B,uCAAuC;IACvC,SAAS;IAIT,oCAAoC;IACpC,YAAY,CAAC,SAAS,EAAE,MAAM;IAG9B,uCAAuC;IACvC,YAAY;IAIZ,+BAA+B;IAC/B,MAAM,CAAC,MAAM,EAAE,IAAI;IAGnB,yCAAyC;IACzC,QAAQ,CAAC,MAAM,EAAE,IAAI;IAMrB,kCAAkC;IAClC,cAAc,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM;IAKxC,qCAAqC;IACrC,cAAc,CAAC,MAAM,EAAE,IAAI;CAI5B"}
|
|
@@ -2,6 +2,9 @@ import { decodeVariableLengthExtraBytes } from "./decoder.js";
|
|
|
2
2
|
/** Wrapper for `Decoder` that can skip bytes of fields in the data buffer instead of decoding them. */
|
|
3
3
|
export class Skipper {
|
|
4
4
|
decoder;
|
|
5
|
+
static new(decoder) {
|
|
6
|
+
return new Skipper(decoder);
|
|
7
|
+
}
|
|
5
8
|
constructor(decoder) {
|
|
6
9
|
this.decoder = decoder;
|
|
7
10
|
}
|
|
@@ -107,7 +107,7 @@ export class ObjectView {
|
|
|
107
107
|
is already decoded (${this.lastDecodedFieldIdx}, ${String(lastField)}).
|
|
108
108
|
`;
|
|
109
109
|
let lastItem = this.cache.get(lastField);
|
|
110
|
-
const skipper = new
|
|
110
|
+
const skipper = Skipper.new(this.decoder);
|
|
111
111
|
// now skip all of the fields and further populate the cache.
|
|
112
112
|
for (let i = this.lastDecodedFieldIdx + 1; i <= index; i++) {
|
|
113
113
|
// create new cached prop
|
|
@@ -214,7 +214,7 @@ export class SequenceView {
|
|
|
214
214
|
Unjustified call to 'decodeUpTo' - the index (${index}) is already decoded (${this.lastDecodedIdx}).
|
|
215
215
|
`;
|
|
216
216
|
let lastItem = this.cache.get(this.lastDecodedIdx);
|
|
217
|
-
const skipper = new
|
|
217
|
+
const skipper = Skipper.new(this.decoder);
|
|
218
218
|
// now skip all of the fields and further populate the cache.
|
|
219
219
|
for (let i = this.lastDecodedIdx + 1; i <= index; i++) {
|
|
220
220
|
// create new cached prop
|
|
@@ -18,7 +18,8 @@ export declare class MultiMap<TKeys extends readonly unknown[], TValue> {
|
|
|
18
18
|
* Pass the number of keys and optionally mappers from keys to primitive types
|
|
19
19
|
* if needed.
|
|
20
20
|
*/
|
|
21
|
-
|
|
21
|
+
static new<TKeys extends readonly unknown[], TValue>(keysLength: TKeys["length"], keyMappers?: KeyMappers<TKeys>): MultiMap<TKeys, TValue>;
|
|
22
|
+
private constructor();
|
|
22
23
|
/** Convert input keys into primitive types. */
|
|
23
24
|
private primitiveKeys;
|
|
24
25
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi-map.d.ts","sourceRoot":"","sources":["../../../../../packages/core/collections/multi-map.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC,MAAM,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,GACnG,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACrC,MAAM,CAAC;AAEX,KAAK,UAAU,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,IAAI,KAAK,SAAS,CAAC,MAAM,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,GAC3F,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAC/C,EAAE,CAAC;AAEP,sDAAsD;AACtD,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzE;;;;;;;;GAQG;AACH,qBAAa,QAAQ,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EAAE,MAAM;IAC5D,SAAgB,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAE/C;;;OAGG;
|
|
1
|
+
{"version":3,"file":"multi-map.d.ts","sourceRoot":"","sources":["../../../../../packages/core/collections/multi-map.ts"],"names":[],"mappings":"AAEA,KAAK,UAAU,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EAAE,MAAM,IAAI,KAAK,SAAS,CAAC,MAAM,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,GACnG,GAAG,CAAC,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,GACrC,MAAM,CAAC;AAEX,KAAK,UAAU,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,IAAI,KAAK,SAAS,CAAC,MAAM,KAAK,EAAE,GAAG,MAAM,KAAK,CAAC,GAC3F,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAC/C,EAAE,CAAC;AAEP,sDAAsD;AACtD,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzE;;;;;;;;GAQG;AACH,qBAAa,QAAQ,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EAAE,MAAM;IAC5D,SAAgB,IAAI,EAAE,UAAU,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAChD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAE/C;;;OAGG;IACH,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,SAAS,OAAO,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC;IAIhH,OAAO;IAOP,+CAA+C;IAC/C,OAAO,CAAC,aAAa;IAOrB;;;;OAIG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,KAAK;IAsBnC;;;;;;OAMG;IACH,MAAM,CAAC,GAAG,MAAM,EAAE,KAAK,GAAG,OAAO;IAKjC,kDAAkD;IAClD,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,GAAG,OAAO;IAK9B,kEAAkE;IAClE,GAAG,CAAC,GAAG,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS;IAKzC;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;CA0B1B"}
|
|
@@ -15,6 +15,9 @@ export class MultiMap {
|
|
|
15
15
|
* Pass the number of keys and optionally mappers from keys to primitive types
|
|
16
16
|
* if needed.
|
|
17
17
|
*/
|
|
18
|
+
static new(keysLength, keyMappers) {
|
|
19
|
+
return new MultiMap(keysLength, keyMappers);
|
|
20
|
+
}
|
|
18
21
|
constructor(keysLength, keyMappers) {
|
|
19
22
|
check `${keysLength > 0} Keys cannot be empty.`;
|
|
20
23
|
check `${keyMappers === undefined || keyMappers.length === keysLength} Incorrect number of key mappers given!`;
|
|
@@ -18,7 +18,7 @@ describe("Multi Map", () => {
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
// given
|
|
21
|
-
const map = new
|
|
21
|
+
const map = MultiMap.new(3, [null, (obj) => obj.val, null]);
|
|
22
22
|
map
|
|
23
23
|
.set("hello", "a", new MyObject(5), 10)
|
|
24
24
|
.set("world", "b", new MyObject(10), 10)
|
|
@@ -37,7 +37,7 @@ describe("Multi Map", () => {
|
|
|
37
37
|
});
|
|
38
38
|
it("should check existence and remove elements", () => {
|
|
39
39
|
// given
|
|
40
|
-
const map = new
|
|
40
|
+
const map = MultiMap.new(2);
|
|
41
41
|
map.set("hello", "a", 10).set("world", "b", 10).set("frens", "a", 11);
|
|
42
42
|
// when
|
|
43
43
|
const has_a = map.has("a", 10);
|
|
@@ -113,11 +113,14 @@ async function initWorker(workerPath) {
|
|
|
113
113
|
});
|
|
114
114
|
// make sure the threads don't prevent the program from stopping.
|
|
115
115
|
workerThread.unref();
|
|
116
|
-
return new
|
|
116
|
+
return WorkerChannel.new(workerThread, port2);
|
|
117
117
|
}
|
|
118
118
|
class WorkerChannel {
|
|
119
119
|
worker;
|
|
120
120
|
port;
|
|
121
|
+
static new(worker, port) {
|
|
122
|
+
return new WorkerChannel(worker, port);
|
|
123
|
+
}
|
|
121
124
|
constructor(worker, port) {
|
|
122
125
|
this.worker = worker;
|
|
123
126
|
this.port = port;
|
|
@@ -31,11 +31,8 @@ export declare class Ed25519Pair {
|
|
|
31
31
|
readonly pubKey: Ed25519Key;
|
|
32
32
|
/** Private key. NOTE: Avoid using directly. */
|
|
33
33
|
readonly _privKey: Bytes<ED25519_PRIV_KEY_BYTES>;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
pubKey: Ed25519Key,
|
|
37
|
-
/** Private key. NOTE: Avoid using directly. */
|
|
38
|
-
_privKey: Bytes<ED25519_PRIV_KEY_BYTES>);
|
|
34
|
+
static new(pubKey: Ed25519Key, _privKey: Bytes<ED25519_PRIV_KEY_BYTES>): Ed25519Pair;
|
|
35
|
+
private constructor();
|
|
39
36
|
}
|
|
40
37
|
/** Create a private key from given raw bytes. */
|
|
41
38
|
export declare function privateKey(privKey: Bytes<ED25519_PRIV_KEY_BYTES>): Promise<Ed25519Pair>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ed25519.d.ts","sourceRoot":"","sources":["../../../../../packages/core/crypto/ed25519.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAS,KAAK,MAAM,EAAuB,MAAM,kBAAkB,CAAC;AAE3E,gCAAgC;AAChC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,KAAK,sBAAsB,GAAG,OAAO,sBAAsB,CAAC;AAE5D,+BAA+B;AAC/B,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC;AAEzD,8BAA8B;AAC9B,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAC;AAErE;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,YAAY,CAAC,CAAC;AAExE;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAE1F;;;;GAIG;AACH,qBAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"ed25519.d.ts","sourceRoot":"","sources":["../../../../../packages/core/crypto/ed25519.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAS,KAAK,MAAM,EAAuB,MAAM,kBAAkB,CAAC;AAE3E,gCAAgC;AAChC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,KAAK,sBAAsB,GAAG,OAAO,sBAAsB,CAAC;AAE5D,+BAA+B;AAC/B,eAAO,MAAM,iBAAiB,KAAK,CAAC;AACpC,MAAM,MAAM,iBAAiB,GAAG,OAAO,iBAAiB,CAAC;AAEzD,8BAA8B;AAC9B,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,MAAM,MAAM,uBAAuB,GAAG,OAAO,uBAAuB,CAAC;AAErE;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,YAAY,CAAC,CAAC;AAExE;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,EAAE,kBAAkB,CAAC,CAAC;AAE1F;;;;GAIG;AACH,qBAAa,WAAW;IAMpB,iBAAiB;aACD,MAAM,EAAE,UAAU;IAClC,+CAA+C;aAC/B,QAAQ,EAAE,KAAK,CAAC,sBAAsB,CAAC;IARzD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,sBAAsB,CAAC;IAItE,OAAO;CAMR;AAED,iDAAiD;AACjD,wBAAsB,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,sBAAsB,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAG7F;AAED,wDAAwD;AACxD,wBAAsB,IAAI,CAAC,CAAC,SAAS,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAGvG;AAED,oCAAoC;AACpC,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,SAAS,GAAG,SAAS,IAAI;IACnD,iBAAiB;IACjB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,kBAAkB;IAClB,GAAG,EAAE,UAAU,CAAC;IAChB,yBAAyB;IACzB,OAAO,EAAE,CAAC,CAAC;CACZ,CAAC;AAEF;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,CA2BvF;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,CAAC,SAAS,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAa1F"}
|
|
@@ -16,6 +16,9 @@ export const ED25519_SIGNATURE_BYTES = 64;
|
|
|
16
16
|
export class Ed25519Pair {
|
|
17
17
|
pubKey;
|
|
18
18
|
_privKey;
|
|
19
|
+
static new(pubKey, _privKey) {
|
|
20
|
+
return new Ed25519Pair(pubKey, _privKey);
|
|
21
|
+
}
|
|
19
22
|
constructor(
|
|
20
23
|
/** Public key */
|
|
21
24
|
pubKey,
|
|
@@ -28,7 +31,7 @@ export class Ed25519Pair {
|
|
|
28
31
|
/** Create a private key from given raw bytes. */
|
|
29
32
|
export async function privateKey(privKey) {
|
|
30
33
|
const pubKey = await ed.getPublicKeyAsync(privKey.raw);
|
|
31
|
-
return new
|
|
34
|
+
return Ed25519Pair.new(Bytes.fromBlob(pubKey, ED25519_KEY_BYTES).asOpaque(), privKey.asOpaque());
|
|
32
35
|
}
|
|
33
36
|
/** Sign given piece of data using provided key pair. */
|
|
34
37
|
export async function sign(key, message) {
|
|
@@ -29,13 +29,15 @@ export declare const ZERO_HASH: Bytes<32>;
|
|
|
29
29
|
export declare class WithHash<THash extends OpaqueHash, TData> extends WithDebug {
|
|
30
30
|
readonly hash: THash;
|
|
31
31
|
readonly data: TData;
|
|
32
|
-
|
|
32
|
+
static new<THash extends OpaqueHash, TData>(hash: THash, data: TData): WithHash<THash, TData>;
|
|
33
|
+
protected constructor(hash: THash, data: TData);
|
|
33
34
|
}
|
|
34
35
|
/**
|
|
35
36
|
* Extension of [`WithHash`] additionally containing an encoded version of the object.
|
|
36
37
|
*/
|
|
37
38
|
export declare class WithHashAndBytes<THash extends OpaqueHash, TData> extends WithHash<THash, TData> {
|
|
38
39
|
readonly encoded: BytesBlob;
|
|
39
|
-
|
|
40
|
+
static create<THash extends OpaqueHash, TData>(hash: THash, data: TData, encoded: BytesBlob): WithHashAndBytes<THash, TData>;
|
|
41
|
+
protected constructor(hash: THash, data: TData, encoded: BytesBlob);
|
|
40
42
|
}
|
|
41
43
|
//# sourceMappingURL=hash.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../../../../packages/core/hash/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC;AAEzC,iEAAiE;AACjE,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAC;AAE7D,4BAA4B;AAC5B,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAE1C,sBAAsB;AACtB,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAE3C,yBAAyB;AACzB,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAE1C,sBAAsB;AACtB,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAEvD,eAAO,MAAM,SAAS,WAAwB,CAAC;AAE/C;;;;;GAKG;AACH,qBAAa,QAAQ,CAAC,KAAK,SAAS,UAAU,EAAE,KAAK,CAAE,SAAQ,SAAS;
|
|
1
|
+
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../../../../packages/core/hash/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,MAAM,MAAM,SAAS,GAAG,OAAO,SAAS,CAAC;AAEzC,iEAAiE;AACjE,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,MAAM,MAAM,mBAAmB,GAAG,OAAO,mBAAmB,CAAC;AAE7D,4BAA4B;AAC5B,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAE1C,sBAAsB;AACtB,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAE3C,yBAAyB;AACzB,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAE1C,sBAAsB;AACtB,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,mBAAmB,CAAC,CAAC;AAEvD,eAAO,MAAM,SAAS,WAAwB,CAAC;AAE/C;;;;;GAKG;AACH,qBAAa,QAAQ,CAAC,KAAK,SAAS,UAAU,EAAE,KAAK,CAAE,SAAQ,SAAS;aAMpD,IAAI,EAAE,KAAK;aACX,IAAI,EAAE,KAAK;IAN7B,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK;IAIpE,SAAS,aACS,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,KAAK;CAI9B;AAED;;GAEG;AACH,qBAAa,gBAAgB,CAAC,KAAK,SAAS,UAAU,EAAE,KAAK,CAAE,SAAQ,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;aAQzE,OAAO,EAAE,SAAS;IAPpC,MAAM,CAAC,MAAM,CAAC,KAAK,SAAS,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS;IAI3F,SAAS,aACP,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,KAAK,EACK,OAAO,EAAE,SAAS;CAIrC"}
|
|
@@ -19,7 +19,9 @@ export const ZERO_HASH = Bytes.zero(HASH_SIZE);
|
|
|
19
19
|
export class WithHash extends WithDebug {
|
|
20
20
|
hash;
|
|
21
21
|
data;
|
|
22
|
-
|
|
22
|
+
static new(hash, data) {
|
|
23
|
+
return new WithHash(hash, data);
|
|
24
|
+
}
|
|
23
25
|
constructor(hash, data) {
|
|
24
26
|
super();
|
|
25
27
|
this.hash = hash;
|
|
@@ -31,6 +33,9 @@ export class WithHash extends WithDebug {
|
|
|
31
33
|
*/
|
|
32
34
|
export class WithHashAndBytes extends WithHash {
|
|
33
35
|
encoded;
|
|
36
|
+
static create(hash, data, encoded) {
|
|
37
|
+
return new WithHashAndBytes(hash, data, encoded);
|
|
38
|
+
}
|
|
34
39
|
constructor(hash, data, encoded) {
|
|
35
40
|
super(hash, data);
|
|
36
41
|
this.encoded = encoded;
|
|
@@ -9,10 +9,11 @@ export declare class QuicNetwork implements Network<QuicPeer> {
|
|
|
9
9
|
private readonly _peers;
|
|
10
10
|
private readonly listen;
|
|
11
11
|
private started;
|
|
12
|
-
|
|
12
|
+
static new(socket: QUICSocket, server: QUICServer, _dial: (peer: PeerAddress, options: DialOptions) => Promise<QuicPeer>, _peers: PeersManagement<QuicPeer>, listen: {
|
|
13
13
|
host: string;
|
|
14
14
|
port: number;
|
|
15
|
-
});
|
|
15
|
+
}): QuicNetwork;
|
|
16
|
+
private constructor();
|
|
16
17
|
get isRunning(): boolean;
|
|
17
18
|
start(): Promise<void>;
|
|
18
19
|
stop(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quic-network.d.ts","sourceRoot":"","sources":["../../../../../packages/core/networking/quic-network.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C,qBAAa,WAAY,YAAW,OAAO,CAAC,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"quic-network.d.ts","sourceRoot":"","sources":["../../../../../packages/core/networking/quic-network.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C,qBAAa,WAAY,YAAW,OAAO,CAAC,QAAQ,CAAC;IAcjD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAjBzB,OAAO,CAAC,OAAO,CAAS;IAExB,MAAM,CAAC,GAAG,CACR,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,EACrE,MAAM,EAAE,eAAe,CAAC,QAAQ,CAAC,EACjC,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IAKxC,OAAO;IAQP,IAAI,SAAS,YAEZ;IAEK,KAAK;IAYL,IAAI;IAYV,IAAI,KAAK,IAAI,KAAK,CAAC,QAAQ,CAAC,CAE3B;IAEK,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC;CAG5E"}
|
|
@@ -7,6 +7,9 @@ export class QuicNetwork {
|
|
|
7
7
|
_peers;
|
|
8
8
|
listen;
|
|
9
9
|
started = false;
|
|
10
|
+
static new(socket, server, _dial, _peers, listen) {
|
|
11
|
+
return new QuicNetwork(socket, server, _dial, _peers, listen);
|
|
12
|
+
}
|
|
10
13
|
constructor(socket, server, _dial, _peers, listen) {
|
|
11
14
|
this.socket = socket;
|
|
12
15
|
this.server = server;
|
|
@@ -10,7 +10,8 @@ export declare class QuicPeer implements Peer {
|
|
|
10
10
|
readonly id: PeerId;
|
|
11
11
|
readonly key: Ed25519Key;
|
|
12
12
|
private readonly streamEvents;
|
|
13
|
-
|
|
13
|
+
static new(conn: QUICConnection, peerInfo: PeerInfo): QuicPeer;
|
|
14
|
+
private constructor();
|
|
14
15
|
addOnIncomingStream(streamCallback: StreamCallback<QuicStream>): void;
|
|
15
16
|
openStream(): QuicStream;
|
|
16
17
|
disconnect(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quic-peer.d.ts","sourceRoot":"","sources":["../../../../../packages/core/networking/quic-peer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK9C,qBAAa,QAAS,YAAW,IAAI;
|
|
1
|
+
{"version":3,"file":"quic-peer.d.ts","sourceRoot":"","sources":["../../../../../packages/core/networking/quic-peer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAU,KAAK,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAK9C,qBAAa,QAAS,YAAW,IAAI;aAYjB,IAAI,EAAE,cAAc;IAXtC,SAAgB,YAAY,EAAE,MAAM,CAAC;IACrC,SAAgB,OAAO,EAAE,WAAW,CAAC;IACrC,SAAgB,EAAE,EAAE,MAAM,CAAC;IAC3B,SAAgB,GAAG,EAAE,UAAU,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAsB;IAEnD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ;IAInD,OAAO;IAyBP,mBAAmB,CAAC,cAAc,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI;IAIrE,UAAU,IAAI,UAAU;IAMlB,UAAU;CAIjB"}
|
|
@@ -11,6 +11,9 @@ export class QuicPeer {
|
|
|
11
11
|
id;
|
|
12
12
|
key;
|
|
13
13
|
streamEvents = new EventEmitter();
|
|
14
|
+
static new(conn, peerInfo) {
|
|
15
|
+
return new QuicPeer(conn, peerInfo);
|
|
16
|
+
}
|
|
14
17
|
constructor(conn, peerInfo) {
|
|
15
18
|
this.conn = conn;
|
|
16
19
|
logger.log `👥 [${peerInfo.id}] peer connected ${conn.remoteHost}:${conn.remotePort}`;
|
|
@@ -24,7 +27,7 @@ export class QuicPeer {
|
|
|
24
27
|
addEventListener(conn, events.EventQUICConnectionStream, (ev) => {
|
|
25
28
|
const stream = ev.detail;
|
|
26
29
|
logger.log `🚰 [${this.id}] new stream: [${stream.streamId}]`;
|
|
27
|
-
this.streamEvents.emit("stream", new
|
|
30
|
+
this.streamEvents.emit("stream", QuicStream.new(stream));
|
|
28
31
|
});
|
|
29
32
|
addEventListener(conn, events.EventQUICConnectionError, (err) => {
|
|
30
33
|
logger.error `❌ [${this.id}] connection failed: ${err.detail}`;
|
|
@@ -36,7 +39,7 @@ export class QuicPeer {
|
|
|
36
39
|
openStream() {
|
|
37
40
|
const stream = this.conn.newStream("bidi");
|
|
38
41
|
logger.log `🚰 [${this.id}] opening stream: [${stream.streamId}]`;
|
|
39
|
-
return new
|
|
42
|
+
return QuicStream.new(stream);
|
|
40
43
|
}
|
|
41
44
|
async disconnect() {
|
|
42
45
|
logger.log `👋 [${this.id}] disconnecting`;
|
|
@@ -3,7 +3,8 @@ import { type Stream, type StreamErrorCallback } from "./peers.js";
|
|
|
3
3
|
/** `QUICStream` adapter for our `Stream` API. */
|
|
4
4
|
export declare class QuicStream implements Stream {
|
|
5
5
|
readonly stream: QUICStream;
|
|
6
|
-
|
|
6
|
+
static new(stream: QUICStream): QuicStream;
|
|
7
|
+
private constructor();
|
|
7
8
|
get streamId(): import("@matrixai/quic").StreamId;
|
|
8
9
|
get readable(): import("stream/web").ReadableStream<Uint8Array<ArrayBufferLike>>;
|
|
9
10
|
get writable(): import("stream/web").WritableStream<Uint8Array<ArrayBufferLike>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"quic-stream.d.ts","sourceRoot":"","sources":["../../../../../packages/core/networking/quic-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,mBAAmB,EAAmB,MAAM,YAAY,CAAC;AAGpF,iDAAiD;AACjD,qBAAa,UAAW,YAAW,MAAM;
|
|
1
|
+
{"version":3,"file":"quic-stream.d.ts","sourceRoot":"","sources":["../../../../../packages/core/networking/quic-stream.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,mBAAmB,EAAmB,MAAM,YAAY,CAAC;AAGpF,iDAAiD;AACjD,qBAAa,UAAW,YAAW,MAAM;aAKH,MAAM,EAAE,UAAU;IAJtD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU;IAI7B,OAAO;IAEP,IAAI,QAAQ,sCAEX;IAED,IAAI,QAAQ,qEAEX;IAED,IAAI,QAAQ,qEAEX;IAED,UAAU,CAAC,OAAO,EAAE,mBAAmB,GAAG,IAAI;IAmB9C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAGzB"}
|
|
@@ -144,7 +144,7 @@ export class Quic {
|
|
|
144
144
|
}
|
|
145
145
|
}
|
|
146
146
|
function newPeer(conn, peerInfo, side) {
|
|
147
|
-
const peer = new
|
|
147
|
+
const peer = QuicPeer.new(conn, peerInfo);
|
|
148
148
|
const connectionStartTime = now();
|
|
149
149
|
addEventListener(peer.conn, events.EventQUICConnectionClose, (ev) => {
|
|
150
150
|
const duration = now() - connectionStartTime;
|
|
@@ -155,6 +155,6 @@ export class Quic {
|
|
|
155
155
|
peers.peerConnected(peer);
|
|
156
156
|
return peer;
|
|
157
157
|
}
|
|
158
|
-
return new
|
|
158
|
+
return QuicNetwork.new(socket, server, dial, peers, { host, port });
|
|
159
159
|
}
|
|
160
160
|
}
|
|
@@ -3,9 +3,9 @@ import { tryAsGas } from "#@typeberry/pvm-interface";
|
|
|
3
3
|
import { HostCalls, NoopMissing } from "./host-calls.js";
|
|
4
4
|
import { HostCallsExecutor } from "./host-calls-executor.js";
|
|
5
5
|
import { PvmInstanceManager } from "./pvm-instance-manager.js";
|
|
6
|
-
const hostCalls = new
|
|
6
|
+
const hostCalls = HostCalls.new({ missing: new NoopMissing(), handlers: [] });
|
|
7
7
|
const pvmInstanceManager = await PvmInstanceManager.new(PvmBackend.BuiltIn);
|
|
8
|
-
const pvmHostCallExtension = new
|
|
8
|
+
const pvmHostCallExtension = HostCallsExecutor.new(pvmInstanceManager, hostCalls);
|
|
9
9
|
const program = new Uint8Array([
|
|
10
10
|
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x10, 0x1, 0x0, 0x0, 0xf9, 0x0, 0x0, 0x0, 0x0, 0x0, 0x80, 0xd9, 0x5, 0x12,
|
|
11
11
|
0x0, 0x0, 0x0, 0x5, 0x11, 0x0, 0x0, 0x0, 0x5, 0xa3, 0x0, 0x0, 0x0, 0x5, 0xc6, 0x0, 0x4, 0x7, 0x13, 0x0, 0x2, 0x11,
|
|
@@ -23,6 +23,11 @@ export declare class EcalliTraceLogger {
|
|
|
23
23
|
private readonly output;
|
|
24
24
|
/** Returns a tracker for IO operations. */
|
|
25
25
|
tracker(): IoTraceTracker | null;
|
|
26
|
+
/**
|
|
27
|
+
* Returns `true` if the `ecalli` module logger is configured for at least TRACE level.
|
|
28
|
+
* Enable with: `JAM_LOG=ecalli=trace` or `JAM_LOG=trace`
|
|
29
|
+
*/
|
|
30
|
+
static isTraceEnabled(): boolean;
|
|
26
31
|
/**
|
|
27
32
|
* Create an IoTraceLogger that outputs to the `ecalli` module logger.
|
|
28
33
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecalli-trace-logger.d.ts","sourceRoot":"","sources":["../../../../../packages/core/pvm-host-calls/ecalli-trace-logger.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAIlE;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAOnD;;;;;;;;;;GAUG;AACH,qBAAa,iBAAiB;
|
|
1
|
+
{"version":3,"file":"ecalli-trace-logger.d.ts","sourceRoot":"","sources":["../../../../../packages/core/pvm-host-calls/ecalli-trace-logger.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAIlE;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;AAOnD;;;;;;;;;;GAUG;AACH,qBAAa,iBAAiB;IAwCR,OAAO,CAAC,QAAQ,CAAC,MAAM;IAvC3C,2CAA2C;IAC3C,OAAO,IAAI,cAAc,GAAG,IAAI;IAIhC;;;OAGG;IACH,MAAM,CAAC,cAAc,IAAI,OAAO;IAIhC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,IAAI,iBAAiB,GAAG,IAAI;IAQzC;;;OAGG;IACH,MAAM,CAAC,IAAI,IAAI,iBAAiB;IAIhC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB;IAIpD,OAAO;IAEP;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IASvD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAKlE;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAKzF;;;;OAIG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI5D;;;;OAIG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IAI7D;;;;OAIG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7C;;;;OAIG;IACH,SAAS,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI;IAIzB;;;;;;;OAOG;IACH,cAAc,CAAC,SAAS,EAAE,cAAc,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,GAAG,IAAI;IAyBrF;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAKpF;;;;OAIG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,iBAAiB,GAAG,IAAI;IAKhE;;;;OAIG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,iBAAiB,GAAG,IAAI;CAIlE;AASD,KAAK,eAAe,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAErE;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,SAAS;IAC9C,kEAAkE;IAClE,KAAK,EAAE,eAAe,EAAE,CAAM;IAC9B,mEAAmE;IACnE,MAAM,EAAE,eAAe,EAAE,CAAM;IAC/B,2DAA2D;IAC3D,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAa;IAExC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,GAAG,IAAI;IAInC,OAAO,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAI7C,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAI9C,KAAK,IAAI,IAAI;CAKd"}
|
|
@@ -22,6 +22,13 @@ export class EcalliTraceLogger {
|
|
|
22
22
|
tracker() {
|
|
23
23
|
return this.output === emptyOutput ? null : new IoTraceTracker();
|
|
24
24
|
}
|
|
25
|
+
/**
|
|
26
|
+
* Returns `true` if the `ecalli` module logger is configured for at least TRACE level.
|
|
27
|
+
* Enable with: `JAM_LOG=ecalli=trace` or `JAM_LOG=trace`
|
|
28
|
+
*/
|
|
29
|
+
static isTraceEnabled() {
|
|
30
|
+
return ecalliLogger.getLevel() <= Level.TRACE;
|
|
31
|
+
}
|
|
25
32
|
/**
|
|
26
33
|
* Create an IoTraceLogger that outputs to the `ecalli` module logger.
|
|
27
34
|
*
|
|
@@ -29,7 +36,7 @@ export class EcalliTraceLogger {
|
|
|
29
36
|
* Enable with: `JAM_LOG=ecalli=trace` or `JAM_LOG=trace`
|
|
30
37
|
*/
|
|
31
38
|
static create() {
|
|
32
|
-
if (
|
|
39
|
+
if (!EcalliTraceLogger.isTraceEnabled()) {
|
|
33
40
|
return null;
|
|
34
41
|
}
|
|
35
42
|
return EcalliTraceLogger.new(defaultOutput);
|
|
@@ -12,7 +12,7 @@ function createRegisters(values) {
|
|
|
12
12
|
for (const [idx, value] of values) {
|
|
13
13
|
view.setBigUint64(idx * REGISTER_BYTE_SIZE, value, true);
|
|
14
14
|
}
|
|
15
|
-
return
|
|
15
|
+
return HostCallRegisters.fromRaw(bytes);
|
|
16
16
|
}
|
|
17
17
|
describe("IoTraceLogger", () => {
|
|
18
18
|
describe("logProgram", () => {
|
|
@@ -5,7 +5,8 @@ import type { IoTracker } from "./ecalli-io-tracker.js";
|
|
|
5
5
|
export declare class HostCallMemory {
|
|
6
6
|
private readonly memory;
|
|
7
7
|
ioTracker: IoTracker | null;
|
|
8
|
-
|
|
8
|
+
static new(memory: IMemory): HostCallMemory;
|
|
9
|
+
private constructor();
|
|
9
10
|
/**
|
|
10
11
|
* Save some bytes into memory under given address.
|
|
11
12
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-call-memory.d.ts","sourceRoot":"","sources":["../../../../../packages/core/pvm-host-calls/host-call-memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,qBAAa,cAAc;
|
|
1
|
+
{"version":3,"file":"host-call-memory.d.ts","sourceRoot":"","sources":["../../../../../packages/core/pvm-host-calls/host-call-memory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,qBAAa,cAAc;IAQL,OAAO,CAAC,QAAQ,CAAC,MAAM;IANpC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAQ;IAE1C,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO;IAI1B,OAAO;IAEP;;;;;OAKG;IACH,SAAS,CAAC,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,GAAG,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC;IAgBpE;;;;;OAKG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,GAAG,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC;CAerE"}
|
|
@@ -18,7 +18,7 @@ describe("HostCallMemory", () => {
|
|
|
18
18
|
let hostCallMemory;
|
|
19
19
|
beforeEach(() => {
|
|
20
20
|
memory = new FakeMemory();
|
|
21
|
-
hostCallMemory = new
|
|
21
|
+
hostCallMemory = HostCallMemory.new(memory);
|
|
22
22
|
});
|
|
23
23
|
describe("storeFrom", () => {
|
|
24
24
|
it("should always allow 0-length bytes", () => {
|
|
@@ -5,7 +5,11 @@ export declare class HostCallRegisters {
|
|
|
5
5
|
private readonly raw;
|
|
6
6
|
private readonly registers;
|
|
7
7
|
ioTracker: IoTracker | null;
|
|
8
|
-
|
|
8
|
+
/** Creates empty registers object. */
|
|
9
|
+
static empty(noOfRegisters?: number): HostCallRegisters;
|
|
10
|
+
/** Creates new `HostCallRegisters` by wrapping an already allocated byte array. */
|
|
11
|
+
static fromRaw(bytes: Uint8Array): HostCallRegisters;
|
|
12
|
+
private constructor();
|
|
9
13
|
/** Get U64 register value. */
|
|
10
14
|
get(registerIndex: number): U64;
|
|
11
15
|
/** Set U64 register value. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"host-call-registers.d.ts","sourceRoot":"","sources":["../../../../../packages/core/pvm-host-calls/host-call-registers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,qBAAa,iBAAiB;
|
|
1
|
+
{"version":3,"file":"host-call-registers.d.ts","sourceRoot":"","sources":["../../../../../packages/core/pvm-host-calls/host-call-registers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD,qBAAa,iBAAiB;IAkBR,OAAO,CAAC,QAAQ,CAAC,KAAK;IAjB1C,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IAE9B,SAAS,EAAE,SAAS,GAAG,IAAI,CAAQ;IAE1C,sCAAsC;IACtC,MAAM,CAAC,KAAK,CAAC,aAAa,SAAkB;IAI5C,mFAAmF;IACnF,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,UAAU;IAMhC,OAAO;IAKP,8BAA8B;IAC9B,GAAG,CAAC,aAAa,EAAE,MAAM,GAAG,GAAG;IAI/B,8BAA8B;IAC9B,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG;IAOrC,0DAA0D;IAC1D,UAAU,IAAI,UAAU;IAIxB,sCAAsC;IACtC,UAAU,CAAC,KAAK,EAAE,UAAU;IAK5B,QAAQ;CAWT"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { tryAsU64 } from "#@typeberry/numbers";
|
|
2
|
-
import { REGISTER_BYTE_SIZE } from "#@typeberry/pvm-interface";
|
|
2
|
+
import { NO_OF_REGISTERS, REGISTER_BYTE_SIZE } from "#@typeberry/pvm-interface";
|
|
3
3
|
import { check } from "#@typeberry/utils";
|
|
4
4
|
export class HostCallRegisters {
|
|
5
5
|
bytes;
|
|
@@ -7,6 +7,16 @@ export class HostCallRegisters {
|
|
|
7
7
|
registers;
|
|
8
8
|
// Track register modifications.
|
|
9
9
|
ioTracker = null;
|
|
10
|
+
/** Creates empty registers object. */
|
|
11
|
+
static empty(noOfRegisters = NO_OF_REGISTERS) {
|
|
12
|
+
return HostCallRegisters.fromRaw(new Uint8Array(noOfRegisters * REGISTER_BYTE_SIZE));
|
|
13
|
+
}
|
|
14
|
+
/** Creates new `HostCallRegisters` by wrapping an already allocated byte array. */
|
|
15
|
+
static fromRaw(bytes) {
|
|
16
|
+
check `${bytes.length % REGISTER_BYTE_SIZE === 0} registers array must be a multiply of ${REGISTER_BYTE_SIZE},
|
|
17
|
+
got: ${bytes.length}`;
|
|
18
|
+
return new HostCallRegisters(bytes);
|
|
19
|
+
}
|
|
10
20
|
constructor(bytes) {
|
|
11
21
|
this.bytes = bytes;
|
|
12
22
|
this.raw = bytes;
|