@typeberry/lib 0.5.10-7338c21 → 0.5.10-9ffd7ac
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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.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/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.js +1 -1
- package/packages/jam/in-core/externalities/refine.test.js +3 -3
- 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.js +10 -3
- 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
|
@@ -20,6 +20,9 @@ export class JamnpIpcHandler {
|
|
|
20
20
|
streamHandlers = new Map();
|
|
21
21
|
/** termination promise + resolvers */
|
|
22
22
|
onEnd;
|
|
23
|
+
static new(sender) {
|
|
24
|
+
return new JamnpIpcHandler(sender);
|
|
25
|
+
}
|
|
23
26
|
constructor(sender) {
|
|
24
27
|
this.sender = sender;
|
|
25
28
|
let resolve = () => { };
|
|
@@ -46,7 +49,7 @@ export class JamnpIpcHandler {
|
|
|
46
49
|
// find first stream id with given kind
|
|
47
50
|
for (const [ipcStreamId, handler] of this.streams.entries()) {
|
|
48
51
|
if (handler.kind === streamKind) {
|
|
49
|
-
work(handler, new
|
|
52
|
+
work(handler, EnvelopeSender.new(ipcStreamId, this.sender));
|
|
50
53
|
return;
|
|
51
54
|
}
|
|
52
55
|
}
|
|
@@ -71,7 +74,7 @@ export class JamnpIpcHandler {
|
|
|
71
74
|
// register the stream
|
|
72
75
|
this.streams.set(ipcStreamId, handler);
|
|
73
76
|
this.pendingStreams.set(ipcStreamId, true);
|
|
74
|
-
const sender = new
|
|
77
|
+
const sender = EnvelopeSender.new(ipcStreamId, this.sender);
|
|
75
78
|
sender.open(NewStream.create({ streamByte: kind }));
|
|
76
79
|
work(handler, sender);
|
|
77
80
|
}
|
|
@@ -83,7 +86,7 @@ export class JamnpIpcHandler {
|
|
|
83
86
|
logger.log `[${ipcStreamId}] incoming message: ${envelope.type} ${envelope.data}`;
|
|
84
87
|
// check if this is a already known stream id
|
|
85
88
|
const streamHandler = this.streams.get(ipcStreamId);
|
|
86
|
-
const streamSender = new
|
|
89
|
+
const streamSender = EnvelopeSender.new(ipcStreamId, this.sender);
|
|
87
90
|
// we don't know that stream yet, so it has to be a new one
|
|
88
91
|
if (streamHandler === undefined) {
|
|
89
92
|
// closing or message of unknown stream - ignore.
|
|
@@ -165,6 +168,9 @@ class EnvelopeSender {
|
|
|
165
168
|
ipcStreamId;
|
|
166
169
|
sender;
|
|
167
170
|
streamId;
|
|
171
|
+
static new(ipcStreamId, sender) {
|
|
172
|
+
return new EnvelopeSender(ipcStreamId, sender);
|
|
173
|
+
}
|
|
168
174
|
constructor(ipcStreamId, sender) {
|
|
169
175
|
this.ipcStreamId = ipcStreamId;
|
|
170
176
|
this.sender = sender;
|
|
@@ -4,7 +4,7 @@ import { JamnpIpcHandler } from "./handler.js";
|
|
|
4
4
|
/** An IPC endpoint exposing network-like messaging protocol. */
|
|
5
5
|
export function startJamnpIpcServer(nodeName, chainSpec, announcements, getHandshake, getBoundaryNodes, getKeyValuePairs) {
|
|
6
6
|
return startIpcServer(`typeberry-jamnp-${nodeName}`, (sender) => {
|
|
7
|
-
const handler = new
|
|
7
|
+
const handler = JamnpIpcHandler.new(sender);
|
|
8
8
|
// Send block announcements
|
|
9
9
|
const listener = (announcement) => {
|
|
10
10
|
if (announcement instanceof up0.Announcement) {
|
|
@@ -20,8 +20,8 @@ export function startJamnpIpcServer(nodeName, chainSpec, announcements, getHands
|
|
|
20
20
|
handler.waitForEnd().finally(() => {
|
|
21
21
|
announcements.off(listener);
|
|
22
22
|
});
|
|
23
|
-
handler.registerStreamHandlers(
|
|
24
|
-
handler.registerStreamHandlers(
|
|
23
|
+
handler.registerStreamHandlers(up0.Handler.new(chainSpec, getHandshake, () => { }, () => { }));
|
|
24
|
+
handler.registerStreamHandlers(ce129.Handler.new(true, getBoundaryNodes, getKeyValuePairs));
|
|
25
25
|
return handler;
|
|
26
26
|
});
|
|
27
27
|
}
|
|
@@ -4,7 +4,8 @@ import type { IpcHandler } from "#@typeberry/fuzz-proto";
|
|
|
4
4
|
/** Sending data abstraction on a socket. */
|
|
5
5
|
export declare class IpcSender {
|
|
6
6
|
private readonly socket;
|
|
7
|
-
|
|
7
|
+
static new(socket: Socket): IpcSender;
|
|
8
|
+
private constructor();
|
|
8
9
|
/** Write given data to the outgoing socket. */
|
|
9
10
|
send(data: BytesBlob): void;
|
|
10
11
|
/** Close the socket. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../../packages/extensions/ipc/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAIrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIxD,4CAA4C;AAC5C,qBAAa,SAAS;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../../packages/extensions/ipc/server.ts"],"names":[],"mappings":"AACA,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAIrD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAIxD,4CAA4C;AAC5C,qBAAa,SAAS;IAKA,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJ3C,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM;IAIzB,OAAO;IAEP,+CAA+C;IAC/C,IAAI,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAI3B,wBAAwB;IACxB,KAAK,IAAI,IAAI;CAGd;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,UAAU,cAiFhG"}
|
|
@@ -7,6 +7,9 @@ import { encodeMessageLength, handleMessageFragmentation } from "#@typeberry/net
|
|
|
7
7
|
/** Sending data abstraction on a socket. */
|
|
8
8
|
export class IpcSender {
|
|
9
9
|
socket;
|
|
10
|
+
static new(socket) {
|
|
11
|
+
return new IpcSender(socket);
|
|
12
|
+
}
|
|
10
13
|
constructor(socket) {
|
|
11
14
|
this.socket = socket;
|
|
12
15
|
}
|
|
@@ -28,7 +31,7 @@ export function startIpcServer(name, newMessageHandler) {
|
|
|
28
31
|
// Create the IPC server
|
|
29
32
|
const server = createServer((socket) => {
|
|
30
33
|
logger.log `Client connected`;
|
|
31
|
-
const messageHandler = newMessageHandler(new
|
|
34
|
+
const messageHandler = newMessageHandler(IpcSender.new(socket));
|
|
32
35
|
// Handle incoming data from the client
|
|
33
36
|
socket.on("data", handleMessageFragmentation(async (data) => {
|
|
34
37
|
try {
|
|
@@ -78,7 +78,8 @@ export declare class ChainSpec extends WithDebug {
|
|
|
78
78
|
readonly maxRefineGas: U64;
|
|
79
79
|
/** `L`: The maximum age in timeslots of the lookup anchor. */
|
|
80
80
|
readonly maxLookupAnchorAge: U32;
|
|
81
|
-
|
|
81
|
+
static new(data: Omit<ChainSpec, "validatorsSuperMajority" | "thirdOfValidators" | "erasureCodedPieceSize">): ChainSpec;
|
|
82
|
+
private constructor();
|
|
82
83
|
}
|
|
83
84
|
/** Set of values for "tiny" chain as defined in JAM test vectors. */
|
|
84
85
|
export declare const tinyChainSpec: ChainSpec;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chain-spec.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/config/chain-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAClH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,MAAM,CAAC;AACjD;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,+DAA+D;AAC/D,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC;;GAEG;AACH,qBAAa,SAAU,SAAQ,SAAS;IACtC,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC;IAC9B,kCAAkC;IAClC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC;IAChC,sCAAsC;IACtC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,CAAC;IACtC,uBAAuB;IACvB,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC;IACpC,yCAAyC;IACzC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,kDAAkD;IAClD,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,mBAAmB,EAAE,EAAE,CAAC;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,sBAAsB,EAAE,EAAE,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC;IAC7B,8DAA8D;IAC9D,QAAQ,CAAC,wBAAwB,EAAE,GAAG,CAAC;IACvC,gGAAgG;IAChG,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC;IACpC,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"chain-spec.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/config/chain-spec.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,KAAK,EAAE,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,KAAK,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAClH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,OAAO,CAAC;AACnC;;;;GAIG;AACH,eAAO,MAAM,6BAA6B,MAAM,CAAC;AACjD;;;;;;GAMG;AACH,eAAO,MAAM,SAAS,MAAM,CAAC;AAC7B;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,MAAM,CAAC;AAEpC,+DAA+D;AAC/D,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC;;GAEG;AACH,qBAAa,SAAU,SAAQ,SAAS;IACtC,6CAA6C;IAC7C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,QAAQ,CAAC,eAAe,EAAE,GAAG,CAAC;IAC9B,kCAAkC;IAClC,QAAQ,CAAC,iBAAiB,EAAE,GAAG,CAAC;IAChC,sCAAsC;IACtC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,CAAC;IACtC,uBAAuB;IACvB,QAAQ,CAAC,UAAU,EAAE,GAAG,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC;IACpC,yCAAyC;IACzC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;IAC3B,yCAAyC;IACzC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,kDAAkD;IAClD,QAAQ,CAAC,aAAa,EAAE,GAAG,CAAC;IAC5B,+DAA+D;IAC/D,QAAQ,CAAC,mBAAmB,EAAE,EAAE,CAAC;IACjC,4EAA4E;IAC5E,QAAQ,CAAC,sBAAsB,EAAE,EAAE,CAAC;IACpC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,GAAG,CAAC;IAC7B,8DAA8D;IAC9D,QAAQ,CAAC,wBAAwB,EAAE,GAAG,CAAC;IACvC,gGAAgG;IAChG,QAAQ,CAAC,qBAAqB,EAAE,GAAG,CAAC;IACpC,8DAA8D;IAC9D,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC;IAC1B,wEAAwE;IACxE,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;IAC3B,8DAA8D;IAC9D,QAAQ,CAAC,kBAAkB,EAAE,GAAG,CAAC;IAEjC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,yBAAyB,GAAG,mBAAmB,GAAG,uBAAuB,CAAC;IAI3G,OAAO;CAuBR;AAED,qEAAqE;AACrE,eAAO,MAAM,aAAa,WAiBxB,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,aAAa,WAexB,CAAC"}
|
|
@@ -78,6 +78,9 @@ export class ChainSpec extends WithDebug {
|
|
|
78
78
|
maxRefineGas;
|
|
79
79
|
/** `L`: The maximum age in timeslots of the lookup anchor. */
|
|
80
80
|
maxLookupAnchorAge;
|
|
81
|
+
static new(data) {
|
|
82
|
+
return new ChainSpec(data);
|
|
83
|
+
}
|
|
81
84
|
constructor(data) {
|
|
82
85
|
super();
|
|
83
86
|
this.name = data.name;
|
|
@@ -100,7 +103,7 @@ export class ChainSpec extends WithDebug {
|
|
|
100
103
|
}
|
|
101
104
|
}
|
|
102
105
|
/** Set of values for "tiny" chain as defined in JAM test vectors. */
|
|
103
|
-
export const tinyChainSpec = new
|
|
106
|
+
export const tinyChainSpec = ChainSpec.new({
|
|
104
107
|
name: "tiny",
|
|
105
108
|
validatorsCount: tryAsU16(6),
|
|
106
109
|
coresCount: tryAsU16(2),
|
|
@@ -122,7 +125,7 @@ export const tinyChainSpec = new ChainSpec({
|
|
|
122
125
|
* Set of values for "full" chain as defined in JAM test vectors.
|
|
123
126
|
* Please note that only validatorsCount and epochLength are "full", the rest is copied from "tiny".
|
|
124
127
|
*/
|
|
125
|
-
export const fullChainSpec = new
|
|
128
|
+
export const fullChainSpec = ChainSpec.new({
|
|
126
129
|
name: "full",
|
|
127
130
|
validatorsCount: tryAsU16(1023),
|
|
128
131
|
coresCount: tryAsU16(341),
|
|
@@ -16,13 +16,8 @@ export declare class Bootnode implements PeerAddress {
|
|
|
16
16
|
readonly ip: string;
|
|
17
17
|
/** Port number on which the bootnode is listening for new connections */
|
|
18
18
|
readonly port: number;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
id: PeerId,
|
|
22
|
-
/** IP address (either IPv4 or IPv6) of the bootnode */
|
|
23
|
-
ip: string,
|
|
24
|
-
/** Port number on which the bootnode is listening for new connections */
|
|
25
|
-
port: number);
|
|
19
|
+
static new(id: PeerId, ip: string, port: number): Bootnode;
|
|
20
|
+
private constructor();
|
|
26
21
|
get host(): string;
|
|
27
22
|
toString(): string;
|
|
28
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/config/network.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,eAAe;AACf,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE9C,+BAA+B;AAC/B,MAAM,MAAM,WAAW,GAAG;IACxB,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,sEAAsE;AACtE,qBAAa,QAAS,YAAW,WAAW;
|
|
1
|
+
{"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/config/network.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE/C,eAAe;AACf,MAAM,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE9C,+BAA+B;AAC/B,MAAM,MAAM,WAAW,GAAG;IACxB,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,sEAAsE;AACtE,qBAAa,QAAS,YAAW,WAAW;IAMxC,8FAA8F;IAC9F,QAAQ,CAAC,EAAE,EAAE,MAAM;IACnB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,EAAE,MAAM;IACnB,yEAAyE;IACzE,QAAQ,CAAC,IAAI,EAAE,MAAM;IAVvB,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAI/C,OAAO;IASP,IAAI,IAAI,WAEP;IAED,QAAQ;CAGT"}
|
|
@@ -17,7 +17,7 @@ export function parseBootnode(v) {
|
|
|
17
17
|
throw new Error(`Invalid port number: "${port}"`);
|
|
18
18
|
}
|
|
19
19
|
// TODO [ToDr] we should probably validate the name!
|
|
20
|
-
return new
|
|
20
|
+
return Bootnode.new(asOpaqueType(name), ip, portNumber);
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
23
|
* Configuration file for any blockchain network built on the JAM protocol
|
|
@@ -24,7 +24,7 @@ describe("InMemoryDatabase", () => {
|
|
|
24
24
|
const db = InMemoryBlocks.new();
|
|
25
25
|
const block = testBlockView();
|
|
26
26
|
const headerHash = blake2b.hashBytes(block.header.view().encoded()).asOpaque();
|
|
27
|
-
db.insertBlock(new
|
|
27
|
+
db.insertBlock(WithHash.new(headerHash, block));
|
|
28
28
|
assert.deepStrictEqual(db.getHeader(headerHash)?.materialize(), block.header.materialize());
|
|
29
29
|
assert.deepStrictEqual(db.getExtrinsic(headerHash)?.materialize(), block.extrinsic.materialize());
|
|
30
30
|
});
|
|
@@ -42,7 +42,8 @@ export declare class InMemoryStates implements StatesDb<InMemoryState> {
|
|
|
42
42
|
private readonly spec;
|
|
43
43
|
private readonly db;
|
|
44
44
|
private readonly blake2b;
|
|
45
|
-
|
|
45
|
+
static new(spec: ChainSpec): InMemoryStates;
|
|
46
|
+
private constructor();
|
|
46
47
|
updateAndSetState(headerHash: HeaderHash, state: InMemoryState, update: Partial<State & ServicesUpdate>): Promise<Result<OK, StateUpdateError>>;
|
|
47
48
|
getStateRoot(state: InMemoryState): Promise<StateRootHash>;
|
|
48
49
|
/** Insert a full state into the database. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"states.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/database/states.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,KAAK,EAAe,MAAM,kBAAkB,CAAC;AAE/F,OAAO,EAAe,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE3D,0DAA0D;AAC1D,oBAAY,gBAAgB;IAC1B,oDAAoD;IACpD,QAAQ,IAAI;IACZ,iDAAiD;IACjD,MAAM,IAAI;CACX;AAED,wFAAwF;AACxF,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,KAAK;IACrC,qEAAqE;IACrE,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;CACpG;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK;IAC/C,4CAA4C;IAC5C,YAAY,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE/C;;;;OAIG;IACH,iBAAiB,CACf,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEzC,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC;IAEvC,4EAA4E;IAC5E,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAErC,6CAA6C;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,qBAAa,cAAe,YAAW,QAAQ,CAAC,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"states.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/database/states.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,KAAK,cAAc,EAAE,KAAK,KAAK,EAAe,MAAM,kBAAkB,CAAC;AAE/F,OAAO,EAAe,EAAE,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE3D,0DAA0D;AAC1D,oBAAY,gBAAgB;IAC1B,oDAAoD;IACpD,QAAQ,IAAI;IACZ,iDAAiD;IACjD,MAAM,IAAI;CACX;AAED,wFAAwF;AACxF,MAAM,WAAW,YAAY,CAAC,CAAC,GAAG,KAAK;IACrC,qEAAqE;IACrE,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;CACpG;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK;IAC/C,4CAA4C;IAC5C,YAAY,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAE/C;;;;OAIG;IACH,iBAAiB,CACf,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAEzC,gDAAgD;IAChD,QAAQ,CAAC,MAAM,EAAE,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC;IAEvC,4EAA4E;IAC5E,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI,CAAC;IAErC,6CAA6C;IAC7C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED,qBAAa,cAAe,YAAW,QAAQ,CAAC,aAAa,CAAC;IAQxC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPzC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAmE;IACtF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAmB;IAE3C,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS;IAI1B,OAAO;IAID,iBAAiB,CACrB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,aAAa,EACpB,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAgBlC,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAKhE,6CAA6C;IACvC,kBAAkB,CAAC,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAM7G,QAAQ,CAAC,UAAU,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI;IAStD,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAI9B,KAAK;CACZ"}
|
|
@@ -7,7 +7,7 @@ import { deepEqual } from "#@typeberry/utils";
|
|
|
7
7
|
import { InMemoryStates } from "./states.js";
|
|
8
8
|
describe("InMemoryState", () => {
|
|
9
9
|
it("should write and read some state", async () => {
|
|
10
|
-
const db = new
|
|
10
|
+
const db = InMemoryStates.new(tinyChainSpec);
|
|
11
11
|
const root = Bytes.parseBytes(TEST_STATE_ROOT, HASH_SIZE).asOpaque();
|
|
12
12
|
deepEqual(db.getState(root), null);
|
|
13
13
|
await db.insertInitialState(root, testState());
|
|
@@ -9,7 +9,8 @@ export declare class LmdbBlocks implements BlocksDb {
|
|
|
9
9
|
private readonly extrinsics;
|
|
10
10
|
private readonly headers;
|
|
11
11
|
private readonly postStateRoots;
|
|
12
|
-
|
|
12
|
+
static new(chainSpec: ChainSpec, root: LmdbRoot): LmdbBlocks;
|
|
13
|
+
private constructor();
|
|
13
14
|
setPostStateRoot(hash: HeaderHash, postStateRoot: StateRootHash): Promise<void>;
|
|
14
15
|
getPostStateRoot(hash: HeaderHash): StateRootHash | null;
|
|
15
16
|
insertBlock(block: WithHash<HeaderHash, BlockView>): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/database-lmdb/blocks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAEd,KAAK,aAAa,EAElB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAS,MAAM,WAAW,CAAC;AAQjD,qBAAa,UAAW,YAAW,QAAQ;
|
|
1
|
+
{"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/database-lmdb/blocks.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,SAAS,EAEd,KAAK,aAAa,EAElB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,QAAQ,EAAS,MAAM,WAAW,CAAC;AAQjD,qBAAa,UAAW,YAAW,QAAQ;IAUvC,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVvB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAQ;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IAEvC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ;IAI/C,OAAO;IAeD,gBAAgB,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrF,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI;IAQlD,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IASlE,iBAAiB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxD,iBAAiB,IAAI,UAAU;IAS/B,SAAS,CAAC,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI;IAS9C,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,aAAa,GAAG,IAAI;IAQpD,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI;IAM5B,KAAK;CAGZ"}
|
|
@@ -3,7 +3,8 @@ export type SubDb = lmdb.Database<Uint8Array, lmdb.Key>;
|
|
|
3
3
|
/** A thin abstraction over lmdb database interface. */
|
|
4
4
|
export declare class LmdbRoot {
|
|
5
5
|
readonly db: lmdb.RootDatabase<Uint8Array, lmdb.Key>;
|
|
6
|
-
|
|
6
|
+
static new(dbPath: string, readOnly?: boolean): LmdbRoot;
|
|
7
|
+
private constructor();
|
|
7
8
|
/** Open a sub-database under the same path. */
|
|
8
9
|
subDb(name: string): SubDb;
|
|
9
10
|
/** Close the database and all sub-databases. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/database-lmdb/root.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAExD,uDAAuD;AACvD,qBAAa,QAAQ;IACnB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/database-lmdb/root.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,MAAM,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;AAExD,uDAAuD;AACvD,qBAAa,QAAQ;IACnB,QAAQ,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAErD,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,UAAQ;IAI3C,OAAO;IASP,+CAA+C;IAC/C,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK;IAI1B,gDAAgD;IAC1C,KAAK;CAGZ"}
|
|
@@ -2,6 +2,9 @@ import * as lmdb from "lmdb";
|
|
|
2
2
|
/** A thin abstraction over lmdb database interface. */
|
|
3
3
|
export class LmdbRoot {
|
|
4
4
|
db;
|
|
5
|
+
static new(dbPath, readOnly = false) {
|
|
6
|
+
return new LmdbRoot(dbPath, readOnly);
|
|
7
|
+
}
|
|
5
8
|
constructor(dbPath, readOnly = false) {
|
|
6
9
|
this.db = lmdb.open(dbPath, {
|
|
7
10
|
compression: true,
|
|
@@ -61,7 +61,8 @@ export declare class LmdbStates implements StatesDb<SerializedState<LeafDb>>, In
|
|
|
61
61
|
private readonly root;
|
|
62
62
|
private readonly states;
|
|
63
63
|
private readonly values;
|
|
64
|
-
|
|
64
|
+
static new(spec: ChainSpec, blake2b: Blake2b, root: LmdbRoot): LmdbStates;
|
|
65
|
+
private constructor();
|
|
65
66
|
insertInitialState(headerHash: HeaderHash, serializedState: StateEntries): Promise<Result<OK, StateUpdateError>>;
|
|
66
67
|
private updateAndCommit;
|
|
67
68
|
updateAndSetState(headerHash: HeaderHash, state: SerializedState<LeafDb>, update: Partial<State & ServicesUpdate>): Promise<Result<OK, StateUpdateError>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"states.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/database-lmdb/states.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,EAAE,KAAK,QAAQ,EAAE,gBAAgB,EAAe,MAAM,qBAAqB,CAAC;AAC9G,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,iBAAiB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAgD,MAAM,gCAAgC,CAAC;AAG/G,OAAO,EAAE,EAAE,EAAE,MAAM,EAAkB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAS,MAAM,WAAW,CAAC;AAGjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,qBAAa,UAAW,YAAW,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"states.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/database-lmdb/states.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,EAAE,KAAK,QAAQ,EAAE,gBAAgB,EAAe,MAAM,qBAAqB,CAAC;AAC9G,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,iBAAiB,CAAC;AAE9D,OAAO,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAY,MAAM,gCAAgC,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAgD,MAAM,gCAAgC,CAAC;AAG/G,OAAO,EAAE,EAAE,EAAE,MAAM,EAAkB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAS,MAAM,WAAW,CAAC;AAGjD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAEH,qBAAa,UAAW,YAAW,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,EAAE,YAAY,CAAC,YAAY,CAAC;IAS5F,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAVvB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAE/B,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ;IAI5D,OAAO;IASD,kBAAkB,CACtB,UAAU,EAAE,UAAU,EACtB,eAAe,EAAE,YAAY,GAC5B,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;YAQ1B,eAAe;IA0BvB,iBAAiB,CACrB,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,EAC9B,MAAM,EAAE,OAAO,CAAC,KAAK,GAAG,cAAc,CAAC,GACtC,OAAO,CAAC,MAAM,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC;IAWlC,YAAY,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,aAAa,CAAC;IAI1E,QAAQ,CAAC,IAAI,EAAE,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI;IAsB1D,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAI9B,KAAK;CAGZ"}
|
|
@@ -37,8 +37,8 @@ describe("LMDB States database", () => {
|
|
|
37
37
|
const headerHash = Bytes.zero(HASH_SIZE).asOpaque();
|
|
38
38
|
const spec = tinyChainSpec;
|
|
39
39
|
it("should import state and read state", async () => {
|
|
40
|
-
const root = new
|
|
41
|
-
const states = new
|
|
40
|
+
const root = LmdbRoot.new(tmpDir);
|
|
41
|
+
const states = LmdbStates.new(spec, blake2b, root);
|
|
42
42
|
try {
|
|
43
43
|
const emptyState = InMemoryState.empty(spec);
|
|
44
44
|
const serialized = StateEntries.serializeInMemory(spec, blake2b, emptyState);
|
|
@@ -58,15 +58,15 @@ describe("LMDB States database", () => {
|
|
|
58
58
|
}
|
|
59
59
|
});
|
|
60
60
|
it("should update the state", async () => {
|
|
61
|
-
const root = new
|
|
62
|
-
const states = new
|
|
61
|
+
const root = LmdbRoot.new(tmpDir);
|
|
62
|
+
const states = LmdbStates.new(spec, blake2b, root);
|
|
63
63
|
try {
|
|
64
64
|
const state = InMemoryState.empty(spec);
|
|
65
65
|
await states.insertInitialState(headerHash, StateEntries.serializeInMemory(spec, blake2b, state));
|
|
66
66
|
const newState = states.getState(headerHash);
|
|
67
67
|
assert.ok(newState !== null);
|
|
68
68
|
const headerHash2 = Bytes.fill(HASH_SIZE, 2).asOpaque();
|
|
69
|
-
const lookupHistory = new
|
|
69
|
+
const lookupHistory = LookupHistoryItem.new(Bytes.fill(HASH_SIZE, 0xff).asOpaque(), tryAsU32(5), tryAsLookupHistorySlots([]));
|
|
70
70
|
const stateUpdate = {
|
|
71
71
|
timeslot: tryAsTimeSlot(15),
|
|
72
72
|
privilegedServices: PrivilegedServices.create({
|
|
@@ -142,8 +142,8 @@ describe("LMDB States database", () => {
|
|
|
142
142
|
deepEqual(Array.from(set), Array.from(SortedSet.fromArray(leafComparator, Array.from(trie.nodes.leaves()))));
|
|
143
143
|
});
|
|
144
144
|
it("should import more complex state", async () => {
|
|
145
|
-
const root = new
|
|
146
|
-
const states = new
|
|
145
|
+
const root = LmdbRoot.new(tmpDir);
|
|
146
|
+
const states = LmdbStates.new(spec, blake2b, root);
|
|
147
147
|
try {
|
|
148
148
|
const initialState = testState();
|
|
149
149
|
const initialService = initialState.services.get(tryAsServiceId(0));
|
|
@@ -167,8 +167,8 @@ describe("LMDB States database", () => {
|
|
|
167
167
|
}
|
|
168
168
|
});
|
|
169
169
|
it("should update more complex entries", async () => {
|
|
170
|
-
const root = new
|
|
171
|
-
const states = new
|
|
170
|
+
const root = LmdbRoot.new(tmpDir);
|
|
171
|
+
const states = LmdbStates.new(spec, blake2b, root);
|
|
172
172
|
try {
|
|
173
173
|
const state = testState();
|
|
174
174
|
const initialService = state.services.get(tryAsServiceId(0));
|
|
@@ -55,60 +55,60 @@ export class PvmExecutor {
|
|
|
55
55
|
constructor(serviceCode, hostCallHandlers, entrypoint, pvmInstanceManager) {
|
|
56
56
|
this.serviceCode = serviceCode;
|
|
57
57
|
this.entrypoint = entrypoint;
|
|
58
|
-
this.hostCalls = new
|
|
58
|
+
this.hostCalls = HostCalls.new({
|
|
59
59
|
missing: new general.Missing(),
|
|
60
60
|
handlers: hostCallHandlers,
|
|
61
61
|
});
|
|
62
|
-
this.pvm = new
|
|
62
|
+
this.pvm = HostCallsExecutor.new(pvmInstanceManager, this.hostCalls);
|
|
63
63
|
}
|
|
64
64
|
static async prepareBackend(pvm) {
|
|
65
65
|
return PvmInstanceManager.new(pvm);
|
|
66
66
|
}
|
|
67
67
|
/** Prepare refine host call handlers */
|
|
68
68
|
static prepareRefineHostCalls(serviceId, externalities) {
|
|
69
|
-
const refineHandlers = REFINE_HOST_CALL_CLASSES.map((HandlerClass) => new
|
|
69
|
+
const refineHandlers = REFINE_HOST_CALL_CLASSES.map((HandlerClass) => HandlerClass.new(externalities.refine));
|
|
70
70
|
/** https://graypaper.fluffylabs.dev/#/ab2cdbd/2fa7022fa702?v=0.7.2 */
|
|
71
71
|
const generalHandlers = [
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
72
|
+
general.LogHostCall.new(serviceId),
|
|
73
|
+
general.GasHostCall.new(serviceId),
|
|
74
|
+
general.Fetch.new(serviceId, externalities.fetchExternalities),
|
|
75
75
|
];
|
|
76
76
|
return refineHandlers.concat(generalHandlers);
|
|
77
77
|
}
|
|
78
78
|
/** Prepare accumulation host call handlers */
|
|
79
79
|
static prepareAccumulateHostCalls(serviceId, externalities, chainSpec) {
|
|
80
|
-
const accumulateHandlers = ACCUMULATE_HOST_CALL_CLASSES.map((HandlerClass) => new
|
|
80
|
+
const accumulateHandlers = ACCUMULATE_HOST_CALL_CLASSES.map((HandlerClass) => HandlerClass.new(serviceId, externalities.partialState, chainSpec));
|
|
81
81
|
/** https://graypaper.fluffylabs.dev/#/ab2cdbd/30d00130d001?v=0.7.2 */
|
|
82
82
|
const generalHandlers = [
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
83
|
+
general.LogHostCall.new(serviceId),
|
|
84
|
+
general.GasHostCall.new(serviceId),
|
|
85
|
+
general.Read.new(serviceId, externalities.serviceExternalities),
|
|
86
|
+
general.Write.new(serviceId, externalities.serviceExternalities),
|
|
87
|
+
general.Fetch.new(serviceId, externalities.fetchExternalities),
|
|
88
|
+
general.Lookup.new(serviceId, externalities.serviceExternalities),
|
|
89
|
+
general.Info.new(serviceId, externalities.serviceExternalities),
|
|
90
90
|
];
|
|
91
91
|
return accumulateHandlers.concat(generalHandlers);
|
|
92
92
|
}
|
|
93
93
|
/** Prepare is-authorized host call handlers */
|
|
94
94
|
static prepareIsAuthorizedHostCalls(serviceId, externalities) {
|
|
95
95
|
const generalHandlers = [
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
general.LogHostCall.new(serviceId),
|
|
97
|
+
general.GasHostCall.new(serviceId),
|
|
98
|
+
general.Fetch.new(serviceId, externalities.fetchExternalities),
|
|
99
99
|
];
|
|
100
100
|
return generalHandlers;
|
|
101
101
|
}
|
|
102
102
|
/** Prepare on transfer host call handlers */
|
|
103
103
|
static prepareOnTransferHostCalls(serviceId, externalities) {
|
|
104
104
|
const generalHandlers = [
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
105
|
+
general.LogHostCall.new(serviceId),
|
|
106
|
+
general.GasHostCall.new(serviceId),
|
|
107
|
+
general.Fetch.new(serviceId, externalities.fetchExternalities),
|
|
108
|
+
general.Read.new(serviceId, externalities.partialState),
|
|
109
|
+
general.Write.new(serviceId, externalities.partialState),
|
|
110
|
+
general.Lookup.new(serviceId, externalities.partialState),
|
|
111
|
+
general.Info.new(serviceId, externalities.partialState),
|
|
112
112
|
];
|
|
113
113
|
return generalHandlers;
|
|
114
114
|
}
|
|
@@ -31,7 +31,8 @@ export declare class FuzzTarget implements IpcHandler {
|
|
|
31
31
|
readonly sender: IpcSender;
|
|
32
32
|
readonly spec: ChainSpec;
|
|
33
33
|
private sessionFeatures;
|
|
34
|
-
|
|
34
|
+
static new(msgHandler: FuzzMessageHandler, sender: IpcSender, spec: ChainSpec): FuzzTarget;
|
|
35
|
+
private constructor();
|
|
35
36
|
onSocketMessage(msg: Uint8Array): Promise<void>;
|
|
36
37
|
private processAndRespond;
|
|
37
38
|
onClose({ error }: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/fuzz-proto/v1/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,YAAY,EAEZ,KAAK,UAAU,EACf,KAAK,QAAQ,EAKb,KAAK,QAAQ,EACd,MAAM,YAAY,CAAC;AAIpB;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEhD;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEvD;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;IAE5E,gEAAgE;IAChE,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CAC5D;AAED,qBAAa,UAAW,YAAW,UAAU;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/fuzz-proto/v1/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EACL,YAAY,EAEZ,KAAK,UAAU,EACf,KAAK,QAAQ,EAKb,KAAK,QAAQ,EACd,MAAM,YAAY,CAAC;AAIpB;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEhD;;;OAGG;IACH,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAEvD;;;OAGG;IACH,WAAW,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC,CAAC;IAE5E,gEAAgE;IAChE,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;CAC5D;AAED,qBAAa,UAAW,YAAW,UAAU;aAQzB,UAAU,EAAE,kBAAkB;aAC9B,MAAM,EAAE,SAAS;aACjB,IAAI,EAAE,SAAS;IATjC,OAAO,CAAC,eAAe,CAAK;IAE5B,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS;IAI7E,OAAO;IAMD,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;YAiBvC,iBAAiB;IA2H/B,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG,IAAI;IAI3C,4DAA4D;IAC5D,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;CAGrC"}
|
|
@@ -8,6 +8,9 @@ export class FuzzTarget {
|
|
|
8
8
|
sender;
|
|
9
9
|
spec;
|
|
10
10
|
sessionFeatures = 0;
|
|
11
|
+
static new(msgHandler, sender, spec) {
|
|
12
|
+
return new FuzzTarget(msgHandler, sender, spec);
|
|
13
|
+
}
|
|
11
14
|
constructor(msgHandler, sender, spec) {
|
|
12
15
|
this.msgHandler = msgHandler;
|
|
13
16
|
this.sender = sender;
|
|
@@ -70,7 +70,7 @@ describe("FuzzV1Target Handler", () => {
|
|
|
70
70
|
value: responsePeerInfo,
|
|
71
71
|
};
|
|
72
72
|
mockMessageHandler.getPeerInfo.mock.mockImplementation(async () => responsePeerInfo);
|
|
73
|
-
const fuzzTarget = new
|
|
73
|
+
const fuzzTarget = FuzzTarget.new(mockMessageHandler, mockSender, spec);
|
|
74
74
|
const testMessage = encode(incomingMessage);
|
|
75
75
|
await fuzzTarget.onSocketMessage(testMessage);
|
|
76
76
|
// Verify handshake completion and feature negotiation
|
|
@@ -116,7 +116,7 @@ describe("FuzzV1Target Handler", () => {
|
|
|
116
116
|
value: expectedStateRoot,
|
|
117
117
|
};
|
|
118
118
|
mockMessageHandler.initialize.mock.mockImplementation(async () => expectedStateRoot);
|
|
119
|
-
const fuzzTarget = new
|
|
119
|
+
const fuzzTarget = FuzzTarget.new(mockMessageHandler, mockSender, spec);
|
|
120
120
|
await completeHandshake(mockMessageHandler, mockSender, fuzzTarget);
|
|
121
121
|
mockSender._sentData = []; // Clear handshake response
|
|
122
122
|
const testMessage = encode(incomingMessage);
|
|
@@ -144,7 +144,7 @@ describe("FuzzV1Target Handler", () => {
|
|
|
144
144
|
value: expectedStateRoot,
|
|
145
145
|
};
|
|
146
146
|
mockMessageHandler.importBlock.mock.mockImplementation(async () => Result.ok(expectedStateRoot));
|
|
147
|
-
const fuzzTarget = new
|
|
147
|
+
const fuzzTarget = FuzzTarget.new(mockMessageHandler, mockSender, spec);
|
|
148
148
|
await completeHandshake(mockMessageHandler, mockSender, fuzzTarget);
|
|
149
149
|
mockSender._sentData = []; // Clear handshake response
|
|
150
150
|
const testMessage = encode(incomingMessage);
|
|
@@ -169,7 +169,7 @@ describe("FuzzV1Target Handler", () => {
|
|
|
169
169
|
value: expectedError,
|
|
170
170
|
};
|
|
171
171
|
mockMessageHandler.importBlock.mock.mockImplementation(async () => Result.error(expectedError, () => "Test: ImportBlock error"));
|
|
172
|
-
const fuzzTarget = new
|
|
172
|
+
const fuzzTarget = FuzzTarget.new(mockMessageHandler, mockSender, spec);
|
|
173
173
|
await completeHandshake(mockMessageHandler, mockSender, fuzzTarget);
|
|
174
174
|
mockSender._sentData = []; // Clear handshake response
|
|
175
175
|
const testMessage = encode(incomingMessage);
|
|
@@ -205,7 +205,7 @@ describe("FuzzV1Target Handler", () => {
|
|
|
205
205
|
value: keyValues,
|
|
206
206
|
};
|
|
207
207
|
mockMessageHandler.getSerializedState.mock.mockImplementation(async () => keyValues);
|
|
208
|
-
const fuzzTarget = new
|
|
208
|
+
const fuzzTarget = FuzzTarget.new(mockMessageHandler, mockSender, spec);
|
|
209
209
|
await completeHandshake(mockMessageHandler, mockSender, fuzzTarget);
|
|
210
210
|
mockSender._sentData = []; // Clear handshake response
|
|
211
211
|
const testMessage = encode(incomingMessage);
|
|
@@ -227,7 +227,7 @@ describe("FuzzV1Target Handler", () => {
|
|
|
227
227
|
type: MessageType.StateRoot,
|
|
228
228
|
value: stateRoot,
|
|
229
229
|
};
|
|
230
|
-
const fuzzTarget = new
|
|
230
|
+
const fuzzTarget = FuzzTarget.new(mockMessageHandler, mockSender, spec);
|
|
231
231
|
await completeHandshake(mockMessageHandler, mockSender, fuzzTarget);
|
|
232
232
|
mockSender._sentData = []; // Clear handshake response
|
|
233
233
|
const testMessage = encode(incomingMessage);
|
|
@@ -248,7 +248,7 @@ describe("FuzzV1Target Handler", () => {
|
|
|
248
248
|
type: MessageType.State,
|
|
249
249
|
value: keyValues,
|
|
250
250
|
};
|
|
251
|
-
const fuzzTarget = new
|
|
251
|
+
const fuzzTarget = FuzzTarget.new(mockMessageHandler, mockSender, spec);
|
|
252
252
|
await completeHandshake(mockMessageHandler, mockSender, fuzzTarget);
|
|
253
253
|
mockSender._sentData = []; // Clear handshake response
|
|
254
254
|
const testMessage = encode(incomingMessage);
|
|
@@ -264,7 +264,7 @@ describe("FuzzV1Target Handler", () => {
|
|
|
264
264
|
type: MessageType.Error,
|
|
265
265
|
value: error,
|
|
266
266
|
};
|
|
267
|
-
const fuzzTarget = new
|
|
267
|
+
const fuzzTarget = FuzzTarget.new(mockMessageHandler, mockSender, spec);
|
|
268
268
|
await completeHandshake(mockMessageHandler, mockSender, fuzzTarget);
|
|
269
269
|
mockSender._sentData = []; // Clear handshake response
|
|
270
270
|
const testMessage = encode(incomingMessage);
|
|
@@ -277,7 +277,7 @@ describe("FuzzV1Target Handler", () => {
|
|
|
277
277
|
it("should handle decoding error gracefully", async () => {
|
|
278
278
|
const mockMessageHandler = new MockV1MessageHandler();
|
|
279
279
|
const mockSender = new MockSender();
|
|
280
|
-
const fuzzTarget = new
|
|
280
|
+
const fuzzTarget = FuzzTarget.new(mockMessageHandler, mockSender, spec);
|
|
281
281
|
// Create malformed message with valid length prefix but invalid data
|
|
282
282
|
const malformedMessage = new Uint8Array(8);
|
|
283
283
|
const dataView = new DataView(malformedMessage.buffer);
|
|
@@ -300,7 +300,7 @@ describe("FuzzV1Target Handler", () => {
|
|
|
300
300
|
return Decoder.decodeObject(messageCodec, data, spec);
|
|
301
301
|
}
|
|
302
302
|
async function completeHandshake(mockMessageHandler, mockSender, fuzzTarget) {
|
|
303
|
-
const target = fuzzTarget ?? new
|
|
303
|
+
const target = fuzzTarget ?? FuzzTarget.new(mockMessageHandler, mockSender, spec);
|
|
304
304
|
const inputPeerInfo = PeerInfo.create({
|
|
305
305
|
fuzzVersion: tryAsU8(1),
|
|
306
306
|
features: tryAsU32(Features.Ancestry),
|