@typeberry/lib 0.5.10 → 0.5.11-10b197e
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/bin/lib/examples/pvm-usage.test.js +2 -2
- package/package.json +1 -1
- package/packages/core/codec/descriptor.js +1 -1
- package/packages/core/codec/descriptors.js +7 -4
- package/packages/core/codec/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/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 +19 -186
- package/packages/jam/in-core/in-core.test.js +52 -20
- package/packages/jam/in-core/is-authorized.d.ts +33 -0
- package/packages/jam/in-core/is-authorized.d.ts.map +1 -0
- package/packages/jam/in-core/is-authorized.js +72 -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 +125 -0
- package/packages/jam/in-core/refine.d.ts +34 -0
- package/packages/jam/in-core/refine.d.ts.map +1 -0
- package/packages/jam/in-core/refine.js +176 -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 +3 -39
- package/packages/jam/transition/externalities/fetch-externalities.d.ts.map +1 -1
- package/packages/jam/transition/externalities/fetch-externalities.js +2 -88
- package/packages/jam/transition/externalities/index.d.ts +3 -0
- package/packages/jam/transition/externalities/index.d.ts.map +1 -1
- package/packages/jam/transition/externalities/index.js +3 -0
- package/packages/jam/transition/externalities/is-authorized-fetch-externalities.d.ts +22 -0
- package/packages/jam/transition/externalities/is-authorized-fetch-externalities.d.ts.map +1 -0
- package/packages/jam/transition/externalities/is-authorized-fetch-externalities.js +41 -0
- package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts +24 -0
- package/packages/jam/transition/externalities/refine-fetch-externalities.d.ts.map +1 -0
- package/packages/jam/transition/externalities/refine-fetch-externalities.js +59 -0
- package/packages/jam/transition/externalities/refine-fetch-externalities.test.d.ts +2 -0
- package/packages/jam/transition/externalities/refine-fetch-externalities.test.d.ts.map +1 -0
- package/packages/jam/transition/externalities/refine-fetch-externalities.test.js +32 -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
|
@@ -14,7 +14,6 @@ import { Result } from "#@typeberry/utils";
|
|
|
14
14
|
import { NewServiceError } from "../externalities/partial-state.js";
|
|
15
15
|
import { PartialStateMock } from "../externalities/partial-state-mock.js";
|
|
16
16
|
import { HostCallResult } from "../general/results.js";
|
|
17
|
-
import { emptyRegistersBuffer } from "../utils.js";
|
|
18
17
|
import { New } from "./new.js";
|
|
19
18
|
const gas = gasCounter(tryAsGas(0));
|
|
20
19
|
const RESULT_REG = 7;
|
|
@@ -28,7 +27,7 @@ function prepareRegsAndMemory(codeHash, codeLength, gas, balance, gratisStorage,
|
|
|
28
27
|
// If value exceeds 2 ** 16 or the service is not registrar, it's ignored.
|
|
29
28
|
wantedServiceId = tryAsU64(2 ** 32 - 1), { skipCodeHash = false } = {}) {
|
|
30
29
|
const memStart = 2 ** 16;
|
|
31
|
-
const registers =
|
|
30
|
+
const registers = HostCallRegisters.empty();
|
|
32
31
|
registers.set(CODE_HASH_START_REG, tryAsU64(memStart));
|
|
33
32
|
registers.set(CODE_LENGTH_REG, tryAsU64(codeLength));
|
|
34
33
|
registers.set(GAS_REG, gas);
|
|
@@ -39,7 +38,7 @@ wantedServiceId = tryAsU64(2 ** 32 - 1), { skipCodeHash = false } = {}) {
|
|
|
39
38
|
if (!skipCodeHash) {
|
|
40
39
|
builder.setReadablePages(tryAsMemoryIndex(memStart), tryAsMemoryIndex(memStart + PAGE_SIZE), codeHash.raw);
|
|
41
40
|
}
|
|
42
|
-
const memory = new
|
|
41
|
+
const memory = HostCallMemory.new(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
|
|
43
42
|
return {
|
|
44
43
|
registers,
|
|
45
44
|
memory,
|
|
@@ -49,7 +48,7 @@ describe("HostCalls: New", () => {
|
|
|
49
48
|
it("should create a new service", async () => {
|
|
50
49
|
const accumulate = new PartialStateMock();
|
|
51
50
|
const serviceId = tryAsServiceId(10_000);
|
|
52
|
-
const n = new
|
|
51
|
+
const n = New.new(serviceId, accumulate);
|
|
53
52
|
accumulate.newServiceResponse = Result.ok(tryAsServiceId(23_000));
|
|
54
53
|
const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4096n), tryAsU64(2n ** 40n), tryAsU64(2n ** 50n), tryAsU64(1024n));
|
|
55
54
|
// when
|
|
@@ -64,7 +63,7 @@ describe("HostCalls: New", () => {
|
|
|
64
63
|
it("should fail when balance is not enough", async () => {
|
|
65
64
|
const accumulate = new PartialStateMock();
|
|
66
65
|
const serviceId = tryAsServiceId(10_000);
|
|
67
|
-
const n = new
|
|
66
|
+
const n = New.new(serviceId, accumulate);
|
|
68
67
|
accumulate.newServiceResponse = Result.error(NewServiceError.InsufficientFunds, () => "Test: insufficient funds for new service");
|
|
69
68
|
const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4096n), tryAsU64(2n ** 40n), tryAsU64(2n ** 50n), tryAsU64(1n));
|
|
70
69
|
// when
|
|
@@ -76,7 +75,7 @@ describe("HostCalls: New", () => {
|
|
|
76
75
|
it("should fail when code not readable", async () => {
|
|
77
76
|
const accumulate = new PartialStateMock();
|
|
78
77
|
const serviceId = tryAsServiceId(10_000);
|
|
79
|
-
const n = new
|
|
78
|
+
const n = New.new(serviceId, accumulate);
|
|
80
79
|
const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4096n), tryAsU64(2n ** 40n), tryAsU64(2n ** 50n), tryAsU64(1024n), tryAsU64(2 ** 32 - 1), // default service id
|
|
81
80
|
{ skipCodeHash: true });
|
|
82
81
|
// when
|
|
@@ -88,7 +87,7 @@ describe("HostCalls: New", () => {
|
|
|
88
87
|
it("should fail when trying to set gratis storage by unprivileged service", async () => {
|
|
89
88
|
const accumulate = new PartialStateMock();
|
|
90
89
|
const serviceId = tryAsServiceId(10_000);
|
|
91
|
-
const n = new
|
|
90
|
+
const n = New.new(serviceId, accumulate);
|
|
92
91
|
accumulate.newServiceResponse = Result.error(NewServiceError.UnprivilegedService, () => "Test: unprivileged service trying to set gratis storage");
|
|
93
92
|
const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4096n), tryAsU64(2n ** 40n), tryAsU64(2n ** 50n), tryAsU64(1024n));
|
|
94
93
|
// when
|
|
@@ -100,7 +99,7 @@ describe("HostCalls: New", () => {
|
|
|
100
99
|
it("should create a new service with selected id", async () => {
|
|
101
100
|
const accumulate = new PartialStateMock();
|
|
102
101
|
const serviceId = tryAsServiceId(10); // service has registrar privilege
|
|
103
|
-
const n = new
|
|
102
|
+
const n = New.new(serviceId, accumulate);
|
|
104
103
|
accumulate.newServiceResponse = Result.ok(tryAsServiceId(42));
|
|
105
104
|
const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4096n), tryAsU64(2n ** 40n), tryAsU64(2n ** 50n), tryAsU64(1024n), tryAsU64(42n));
|
|
106
105
|
// when
|
|
@@ -115,7 +114,7 @@ describe("HostCalls: New", () => {
|
|
|
115
114
|
it("should create a new service with random id", async () => {
|
|
116
115
|
const accumulate = new PartialStateMock();
|
|
117
116
|
const serviceId = tryAsServiceId(10_000); // service does not have registrar privilege
|
|
118
|
-
const n = new
|
|
117
|
+
const n = New.new(serviceId, accumulate);
|
|
119
118
|
accumulate.newServiceResponse = Result.ok(tryAsServiceId(2 ** 20));
|
|
120
119
|
const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4096n), tryAsU64(2n ** 40n), tryAsU64(2n ** 50n), tryAsU64(1024n), tryAsU64(42n));
|
|
121
120
|
// when
|
|
@@ -130,7 +129,7 @@ describe("HostCalls: New", () => {
|
|
|
130
129
|
it("should fail when trying to set selected id, but service already exists", async () => {
|
|
131
130
|
const accumulate = new PartialStateMock();
|
|
132
131
|
const serviceId = tryAsServiceId(10);
|
|
133
|
-
const n = new
|
|
132
|
+
const n = New.new(serviceId, accumulate);
|
|
134
133
|
accumulate.newServiceResponse = Result.error(NewServiceError.RegistrarServiceIdAlreadyTaken, () => "Test: service ID already taken");
|
|
135
134
|
const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4096n), tryAsU64(2n ** 40n), tryAsU64(2n ** 50n), tryAsU64(1024n), tryAsU64(serviceId));
|
|
136
135
|
// when
|
|
@@ -13,7 +13,8 @@ export declare class Provide implements HostCallHandler {
|
|
|
13
13
|
index: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"HostCallIndex[U32]">;
|
|
14
14
|
basicGasCost: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"SmallGas[U32]">;
|
|
15
15
|
tracedRegisters: (number & import("@typeberry/utils").WithOpaque<"register index">)[];
|
|
16
|
-
|
|
16
|
+
static new(currentServiceId: ServiceId, partialState: PartialState): Provide;
|
|
17
|
+
private constructor();
|
|
17
18
|
execute(_gas: IGasCounter, regs: HostCallRegisters, memory: HostCallMemory): Promise<PvmExecution.Panic | undefined>;
|
|
18
19
|
}
|
|
19
20
|
//# sourceMappingURL=provide.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provide.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/provide.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,YAAY,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,KAAK,YAAY,EAAwB,MAAM,mCAAmC,CAAC;AAO5F;;;;GAIG;AACH,qBAAa,OAAQ,YAAW,eAAe;
|
|
1
|
+
{"version":3,"file":"provide.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/provide.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,YAAY,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,KAAK,YAAY,EAAwB,MAAM,mCAAmC,CAAC;AAO5F;;;;GAIG;AACH,qBAAa,OAAQ,YAAW,eAAe;aAU3B,gBAAgB,EAAE,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAV/B,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,eAAe,uEAAoC;IAEnD,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY;IAIlE,OAAO;IAKD,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc;CA0CjF"}
|
|
@@ -18,6 +18,9 @@ export class Provide {
|
|
|
18
18
|
index = tryAsHostCallIndex(26);
|
|
19
19
|
basicGasCost = tryAsSmallGas(10);
|
|
20
20
|
tracedRegisters = traceRegisters(IN_OUT_REG, 8, 9);
|
|
21
|
+
static new(currentServiceId, partialState) {
|
|
22
|
+
return new Provide(currentServiceId, partialState);
|
|
23
|
+
}
|
|
21
24
|
constructor(currentServiceId, partialState) {
|
|
22
25
|
this.currentServiceId = currentServiceId;
|
|
23
26
|
this.partialState = partialState;
|
|
@@ -11,7 +11,6 @@ import { deepEqual, Result } from "#@typeberry/utils";
|
|
|
11
11
|
import { ProvidePreimageError } from "../externalities/partial-state.js";
|
|
12
12
|
import { PartialStateMock } from "../externalities/partial-state-mock.js";
|
|
13
13
|
import { HostCallResult } from "../general/results.js";
|
|
14
|
-
import { emptyRegistersBuffer } from "../utils.js";
|
|
15
14
|
import { Provide } from "./provide.js";
|
|
16
15
|
const gas = gasCounter(tryAsGas(0));
|
|
17
16
|
const RESULT_REG = 7;
|
|
@@ -19,7 +18,7 @@ const PREIMAGE_START_REG = 8;
|
|
|
19
18
|
const LENGTH_REG = 9;
|
|
20
19
|
function prepareRegsAndMemory(service, preimage, { registerMemory = true } = {}) {
|
|
21
20
|
const preimageStart = 2 ** 16;
|
|
22
|
-
const registers =
|
|
21
|
+
const registers = HostCallRegisters.empty();
|
|
23
22
|
registers.set(RESULT_REG, tryAsU64(service));
|
|
24
23
|
registers.set(PREIMAGE_START_REG, tryAsU64(preimageStart));
|
|
25
24
|
registers.set(LENGTH_REG, tryAsU64(preimage.length));
|
|
@@ -27,7 +26,7 @@ function prepareRegsAndMemory(service, preimage, { registerMemory = true } = {})
|
|
|
27
26
|
if (registerMemory) {
|
|
28
27
|
builder.setReadablePages(tryAsMemoryIndex(preimageStart), tryAsMemoryIndex(preimageStart + PAGE_SIZE), preimage.raw);
|
|
29
28
|
}
|
|
30
|
-
const memory = new
|
|
29
|
+
const memory = HostCallMemory.new(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
|
|
31
30
|
return {
|
|
32
31
|
registers,
|
|
33
32
|
memory,
|
|
@@ -37,7 +36,7 @@ describe("HostCalls: Provide", () => {
|
|
|
37
36
|
it("should return panic if memory is unreadable", async () => {
|
|
38
37
|
const accumulate = new PartialStateMock();
|
|
39
38
|
const currentServiceId = tryAsServiceId(10_000);
|
|
40
|
-
const provide = new
|
|
39
|
+
const provide = Provide.new(currentServiceId, accumulate);
|
|
41
40
|
const serviceId = tryAsServiceId(15_000);
|
|
42
41
|
const preimage = BytesBlob.blobFromNumbers([0xaa, 0xbb, 0xcc, 0xdd]);
|
|
43
42
|
const { registers, memory } = prepareRegsAndMemory(serviceId, preimage, { registerMemory: false });
|
|
@@ -48,7 +47,7 @@ describe("HostCalls: Provide", () => {
|
|
|
48
47
|
it("should return WHO if service not found", async () => {
|
|
49
48
|
const accumulate = new PartialStateMock();
|
|
50
49
|
const currentServiceId = tryAsServiceId(10_000);
|
|
51
|
-
const provide = new
|
|
50
|
+
const provide = Provide.new(currentServiceId, accumulate);
|
|
52
51
|
const serviceId = tryAsServiceId(15_000);
|
|
53
52
|
const preimage = BytesBlob.blobFromNumbers([0xaa, 0xbb, 0xcc, 0xdd]);
|
|
54
53
|
accumulate.providePreimageResponse = Result.error(ProvidePreimageError.ServiceNotFound, () => "Test: service not found for provide");
|
|
@@ -62,7 +61,7 @@ describe("HostCalls: Provide", () => {
|
|
|
62
61
|
it("should return HUH if preimage was not previously requested", async () => {
|
|
63
62
|
const accumulate = new PartialStateMock();
|
|
64
63
|
const currentServiceId = tryAsServiceId(10_000);
|
|
65
|
-
const provide = new
|
|
64
|
+
const provide = Provide.new(currentServiceId, accumulate);
|
|
66
65
|
const serviceId = tryAsServiceId(15_000);
|
|
67
66
|
const preimage = BytesBlob.blobFromNumbers([0xaa, 0xbb, 0xcc, 0xdd]);
|
|
68
67
|
accumulate.providePreimageResponse = Result.error(ProvidePreimageError.WasNotRequested, () => "Test: preimage was not requested for provide");
|
|
@@ -76,7 +75,7 @@ describe("HostCalls: Provide", () => {
|
|
|
76
75
|
it("should return HUH if preimage already provided", async () => {
|
|
77
76
|
const accumulate = new PartialStateMock();
|
|
78
77
|
const currentServiceId = tryAsServiceId(10_000);
|
|
79
|
-
const provide = new
|
|
78
|
+
const provide = Provide.new(currentServiceId, accumulate);
|
|
80
79
|
const serviceId = tryAsServiceId(15_000);
|
|
81
80
|
const preimage = BytesBlob.blobFromNumbers([0xaa, 0xbb, 0xcc, 0xdd]);
|
|
82
81
|
accumulate.providePreimageResponse = Result.error(ProvidePreimageError.AlreadyProvided, () => "Test: preimage already provided");
|
|
@@ -90,7 +89,7 @@ describe("HostCalls: Provide", () => {
|
|
|
90
89
|
it("should return OK if preimage was not provided before (for other service)", async () => {
|
|
91
90
|
const accumulate = new PartialStateMock();
|
|
92
91
|
const currentServiceId = tryAsServiceId(10_000);
|
|
93
|
-
const provide = new
|
|
92
|
+
const provide = Provide.new(currentServiceId, accumulate);
|
|
94
93
|
const serviceId = tryAsServiceId(15_000);
|
|
95
94
|
const preimage = BytesBlob.blobFromNumbers([0xaa, 0xbb, 0xcc, 0xdd]);
|
|
96
95
|
const { registers, memory } = prepareRegsAndMemory(serviceId, preimage);
|
|
@@ -102,7 +101,7 @@ describe("HostCalls: Provide", () => {
|
|
|
102
101
|
it("should return OK if preimage was not provided before (for self)", async () => {
|
|
103
102
|
const accumulate = new PartialStateMock();
|
|
104
103
|
const currentServiceId = tryAsServiceId(10_000);
|
|
105
|
-
const provide = new
|
|
104
|
+
const provide = Provide.new(currentServiceId, accumulate);
|
|
106
105
|
const serviceId = tryAsServiceId(15_000);
|
|
107
106
|
const preimage = BytesBlob.blobFromNumbers([0xaa, 0xbb, 0xcc, 0xdd]);
|
|
108
107
|
const { registers, memory } = prepareRegsAndMemory(serviceId, preimage);
|
|
@@ -15,7 +15,8 @@ export declare class Query implements HostCallHandler {
|
|
|
15
15
|
index: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"HostCallIndex[U32]">;
|
|
16
16
|
basicGasCost: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"SmallGas[U32]">;
|
|
17
17
|
tracedRegisters: (number & import("@typeberry/utils").WithOpaque<"register index">)[];
|
|
18
|
-
|
|
18
|
+
static new(currentServiceId: ServiceId, partialState: PartialState): Query;
|
|
19
|
+
private constructor();
|
|
19
20
|
execute(_gas: IGasCounter, regs: HostCallRegisters, memory: HostCallMemory): Promise<PvmExecution | undefined>;
|
|
20
21
|
}
|
|
21
22
|
//# sourceMappingURL=query.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAIlD,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,YAAY,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,mCAAmC,CAAC;AAQ1F;;;;;;GAMG;AACH,qBAAa,KAAM,YAAW,eAAe;
|
|
1
|
+
{"version":3,"file":"query.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAIlD,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,YAAY,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAC3E,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,mCAAmC,CAAC;AAQ1F;;;;;;GAMG;AACH,qBAAa,KAAM,YAAW,eAAe;aAUzB,gBAAgB,EAAE,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAV/B,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,eAAe,uEAA8C;IAE7D,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY;IAIlE,OAAO;IAKD,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CA+CrH"}
|
|
@@ -22,6 +22,9 @@ export class Query {
|
|
|
22
22
|
index = tryAsHostCallIndex(22);
|
|
23
23
|
basicGasCost = tryAsSmallGas(10);
|
|
24
24
|
tracedRegisters = traceRegisters(IN_OUT_REG_1, IN_OUT_REG_2);
|
|
25
|
+
static new(currentServiceId, partialState) {
|
|
26
|
+
return new Query(currentServiceId, partialState);
|
|
27
|
+
}
|
|
25
28
|
constructor(currentServiceId, partialState) {
|
|
26
29
|
this.currentServiceId = currentServiceId;
|
|
27
30
|
this.partialState = partialState;
|
|
@@ -11,7 +11,6 @@ import { PAGE_SIZE } from "#@typeberry/pvm-interpreter/spi-decoder/memory-conts.
|
|
|
11
11
|
import { PreimageStatusKind } from "../externalities/partial-state.js";
|
|
12
12
|
import { PartialStateMock } from "../externalities/partial-state-mock.js";
|
|
13
13
|
import { HostCallResult } from "../general/results.js";
|
|
14
|
-
import { emptyRegistersBuffer } from "../utils.js";
|
|
15
14
|
import { Query } from "./query.js";
|
|
16
15
|
const gas = gasCounter(tryAsGas(0));
|
|
17
16
|
const HASH_START_REG = 7;
|
|
@@ -20,14 +19,14 @@ const RESULT_REG_1 = 7;
|
|
|
20
19
|
const RESULT_REG_2 = 8;
|
|
21
20
|
const UPPER_BITS_SHIFT = 32n;
|
|
22
21
|
function prepareRegsAndMemory(hashStart, length, data, { registerMemory = true } = {}) {
|
|
23
|
-
const registers =
|
|
22
|
+
const registers = HostCallRegisters.empty();
|
|
24
23
|
registers.set(HASH_START_REG, tryAsU64(hashStart));
|
|
25
24
|
registers.set(LENGTH_REG, tryAsU64(length));
|
|
26
25
|
const builder = new MemoryBuilder();
|
|
27
26
|
if (registerMemory) {
|
|
28
27
|
builder.setReadablePages(tryAsMemoryIndex(hashStart), tryAsMemoryIndex(hashStart + PAGE_SIZE), data.raw);
|
|
29
28
|
}
|
|
30
|
-
const memory = new
|
|
29
|
+
const memory = HostCallMemory.new(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
|
|
31
30
|
return {
|
|
32
31
|
registers,
|
|
33
32
|
memory,
|
|
@@ -37,7 +36,7 @@ describe("HostCalls: Query", () => {
|
|
|
37
36
|
it("should return panic if memory is unreadable", async () => {
|
|
38
37
|
const accumulate = new PartialStateMock();
|
|
39
38
|
const currentServiceId = tryAsServiceId(10_000);
|
|
40
|
-
const query = new
|
|
39
|
+
const query = Query.new(currentServiceId, accumulate);
|
|
41
40
|
const w7 = tryAsU64(2 ** 16);
|
|
42
41
|
const w8 = tryAsU64(0);
|
|
43
42
|
const data = Bytes.fill(HASH_SIZE, 0xaa).asOpaque();
|
|
@@ -55,7 +54,7 @@ describe("HostCalls: Query", () => {
|
|
|
55
54
|
it("should return none if preimage is not found", async () => {
|
|
56
55
|
const accumulate = new PartialStateMock();
|
|
57
56
|
const currentServiceId = tryAsServiceId(10_000);
|
|
58
|
-
const query = new
|
|
57
|
+
const query = Query.new(currentServiceId, accumulate);
|
|
59
58
|
const w7 = tryAsU64(2 ** 16);
|
|
60
59
|
const w8 = tryAsU64(32);
|
|
61
60
|
const data = Bytes.fill(HASH_SIZE, 0xaa).asOpaque();
|
|
@@ -72,7 +71,7 @@ describe("HostCalls: Query", () => {
|
|
|
72
71
|
it("should return requested if preimage is requested", async () => {
|
|
73
72
|
const accumulate = new PartialStateMock();
|
|
74
73
|
const currentServiceId = tryAsServiceId(10_000);
|
|
75
|
-
const query = new
|
|
74
|
+
const query = Query.new(currentServiceId, accumulate);
|
|
76
75
|
const w7 = tryAsU64(2 ** 16);
|
|
77
76
|
const w8 = tryAsU64(32);
|
|
78
77
|
const data = Bytes.fill(HASH_SIZE, 0xaa).asOpaque();
|
|
@@ -92,7 +91,7 @@ describe("HostCalls: Query", () => {
|
|
|
92
91
|
it("should return available if preimage is available", async () => {
|
|
93
92
|
const accumulate = new PartialStateMock();
|
|
94
93
|
const currentServiceId = tryAsServiceId(10_000);
|
|
95
|
-
const query = new
|
|
94
|
+
const query = Query.new(currentServiceId, accumulate);
|
|
96
95
|
const w7 = tryAsU64(2 ** 16);
|
|
97
96
|
const w8 = tryAsU64(32);
|
|
98
97
|
const data = Bytes.fill(HASH_SIZE, 0xaa).asOpaque();
|
|
@@ -114,7 +113,7 @@ describe("HostCalls: Query", () => {
|
|
|
114
113
|
it("should return unavailable if preimage is unavailable", async () => {
|
|
115
114
|
const accumulate = new PartialStateMock();
|
|
116
115
|
const currentServiceId = tryAsServiceId(10_000);
|
|
117
|
-
const query = new
|
|
116
|
+
const query = Query.new(currentServiceId, accumulate);
|
|
118
117
|
const w7 = tryAsU64(2 ** 16);
|
|
119
118
|
const w8 = tryAsU64(32);
|
|
120
119
|
const data = Bytes.fill(HASH_SIZE, 0xaa).asOpaque();
|
|
@@ -137,7 +136,7 @@ describe("HostCalls: Query", () => {
|
|
|
137
136
|
it("should return reavailable if preimage is reavailable", async () => {
|
|
138
137
|
const accumulate = new PartialStateMock();
|
|
139
138
|
const currentServiceId = tryAsServiceId(10_000);
|
|
140
|
-
const query = new
|
|
139
|
+
const query = Query.new(currentServiceId, accumulate);
|
|
141
140
|
const w7 = tryAsU64(2 ** 16);
|
|
142
141
|
const w8 = tryAsU64(32);
|
|
143
142
|
const data = Bytes.fill(HASH_SIZE, 0xaa).asOpaque();
|
|
@@ -14,7 +14,8 @@ export declare class Solicit implements HostCallHandler {
|
|
|
14
14
|
index: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"HostCallIndex[U32]">;
|
|
15
15
|
basicGasCost: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"SmallGas[U32]">;
|
|
16
16
|
tracedRegisters: (number & import("@typeberry/utils").WithOpaque<"register index">)[];
|
|
17
|
-
|
|
17
|
+
static new(currentServiceId: ServiceId, partialState: PartialState): Solicit;
|
|
18
|
+
private constructor();
|
|
18
19
|
execute(_gas: IGasCounter, regs: HostCallRegisters, memory: HostCallMemory): Promise<PvmExecution | undefined>;
|
|
19
20
|
}
|
|
20
21
|
//# sourceMappingURL=solicit.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solicit.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/solicit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAsC,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,KAAK,YAAY,EAAwB,MAAM,mCAAmC,CAAC;AAM5F;;;;GAIG;AACH,qBAAa,OAAQ,YAAW,eAAe;
|
|
1
|
+
{"version":3,"file":"solicit.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/solicit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAsC,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAE3E,OAAO,EAAE,KAAK,YAAY,EAAwB,MAAM,mCAAmC,CAAC;AAM5F;;;;GAIG;AACH,qBAAa,OAAQ,YAAW,eAAe;aAU3B,gBAAgB,EAAE,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAV/B,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,eAAe,uEAAiC;IAEhD,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY;IAIlE,OAAO;IAKD,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAmCrH"}
|
|
@@ -18,6 +18,9 @@ export class Solicit {
|
|
|
18
18
|
index = tryAsHostCallIndex(23);
|
|
19
19
|
basicGasCost = tryAsSmallGas(10);
|
|
20
20
|
tracedRegisters = traceRegisters(IN_OUT_REG, 8);
|
|
21
|
+
static new(currentServiceId, partialState) {
|
|
22
|
+
return new Solicit(currentServiceId, partialState);
|
|
23
|
+
}
|
|
21
24
|
constructor(currentServiceId, partialState) {
|
|
22
25
|
this.currentServiceId = currentServiceId;
|
|
23
26
|
this.partialState = partialState;
|
|
@@ -14,7 +14,6 @@ import { Result } from "#@typeberry/utils";
|
|
|
14
14
|
import { RequestPreimageError } from "../externalities/partial-state.js";
|
|
15
15
|
import { PartialStateMock } from "../externalities/partial-state-mock.js";
|
|
16
16
|
import { HostCallResult } from "../general/results.js";
|
|
17
|
-
import { emptyRegistersBuffer } from "../utils.js";
|
|
18
17
|
import { Solicit } from "./solicit.js";
|
|
19
18
|
const gas = gasCounter(tryAsGas(0));
|
|
20
19
|
const RESULT_REG = 7;
|
|
@@ -22,14 +21,14 @@ const HASH_START_REG = 7;
|
|
|
22
21
|
const LENGTH_REG = 8;
|
|
23
22
|
function prepareRegsAndMemory(preimageHash, preimageLength, { skipPreimageHash = false } = {}) {
|
|
24
23
|
const memStart = 2 ** 16;
|
|
25
|
-
const registers =
|
|
24
|
+
const registers = HostCallRegisters.empty();
|
|
26
25
|
registers.set(HASH_START_REG, tryAsU64(memStart));
|
|
27
26
|
registers.set(LENGTH_REG, preimageLength);
|
|
28
27
|
const builder = new MemoryBuilder();
|
|
29
28
|
if (!skipPreimageHash) {
|
|
30
29
|
builder.setReadablePages(tryAsMemoryIndex(memStart), tryAsMemoryIndex(memStart + PAGE_SIZE), preimageHash.raw);
|
|
31
30
|
}
|
|
32
|
-
const memory = new
|
|
31
|
+
const memory = HostCallMemory.new(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
|
|
33
32
|
return {
|
|
34
33
|
registers,
|
|
35
34
|
memory,
|
|
@@ -39,7 +38,7 @@ describe("HostCalls: Solicit", () => {
|
|
|
39
38
|
it("should request a preimage hash", async () => {
|
|
40
39
|
const accumulate = new PartialStateMock();
|
|
41
40
|
const currentServiceId = tryAsServiceId(10_000);
|
|
42
|
-
const solicit = new
|
|
41
|
+
const solicit = Solicit.new(currentServiceId, accumulate);
|
|
43
42
|
const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4_096));
|
|
44
43
|
// when
|
|
45
44
|
await solicit.execute(gas, registers, memory);
|
|
@@ -50,7 +49,7 @@ describe("HostCalls: Solicit", () => {
|
|
|
50
49
|
it("should fail if hash not available", async () => {
|
|
51
50
|
const accumulate = new PartialStateMock();
|
|
52
51
|
const currentServiceId = tryAsServiceId(10_000);
|
|
53
|
-
const solicit = new
|
|
52
|
+
const solicit = Solicit.new(currentServiceId, accumulate);
|
|
54
53
|
const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4_096), {
|
|
55
54
|
skipPreimageHash: true,
|
|
56
55
|
});
|
|
@@ -63,7 +62,7 @@ describe("HostCalls: Solicit", () => {
|
|
|
63
62
|
it("should fail if already requested", async () => {
|
|
64
63
|
const accumulate = new PartialStateMock();
|
|
65
64
|
const currentServiceId = tryAsServiceId(10_000);
|
|
66
|
-
const solicit = new
|
|
65
|
+
const solicit = Solicit.new(currentServiceId, accumulate);
|
|
67
66
|
accumulate.requestPreimageResponse = Result.error(RequestPreimageError.AlreadyRequested, () => "Test: preimage already requested for solicit");
|
|
68
67
|
const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4_096));
|
|
69
68
|
// when
|
|
@@ -75,7 +74,7 @@ describe("HostCalls: Solicit", () => {
|
|
|
75
74
|
it("should fail if already available", async () => {
|
|
76
75
|
const accumulate = new PartialStateMock();
|
|
77
76
|
const currentServiceId = tryAsServiceId(10_000);
|
|
78
|
-
const solicit = new
|
|
77
|
+
const solicit = Solicit.new(currentServiceId, accumulate);
|
|
79
78
|
accumulate.requestPreimageResponse = Result.error(RequestPreimageError.AlreadyAvailable, () => "Test: preimage already available for solicit");
|
|
80
79
|
const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4_096));
|
|
81
80
|
// when
|
|
@@ -87,7 +86,7 @@ describe("HostCalls: Solicit", () => {
|
|
|
87
86
|
it("should fail if balance too low", async () => {
|
|
88
87
|
const accumulate = new PartialStateMock();
|
|
89
88
|
const currentServiceId = tryAsServiceId(10_000);
|
|
90
|
-
const solicit = new
|
|
89
|
+
const solicit = Solicit.new(currentServiceId, accumulate);
|
|
91
90
|
accumulate.requestPreimageResponse = Result.error(RequestPreimageError.InsufficientFunds, () => "Test: insufficient funds for solicit");
|
|
92
91
|
const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(4_096));
|
|
93
92
|
// when
|
|
@@ -24,7 +24,8 @@ export declare class Transfer implements HostCallHandler {
|
|
|
24
24
|
*/
|
|
25
25
|
basicGasCost: (number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"SmallGas[U32]">) | ((regs: HostCallRegisters) => import("@typeberry/pvm-interface").Gas);
|
|
26
26
|
tracedRegisters: (number & import("@typeberry/utils").WithOpaque<"register index">)[];
|
|
27
|
-
|
|
27
|
+
static new(currentServiceId: ServiceId, partialState: PartialState): Transfer;
|
|
28
|
+
private constructor();
|
|
28
29
|
execute(gas: IGasCounter, regs: HostCallRegisters, memory: HostCallMemory): Promise<undefined | PvmExecution>;
|
|
29
30
|
}
|
|
30
31
|
//# sourceMappingURL=transfer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,kBAAkB,CAAC;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAsC,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,0BAA0B,CAAC;AAErF,OAAO,EAAE,KAAK,YAAY,EAAsC,MAAM,mCAAmC,CAAC;AAU1G;;;;GAIG;AACH,qBAAa,QAAS,YAAW,eAAe;
|
|
1
|
+
{"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/transfer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAmB,MAAM,kBAAkB,CAAC;AAEnE,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAsC,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,KAAK,WAAW,EAA2B,MAAM,0BAA0B,CAAC;AAErF,OAAO,EAAE,KAAK,YAAY,EAAsC,MAAM,mCAAmC,CAAC;AAU1G;;;;GAIG;AACH,qBAAa,QAAS,YAAW,eAAe;aAuB5B,gBAAgB,EAAE,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAvB/B,KAAK,iIAA0B;IAC/B;;;;;;;;;OASG;IACH,YAAY,wIAED,iBAAiB,6CAAoD;IAEhF,eAAe,uEAAgF;IAE/F,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY;IAIlE,OAAO;IAKD,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC;CAsDpH"}
|
|
@@ -34,6 +34,9 @@ export class Transfer {
|
|
|
34
34
|
? tryAsSmallGas(10)
|
|
35
35
|
: (regs) => tryAsGas(10n + regs.get(TRANSFER_GAS_FEE_REG));
|
|
36
36
|
tracedRegisters = traceRegisters(IN_OUT_REG, AMOUNT_REG, TRANSFER_GAS_FEE_REG, MEMO_START_REG);
|
|
37
|
+
static new(currentServiceId, partialState) {
|
|
38
|
+
return new Transfer(currentServiceId, partialState);
|
|
39
|
+
}
|
|
37
40
|
constructor(currentServiceId, partialState) {
|
|
38
41
|
this.currentServiceId = currentServiceId;
|
|
39
42
|
this.partialState = partialState;
|
|
@@ -14,7 +14,6 @@ import { Compatibility, GpVersion, Result } from "#@typeberry/utils";
|
|
|
14
14
|
import { TRANSFER_MEMO_BYTES, TransferError } from "../externalities/partial-state.js";
|
|
15
15
|
import { PartialStateMock } from "../externalities/partial-state-mock.js";
|
|
16
16
|
import { HostCallResult } from "../general/results.js";
|
|
17
|
-
import { emptyRegistersBuffer } from "../utils.js";
|
|
18
17
|
import { Transfer } from "./transfer.js";
|
|
19
18
|
const RESULT_REG = 7;
|
|
20
19
|
const DESTINATION_REG = 7;
|
|
@@ -23,7 +22,7 @@ const ON_TRANSFER_GAS_REG = 9; // `l`
|
|
|
23
22
|
const MEMO_START_REG = 10; // `o`
|
|
24
23
|
function prepareRegsAndMemory(destination, amount, gas, memo, { skipMemo = false } = {}) {
|
|
25
24
|
const memStart = 2 ** 16;
|
|
26
|
-
const registers =
|
|
25
|
+
const registers = HostCallRegisters.empty();
|
|
27
26
|
registers.set(DESTINATION_REG, tryAsU64(destination));
|
|
28
27
|
registers.set(AMOUNT_REG, amount);
|
|
29
28
|
registers.set(ON_TRANSFER_GAS_REG, gas);
|
|
@@ -32,7 +31,7 @@ function prepareRegsAndMemory(destination, amount, gas, memo, { skipMemo = false
|
|
|
32
31
|
if (!skipMemo) {
|
|
33
32
|
builder.setReadablePages(tryAsMemoryIndex(memStart), tryAsMemoryIndex(memStart + PAGE_SIZE), memo.raw);
|
|
34
33
|
}
|
|
35
|
-
const memory = new
|
|
34
|
+
const memory = HostCallMemory.new(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
|
|
36
35
|
return {
|
|
37
36
|
registers,
|
|
38
37
|
memory,
|
|
@@ -43,7 +42,7 @@ describe("HostCalls: Transfer", () => {
|
|
|
43
42
|
it("should perform a transfer to self?", async () => {
|
|
44
43
|
const accumulate = new PartialStateMock();
|
|
45
44
|
const currentServiceId = tryAsServiceId(10_000);
|
|
46
|
-
const transfer = new
|
|
45
|
+
const transfer = Transfer.new(currentServiceId, accumulate);
|
|
47
46
|
const { registers, memory } = prepareRegsAndMemory(transfer.currentServiceId, tryAsU64(2n ** 45n), tryAsU64(1000n), Bytes.fill(TRANSFER_MEMO_BYTES, 33));
|
|
48
47
|
const gas = gasCounter(tryAsGas(10_000));
|
|
49
48
|
const basicGasCost = typeof transfer.basicGasCost === "number" ? transfer.basicGasCost : transfer.basicGasCost(registers);
|
|
@@ -61,7 +60,7 @@ describe("HostCalls: Transfer", () => {
|
|
|
61
60
|
it("should perform a transfer to different account", async () => {
|
|
62
61
|
const accumulate = new PartialStateMock();
|
|
63
62
|
const currentServiceId = tryAsServiceId(10_000);
|
|
64
|
-
const transfer = new
|
|
63
|
+
const transfer = Transfer.new(currentServiceId, accumulate);
|
|
65
64
|
const { registers, memory } = prepareRegsAndMemory(tryAsServiceId(15_000), tryAsU64(2n ** 45n), tryAsU64(1000n), Bytes.fill(TRANSFER_MEMO_BYTES, 33));
|
|
66
65
|
const gas = gasCounter(tryAsGas(10_000));
|
|
67
66
|
const basicGasCost = typeof transfer.basicGasCost === "number" ? transfer.basicGasCost : transfer.basicGasCost(registers);
|
|
@@ -77,7 +76,7 @@ describe("HostCalls: Transfer", () => {
|
|
|
77
76
|
itPost072("should OOG if gas is too low", async () => {
|
|
78
77
|
const accumulate = new PartialStateMock();
|
|
79
78
|
const currentServiceId = tryAsServiceId(10_000);
|
|
80
|
-
const transfer = new
|
|
79
|
+
const transfer = Transfer.new(currentServiceId, accumulate);
|
|
81
80
|
const { registers, memory } = prepareRegsAndMemory(tryAsServiceId(15_000), tryAsU64(2n ** 45n), tryAsU64(1000n), Bytes.fill(TRANSFER_MEMO_BYTES, 33));
|
|
82
81
|
const gas = gasCounter(tryAsGas(1_000));
|
|
83
82
|
const basicGasCost = typeof transfer.basicGasCost === "number" ? transfer.basicGasCost : transfer.basicGasCost(registers);
|
|
@@ -93,7 +92,7 @@ describe("HostCalls: Transfer", () => {
|
|
|
93
92
|
it("should fail if there is no memory for memo", async () => {
|
|
94
93
|
const accumulate = new PartialStateMock();
|
|
95
94
|
const currentServiceId = tryAsServiceId(10_000);
|
|
96
|
-
const transfer = new
|
|
95
|
+
const transfer = Transfer.new(currentServiceId, accumulate);
|
|
97
96
|
const { registers, memory } = prepareRegsAndMemory(tryAsServiceId(15_000), tryAsU64(2n ** 45n), tryAsU64(1000n), Bytes.fill(TRANSFER_MEMO_BYTES, 33), { skipMemo: true });
|
|
98
97
|
const gas = gasCounter(tryAsGas(10_000));
|
|
99
98
|
const basicGasCost = typeof transfer.basicGasCost === "number" ? transfer.basicGasCost : transfer.basicGasCost(registers);
|
|
@@ -109,7 +108,7 @@ describe("HostCalls: Transfer", () => {
|
|
|
109
108
|
it("should fail if gas is too low", async () => {
|
|
110
109
|
const accumulate = new PartialStateMock();
|
|
111
110
|
const currentServiceId = tryAsServiceId(10_000);
|
|
112
|
-
const transfer = new
|
|
111
|
+
const transfer = Transfer.new(currentServiceId, accumulate);
|
|
113
112
|
const { registers, memory } = prepareRegsAndMemory(tryAsServiceId(15_000), tryAsU64(2n ** 45n), tryAsU64(1000n), Bytes.fill(TRANSFER_MEMO_BYTES, 33));
|
|
114
113
|
const gas = gasCounter(tryAsGas(10_000));
|
|
115
114
|
const basicGasCost = typeof transfer.basicGasCost === "number" ? transfer.basicGasCost : transfer.basicGasCost(registers);
|
|
@@ -128,7 +127,7 @@ describe("HostCalls: Transfer", () => {
|
|
|
128
127
|
it("should fail if amount is too big", async () => {
|
|
129
128
|
const accumulate = new PartialStateMock();
|
|
130
129
|
const currentServiceId = tryAsServiceId(10_000);
|
|
131
|
-
const transfer = new
|
|
130
|
+
const transfer = Transfer.new(currentServiceId, accumulate);
|
|
132
131
|
const { registers, memory } = prepareRegsAndMemory(tryAsServiceId(15_000), tryAsU64(2n ** 45n), tryAsU64(1000n), Bytes.fill(TRANSFER_MEMO_BYTES, 33));
|
|
133
132
|
const gas = gasCounter(tryAsGas(10_000));
|
|
134
133
|
const basicGasCost = typeof transfer.basicGasCost === "number" ? transfer.basicGasCost : transfer.basicGasCost(registers);
|
|
@@ -147,7 +146,7 @@ describe("HostCalls: Transfer", () => {
|
|
|
147
146
|
it("should fail if destination does not exist", async () => {
|
|
148
147
|
const accumulate = new PartialStateMock();
|
|
149
148
|
const currentServiceId = tryAsServiceId(10_000);
|
|
150
|
-
const transfer = new
|
|
149
|
+
const transfer = Transfer.new(currentServiceId, accumulate);
|
|
151
150
|
const { registers, memory } = prepareRegsAndMemory(tryAsServiceId(15_000), tryAsU64(2n ** 45n), tryAsU64(1000n), Bytes.fill(TRANSFER_MEMO_BYTES, 33));
|
|
152
151
|
const gas = gasCounter(tryAsGas(10_000));
|
|
153
152
|
const basicGasCost = typeof transfer.basicGasCost === "number" ? transfer.basicGasCost : transfer.basicGasCost(registers);
|
|
@@ -14,7 +14,8 @@ export declare class Upgrade implements HostCallHandler {
|
|
|
14
14
|
index: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"HostCallIndex[U32]">;
|
|
15
15
|
basicGasCost: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"SmallGas[U32]">;
|
|
16
16
|
tracedRegisters: (number & import("@typeberry/utils").WithOpaque<"register index">)[];
|
|
17
|
-
|
|
17
|
+
static new(currentServiceId: ServiceId, partialState: PartialState): Upgrade;
|
|
18
|
+
private constructor();
|
|
18
19
|
execute(_gas: IGasCounter, regs: HostCallRegisters, memory: HostCallMemory): Promise<undefined | PvmExecution>;
|
|
19
20
|
}
|
|
20
21
|
//# sourceMappingURL=upgrade.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAsC,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAQtE;;;;GAIG;AACH,qBAAa,OAAQ,YAAW,eAAe;
|
|
1
|
+
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACpG,OAAO,EAAE,YAAY,EAAsC,MAAM,2BAA2B,CAAC;AAC7F,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAQtE;;;;GAIG;AACH,qBAAa,OAAQ,YAAW,eAAe;aAU3B,gBAAgB,EAAE,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAV/B,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,eAAe,uEAAsD;IAErE,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY;IAIlE,OAAO;IAKD,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,GAAG,YAAY,CAAC;CAqBrH"}
|
|
@@ -18,6 +18,9 @@ export class Upgrade {
|
|
|
18
18
|
index = tryAsHostCallIndex(19);
|
|
19
19
|
basicGasCost = tryAsSmallGas(10);
|
|
20
20
|
tracedRegisters = traceRegisters(IN_OUT_REG, GAS_REG, ALLOWANCE_REG);
|
|
21
|
+
static new(currentServiceId, partialState) {
|
|
22
|
+
return new Upgrade(currentServiceId, partialState);
|
|
23
|
+
}
|
|
21
24
|
constructor(currentServiceId, partialState) {
|
|
22
25
|
this.currentServiceId = currentServiceId;
|
|
23
26
|
this.partialState = partialState;
|
|
@@ -12,7 +12,6 @@ import { tryAsSbrkIndex } from "#@typeberry/pvm-interpreter/memory/memory-index.
|
|
|
12
12
|
import { PAGE_SIZE } from "#@typeberry/pvm-interpreter/spi-decoder/memory-conts.js";
|
|
13
13
|
import { PartialStateMock } from "../externalities/partial-state-mock.js";
|
|
14
14
|
import { HostCallResult } from "../general/results.js";
|
|
15
|
-
import { emptyRegistersBuffer } from "../utils.js";
|
|
16
15
|
import { Upgrade } from "./upgrade.js";
|
|
17
16
|
const gas = gasCounter(tryAsGas(0));
|
|
18
17
|
const RESULT_REG = 7;
|
|
@@ -21,7 +20,7 @@ const GAS_REG = 8;
|
|
|
21
20
|
const BALANCE_REG = 9;
|
|
22
21
|
function prepareRegsAndMemory(codeHash, gas, balance, { skipCodeHash = false } = {}) {
|
|
23
22
|
const memStart = 2 ** 16;
|
|
24
|
-
const registers =
|
|
23
|
+
const registers = HostCallRegisters.empty();
|
|
25
24
|
registers.set(CODE_HASH_START_REG, tryAsU64(memStart));
|
|
26
25
|
registers.set(GAS_REG, gas);
|
|
27
26
|
registers.set(BALANCE_REG, balance);
|
|
@@ -29,7 +28,7 @@ function prepareRegsAndMemory(codeHash, gas, balance, { skipCodeHash = false } =
|
|
|
29
28
|
if (!skipCodeHash) {
|
|
30
29
|
builder.setReadablePages(tryAsMemoryIndex(memStart), tryAsMemoryIndex(memStart + PAGE_SIZE), codeHash.raw);
|
|
31
30
|
}
|
|
32
|
-
const memory = new
|
|
31
|
+
const memory = HostCallMemory.new(builder.finalize(tryAsMemoryIndex(0), tryAsSbrkIndex(0)));
|
|
33
32
|
return {
|
|
34
33
|
registers,
|
|
35
34
|
memory,
|
|
@@ -39,7 +38,7 @@ describe("HostCalls: Upgrade", () => {
|
|
|
39
38
|
it("should upgrade a service", async () => {
|
|
40
39
|
const accumulate = new PartialStateMock();
|
|
41
40
|
const currentServiceId = tryAsServiceId(10_000);
|
|
42
|
-
const upgrade = new
|
|
41
|
+
const upgrade = Upgrade.new(currentServiceId, accumulate);
|
|
43
42
|
const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(2n ** 40n), tryAsU64(2n ** 50n));
|
|
44
43
|
// when
|
|
45
44
|
await upgrade.execute(gas, registers, memory);
|
|
@@ -50,7 +49,7 @@ describe("HostCalls: Upgrade", () => {
|
|
|
50
49
|
it("should fail when code not readable", async () => {
|
|
51
50
|
const accumulate = new PartialStateMock();
|
|
52
51
|
const currentServiceId = tryAsServiceId(10_000);
|
|
53
|
-
const upgrade = new
|
|
52
|
+
const upgrade = Upgrade.new(currentServiceId, accumulate);
|
|
54
53
|
const { registers, memory } = prepareRegsAndMemory(Bytes.fill(HASH_SIZE, 0x69).asOpaque(), tryAsU64(2n ** 40n), tryAsU64(2n ** 50n), { skipCodeHash: true });
|
|
55
54
|
// when
|
|
56
55
|
const result = await upgrade.execute(gas, registers, memory);
|
|
@@ -13,7 +13,8 @@ export declare class Yield implements HostCallHandler {
|
|
|
13
13
|
index: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"HostCallIndex[U32]">;
|
|
14
14
|
basicGasCost: number & import("@typeberry/numbers").WithBytesRepresentation<4> & import("@typeberry/utils").WithOpaque<"SmallGas[U32]">;
|
|
15
15
|
tracedRegisters: (number & import("@typeberry/utils").WithOpaque<"register index">)[];
|
|
16
|
-
|
|
16
|
+
static new(currentServiceId: ServiceId, partialState: PartialState): Yield;
|
|
17
|
+
private constructor();
|
|
17
18
|
execute(_gas: IGasCounter, regs: HostCallRegisters, memory: HostCallMemory): Promise<PvmExecution | undefined>;
|
|
18
19
|
}
|
|
19
20
|
//# sourceMappingURL=yield.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yield.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/yield.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,YAAY,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAMtE;;;;GAIG;AACH,qBAAa,KAAM,YAAW,eAAe;
|
|
1
|
+
{"version":3,"file":"yield.d.ts","sourceRoot":"","sources":["../../../../../../packages/jam/jam-host-calls/accumulate/yield.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,YAAY,EAGb,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,WAAW,EAAiB,MAAM,0BAA0B,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAMtE;;;;GAIG;AACH,qBAAa,KAAM,YAAW,eAAe;aAUzB,gBAAgB,EAAE,SAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,YAAY;IAV/B,KAAK,iIAA0B;IAC/B,YAAY,4HAAqB;IACjC,eAAe,uEAA8B;IAE7C,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY;IAIlE,OAAO;IAKD,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC;CAgBrH"}
|
|
@@ -16,6 +16,9 @@ export class Yield {
|
|
|
16
16
|
index = tryAsHostCallIndex(25);
|
|
17
17
|
basicGasCost = tryAsSmallGas(10);
|
|
18
18
|
tracedRegisters = traceRegisters(IN_OUT_REG);
|
|
19
|
+
static new(currentServiceId, partialState) {
|
|
20
|
+
return new Yield(currentServiceId, partialState);
|
|
21
|
+
}
|
|
19
22
|
constructor(currentServiceId, partialState) {
|
|
20
23
|
this.currentServiceId = currentServiceId;
|
|
21
24
|
this.partialState = partialState;
|