@typeberry/lib 0.5.10-ec38e0b → 0.5.11-019e542
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 +2 -2
- package/packages/core/codec/descriptor.js +1 -1
- package/packages/core/codec/descriptors.js +7 -4
- package/packages/core/codec/index.test.js +1 -1
- package/packages/core/codec/skip.d.ts +2 -1
- package/packages/core/codec/skip.d.ts.map +1 -1
- package/packages/core/codec/skip.js +3 -0
- package/packages/core/codec/view.js +2 -2
- package/packages/core/collections/multi-map.d.ts +2 -1
- package/packages/core/collections/multi-map.d.ts.map +1 -1
- package/packages/core/collections/multi-map.js +3 -0
- package/packages/core/collections/multi-map.test.js +2 -2
- package/packages/core/concurrent/parent.js +4 -1
- package/packages/core/crypto/ed25519.d.ts +2 -5
- package/packages/core/crypto/ed25519.d.ts.map +1 -1
- package/packages/core/crypto/ed25519.js +4 -1
- package/packages/core/hash/hash.d.ts +4 -2
- package/packages/core/hash/hash.d.ts.map +1 -1
- package/packages/core/hash/hash.js +6 -1
- package/packages/core/networking/quic-network.d.ts +3 -2
- package/packages/core/networking/quic-network.d.ts.map +1 -1
- package/packages/core/networking/quic-network.js +3 -0
- package/packages/core/networking/quic-peer.d.ts +2 -1
- package/packages/core/networking/quic-peer.d.ts.map +1 -1
- package/packages/core/networking/quic-peer.js +5 -2
- package/packages/core/networking/quic-stream.d.ts +2 -1
- package/packages/core/networking/quic-stream.d.ts.map +1 -1
- package/packages/core/networking/quic-stream.js +3 -0
- package/packages/core/networking/setup.js +2 -2
- package/packages/core/pvm-host-calls/bin.js +2 -2
- package/packages/core/pvm-host-calls/ecalli-trace-logger.d.ts +5 -0
- package/packages/core/pvm-host-calls/ecalli-trace-logger.d.ts.map +1 -1
- package/packages/core/pvm-host-calls/ecalli-trace-logger.js +8 -1
- package/packages/core/pvm-host-calls/ecalli-trace-logger.test.js +1 -1
- package/packages/core/pvm-host-calls/host-call-memory.d.ts +2 -1
- package/packages/core/pvm-host-calls/host-call-memory.d.ts.map +1 -1
- package/packages/core/pvm-host-calls/host-call-memory.js +3 -0
- package/packages/core/pvm-host-calls/host-call-memory.test.js +1 -1
- package/packages/core/pvm-host-calls/host-call-registers.d.ts +5 -1
- package/packages/core/pvm-host-calls/host-call-registers.d.ts.map +1 -1
- package/packages/core/pvm-host-calls/host-call-registers.js +11 -1
- package/packages/core/pvm-host-calls/host-call-registers.test.js +2 -2
- package/packages/core/pvm-host-calls/host-calls-executor.d.ts +2 -1
- package/packages/core/pvm-host-calls/host-calls-executor.d.ts.map +1 -1
- package/packages/core/pvm-host-calls/host-calls-executor.js +5 -2
- package/packages/core/pvm-host-calls/host-calls.d.ts +4 -2
- package/packages/core/pvm-host-calls/host-calls.d.ts.map +1 -1
- package/packages/core/pvm-host-calls/host-calls.js +9 -4
- package/packages/core/pvm-host-calls/pvm-instance-manager.js +1 -1
- package/packages/core/pvm-interpreter/args-decoder/args-decoder.js +1 -1
- package/packages/core/pvm-interpreter/args-decoder/args-decoder.test.js +3 -3
- package/packages/core/pvm-interpreter/args-decoder/args-decoding-results.js +11 -11
- package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts +2 -1
- package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.js +3 -0
- package/packages/core/pvm-interpreter/args-decoder/decoders/extended-with-immediate-decoder.test.js +2 -2
- package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts +2 -1
- package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.js +3 -0
- package/packages/core/pvm-interpreter/args-decoder/decoders/immediate-decoder.test.js +26 -26
- package/packages/core/pvm-interpreter/basic-blocks/basic-blocks.test.js +8 -8
- package/packages/core/pvm-interpreter/bin.js +1 -1
- package/packages/core/pvm-interpreter/debugger-adapter.d.ts +2 -1
- package/packages/core/pvm-interpreter/debugger-adapter.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/debugger-adapter.js +6 -3
- package/packages/core/pvm-interpreter/gas.js +4 -1
- package/packages/core/pvm-interpreter/interpreter.d.ts +2 -1
- package/packages/core/pvm-interpreter/interpreter.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/interpreter.js +19 -16
- package/packages/core/pvm-interpreter/memory/memory-builder.js +2 -2
- package/packages/core/pvm-interpreter/memory/memory-builder.test.js +7 -7
- package/packages/core/pvm-interpreter/memory/memory.d.ts +2 -1
- package/packages/core/pvm-interpreter/memory/memory.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/memory/memory.js +4 -1
- package/packages/core/pvm-interpreter/memory/memory.test.js +31 -31
- package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts +2 -1
- package/packages/core/pvm-interpreter/memory/pages/readable-page.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/memory/pages/readable-page.js +3 -0
- package/packages/core/pvm-interpreter/memory/pages/readable-page.test.js +3 -3
- package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts +2 -1
- package/packages/core/pvm-interpreter/memory/pages/writeable-page.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/memory/pages/writeable-page.js +3 -0
- package/packages/core/pvm-interpreter/memory/pages/writeable-page.test.js +4 -4
- package/packages/core/pvm-interpreter/ops/bit-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/bit-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/bit-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/bit-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/bit-rotation-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/bit-rotation-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/bit-rotation-ops.test.js +5 -5
- package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/boolean-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/boolean-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/boolean-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/branch-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/branch-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/branch-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/branch-ops.test.js +4 -4
- package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/dynamic-jump-ops.test.js +5 -5
- package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/host-call-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/host-call-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/host-call-ops.test.js +2 -2
- package/packages/core/pvm-interpreter/ops/load-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/load-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/load-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/load-ops.test.js +10 -10
- package/packages/core/pvm-interpreter/ops/math-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/math-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/math-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/math-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/memory-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/memory-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/memory-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/memory-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/move-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/move-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/move-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/move-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/no-args-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/no-args-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/no-args-ops.test.js +2 -2
- package/packages/core/pvm-interpreter/ops/shift-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/shift-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/shift-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/shift-ops.test.js +3 -3
- package/packages/core/pvm-interpreter/ops/store-ops.d.ts +2 -1
- package/packages/core/pvm-interpreter/ops/store-ops.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/ops/store-ops.js +3 -0
- package/packages/core/pvm-interpreter/ops/store-ops.test.js +7 -7
- package/packages/core/pvm-interpreter/ops-dispatchers/no-args-dispatcher.test.js +1 -1
- package/packages/core/pvm-interpreter/ops-dispatchers/one-imm-dispatcher.test.js +4 -4
- package/packages/core/pvm-interpreter/ops-dispatchers/one-offset-dispatcher.test.js +2 -2
- package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-ext-imm-dispatcher.test.js +4 -4
- package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-dispatcher.test.js +7 -7
- package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-one-imm-one-offset-dispatcher.test.js +10 -10
- package/packages/core/pvm-interpreter/ops-dispatchers/one-reg-two-imms-dispatcher.test.js +5 -5
- package/packages/core/pvm-interpreter/ops-dispatchers/three-regs-dispatcher.test.js +7 -7
- package/packages/core/pvm-interpreter/ops-dispatchers/two-imms-dispatcher.test.js +5 -5
- package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-dispatcher.test.js +6 -6
- package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-imm-dispatcher.test.js +11 -11
- package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-one-offset-dispatcher.test.js +2 -2
- package/packages/core/pvm-interpreter/ops-dispatchers/two-regs-two-imms-dispatcher.test.js +14 -14
- package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts +5 -2
- package/packages/core/pvm-interpreter/program-decoder/jump-table.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/program-decoder/jump-table.js +9 -4
- package/packages/core/pvm-interpreter/program-decoder/jump-table.test.js +6 -6
- package/packages/core/pvm-interpreter/program-decoder/mask.d.ts +2 -1
- package/packages/core/pvm-interpreter/program-decoder/mask.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/program-decoder/mask.js +3 -0
- package/packages/core/pvm-interpreter/program-decoder/mask.test.js +10 -10
- package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts +2 -1
- package/packages/core/pvm-interpreter/program-decoder/program-decoder.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/program-decoder/program-decoder.js +6 -3
- package/packages/core/pvm-interpreter/program-decoder/program-decoder.test.js +5 -5
- package/packages/core/pvm-interpreter/program.js +3 -3
- package/packages/core/pvm-interpreter/registers.d.ts +5 -2
- package/packages/core/pvm-interpreter/registers.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/registers.js +10 -6
- package/packages/core/pvm-interpreter/registers.test.js +10 -10
- package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts +6 -3
- package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.d.ts.map +1 -1
- package/packages/core/pvm-interpreter/spi-decoder/decode-standard-program.js +11 -2
- package/packages/core/pvm-interpreter-ananas/index.d.ts +6 -3
- package/packages/core/pvm-interpreter-ananas/index.d.ts.map +1 -1
- package/packages/core/pvm-interpreter-ananas/index.js +12 -3
- package/packages/core/trie/nodes.d.ts +7 -2
- package/packages/core/trie/nodes.d.ts.map +1 -1
- package/packages/core/trie/nodes.js +20 -11
- package/packages/core/trie/nodesDb.d.ts +3 -1
- package/packages/core/trie/nodesDb.d.ts.map +1 -1
- package/packages/core/trie/nodesDb.js +6 -0
- package/packages/core/trie/trie.js +2 -2
- package/packages/extensions/ipc/index.js +5 -2
- package/packages/extensions/ipc/jamnp/handler.d.ts +4 -2
- package/packages/extensions/ipc/jamnp/handler.d.ts.map +1 -1
- package/packages/extensions/ipc/jamnp/handler.js +9 -3
- package/packages/extensions/ipc/jamnp/server.js +3 -3
- package/packages/extensions/ipc/server.d.ts +2 -1
- package/packages/extensions/ipc/server.d.ts.map +1 -1
- package/packages/extensions/ipc/server.js +4 -1
- package/packages/jam/block/header.js +1 -1
- package/packages/jam/config/chain-spec.d.ts +2 -1
- package/packages/jam/config/chain-spec.d.ts.map +1 -1
- package/packages/jam/config/chain-spec.js +5 -2
- package/packages/jam/config/network.d.ts +2 -7
- package/packages/jam/config/network.d.ts.map +1 -1
- package/packages/jam/config/network.js +3 -0
- package/packages/jam/config-node/jip-chain-spec.js +1 -1
- package/packages/jam/database/blocks.test.js +1 -1
- package/packages/jam/database/states.d.ts +2 -1
- package/packages/jam/database/states.d.ts.map +1 -1
- package/packages/jam/database/states.js +3 -0
- package/packages/jam/database/states.test.js +1 -1
- package/packages/jam/database-lmdb/blocks.d.ts +2 -1
- package/packages/jam/database-lmdb/blocks.d.ts.map +1 -1
- package/packages/jam/database-lmdb/blocks.js +3 -0
- package/packages/jam/database-lmdb/root.d.ts +2 -1
- package/packages/jam/database-lmdb/root.d.ts.map +1 -1
- package/packages/jam/database-lmdb/root.js +3 -0
- package/packages/jam/database-lmdb/states.d.ts +2 -1
- package/packages/jam/database-lmdb/states.d.ts.map +1 -1
- package/packages/jam/database-lmdb/states.js +3 -0
- package/packages/jam/database-lmdb/states.test.js +9 -9
- package/packages/jam/executor/index.d.ts +1 -1
- package/packages/jam/executor/index.d.ts.map +1 -1
- package/packages/jam/executor/index.js +1 -1
- package/packages/jam/executor/pvm-executor.js +24 -24
- package/packages/jam/fuzz-proto/v1/handler.d.ts +2 -1
- package/packages/jam/fuzz-proto/v1/handler.d.ts.map +1 -1
- package/packages/jam/fuzz-proto/v1/handler.js +3 -0
- package/packages/jam/fuzz-proto/v1/handler.test.js +10 -10
- package/packages/jam/in-core/externalities/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/{transition/externalities/is-authorized-fetch-externalities.d.ts → in-core/externalities/is-authorized-fetch.d.ts} +7 -9
- 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 +3 -3
- package/packages/jam/in-core/externalities/refine.d.ts.map +1 -1
- package/packages/jam/in-core/externalities/refine.js +33 -5
- package/packages/jam/in-core/externalities/refine.test.js +66 -1
- package/packages/jam/in-core/in-core.d.ts +4 -3
- package/packages/jam/in-core/in-core.d.ts.map +1 -1
- package/packages/jam/in-core/in-core.js +9 -4
- package/packages/jam/in-core/in-core.test.js +6 -6
- package/packages/jam/in-core/is-authorized.d.ts +3 -2
- package/packages/jam/in-core/is-authorized.d.ts.map +1 -1
- package/packages/jam/in-core/is-authorized.js +7 -6
- package/packages/jam/in-core/is-authorized.test.js +51 -9
- package/packages/jam/in-core/refine.d.ts +5 -8
- package/packages/jam/in-core/refine.d.ts.map +1 -1
- package/packages/jam/in-core/refine.js +12 -6
- package/packages/jam/jam-host-calls/accumulate/assign.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/assign.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/assign.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/assign.test.js +8 -9
- package/packages/jam/jam-host-calls/accumulate/bless.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/bless.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/bless.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/bless.test.js +11 -12
- package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/checkpoint.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/checkpoint.js +4 -1
- package/packages/jam/jam-host-calls/accumulate/checkpoint.test.js +2 -3
- package/packages/jam/jam-host-calls/accumulate/designate.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/designate.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/designate.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/designate.test.js +5 -6
- package/packages/jam/jam-host-calls/accumulate/eject.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/eject.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/eject.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/eject.test.js +8 -9
- package/packages/jam/jam-host-calls/accumulate/forget.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/forget.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/forget.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/forget.test.js +5 -6
- package/packages/jam/jam-host-calls/accumulate/new.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/new.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/new.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/new.test.js +9 -10
- package/packages/jam/jam-host-calls/accumulate/provide.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/provide.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/provide.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/provide.test.js +8 -9
- package/packages/jam/jam-host-calls/accumulate/query.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/query.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/query.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/query.test.js +8 -9
- package/packages/jam/jam-host-calls/accumulate/solicit.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/solicit.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/solicit.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/solicit.test.js +7 -8
- package/packages/jam/jam-host-calls/accumulate/transfer.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/transfer.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/transfer.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/transfer.test.js +9 -10
- package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/upgrade.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/upgrade.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/upgrade.test.js +4 -5
- package/packages/jam/jam-host-calls/accumulate/yield.d.ts +2 -1
- package/packages/jam/jam-host-calls/accumulate/yield.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/accumulate/yield.js +3 -0
- package/packages/jam/jam-host-calls/accumulate/yield.test.js +4 -5
- package/packages/jam/jam-host-calls/externalities/refine-externalities.test.js +9 -9
- package/packages/jam/jam-host-calls/externalities/state-update.d.ts +2 -3
- package/packages/jam/jam-host-calls/externalities/state-update.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/externalities/state-update.js +5 -2
- package/packages/jam/jam-host-calls/externalities/test-accounts.js +2 -2
- package/packages/jam/jam-host-calls/general/fetch.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/fetch.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/fetch.js +3 -0
- package/packages/jam/jam-host-calls/general/fetch.test.js +27 -28
- package/packages/jam/jam-host-calls/general/gas.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/gas.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/gas.js +3 -0
- package/packages/jam/jam-host-calls/general/gas.test.js +4 -5
- package/packages/jam/jam-host-calls/general/info.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/info.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/info.js +3 -0
- package/packages/jam/jam-host-calls/general/info.test.js +6 -7
- package/packages/jam/jam-host-calls/general/log.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/log.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/log.js +3 -0
- package/packages/jam/jam-host-calls/general/lookup.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/lookup.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/lookup.js +3 -0
- package/packages/jam/jam-host-calls/general/lookup.test.js +8 -9
- package/packages/jam/jam-host-calls/general/read.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/read.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/read.js +3 -0
- package/packages/jam/jam-host-calls/general/read.test.js +11 -12
- package/packages/jam/jam-host-calls/general/write.d.ts +2 -1
- package/packages/jam/jam-host-calls/general/write.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/general/write.js +3 -0
- package/packages/jam/jam-host-calls/general/write.test.js +10 -11
- package/packages/jam/jam-host-calls/refine/export.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/export.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/export.js +3 -0
- package/packages/jam/jam-host-calls/refine/export.test.js +6 -7
- package/packages/jam/jam-host-calls/refine/expunge.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/expunge.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/expunge.js +3 -0
- package/packages/jam/jam-host-calls/refine/expunge.test.js +3 -4
- package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/historical-lookup.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/historical-lookup.js +3 -0
- package/packages/jam/jam-host-calls/refine/historical-lookup.test.js +11 -12
- package/packages/jam/jam-host-calls/refine/invoke.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/invoke.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/invoke.js +4 -1
- package/packages/jam/jam-host-calls/refine/invoke.test.js +10 -11
- package/packages/jam/jam-host-calls/refine/machine.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/machine.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/machine.js +3 -0
- package/packages/jam/jam-host-calls/refine/machine.test.js +6 -7
- package/packages/jam/jam-host-calls/refine/pages.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/pages.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/pages.js +3 -0
- package/packages/jam/jam-host-calls/refine/pages.test.js +3 -4
- package/packages/jam/jam-host-calls/refine/peek.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/peek.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/peek.js +3 -0
- package/packages/jam/jam-host-calls/refine/peek.test.js +3 -4
- package/packages/jam/jam-host-calls/refine/poke.d.ts +2 -1
- package/packages/jam/jam-host-calls/refine/poke.d.ts.map +1 -1
- package/packages/jam/jam-host-calls/refine/poke.js +3 -0
- package/packages/jam/jam-host-calls/refine/poke.test.js +3 -4
- package/packages/jam/jamnp-s/network.js +1 -1
- package/packages/jam/jamnp-s/peers.d.ts +2 -1
- package/packages/jam/jamnp-s/peers.d.ts.map +1 -1
- package/packages/jam/jamnp-s/peers.js +3 -0
- package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts +4 -2
- package/packages/jam/jamnp-s/protocol/ce-128-block-request.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-128-block-request.js +6 -0
- package/packages/jam/jamnp-s/protocol/ce-128-block-request.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts +4 -2
- package/packages/jam/jamnp-s/protocol/ce-129-state-request.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-129-state-request.js +6 -0
- package/packages/jam/jamnp-s/protocol/ce-129-state-request.test.js +4 -4
- package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts +4 -2
- package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.js +6 -0
- package/packages/jam/jamnp-s/protocol/ce-131-ce-132-safrole-ticket-distribution.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts +4 -1
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.js +7 -0
- package/packages/jam/jamnp-s/protocol/ce-133-work-package-submission.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts +5 -2
- package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.js +7 -0
- package/packages/jam/jamnp-s/protocol/ce-134-work-package-sharing.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts +4 -2
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.js +6 -0
- package/packages/jam/jamnp-s/protocol/ce-135-work-report-distribution.test.js +2 -2
- package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts +2 -1
- package/packages/jam/jamnp-s/protocol/up-0-block-announcement.d.ts.map +1 -1
- package/packages/jam/jamnp-s/protocol/up-0-block-announcement.js +3 -0
- package/packages/jam/jamnp-s/stream-manager.d.ts +2 -1
- package/packages/jam/jamnp-s/stream-manager.d.ts.map +1 -1
- package/packages/jam/jamnp-s/stream-manager.js +4 -1
- package/packages/jam/jamnp-s/tasks/sync.js +4 -4
- package/packages/jam/jamnp-s/tasks/sync.test.js +4 -4
- package/packages/jam/jamnp-s/tasks/ticket-distribution.js +2 -2
- package/packages/jam/jamnp-s/tasks/ticket-distribution.test.js +1 -1
- package/packages/jam/node/common.d.ts.map +1 -1
- package/packages/jam/node/common.js +3 -3
- package/packages/jam/rpc-client/index.d.ts +4 -2
- package/packages/jam/rpc-client/index.d.ts.map +1 -1
- package/packages/jam/rpc-client/index.js +7 -1
- package/packages/jam/state/in-memory-state-view.d.ts +2 -1
- package/packages/jam/state/in-memory-state-view.d.ts.map +1 -1
- package/packages/jam/state/in-memory-state-view.js +3 -0
- package/packages/jam/state/in-memory-state.d.ts +16 -21
- package/packages/jam/state/in-memory-state.d.ts.map +1 -1
- package/packages/jam/state/in-memory-state.js +10 -6
- package/packages/jam/state/in-memory-state.test.js +2 -2
- package/packages/jam/state/service.d.ts +2 -6
- package/packages/jam/state/service.d.ts.map +1 -1
- package/packages/jam/state/service.js +3 -0
- package/packages/jam/state/test.utils.js +3 -3
- package/packages/jam/state-json/accounts.js +5 -5
- package/packages/jam/state-merkleization/in-memory-state-codec.d.ts +3 -34
- package/packages/jam/state-merkleization/in-memory-state-codec.d.ts.map +1 -1
- package/packages/jam/state-merkleization/in-memory-state-codec.js +1 -1
- package/packages/jam/state-merkleization/serialized-state-view.d.ts +8 -3
- package/packages/jam/state-merkleization/serialized-state-view.d.ts.map +1 -1
- package/packages/jam/state-merkleization/serialized-state-view.js +6 -3
- package/packages/jam/state-merkleization/serialized-state.d.ts +2 -3
- package/packages/jam/state-merkleization/serialized-state.d.ts.map +1 -1
- package/packages/jam/state-merkleization/serialized-state.js +10 -2
- package/packages/jam/state-merkleization/serialized-state.test.js +1 -1
- package/packages/jam/transition/accumulate/accumulate.d.ts.map +1 -1
- package/packages/jam/transition/accumulate/accumulate.js +18 -6
- package/packages/jam/transition/accumulate/accumulate.test.js +1 -1
- package/packages/jam/transition/block-verifier.d.ts +2 -1
- package/packages/jam/transition/block-verifier.d.ts.map +1 -1
- package/packages/jam/transition/block-verifier.js +3 -0
- package/packages/jam/transition/block-verifier.test.js +8 -8
- package/packages/jam/transition/chain-stf.d.ts +12 -4
- package/packages/jam/transition/chain-stf.d.ts.map +1 -1
- package/packages/jam/transition/chain-stf.js +7 -3
- package/packages/jam/transition/externalities/accumulate-externalities.d.ts +20 -6
- package/packages/jam/transition/externalities/accumulate-externalities.d.ts.map +1 -1
- package/packages/jam/transition/externalities/accumulate-externalities.js +29 -22
- package/packages/jam/transition/externalities/accumulate-externalities.test.js +590 -100
- package/packages/jam/transition/externalities/fetch-externalities.d.ts +55 -2
- package/packages/jam/transition/externalities/fetch-externalities.d.ts.map +1 -1
- package/packages/jam/transition/externalities/fetch-externalities.js +44 -2
- package/packages/jam/transition/externalities/index.d.ts +0 -2
- package/packages/jam/transition/externalities/index.d.ts.map +1 -1
- package/packages/jam/transition/externalities/index.js +0 -2
- 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/is-authorized-fetch-externalities.d.ts.map +0 -1
- package/packages/jam/transition/externalities/is-authorized-fetch-externalities.js +0 -41
- package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts +0 -23
- package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts.map +0 -1
- package/packages/jam/transition/externalities/refine-fetch-externalities.js +0 -56
- package/packages/jam/transition/externalities/refine-fetch-externalities.test.d.ts +0 -2
- package/packages/jam/transition/externalities/refine-fetch-externalities.test.d.ts.map +0 -1
- package/packages/jam/transition/externalities/refine-fetch-externalities.test.js +0 -32
|
@@ -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),
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/in-core/externalities/index.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC"}
|
|
@@ -1,22 +1,20 @@
|
|
|
1
|
-
import { BytesBlob } from "#@typeberry/bytes";
|
|
1
|
+
import type { BytesBlob } from "#@typeberry/bytes";
|
|
2
2
|
import type { ChainSpec } from "#@typeberry/config";
|
|
3
3
|
import { general } from "#@typeberry/jam-host-calls";
|
|
4
4
|
import type { U64 } from "#@typeberry/numbers";
|
|
5
|
+
import { type WorkPackageFetchData } from "#@typeberry/transition/externalities/fetch-externalities.js";
|
|
5
6
|
export declare class IsAuthorizedFetchExternalities implements general.IIsAuthorizedFetch {
|
|
6
7
|
private readonly chainSpec;
|
|
7
|
-
private readonly
|
|
8
|
+
private readonly pkg;
|
|
8
9
|
readonly context = general.FetchContext.IsAuthorized;
|
|
9
|
-
constructor(chainSpec: ChainSpec,
|
|
10
|
-
authToken: BytesBlob;
|
|
11
|
-
authConfiguration: BytesBlob;
|
|
12
|
-
});
|
|
10
|
+
constructor(chainSpec: ChainSpec, pkg: WorkPackageFetchData);
|
|
13
11
|
constants(): BytesBlob;
|
|
14
12
|
workPackage(): BytesBlob;
|
|
15
13
|
authConfiguration(): BytesBlob;
|
|
16
14
|
authToken(): BytesBlob;
|
|
17
15
|
refineContext(): BytesBlob;
|
|
18
16
|
allWorkItems(): BytesBlob;
|
|
19
|
-
oneWorkItem(
|
|
20
|
-
workItemPayload(
|
|
17
|
+
oneWorkItem(workItem: U64): BytesBlob | null;
|
|
18
|
+
workItemPayload(workItem: U64): BytesBlob | null;
|
|
21
19
|
}
|
|
22
|
-
//# sourceMappingURL=is-authorized-fetch
|
|
20
|
+
//# sourceMappingURL=is-authorized-fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-authorized-fetch.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/in-core/externalities/is-authorized-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,4DAA4D,CAAC;AAEpE,qBAAa,8BAA+B,YAAW,OAAO,CAAC,kBAAkB;IAI7E,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,GAAG;IAJtB,QAAQ,CAAC,OAAO,qCAAqC;gBAGlC,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,oBAAoB;IAG5C,SAAS,IAAI,SAAS;IAItB,WAAW,IAAI,SAAS;IAIxB,iBAAiB,IAAI,SAAS;IAI9B,SAAS,IAAI,SAAS;IAItB,aAAa,IAAI,SAAS;IAI1B,YAAY,IAAI,SAAS;IAIzB,WAAW,CAAC,QAAQ,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI;IAK5C,eAAe,CAAC,QAAQ,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI;CAQjD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { general } from "#@typeberry/jam-host-calls";
|
|
2
|
+
import { getEncodedConstants, u64ToArrayIndex, } from "#@typeberry/transition/externalities/fetch-externalities.js";
|
|
3
|
+
export class IsAuthorizedFetchExternalities {
|
|
4
|
+
chainSpec;
|
|
5
|
+
pkg;
|
|
6
|
+
context = general.FetchContext.IsAuthorized;
|
|
7
|
+
constructor(chainSpec, pkg) {
|
|
8
|
+
this.chainSpec = chainSpec;
|
|
9
|
+
this.pkg = pkg;
|
|
10
|
+
}
|
|
11
|
+
constants() {
|
|
12
|
+
return getEncodedConstants(this.chainSpec);
|
|
13
|
+
}
|
|
14
|
+
workPackage() {
|
|
15
|
+
return this.pkg.packageView.encoded();
|
|
16
|
+
}
|
|
17
|
+
authConfiguration() {
|
|
18
|
+
return this.pkg.packageView.authConfiguration.view();
|
|
19
|
+
}
|
|
20
|
+
authToken() {
|
|
21
|
+
return this.pkg.packageView.authToken.view();
|
|
22
|
+
}
|
|
23
|
+
refineContext() {
|
|
24
|
+
return this.pkg.packageView.context.encoded();
|
|
25
|
+
}
|
|
26
|
+
allWorkItems() {
|
|
27
|
+
return this.pkg.workItemSummaries.encoded();
|
|
28
|
+
}
|
|
29
|
+
oneWorkItem(workItem) {
|
|
30
|
+
const idx = u64ToArrayIndex(workItem, this.pkg.workItemSummaries.length);
|
|
31
|
+
return idx === null ? null : (this.pkg.workItemSummaries.get(idx)?.encoded() ?? null);
|
|
32
|
+
}
|
|
33
|
+
workItemPayload(workItem) {
|
|
34
|
+
const items = this.pkg.packageView.items.view();
|
|
35
|
+
const idx = u64ToArrayIndex(workItem, items.length);
|
|
36
|
+
if (idx === null) {
|
|
37
|
+
return null;
|
|
38
|
+
}
|
|
39
|
+
return items.get(idx)?.view().payload.view() ?? null;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"is-authorized-fetch.test.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/in-core/externalities/is-authorized-fetch.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import assert from "node:assert";
|
|
2
|
+
import { describe, it } from "node:test";
|
|
3
|
+
import { tryAsServiceGas, tryAsServiceId, tryAsTimeSlot } from "#@typeberry/block";
|
|
4
|
+
import { RefineContext } from "#@typeberry/block/refine-context.js";
|
|
5
|
+
import { WorkItem } from "#@typeberry/block/work-item.js";
|
|
6
|
+
import { tryAsWorkItemsCount, WorkPackage } from "#@typeberry/block/work-package.js";
|
|
7
|
+
import { Bytes, BytesBlob } from "#@typeberry/bytes";
|
|
8
|
+
import { Encoder } from "#@typeberry/codec";
|
|
9
|
+
import { asKnownSize, FixedSizeArray } from "#@typeberry/collections";
|
|
10
|
+
import { fullChainSpec, tinyChainSpec } from "#@typeberry/config";
|
|
11
|
+
import { HASH_SIZE } from "#@typeberry/hash";
|
|
12
|
+
import { tryAsU16, tryAsU64 } from "#@typeberry/numbers";
|
|
13
|
+
import { buildWorkPackageFetchData } from "#@typeberry/transition/externalities/fetch-externalities.js";
|
|
14
|
+
import { IsAuthorizedFetchExternalities } from "./is-authorized-fetch.js";
|
|
15
|
+
function fetchDataFor(pkg, chainSpec = tinyChainSpec) {
|
|
16
|
+
return buildWorkPackageFetchData(chainSpec, pkg);
|
|
17
|
+
}
|
|
18
|
+
function buildWorkItem(overrides = {}) {
|
|
19
|
+
return WorkItem.create({
|
|
20
|
+
service: tryAsServiceId(overrides.service ?? 1),
|
|
21
|
+
codeHash: Bytes.fill(HASH_SIZE, 7).asOpaque(),
|
|
22
|
+
payload: BytesBlob.blobFrom(new Uint8Array(overrides.payloadLen ?? 3).fill(0xab)),
|
|
23
|
+
refineGasLimit: tryAsServiceGas(1_000_000),
|
|
24
|
+
accumulateGasLimit: tryAsServiceGas(2_000_000),
|
|
25
|
+
importSegments: asKnownSize([]),
|
|
26
|
+
extrinsic: [],
|
|
27
|
+
exportCount: tryAsU16(0),
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function buildPackage(items = [buildWorkItem({})]) {
|
|
31
|
+
return WorkPackage.create({
|
|
32
|
+
authToken: BytesBlob.blobFrom(new Uint8Array([1, 2, 3])),
|
|
33
|
+
authCodeHost: tryAsServiceId(42),
|
|
34
|
+
authCodeHash: Bytes.fill(HASH_SIZE, 9).asOpaque(),
|
|
35
|
+
authConfiguration: BytesBlob.blobFrom(new Uint8Array([4, 5, 6, 7])),
|
|
36
|
+
context: RefineContext.create({
|
|
37
|
+
anchor: Bytes.fill(HASH_SIZE, 1).asOpaque(),
|
|
38
|
+
stateRoot: Bytes.fill(HASH_SIZE, 2).asOpaque(),
|
|
39
|
+
beefyRoot: Bytes.fill(HASH_SIZE, 3).asOpaque(),
|
|
40
|
+
lookupAnchor: Bytes.fill(HASH_SIZE, 4).asOpaque(),
|
|
41
|
+
lookupAnchorSlot: tryAsTimeSlot(16),
|
|
42
|
+
prerequisites: [],
|
|
43
|
+
}),
|
|
44
|
+
items: FixedSizeArray.new(items, tryAsWorkItemsCount(items.length)),
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
describe("IsAuthorizedFetchExternalities", () => {
|
|
48
|
+
it("returns different constants for different chain specs", () => {
|
|
49
|
+
const tinyExt = new IsAuthorizedFetchExternalities(tinyChainSpec, fetchDataFor(buildPackage(), tinyChainSpec));
|
|
50
|
+
const fullExt = new IsAuthorizedFetchExternalities(fullChainSpec, fetchDataFor(buildPackage(), fullChainSpec));
|
|
51
|
+
assert.notStrictEqual(tinyExt.constants().length, 0);
|
|
52
|
+
assert.notDeepStrictEqual(tinyExt.constants(), fullExt.constants());
|
|
53
|
+
});
|
|
54
|
+
it("returns encoded work package", () => {
|
|
55
|
+
const pkg = buildPackage();
|
|
56
|
+
const ext = new IsAuthorizedFetchExternalities(tinyChainSpec, fetchDataFor(pkg));
|
|
57
|
+
const expected = Encoder.encodeObject(WorkPackage.Codec, pkg, tinyChainSpec);
|
|
58
|
+
assert.deepStrictEqual(ext.workPackage().raw, expected.raw);
|
|
59
|
+
});
|
|
60
|
+
it("returns auth configuration and auth token from the package", () => {
|
|
61
|
+
const ext = new IsAuthorizedFetchExternalities(tinyChainSpec, fetchDataFor(buildPackage()));
|
|
62
|
+
assert.deepStrictEqual(ext.authConfiguration().raw, new Uint8Array([4, 5, 6, 7]));
|
|
63
|
+
assert.deepStrictEqual(ext.authToken().raw, new Uint8Array([1, 2, 3]));
|
|
64
|
+
});
|
|
65
|
+
it("returns encoded refine context", () => {
|
|
66
|
+
const pkg = buildPackage();
|
|
67
|
+
const ext = new IsAuthorizedFetchExternalities(tinyChainSpec, fetchDataFor(pkg));
|
|
68
|
+
const expected = Encoder.encodeObject(RefineContext.Codec, pkg.context);
|
|
69
|
+
assert.deepStrictEqual(ext.refineContext().raw, expected.raw);
|
|
70
|
+
});
|
|
71
|
+
it("returns concatenated work item summaries with 62 bytes per item", () => {
|
|
72
|
+
const items = [buildWorkItem({ service: 1 }), buildWorkItem({ service: 2, payloadLen: 5 })];
|
|
73
|
+
const ext = new IsAuthorizedFetchExternalities(tinyChainSpec, fetchDataFor(buildPackage(items)));
|
|
74
|
+
assert.strictEqual(ext.allWorkItems().length, 62 * items.length);
|
|
75
|
+
});
|
|
76
|
+
it("returns a single work item summary (kind 12)", () => {
|
|
77
|
+
const items = [buildWorkItem({ service: 1 }), buildWorkItem({ service: 2, payloadLen: 10 })];
|
|
78
|
+
const ext = new IsAuthorizedFetchExternalities(tinyChainSpec, fetchDataFor(buildPackage(items)));
|
|
79
|
+
const one = ext.oneWorkItem(tryAsU64(1));
|
|
80
|
+
assert.ok(one !== null);
|
|
81
|
+
assert.strictEqual(one.length, 62);
|
|
82
|
+
const serviceId = new DataView(one.raw.buffer, one.raw.byteOffset, 4).getUint32(0, true);
|
|
83
|
+
assert.strictEqual(serviceId, 2);
|
|
84
|
+
});
|
|
85
|
+
it("returns null for one work item when index is out of range", () => {
|
|
86
|
+
const ext = new IsAuthorizedFetchExternalities(tinyChainSpec, fetchDataFor(buildPackage()));
|
|
87
|
+
assert.strictEqual(ext.oneWorkItem(tryAsU64(99)), null);
|
|
88
|
+
});
|
|
89
|
+
it("returns the raw payload of a work item (kind 13)", () => {
|
|
90
|
+
const items = [buildWorkItem({ service: 1, payloadLen: 2 }), buildWorkItem({ service: 2, payloadLen: 5 })];
|
|
91
|
+
const ext = new IsAuthorizedFetchExternalities(tinyChainSpec, fetchDataFor(buildPackage(items)));
|
|
92
|
+
const payload = ext.workItemPayload(tryAsU64(1));
|
|
93
|
+
assert.ok(payload !== null);
|
|
94
|
+
assert.strictEqual(payload.length, 5);
|
|
95
|
+
assert.ok(payload.raw.every((x) => x === 0xab));
|
|
96
|
+
});
|
|
97
|
+
it("returns null for payload when index is out of range", () => {
|
|
98
|
+
const ext = new IsAuthorizedFetchExternalities(tinyChainSpec, fetchDataFor(buildPackage()));
|
|
99
|
+
assert.strictEqual(ext.workItemPayload(tryAsU64(99)), null);
|
|
100
|
+
});
|
|
101
|
+
});
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { EntropyHash, Segment, SegmentIndex } from "#@typeberry/block";
|
|
2
|
+
import type { WorkItemExtrinsic } from "#@typeberry/block/work-item.js";
|
|
3
|
+
import { type BytesBlob } from "#@typeberry/bytes";
|
|
4
|
+
import type { KnownSizeArray } from "#@typeberry/collections";
|
|
5
|
+
import type { ChainSpec } from "#@typeberry/config";
|
|
6
|
+
import { general } from "#@typeberry/jam-host-calls";
|
|
7
|
+
import type { U64 } from "#@typeberry/numbers";
|
|
8
|
+
import { type WorkPackageFetchData } from "#@typeberry/transition/externalities/fetch-externalities.js";
|
|
9
|
+
/** A single decoded import segment passed into refine. */
|
|
10
|
+
export type ImportedSegment = {
|
|
11
|
+
index: SegmentIndex;
|
|
12
|
+
data: Segment;
|
|
13
|
+
};
|
|
14
|
+
/** An array whose length matches the work-package's work-item count. */
|
|
15
|
+
export type PerWorkItem<T> = KnownSizeArray<T, "for each work item">;
|
|
16
|
+
export type RefineFetchData = {
|
|
17
|
+
/** Pre-computed per-work-package encodings. */
|
|
18
|
+
packageData: WorkPackageFetchData;
|
|
19
|
+
/** Index of the work item currently being refined (`i` in GP). */
|
|
20
|
+
currentWorkItemIndex: number;
|
|
21
|
+
/** Imports per work item (`ī`). */
|
|
22
|
+
imports: PerWorkItem<ImportedSegment[]>;
|
|
23
|
+
/** Extrinsics per work item (`x̄`). */
|
|
24
|
+
extrinsics: PerWorkItem<WorkItemExtrinsic[]>;
|
|
25
|
+
/** Authorizer trace produced by Is-Authorized (`r`). */
|
|
26
|
+
authorizerTrace: BytesBlob;
|
|
27
|
+
};
|
|
28
|
+
export declare class RefineFetchExternalities implements general.IRefineFetch {
|
|
29
|
+
private readonly chainSpec;
|
|
30
|
+
private readonly data;
|
|
31
|
+
readonly context = general.FetchContext.Refine;
|
|
32
|
+
constructor(chainSpec: ChainSpec, data: RefineFetchData);
|
|
33
|
+
constants(): BytesBlob;
|
|
34
|
+
/**
|
|
35
|
+
* Refine entropy is `H₀` (zero hash) per GP §B.3.
|
|
36
|
+
*
|
|
37
|
+
* https://graypaper.fluffylabs.dev/#/ab2cdbd/2fe0012fe201?v=0.7.2
|
|
38
|
+
*/
|
|
39
|
+
entropy(): EntropyHash;
|
|
40
|
+
authorizerTrace(): BytesBlob;
|
|
41
|
+
workItemExtrinsic(workItem: U64 | null, index: U64): BytesBlob | null;
|
|
42
|
+
workItemImport(workItem: U64 | null, index: U64): BytesBlob | null;
|
|
43
|
+
workPackage(): BytesBlob;
|
|
44
|
+
authConfiguration(): BytesBlob;
|
|
45
|
+
authToken(): BytesBlob;
|
|
46
|
+
refineContext(): BytesBlob;
|
|
47
|
+
allWorkItems(): BytesBlob;
|
|
48
|
+
oneWorkItem(workItem: U64): BytesBlob | null;
|
|
49
|
+
workItemPayload(workItem: U64): BytesBlob | null;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=refine-fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refine-fetch.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/in-core/externalities/refine-fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACvE,OAAO,EAAS,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAEnD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAGL,KAAK,oBAAoB,EAC1B,MAAM,4DAA4D,CAAC;AAEpE,0DAA0D;AAC1D,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,wEAAwE;AACxE,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,cAAc,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC;AAErE,MAAM,MAAM,eAAe,GAAG;IAC5B,+CAA+C;IAC/C,WAAW,EAAE,oBAAoB,CAAC;IAClC,kEAAkE;IAClE,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mCAAmC;IACnC,OAAO,EAAE,WAAW,CAAC,eAAe,EAAE,CAAC,CAAC;IACxC,uCAAuC;IACvC,UAAU,EAAE,WAAW,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC7C,wDAAwD;IACxD,eAAe,EAAE,SAAS,CAAC;CAC5B,CAAC;AAEF,qBAAa,wBAAyB,YAAW,OAAO,CAAC,YAAY;IAIjE,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJvB,QAAQ,CAAC,OAAO,+BAA+B;gBAG5B,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,eAAe;IAGxC,SAAS,IAAI,SAAS;IAItB;;;;OAIG;IACH,OAAO,IAAI,WAAW;IAItB,eAAe,IAAI,SAAS;IAI5B,iBAAiB,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI;IAcrE,cAAc,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI,EAAE,KAAK,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI;IAelE,WAAW,IAAI,SAAS;IAIxB,iBAAiB,IAAI,SAAS;IAI9B,SAAS,IAAI,SAAS;IAItB,aAAa,IAAI,SAAS;IAI1B,YAAY,IAAI,SAAS;IAIzB,WAAW,CAAC,QAAQ,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI;IAM5C,eAAe,CAAC,QAAQ,EAAE,GAAG,GAAG,SAAS,GAAG,IAAI;CAQjD"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Bytes } from "#@typeberry/bytes";
|
|
2
|
+
import { HASH_SIZE } from "#@typeberry/hash";
|
|
3
|
+
import { general } from "#@typeberry/jam-host-calls";
|
|
4
|
+
import { getEncodedConstants, u64ToArrayIndex, } from "#@typeberry/transition/externalities/fetch-externalities.js";
|
|
5
|
+
export class RefineFetchExternalities {
|
|
6
|
+
chainSpec;
|
|
7
|
+
data;
|
|
8
|
+
context = general.FetchContext.Refine;
|
|
9
|
+
constructor(chainSpec, data) {
|
|
10
|
+
this.chainSpec = chainSpec;
|
|
11
|
+
this.data = data;
|
|
12
|
+
}
|
|
13
|
+
constants() {
|
|
14
|
+
return getEncodedConstants(this.chainSpec);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Refine entropy is `H₀` (zero hash) per GP §B.3.
|
|
18
|
+
*
|
|
19
|
+
* https://graypaper.fluffylabs.dev/#/ab2cdbd/2fe0012fe201?v=0.7.2
|
|
20
|
+
*/
|
|
21
|
+
entropy() {
|
|
22
|
+
return Bytes.zero(HASH_SIZE).asOpaque();
|
|
23
|
+
}
|
|
24
|
+
authorizerTrace() {
|
|
25
|
+
return this.data.authorizerTrace;
|
|
26
|
+
}
|
|
27
|
+
workItemExtrinsic(workItem, index) {
|
|
28
|
+
const itemIdx = workItem === null ? this.data.currentWorkItemIndex : u64ToArrayIndex(workItem, this.data.extrinsics.length);
|
|
29
|
+
if (itemIdx === null) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
const perItem = this.data.extrinsics[itemIdx];
|
|
33
|
+
const xIdx = u64ToArrayIndex(index, perItem.length);
|
|
34
|
+
if (xIdx === null) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
return perItem[xIdx];
|
|
38
|
+
}
|
|
39
|
+
workItemImport(workItem, index) {
|
|
40
|
+
const itemIdx = workItem === null ? this.data.currentWorkItemIndex : u64ToArrayIndex(workItem, this.data.imports.length);
|
|
41
|
+
if (itemIdx === null) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
const perItem = this.data.imports[itemIdx];
|
|
45
|
+
const segIdx = u64ToArrayIndex(index, perItem.length);
|
|
46
|
+
if (segIdx === null) {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
// `Segment` extends `BytesBlob`, so it can be returned directly.
|
|
50
|
+
return perItem[segIdx].data;
|
|
51
|
+
}
|
|
52
|
+
workPackage() {
|
|
53
|
+
return this.data.packageData.packageView.encoded();
|
|
54
|
+
}
|
|
55
|
+
authConfiguration() {
|
|
56
|
+
return this.data.packageData.packageView.authConfiguration.view();
|
|
57
|
+
}
|
|
58
|
+
authToken() {
|
|
59
|
+
return this.data.packageData.packageView.authToken.view();
|
|
60
|
+
}
|
|
61
|
+
refineContext() {
|
|
62
|
+
return this.data.packageData.packageView.context.encoded();
|
|
63
|
+
}
|
|
64
|
+
allWorkItems() {
|
|
65
|
+
return this.data.packageData.workItemSummaries.encoded();
|
|
66
|
+
}
|
|
67
|
+
oneWorkItem(workItem) {
|
|
68
|
+
const summaries = this.data.packageData.workItemSummaries;
|
|
69
|
+
const idx = u64ToArrayIndex(workItem, summaries.length);
|
|
70
|
+
return idx === null ? null : (summaries.get(idx)?.encoded() ?? null);
|
|
71
|
+
}
|
|
72
|
+
workItemPayload(workItem) {
|
|
73
|
+
const items = this.data.packageData.packageView.items.view();
|
|
74
|
+
const idx = u64ToArrayIndex(workItem, items.length);
|
|
75
|
+
if (idx === null) {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
return items.get(idx)?.view().payload.view() ?? null;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refine-fetch.test.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/in-core/externalities/refine-fetch.test.ts"],"names":[],"mappings":""}
|