@typeberry/lib 0.5.10 → 0.5.11-1fbacf3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/lib/examples/pvm-usage.test.js +2 -2
- package/package.json +1 -1
- package/packages/core/codec/descriptor.js +1 -1
- package/packages/core/codec/descriptors.js +7 -4
- package/packages/core/codec/encoder.d.ts +1 -1
- package/packages/core/codec/encoder.d.ts.map +1 -1
- package/packages/core/codec/encoder.js +3 -2
- package/packages/core/codec/index.test.js +1 -1
- package/packages/core/codec/skip.d.ts +2 -1
- package/packages/core/codec/skip.d.ts.map +1 -1
- package/packages/core/codec/skip.js +3 -0
- package/packages/core/codec/view.js +2 -2
- package/packages/core/collections/multi-map.d.ts +2 -1
- package/packages/core/collections/multi-map.d.ts.map +1 -1
- package/packages/core/collections/multi-map.js +3 -0
- package/packages/core/collections/multi-map.test.js +2 -2
- package/packages/core/concurrent/parent.js +4 -1
- package/packages/core/crypto/ed25519.d.ts +2 -5
- package/packages/core/crypto/ed25519.d.ts.map +1 -1
- package/packages/core/crypto/ed25519.js +4 -1
- package/packages/core/hash/hash.d.ts +4 -2
- package/packages/core/hash/hash.d.ts.map +1 -1
- package/packages/core/hash/hash.js +6 -1
- package/packages/core/networking/quic-network.d.ts +3 -2
- package/packages/core/networking/quic-network.d.ts.map +1 -1
- package/packages/core/networking/quic-network.js +3 -0
- package/packages/core/networking/quic-peer.d.ts +2 -1
- package/packages/core/networking/quic-peer.d.ts.map +1 -1
- package/packages/core/networking/quic-peer.js +5 -2
- package/packages/core/networking/quic-stream.d.ts +2 -1
- package/packages/core/networking/quic-stream.d.ts.map +1 -1
- package/packages/core/networking/quic-stream.js +3 -0
- package/packages/core/networking/setup.js +2 -2
- package/packages/core/pvm-host-calls/bin.js +2 -2
- package/packages/core/pvm-host-calls/ecalli-trace-logger.d.ts +5 -0
- package/packages/core/pvm-host-calls/ecalli-trace-logger.d.ts.map +1 -1
- package/packages/core/pvm-host-calls/ecalli-trace-logger.js +8 -1
- package/packages/core/pvm-host-calls/ecalli-trace-logger.test.js +1 -1
- package/packages/core/pvm-host-calls/host-call-memory.d.ts +2 -1
- package/packages/core/pvm-host-calls/host-call-memory.d.ts.map +1 -1
- package/packages/core/pvm-host-calls/host-call-memory.js +3 -0
- package/packages/core/pvm-host-calls/host-call-memory.test.js +1 -1
- package/packages/core/pvm-host-calls/host-call-registers.d.ts +5 -1
- package/packages/core/pvm-host-calls/host-call-registers.d.ts.map +1 -1
- package/packages/core/pvm-host-calls/host-call-registers.js +11 -1
- package/packages/core/pvm-host-calls/host-call-registers.test.js +2 -2
- package/packages/core/pvm-host-calls/host-calls-executor.d.ts +2 -1
- package/packages/core/pvm-host-calls/host-calls-executor.d.ts.map +1 -1
- package/packages/core/pvm-host-calls/host-calls-executor.js +5 -2
- package/packages/core/pvm-host-calls/host-calls.d.ts +4 -2
- package/packages/core/pvm-host-calls/host-calls.d.ts.map +1 -1
- package/packages/core/pvm-host-calls/host-calls.js +9 -4
- package/packages/core/pvm-host-calls/pvm-instance-manager.js +1 -1
- package/packages/core/pvm-interface/pvm.d.ts +2 -0
- package/packages/core/pvm-interface/pvm.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/args-decoder/args-decoder.js +1 -1
- package/packages/core/pvm-interpreter/args-decoder/args-decoder.test.js +3 -3
- package/packages/core/pvm-interpreter/args-decoder/args-decoding-results.js +11 -11
- package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts +2 -1
- package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.js +3 -0
- package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.test.js +2 -2
- package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts +2 -1
- package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.js +3 -0
- package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.test.js +26 -26
- package/packages/core/pvm-interpreter/basic-blocks/basic-blocks.test.js +8 -8
- package/packages/core/pvm-interpreter/bin.js +1 -1
- package/packages/core/pvm-interpreter/debugger-adapter.d.ts +2 -1
- package/packages/core/pvm-interpreter/debugger-adapter.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/debugger-adapter.js +6 -3
- package/packages/core/pvm-interpreter/gas.js +4 -1
- package/packages/core/pvm-interpreter/interpreter.d.ts +2 -1
- package/packages/core/pvm-interpreter/interpreter.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/interpreter.js +19 -16
- package/packages/core/pvm-interpreter/memory/memory-builder.js +2 -2
- package/packages/core/pvm-interpreter/memory/memory-builder.test.js +7 -7
- package/packages/core/pvm-interpreter/memory/memory.d.ts +2 -1
- package/packages/core/pvm-interpreter/memory/memory.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/memory/memory.js +4 -1
- package/packages/core/pvm-interpreter/memory/memory.test.js +31 -31
- package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts +2 -1
- package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/memory/pages/readable-page.js +3 -0
- package/packages/core/pvm-interpreter/memory/pages/readable-page.test.js +3 -3
- package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts +2 -1
- package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/memory/pages/writeable-page.js +3 -0
- package/packages/core/pvm-interpreter/memory/pages/writeable-page.test.js +4 -4
- package/packages/core/pvm-interpreter/ops/bit-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/bit-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/bit-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/bit-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/bit-rotation-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/bit-rotation-ops.test.js +5 -5
- package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/boolean-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/boolean-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/branch-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/branch-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/branch-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/branch-ops.test.js +4 -4
- package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.test.js +5 -5
- package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/host-call-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/host-call-ops.test.js +2 -2
- package/packages/core/pvm-interpreter/ops/load-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/load-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/load-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/load-ops.test.js +10 -10
- package/packages/core/pvm-interpreter/ops/math-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/math-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/math-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/math-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/memory-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/memory-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/memory-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/memory-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/move-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/move-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/move-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/move-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/no-args-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/no-args-ops.test.js +2 -2
- package/packages/core/pvm-interpreter/ops/shift-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/shift-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/shift-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/shift-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/store-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/store-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/store-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/store-ops.test.js +7 -7
- package/packages/core/pvm-interpreter/ops-dispatchers/no-args-dispatcher.test.js +1 -1
- package/packages/core/pvm-interpreter/ops-dispatchers/one-imm-dispatcher.test.js +4 -4
- package/packages/core/pvm-interpreter/ops-dispatchers/one-offset-dispatcher.test.js +2 -2
- package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-ext-imm-dispatcher.test.js +4 -4
- package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-dispatcher.test.js +7 -7
- package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-one-offset-dispatcher.test.js +10 -10
- package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-two-imms-dispatcher.test.js +5 -5
- package/packages/core/pvm-interpreter/ops-dispatchers/three-regs-dispatcher.test.js +7 -7
- package/packages/core/pvm-interpreter/ops-dispatchers/two-imms-dispatcher.test.js +5 -5
- package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-dispatcher.test.js +6 -6
- package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-imm-dispatcher.test.js +11 -11
- package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-offset-dispatcher.test.js +2 -2
- package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-two-imms-dispatcher.test.js +14 -14
- package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts +5 -2
- package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/program-decoder/jump-table.js +9 -4
- package/packages/core/pvm-interpreter/program-decoder/jump-table.test.js +6 -6
- package/packages/core/pvm-interpreter/program-decoder/mask.d.ts +2 -1
- package/packages/core/pvm-interpreter/program-decoder/mask.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/program-decoder/mask.js +3 -0
- package/packages/core/pvm-interpreter/program-decoder/mask.test.js +10 -10
- package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts +2 -1
- package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/program-decoder/program-decoder.js +6 -3
- package/packages/core/pvm-interpreter/program-decoder/program-decoder.test.js +5 -5
- package/packages/core/pvm-interpreter/program.js +3 -3
- package/packages/core/pvm-interpreter/registers.d.ts +5 -2
- package/packages/core/pvm-interpreter/registers.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/registers.js +10 -6
- package/packages/core/pvm-interpreter/registers.test.js +10 -10
- package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts +6 -3
- package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.js +11 -2
- package/packages/core/pvm-interpreter-ananas/index.d.ts +6 -3
- package/packages/core/pvm-interpreter-ananas/index.d.ts.map +1 -1
- package/packages/core/pvm-interpreter-ananas/index.js +12 -3
- package/packages/core/trie/nodes.d.ts +7 -2
- package/packages/core/trie/nodes.d.ts.map +1 -1
- package/packages/core/trie/nodes.js +20 -11
- package/packages/core/trie/nodesDb.d.ts +3 -1
- package/packages/core/trie/nodesDb.d.ts.map +1 -1
- package/packages/core/trie/nodesDb.js +6 -0
- package/packages/core/trie/trie.js +2 -2
- package/packages/extensions/ipc/index.js +5 -2
- package/packages/extensions/ipc/jamnp/handler.d.ts +4 -2
- package/packages/extensions/ipc/jamnp/handler.d.ts.map +1 -1
- package/packages/extensions/ipc/jamnp/handler.js +9 -3
- package/packages/extensions/ipc/jamnp/server.js +3 -3
- package/packages/extensions/ipc/server.d.ts +2 -1
- package/packages/extensions/ipc/server.d.ts.map +1 -1
- package/packages/extensions/ipc/server.js +4 -1
- package/packages/jam/block/header.js +1 -1
- package/packages/jam/block/work-package.d.ts +7 -7
- package/packages/jam/block/work-package.d.ts.map +1 -1
- package/packages/jam/block/work-package.js +12 -12
- package/packages/jam/config/chain-spec.d.ts +2 -1
- package/packages/jam/config/chain-spec.d.ts.map +1 -1
- package/packages/jam/config/chain-spec.js +5 -2
- package/packages/jam/config/network.d.ts +2 -7
- package/packages/jam/config/network.d.ts.map +1 -1
- package/packages/jam/config/network.js +3 -0
- package/packages/jam/config-node/jip-chain-spec.js +1 -1
- package/packages/jam/database/blocks.test.js +1 -1
- package/packages/jam/database/states.d.ts +2 -1
- package/packages/jam/database/states.d.ts.map +1 -1
- package/packages/jam/database/states.js +3 -0
- package/packages/jam/database/states.test.js +1 -1
- package/packages/jam/database-lmdb/blocks.d.ts +2 -1
- package/packages/jam/database-lmdb/blocks.d.ts.map +1 -1
- package/packages/jam/database-lmdb/blocks.js +3 -0
- package/packages/jam/database-lmdb/root.d.ts +2 -1
- package/packages/jam/database-lmdb/root.d.ts.map +1 -1
- package/packages/jam/database-lmdb/root.js +3 -0
- package/packages/jam/database-lmdb/states.d.ts +2 -1
- package/packages/jam/database-lmdb/states.d.ts.map +1 -1
- package/packages/jam/database-lmdb/states.js +3 -0
- package/packages/jam/database-lmdb/states.test.js +9 -9
- package/packages/jam/executor/index.d.ts +1 -1
- package/packages/jam/executor/index.d.ts.map +1 -1
- package/packages/jam/executor/index.js +1 -1
- package/packages/jam/executor/pvm-executor.d.ts +9 -2
- package/packages/jam/executor/pvm-executor.d.ts.map +1 -1
- package/packages/jam/executor/pvm-executor.js +36 -21
- package/packages/jam/fuzz-proto/v1/handler.d.ts +2 -1
- package/packages/jam/fuzz-proto/v1/handler.d.ts.map +1 -1
- package/packages/jam/fuzz-proto/v1/handler.js +3 -0
- package/packages/jam/fuzz-proto/v1/handler.test.js +10 -10
- package/packages/jam/in-core/externalities/index.d.ts +4 -0
- package/packages/jam/in-core/externalities/index.d.ts.map +1 -0
- package/packages/jam/in-core/externalities/index.js +3 -0
- package/packages/jam/in-core/externalities/is-authorized-fetch.d.ts +20 -0
- package/packages/jam/in-core/externalities/is-authorized-fetch.d.ts.map +1 -0
- package/packages/jam/in-core/externalities/is-authorized-fetch.js +41 -0
- package/packages/jam/in-core/externalities/is-authorized-fetch.test.d.ts +2 -0
- package/packages/jam/in-core/externalities/is-authorized-fetch.test.d.ts.map +1 -0
- package/packages/jam/in-core/externalities/is-authorized-fetch.test.js +101 -0
- package/packages/jam/in-core/externalities/refine-fetch.d.ts +51 -0
- package/packages/jam/in-core/externalities/refine-fetch.d.ts.map +1 -0
- package/packages/jam/in-core/externalities/refine-fetch.js +80 -0
- package/packages/jam/in-core/externalities/refine-fetch.test.d.ts +2 -0
- package/packages/jam/in-core/externalities/refine-fetch.test.d.ts.map +1 -0
- package/packages/jam/in-core/externalities/refine-fetch.test.js +219 -0
- package/packages/jam/in-core/externalities/refine.d.ts +18 -8
- package/packages/jam/in-core/externalities/refine.d.ts.map +1 -1
- package/packages/jam/in-core/externalities/refine.js +86 -7
- package/packages/jam/in-core/externalities/refine.test.js +168 -3
- package/packages/jam/in-core/in-core.d.ts +9 -23
- package/packages/jam/in-core/in-core.d.ts.map +1 -1
- package/packages/jam/in-core/in-core.js +22 -187
- package/packages/jam/in-core/in-core.test.js +52 -20
- package/packages/jam/in-core/is-authorized.d.ts +34 -0
- package/packages/jam/in-core/is-authorized.d.ts.map +1 -0
- package/packages/jam/in-core/is-authorized.js +73 -0
- package/packages/jam/in-core/is-authorized.test.d.ts +2 -0
- package/packages/jam/in-core/is-authorized.test.d.ts.map +1 -0
- package/packages/jam/in-core/is-authorized.test.js +167 -0
- package/packages/jam/in-core/refine.d.ts +31 -0
- package/packages/jam/in-core/refine.d.ts.map +1 -0
- package/packages/jam/in-core/refine.js +182 -0
- package/packages/jam/in-core/refine.test.d.ts +2 -0
- package/packages/jam/in-core/refine.test.d.ts.map +1 -0
- package/packages/jam/in-core/refine.test.js +6 -0
- package/packages/jam/jam-host-calls/accumulate/assign.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/assign.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/assign.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/assign.test.js +8 -9
- package/packages/jam/jam-host-calls/accumulate/bless.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/bless.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/bless.js +12 -9
- package/packages/jam/jam-host-calls/accumulate/bless.test.js +11 -12
- package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/checkpoint.js +4 -1
- package/packages/jam/jam-host-calls/accumulate/checkpoint.test.js +2 -3
- package/packages/jam/jam-host-calls/accumulate/designate.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/designate.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/designate.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/designate.test.js +5 -6
- package/packages/jam/jam-host-calls/accumulate/eject.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/eject.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/eject.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/eject.test.js +8 -9
- package/packages/jam/jam-host-calls/accumulate/forget.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/forget.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/forget.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/forget.test.js +5 -6
- package/packages/jam/jam-host-calls/accumulate/new.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/new.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/new.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/new.test.js +9 -10
- package/packages/jam/jam-host-calls/accumulate/provide.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/provide.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/provide.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/provide.test.js +8 -9
- package/packages/jam/jam-host-calls/accumulate/query.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/query.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/query.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/query.test.js +8 -9
- package/packages/jam/jam-host-calls/accumulate/solicit.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/solicit.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/solicit.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/solicit.test.js +7 -8
- package/packages/jam/jam-host-calls/accumulate/transfer.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/transfer.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/transfer.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/transfer.test.js +9 -10
- package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/upgrade.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/upgrade.test.js +4 -5
- package/packages/jam/jam-host-calls/accumulate/yield.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/yield.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/yield.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/yield.test.js +4 -5
- package/packages/jam/jam-host-calls/externalities/partial-state.d.ts +1 -1
- package/packages/jam/jam-host-calls/externalities/refine-externalities.d.ts +1 -1
- package/packages/jam/jam-host-calls/externalities/refine-externalities.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/externalities/refine-externalities.test.js +9 -9
- package/packages/jam/jam-host-calls/externalities/state-update.d.ts +2 -3
- package/packages/jam/jam-host-calls/externalities/state-update.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/externalities/state-update.js +5 -2
- package/packages/jam/jam-host-calls/externalities/test-accounts.js +2 -2
- package/packages/jam/jam-host-calls/general/fetch.d.ts +166 -104
- package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/fetch.js +120 -23
- package/packages/jam/jam-host-calls/general/fetch.test.js +125 -92
- package/packages/jam/jam-host-calls/general/gas.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/gas.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/gas.js +3 -0
- package/packages/jam/jam-host-calls/general/gas.test.js +4 -5
- package/packages/jam/jam-host-calls/general/info.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/info.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/info.js +3 -0
- package/packages/jam/jam-host-calls/general/info.test.js +6 -7
- package/packages/jam/jam-host-calls/general/log.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/log.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/log.js +3 -0
- package/packages/jam/jam-host-calls/general/lookup.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/lookup.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/lookup.js +3 -0
- package/packages/jam/jam-host-calls/general/lookup.test.js +8 -9
- package/packages/jam/jam-host-calls/general/read.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/read.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/read.js +3 -0
- package/packages/jam/jam-host-calls/general/read.test.js +11 -12
- package/packages/jam/jam-host-calls/general/write.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/write.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/write.js +3 -0
- package/packages/jam/jam-host-calls/general/write.test.js +10 -11
- package/packages/jam/jam-host-calls/refine/export.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/export.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/export.js +3 -0
- package/packages/jam/jam-host-calls/refine/export.test.js +6 -7
- package/packages/jam/jam-host-calls/refine/expunge.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/expunge.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/expunge.js +3 -0
- package/packages/jam/jam-host-calls/refine/expunge.test.js +3 -4
- package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/historical-lookup.js +3 -0
- package/packages/jam/jam-host-calls/refine/historical-lookup.test.js +11 -12
- package/packages/jam/jam-host-calls/refine/invoke.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/invoke.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/invoke.js +4 -1
- package/packages/jam/jam-host-calls/refine/invoke.test.js +10 -11
- package/packages/jam/jam-host-calls/refine/machine.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/machine.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/machine.js +3 -0
- package/packages/jam/jam-host-calls/refine/machine.test.js +6 -7
- package/packages/jam/jam-host-calls/refine/pages.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/pages.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/pages.js +3 -0
- package/packages/jam/jam-host-calls/refine/pages.test.js +3 -4
- package/packages/jam/jam-host-calls/refine/peek.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/peek.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/peek.js +3 -0
- package/packages/jam/jam-host-calls/refine/peek.test.js +3 -4
- package/packages/jam/jam-host-calls/refine/poke.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/poke.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/poke.js +3 -0
- package/packages/jam/jam-host-calls/refine/poke.test.js +3 -4
- package/packages/jam/jamnp-s/network.js +1 -1
- package/packages/jam/jamnp-s/peers.d.ts +2 -1
- package/packages/jam/jamnp-s/peers.d.ts.map +1 -1
- package/packages/jam/jamnp-s/peers.js +3 -0
- package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts +4 -2
- package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-128-block-request.js +6 -0
- package/packages/jam/jamnp-s/protocol/ce-128-block-request.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts +4 -2
- package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-129-state-request.js +6 -0
- package/packages/jam/jamnp-s/protocol/ce-129-state-request.test.js +4 -4
- package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +4 -2
- package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.js +6 -0
- package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +6 -3
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.js +7 -0
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts +5 -2
- package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.js +7 -0
- package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +4 -2
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.js +6 -0
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +2 -1
- package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/up-0-block-announcement.js +3 -0
- package/packages/jam/jamnp-s/stream-manager.d.ts +2 -1
- package/packages/jam/jamnp-s/stream-manager.d.ts.map +1 -1
- package/packages/jam/jamnp-s/stream-manager.js +4 -1
- package/packages/jam/jamnp-s/tasks/sync.js +4 -4
- package/packages/jam/jamnp-s/tasks/sync.test.js +4 -4
- package/packages/jam/jamnp-s/tasks/ticket-distribution.js +2 -2
- package/packages/jam/jamnp-s/tasks/ticket-distribution.test.js +1 -1
- package/packages/jam/node/common.d.ts.map +1 -1
- package/packages/jam/node/common.js +3 -3
- package/packages/jam/rpc-client/index.d.ts +4 -2
- package/packages/jam/rpc-client/index.d.ts.map +1 -1
- package/packages/jam/rpc-client/index.js +7 -1
- package/packages/jam/state/in-memory-state-view.d.ts +2 -1
- package/packages/jam/state/in-memory-state-view.d.ts.map +1 -1
- package/packages/jam/state/in-memory-state-view.js +3 -0
- package/packages/jam/state/in-memory-state.d.ts +16 -21
- package/packages/jam/state/in-memory-state.d.ts.map +1 -1
- package/packages/jam/state/in-memory-state.js +10 -6
- package/packages/jam/state/in-memory-state.test.js +2 -2
- package/packages/jam/state/service.d.ts +2 -6
- package/packages/jam/state/service.d.ts.map +1 -1
- package/packages/jam/state/service.js +3 -0
- package/packages/jam/state/test.utils.js +3 -3
- package/packages/jam/state-json/accounts.js +5 -5
- package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +3 -34
- package/packages/jam/state-merkleization/in-memory-state-codec.d.ts.map +1 -1
- package/packages/jam/state-merkleization/in-memory-state-codec.js +1 -1
- package/packages/jam/state-merkleization/serialized-state-view.d.ts +8 -3
- package/packages/jam/state-merkleization/serialized-state-view.d.ts.map +1 -1
- package/packages/jam/state-merkleization/serialized-state-view.js +6 -3
- package/packages/jam/state-merkleization/serialized-state.d.ts +2 -3
- package/packages/jam/state-merkleization/serialized-state.d.ts.map +1 -1
- package/packages/jam/state-merkleization/serialized-state.js +10 -2
- package/packages/jam/state-merkleization/serialized-state.test.js +1 -1
- package/packages/jam/transition/accumulate/accumulate.d.ts.map +1 -1
- package/packages/jam/transition/accumulate/accumulate.js +20 -8
- package/packages/jam/transition/accumulate/accumulate.test.js +1 -1
- package/packages/jam/transition/accumulate/accumulation-result-merge-utils.js +48 -39
- package/packages/jam/transition/block-verifier.d.ts +2 -1
- package/packages/jam/transition/block-verifier.d.ts.map +1 -1
- package/packages/jam/transition/block-verifier.js +3 -0
- package/packages/jam/transition/block-verifier.test.js +8 -8
- package/packages/jam/transition/chain-stf.d.ts +12 -4
- package/packages/jam/transition/chain-stf.d.ts.map +1 -1
- package/packages/jam/transition/chain-stf.js +7 -3
- package/packages/jam/transition/externalities/accumulate-externalities.d.ts +22 -8
- package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
- package/packages/jam/transition/externalities/accumulate-externalities.js +49 -29
- package/packages/jam/transition/externalities/accumulate-externalities.test.js +661 -101
- package/packages/jam/transition/externalities/accumulate-fetch-externalities.d.ts +19 -0
- package/packages/jam/transition/externalities/accumulate-fetch-externalities.d.ts.map +1 -0
- package/packages/jam/transition/externalities/accumulate-fetch-externalities.js +45 -0
- package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.d.ts +2 -0
- package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.d.ts.map +1 -0
- package/packages/jam/transition/externalities/accumulate-fetch-externalities.test.js +192 -0
- package/packages/jam/transition/externalities/fetch-externalities.d.ts +54 -37
- package/packages/jam/transition/externalities/fetch-externalities.d.ts.map +1 -1
- package/packages/jam/transition/externalities/fetch-externalities.js +45 -89
- package/packages/jam/transition/externalities/index.d.ts +1 -0
- package/packages/jam/transition/externalities/index.d.ts.map +1 -1
- package/packages/jam/transition/externalities/index.js +1 -0
- package/packages/jam/transition/hasher.d.ts +2 -1
- package/packages/jam/transition/hasher.d.ts.map +1 -1
- package/packages/jam/transition/hasher.js +5 -2
- package/packages/jam/transition/hasher.test.js +1 -1
- package/packages/jam/transition/preimages.test.js +4 -4
- package/packages/jam/transition/reports/test.utils.js +1 -1
- package/packages/workers/api-node/config.js +4 -4
- package/packages/workers/api-node/port.d.ts +2 -1
- package/packages/workers/api-node/port.d.ts.map +1 -1
- package/packages/workers/api-node/port.js +4 -1
- package/packages/workers/api-node/port.test.js +2 -2
- package/packages/workers/api-node/protocol.js +2 -2
- package/packages/workers/block-authorship/generator.d.ts +13 -2
- package/packages/workers/block-authorship/generator.d.ts.map +1 -1
- package/packages/workers/block-authorship/generator.js +13 -9
- package/packages/workers/block-authorship/generator.test.js +16 -2
- package/packages/workers/block-authorship/main.d.ts.map +1 -1
- package/packages/workers/block-authorship/main.js +8 -1
- package/packages/workers/importer/finality.test.js +1 -1
- package/packages/workers/importer/importer.d.ts +23 -6
- package/packages/workers/importer/importer.d.ts.map +1 -1
- package/packages/workers/importer/importer.js +34 -19
- package/packages/workers/importer/main.d.ts.map +1 -1
- package/packages/workers/importer/main.js +13 -5
- package/packages/jam/transition/externalities/fetch-externalities.test.d.ts +0 -2
- package/packages/jam/transition/externalities/fetch-externalities.test.d.ts.map +0 -1
- package/packages/jam/transition/externalities/fetch-externalities.test.js +0 -254
|
@@ -66,13 +66,11 @@ export class TrieNode {
|
|
|
66
66
|
}
|
|
67
67
|
/** View this node as a branch node */
|
|
68
68
|
asBranchNode() {
|
|
69
|
-
|
|
70
|
-
return new BranchNode(this);
|
|
69
|
+
return BranchNode.viewOf(this);
|
|
71
70
|
}
|
|
72
71
|
/** View this node as a leaf node */
|
|
73
72
|
asLeafNode() {
|
|
74
|
-
|
|
75
|
-
return new LeafNode(this);
|
|
73
|
+
return LeafNode.viewOf(this);
|
|
76
74
|
}
|
|
77
75
|
toString() {
|
|
78
76
|
return BytesBlob.blobFrom(this.raw).toString();
|
|
@@ -92,10 +90,7 @@ export class TrieNode {
|
|
|
92
90
|
*/
|
|
93
91
|
export class BranchNode {
|
|
94
92
|
node;
|
|
95
|
-
|
|
96
|
-
constructor(node) {
|
|
97
|
-
this.node = node;
|
|
98
|
-
}
|
|
93
|
+
/** Build a branch node from its left and right sub-node hashes. */
|
|
99
94
|
static fromSubNodes(left, right) {
|
|
100
95
|
const node = new TrieNode();
|
|
101
96
|
node.raw.set(left.raw, 0);
|
|
@@ -104,6 +99,15 @@ export class BranchNode {
|
|
|
104
99
|
node.raw[0] &= FIRST_BIT_SET_NEG;
|
|
105
100
|
return new BranchNode(node);
|
|
106
101
|
}
|
|
102
|
+
/** View an existing raw trie node as a branch node (validates node type). */
|
|
103
|
+
static viewOf(node) {
|
|
104
|
+
check `${node.getNodeType() === NodeType.Branch} not a branch!`;
|
|
105
|
+
return new BranchNode(node);
|
|
106
|
+
}
|
|
107
|
+
// Underlying raw node.
|
|
108
|
+
constructor(node) {
|
|
109
|
+
this.node = node;
|
|
110
|
+
}
|
|
107
111
|
/** Get the hash of the left sub-trie. */
|
|
108
112
|
getLeft() {
|
|
109
113
|
return Bytes.fromBlob(this.node.raw.subarray(0, HASH_SIZE), HASH_SIZE).asOpaque();
|
|
@@ -134,9 +138,6 @@ export class BranchNode {
|
|
|
134
138
|
export class LeafNode {
|
|
135
139
|
// Underlying raw node.
|
|
136
140
|
node;
|
|
137
|
-
constructor(node) {
|
|
138
|
-
this.node = node;
|
|
139
|
-
}
|
|
140
141
|
static fromValue(key, value, valueHash) {
|
|
141
142
|
const node = new TrieNode();
|
|
142
143
|
// The value will fit in the leaf itself.
|
|
@@ -156,6 +157,14 @@ export class LeafNode {
|
|
|
156
157
|
}
|
|
157
158
|
return new LeafNode(node);
|
|
158
159
|
}
|
|
160
|
+
/** View an existing raw trie node as a leaf node (validates node type). */
|
|
161
|
+
static viewOf(node) {
|
|
162
|
+
check `${node.getNodeType() !== NodeType.Branch} not a leaf!`;
|
|
163
|
+
return new LeafNode(node);
|
|
164
|
+
}
|
|
165
|
+
constructor(node) {
|
|
166
|
+
this.node = node;
|
|
167
|
+
}
|
|
159
168
|
/** Get the key (truncated to 31 bytes). */
|
|
160
169
|
getKey() {
|
|
161
170
|
return Bytes.fromBlob(this.node.raw.subarray(1, TRUNCATED_KEY_BYTES + 1), TRUNCATED_KEY_BYTES).asOpaque();
|
|
@@ -8,7 +8,8 @@ export type TrieHasher = {
|
|
|
8
8
|
export declare class NodesDb {
|
|
9
9
|
readonly hasher: TrieHasher;
|
|
10
10
|
protected readonly nodes: HashDictionary<TrieNodeHash, TrieNode>;
|
|
11
|
-
|
|
11
|
+
static new(hasher: TrieHasher): NodesDb;
|
|
12
|
+
protected constructor(hasher: TrieHasher);
|
|
12
13
|
get(hash: TrieNodeHash): TrieNode | null;
|
|
13
14
|
hashNode(n: TrieNode): TrieNodeHash;
|
|
14
15
|
leaves(): Generator<LeafNode>;
|
|
@@ -25,6 +26,7 @@ export declare class NodesDb {
|
|
|
25
26
|
* A version of `NodesDb` augmented with mutating methods.
|
|
26
27
|
*/
|
|
27
28
|
export declare class WriteableNodesDb extends NodesDb {
|
|
29
|
+
static new(hasher: TrieHasher): WriteableNodesDb;
|
|
28
30
|
remove(hash: TrieNodeHash): void;
|
|
29
31
|
insert(node: TrieNode, hash?: TrieNodeHash): TrieNodeHash;
|
|
30
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nodesDb.d.ts","sourceRoot":"","sources":["../../../../../packages/core/trie/nodesDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,KAAK,QAAQ,EAAY,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEvF,sCAAsC;AACtC,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;CAC3D,CAAC;AAEF,mDAAmD;AACnD,qBAAa,OAAO;
|
|
1
|
+
{"version":3,"file":"nodesDb.d.ts","sourceRoot":"","sources":["../../../../../packages/core/trie/nodesDb.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAE,KAAK,QAAQ,EAAY,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,YAAY,CAAC;AAEvF,sCAAsC;AACtC,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,CAAC,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,EAAE,GAAG,YAAY,CAAC;CAC3D,CAAC;AAEF,mDAAmD;AACnD,qBAAa,OAAO;aAOoB,MAAM,EAAE,UAAU;IANxD,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,cAAc,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAwB;IAExF,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU;IAI7B,SAAS,aAA6B,MAAM,EAAE,UAAU;IAExD,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,GAAG,IAAI;IAMxC,QAAQ,CAAC,CAAC,EAAE,QAAQ,GAAG,YAAY;IAIlC,MAAM,IAAI,SAAS,CAAC,QAAQ,CAAC;IAU9B;;;;;;OAMG;IACH,SAAS,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,CAAC,GAAG,CAAC;CAS1F;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,OAAO;IAC3C,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU;IAI7B,MAAM,CAAC,IAAI,EAAE,YAAY;IAMzB,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,YAAY;CAO1D"}
|
|
@@ -5,6 +5,9 @@ import { NodeType } from "./nodes.js";
|
|
|
5
5
|
export class NodesDb {
|
|
6
6
|
hasher;
|
|
7
7
|
nodes = HashDictionary.new();
|
|
8
|
+
static new(hasher) {
|
|
9
|
+
return new NodesDb(hasher);
|
|
10
|
+
}
|
|
8
11
|
constructor(hasher) {
|
|
9
12
|
this.hasher = hasher;
|
|
10
13
|
}
|
|
@@ -46,6 +49,9 @@ export class NodesDb {
|
|
|
46
49
|
* A version of `NodesDb` augmented with mutating methods.
|
|
47
50
|
*/
|
|
48
51
|
export class WriteableNodesDb extends NodesDb {
|
|
52
|
+
static new(hasher) {
|
|
53
|
+
return new WriteableNodesDb(hasher);
|
|
54
|
+
}
|
|
49
55
|
remove(hash) {
|
|
50
56
|
return NodesDb.withHashCompat(hash, (key) => {
|
|
51
57
|
this.nodes.delete(key);
|
|
@@ -11,7 +11,7 @@ export class InMemoryTrie {
|
|
|
11
11
|
root;
|
|
12
12
|
/** Create an empty in-memory trie. */
|
|
13
13
|
static empty(hasher) {
|
|
14
|
-
return new InMemoryTrie(new
|
|
14
|
+
return new InMemoryTrie(WriteableNodesDb.new(hasher));
|
|
15
15
|
}
|
|
16
16
|
/** Given a collection of leaves, compute the state root. */
|
|
17
17
|
static computeStateRoot(hasher, leaves) {
|
|
@@ -99,7 +99,7 @@ export class InMemoryTrie {
|
|
|
99
99
|
static fromLeaves(hasher, leaves) {
|
|
100
100
|
// TODO [ToDr] [opti] Pair up the leaves and build upper levels.
|
|
101
101
|
let root = null;
|
|
102
|
-
const nodes = new
|
|
102
|
+
const nodes = WriteableNodesDb.new(hasher);
|
|
103
103
|
for (const leaf of leaves) {
|
|
104
104
|
root = trieInsert(root, nodes, leaf);
|
|
105
105
|
}
|
|
@@ -20,7 +20,7 @@ export var FuzzVersion;
|
|
|
20
20
|
export function startFuzzTarget(version, socket, api) {
|
|
21
21
|
const socketName = socket ?? "jam_target.sock";
|
|
22
22
|
if (version === FuzzVersion.V1) {
|
|
23
|
-
return startIpcServer(socketName, (sender) =>
|
|
23
|
+
return startIpcServer(socketName, (sender) => v1.FuzzTarget.new(FuzzHandler.new(api), sender, api.chainSpec));
|
|
24
24
|
}
|
|
25
25
|
assertNever(version);
|
|
26
26
|
}
|
|
@@ -43,13 +43,16 @@ function startJamnpExtension(api) {
|
|
|
43
43
|
};
|
|
44
44
|
const getKeyValuePairs = (_hash, startKey) => {
|
|
45
45
|
const value = BytesBlob.blobFromNumbers([255, 255, 0, 0]);
|
|
46
|
-
return [
|
|
46
|
+
return [ce129.KeyValuePair.new(startKey, value)];
|
|
47
47
|
};
|
|
48
48
|
return startJamnpIpcServer(api.nodeName, api.chainSpec, announcements, getHandshake, getBoundaryNodes, getKeyValuePairs);
|
|
49
49
|
}
|
|
50
50
|
const logger = Logger.new(import.meta.filename, "ext-ipc");
|
|
51
51
|
class FuzzHandler {
|
|
52
52
|
api;
|
|
53
|
+
static new(api) {
|
|
54
|
+
return new FuzzHandler(api);
|
|
55
|
+
}
|
|
53
56
|
constructor(api) {
|
|
54
57
|
this.api = api;
|
|
55
58
|
}
|
|
@@ -14,7 +14,8 @@ export declare class JamnpIpcHandler implements IpcHandler {
|
|
|
14
14
|
private readonly streamHandlers;
|
|
15
15
|
/** termination promise + resolvers */
|
|
16
16
|
private readonly onEnd;
|
|
17
|
-
|
|
17
|
+
static new(sender: IpcSender): JamnpIpcHandler;
|
|
18
|
+
private constructor();
|
|
18
19
|
/** Register stream handlers. */
|
|
19
20
|
registerStreamHandlers(...handlers: StreamHandler[]): void;
|
|
20
21
|
/** Re-use an existing stream of given kind if present. */
|
|
@@ -34,7 +35,8 @@ declare class EnvelopeSender implements StreamMessageSender {
|
|
|
34
35
|
private readonly ipcStreamId;
|
|
35
36
|
private readonly sender;
|
|
36
37
|
readonly streamId: StreamId;
|
|
37
|
-
|
|
38
|
+
static new(ipcStreamId: IpcStreamId, sender: IpcSender): EnvelopeSender;
|
|
39
|
+
private constructor();
|
|
38
40
|
open(newStream: NewStream): void;
|
|
39
41
|
bufferAndSend(msg: BytesBlob): boolean;
|
|
40
42
|
close(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../../packages/extensions/ipc/jamnp/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,QAAQ,EAEb,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAEzB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,KAAK,WAAW,EAAE,SAAS,EAAsC,MAAM,aAAa,CAAC;AAS9F,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;AAWhF,qBAAa,eAAgB,YAAW,UAAU;
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../../../packages/extensions/ipc/jamnp/handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,QAAQ,EAEb,KAAK,YAAY,EACjB,KAAK,mBAAmB,EAEzB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,KAAK,WAAW,EAAE,SAAS,EAAsC,MAAM,aAAa,CAAC;AAS9F,MAAM,MAAM,eAAe,GAAG,CAAC,GAAG,EAAE,KAAK,GAAG,IAAI,EAAE,QAAQ,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;AAWhF,qBAAa,eAAgB,YAAW,UAAU;IAc5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAb3C,gCAAgC;IAChC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA8C;IACtE,yDAAyD;IACzD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAwC;IACvE,0DAA0D;IAC1D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,sCAAsC;IACtC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAE9B,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS;IAI5B,OAAO;IAeP,gCAAgC;IAChC,sBAAsB,CAAC,GAAG,QAAQ,EAAE,aAAa,EAAE;IAMnD,0DAA0D;IAC1D,gBAAgB,CAAC,QAAQ,SAAS,aAAa,EAC7C,UAAU,EAAE,YAAY,CAAC,QAAQ,CAAC,EAClC,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,KAAK,IAAI,GACxD,IAAI;IAWP,uCAAuC;IACvC,aAAa,CAAC,QAAQ,SAAS,aAAa,EAC1C,IAAI,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC5B,IAAI,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,KAAK,IAAI,GACxD,IAAI;IA2BP,8CAA8C;IACxC,eAAe,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAmErD,yDAAyD;IACzD,OAAO,CAAC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,CAAC,EAAE,KAAK,CAAA;KAAE;IAkBpC,qEAAqE;IACrE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAI5B;AAED,cAAM,cAAe,YAAW,mBAAmB;IAQ/C,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IARzB,SAAgB,QAAQ,EAAE,QAAQ,CAAC;IAEnC,MAAM,CAAC,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS;IAItD,OAAO;IAOP,IAAI,CAAC,SAAS,EAAE,SAAS;IAUzB,aAAa,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO;IAWtC,KAAK,IAAI,IAAI;CAYd"}
|
|
@@ -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 {
|
|
@@ -21,19 +21,19 @@ export declare const MAX_NUMBER_OF_WORK_ITEMS = 16;
|
|
|
21
21
|
/**
|
|
22
22
|
* A piece of work done within a core.
|
|
23
23
|
*
|
|
24
|
-
* `P = (j ∈ Y, h ∈ NS, u ∈ H,
|
|
24
|
+
* `P = (j ∈ Y, h ∈ NS, u ∈ H, f ∈ Y, x ∈ X, w ∈ ⟦I⟧1∶I)
|
|
25
25
|
*
|
|
26
26
|
* https://graypaper.fluffylabs.dev/#/579bd12/197000197200
|
|
27
27
|
*/
|
|
28
28
|
export declare class WorkPackage extends WithDebug {
|
|
29
29
|
/** `j`: simple blob acting as an authorization token */
|
|
30
|
-
readonly
|
|
30
|
+
readonly authToken: BytesBlob;
|
|
31
31
|
/** `h`: index of the service that hosts the authorization code */
|
|
32
32
|
readonly authCodeHost: ServiceId;
|
|
33
33
|
/** `u`: authorization code hash */
|
|
34
34
|
readonly authCodeHash: CodeHash;
|
|
35
|
-
/** `
|
|
36
|
-
readonly
|
|
35
|
+
/** `f`: authorization configuration blob */
|
|
36
|
+
readonly authConfiguration: BytesBlob;
|
|
37
37
|
/** `x`: context in which the refine function should run */
|
|
38
38
|
readonly context: RefineContext;
|
|
39
39
|
/**
|
|
@@ -54,8 +54,8 @@ export declare class WorkPackage extends WithDebug {
|
|
|
54
54
|
lookupAnchorSlot: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"TimeSlot[u32]">, import("@typeberry/bytes").Bytes<4>>;
|
|
55
55
|
prerequisites: import("@typeberry/codec").Descriptor<(import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"WorkPackageHash">)[], import("@typeberry/codec").SequenceView<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"WorkPackageHash">, import("@typeberry/bytes").Bytes<32>>>;
|
|
56
56
|
}>>;
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
authToken: import("@typeberry/codec").Descriptor<BytesBlob, BytesBlob>;
|
|
58
|
+
authConfiguration: import("@typeberry/codec").Descriptor<BytesBlob, BytesBlob>;
|
|
59
59
|
items: import("@typeberry/codec").Descriptor<FixedSizeArray<WorkItem, U8>, import("@typeberry/codec").SequenceView<WorkItem, import("@typeberry/codec").ViewOf<WorkItem, {
|
|
60
60
|
service: import("@typeberry/codec").Descriptor<number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"ServiceId[u32]">, import("@typeberry/bytes").Bytes<4>>;
|
|
61
61
|
codeHash: import("@typeberry/codec").Descriptor<import("@typeberry/bytes").Bytes<32> & import("@typeberry/utils").WithOpaque<"CodeHash">, import("@typeberry/bytes").Bytes<32>>;
|
|
@@ -73,7 +73,7 @@ export declare class WorkPackage extends WithDebug {
|
|
|
73
73
|
}>>>;
|
|
74
74
|
}>>>;
|
|
75
75
|
}>>;
|
|
76
|
-
static create({
|
|
76
|
+
static create({ authToken, authCodeHost, authCodeHash, authConfiguration, context, items, }: CodecRecord<WorkPackage>): WorkPackage;
|
|
77
77
|
private constructor();
|
|
78
78
|
}
|
|
79
79
|
export type WorkPackageView = DescribedBy<typeof WorkPackage.Codec.View>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"work-package.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/block/work-package.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAAS,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAW,KAAK,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,6EAA6E;AAC7E,0FAA0F;AAC1F,MAAM,MAAM,cAAc,GAAG,EAAE,CAAC;AAEhC,kGAAkG;AAClG,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAE/D;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,cAAc,CAEnE;AAED,kFAAkF;AAClF,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,uFAAuF;AACvF,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C;;;;;;GAMG;AACH,qBAAa,WAAY,SAAQ,SAAS;IAyBtC,wDAAwD;aACxC,
|
|
1
|
+
{"version":3,"file":"work-package.d.ts","sourceRoot":"","sources":["../../../../../packages/jam/block/work-package.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAAS,KAAK,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,OAAO,EAAW,KAAK,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C,6EAA6E;AAC7E,0FAA0F;AAC1F,MAAM,MAAM,cAAc,GAAG,EAAE,CAAC;AAEhC,kGAAkG;AAClG,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAE/D;AAED,8DAA8D;AAC9D,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,IAAI,cAAc,CAEnE;AAED,kFAAkF;AAClF,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAC1C,uFAAuF;AACvF,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C;;;;;;GAMG;AACH,qBAAa,WAAY,SAAQ,SAAS;IAyBtC,wDAAwD;aACxC,SAAS,EAAE,SAAS;IACpC,kEAAkE;aAClD,YAAY,EAAE,SAAS;IACvC,mCAAmC;aACnB,YAAY,EAAE,QAAQ;IACtC,4CAA4C;aAC5B,iBAAiB,EAAE,SAAS;IAC5C,2DAA2D;aAC3C,OAAO,EAAE,aAAa;IACtC;;;;;OAKG;aACa,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE,cAAc,CAAC;IAxCjE,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAUT;IAEH,MAAM,CAAC,MAAM,CAAC,EACZ,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,iBAAiB,EACjB,OAAO,EACP,KAAK,GACN,EAAE,WAAW,CAAC,WAAW,CAAC;IAI3B,OAAO;CAqBR;AAED,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,OAAO,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC"}
|
|
@@ -20,37 +20,37 @@ export const MAX_NUMBER_OF_WORK_ITEMS = 16;
|
|
|
20
20
|
/**
|
|
21
21
|
* A piece of work done within a core.
|
|
22
22
|
*
|
|
23
|
-
* `P = (j ∈ Y, h ∈ NS, u ∈ H,
|
|
23
|
+
* `P = (j ∈ Y, h ∈ NS, u ∈ H, f ∈ Y, x ∈ X, w ∈ ⟦I⟧1∶I)
|
|
24
24
|
*
|
|
25
25
|
* https://graypaper.fluffylabs.dev/#/579bd12/197000197200
|
|
26
26
|
*/
|
|
27
27
|
export class WorkPackage extends WithDebug {
|
|
28
|
-
|
|
28
|
+
authToken;
|
|
29
29
|
authCodeHost;
|
|
30
30
|
authCodeHash;
|
|
31
|
-
|
|
31
|
+
authConfiguration;
|
|
32
32
|
context;
|
|
33
33
|
items;
|
|
34
34
|
static Codec = codec.Class(WorkPackage, {
|
|
35
35
|
authCodeHost: codec.u32.asOpaque(),
|
|
36
36
|
authCodeHash: codec.bytes(HASH_SIZE).asOpaque(),
|
|
37
37
|
context: RefineContext.Codec,
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
authToken: codec.blob,
|
|
39
|
+
authConfiguration: codec.blob,
|
|
40
40
|
items: codec.sequenceVarLen(WorkItem.Codec).convert((x) => x, (items) => FixedSizeArray.new(items, tryAsWorkItemsCount(items.length))),
|
|
41
41
|
});
|
|
42
|
-
static create({
|
|
43
|
-
return new WorkPackage(
|
|
42
|
+
static create({ authToken, authCodeHost, authCodeHash, authConfiguration, context, items, }) {
|
|
43
|
+
return new WorkPackage(authToken, authCodeHost, authCodeHash, authConfiguration, context, items);
|
|
44
44
|
}
|
|
45
45
|
constructor(
|
|
46
46
|
/** `j`: simple blob acting as an authorization token */
|
|
47
|
-
|
|
47
|
+
authToken,
|
|
48
48
|
/** `h`: index of the service that hosts the authorization code */
|
|
49
49
|
authCodeHost,
|
|
50
50
|
/** `u`: authorization code hash */
|
|
51
51
|
authCodeHash,
|
|
52
|
-
/** `
|
|
53
|
-
|
|
52
|
+
/** `f`: authorization configuration blob */
|
|
53
|
+
authConfiguration,
|
|
54
54
|
/** `x`: context in which the refine function should run */
|
|
55
55
|
context,
|
|
56
56
|
/**
|
|
@@ -61,10 +61,10 @@ export class WorkPackage extends WithDebug {
|
|
|
61
61
|
*/
|
|
62
62
|
items) {
|
|
63
63
|
super();
|
|
64
|
-
this.
|
|
64
|
+
this.authToken = authToken;
|
|
65
65
|
this.authCodeHost = authCodeHost;
|
|
66
66
|
this.authCodeHash = authCodeHash;
|
|
67
|
-
this.
|
|
67
|
+
this.authConfiguration = authConfiguration;
|
|
68
68
|
this.context = context;
|
|
69
69
|
this.items = items;
|
|
70
70
|
}
|
|
@@ -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"}
|