* added [unstable][seal2] call()
* updated test to cover new seal_call proof_limit
* docs updated
* add [seal2][unstable] instantiate() and test
* add [seal2][unstable] weight_to_fee() + docs and test
* add [seal2][unstable] gas_left() + docs and test
* update benchmarks
* add DefaultDepositLimit to pallet Config
* specify deposit limit for nested call
add test for nested call deposit limit
save: separate deposit limit for nested calls
* specify deposit limit for nested instantiate
save: works with test
cleaned up debugging outputs
* update benchmarks
* added missing fixtures
* fix benches
* pass explicit deposit limit to storage bench
* explicit deposit limit for another set_storage bench
* add more deposit limit for storage benches
* moving to simplified benchmarks
* moved to simplified benchmarks
* fix seal_weight_to_fee bench
* fix seal_instantiate benchmark
* doc typo fix
* default dl for benchmarking
more dl for tests
dl for tests to max
deposit_limit fix in instantiate bench
fix instantiate bench
fix instantiate benchmark
fix instantiate bench again
remove dbg
fix seal bench again
fixing it still
seal_instantiate zero deposit
less runs to check if deposit enough
try
try 2
try 3
try 4
* max_runtime_mem to Schedule limits
* add default deposit limit fallback check to test
* weight params renaming
* fmt
* Update frame/contracts/src/benchmarking/mod.rs
Co-authored-by: PG Herveou <pgherveou@gmail.com>
* prettify inputs in tests
* typestate param refactored
---------
Co-authored-by: PG Herveou <pgherveou@gmail.com>
* Change copyright year to 2023 from 2022
* Fix incorrect update of copyright year
* Remove years from copy right header
* Fix remaining files
* Fix typo in a header and remove update-copyright.sh
* Removed `has_duplicates` check form the `deposit_event`.
Removed the usage of `Error::DuplicateTopics`.
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
Co-authored-by: command-bot <>
* macro to expand traits for host functions documentation
* other way: same Doc trait in seal modules
* added docs for macro, and remove `doc` attribute
* fmt
* Apply suggestions from code review
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* make docs to be generated into re-exported `api_doc` module; fix
unrelated elder docs;
* make it compile without `doc` attr passed to macro
* make alias functions indicated explicitly in docs
* tidy up docs
* refactored a bit
* macro to auto-add doc warning for unstable functions
* invoke macro with no doc generation by default
* addressed review comments
* hide api_doc module behind cfg(doc)
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* make debug buffer work like a FIFO pipe
* remove unused Error type
* Remove panics
* Update frame/contracts/src/exec.rs
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com>
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* Remove contracts RPCs
* Remove serde as RPC serialization is no longer needed
* Rename folder to match crate name
* Compile fix
* Remove Byte wrapper
* works but ugly
* refactored + renamed host fns
* fixed tests
* fix benchmarks
* updated marco docs
* Update frame/contracts/proc-macro/src/lib.rs
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* fix for the duplicated prefixed alias bug + test
* refactored a bit
* fix warnings + try to make macro rustdoc compile
* fmt after clearing
* examples update + nocompile
* add seal_ prefixes to unstable host functions
* updated after a review
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* Give chain extensions the ability to store some temporary values
* Update frame/contracts/src/wasm/runtime.rs
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
* Rename func_id -> id
* Replace `id` param by two functions on `env`
Co-authored-by: Hernando Castano <HCastano@users.noreply.github.com>
* save
* builds and old tests pass
save: temporary value dropped while borrowed
save: finally builds
test updated but still fails
* type names enhanced
* VarSizedKey bounded to new Config param
* improved wasm runtime updated funcs
* unstable-interface tests fixed
* benchmarks fixed
* Apply suggestions from code review
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* fixes on feedback
* fixes on feedback applied + make it build
* benchmarks build but fail (old)
* "Original code too large"
* seal_clear_storage bench fixed (code size workaround hack removal tbd)
* bench_seal_clear_storage pass
* bench_seal_take_storage ... ok
* added new seal_set_storage + updated benchmarks
* added new seal_get_storage + updated benchmarks
* added new seal_contains_storage + updated benchmarks
* added tests for _transparent exec functions
* wasm test for clear_storage
* wasm test for take_storage
* wasm test for new set_storage
* wasm test for new get_storage
* wasm test for new contains_storage
* CI fix
* ci fix
* ci fix
* ci fix
* cargo run --quiet --profile=production --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark pallet --chain=dev --steps=50 --repeat=20 --pallet=pallet_contracts --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/contracts/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* fixes according to the review feedback
* tests & benchmarks fixed
* cargo run --quiet --profile=production --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark pallet --chain=dev --steps=50 --repeat=20 --pallet=pallet_contracts --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/contracts/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* refactoring
* fix to runtime api
* ci fix
* ctx.get_storage() factored out
* ctx.contains_storage() factored out
* number of batches reduced for transparent hashing storage benchmarks
* contracts RPC & pallet::get_storage to use transparent hashing
* node and rpc updated to use get_storage with VarSizedKey
* refactored (more concize)
* refactored contains_storage (DRYed)
* refactored contains_storage (DRYed)
* fix rpc
* fmt fix
* more fixes in rpc
* rollback `Pallet:get_storage` to Vec<u8> and rpc and node parts related to it
* added `KeyDecodingFailed` error
* Revert weird "fmt fix"
This reverts commit c582cfff4b5cb2c9929fd5e3b45519bb24aeb657.
* node-executor basic test update
* fix node-executor basic test
* benchmarks fix
* more benchmarks fix
* FixedSizedKey is hidden from pub, VarSizedKey is exported as StorageKey
* ci fix
* set_storage benchmark fix
* ci fix
* ci fix
* comments improved
* new error code to rpc: KEY_DECODING_FAILED
* Put `rusty-cachier` before PR merge into `master` for `cargo-check-benches` job
* cargo run --quiet --profile=production --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark pallet --chain=dev --steps=50 --repeat=20 --pallet=pallet_contracts --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/contracts/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* minor optimization
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
Co-authored-by: Parity Bot <admin@parity.io>
Co-authored-by: Vladimir Istyufeev <vladimir@parity.io>
Co-authored-by: command-bot <>
* stabilize seal_code_hash, seal_set_code_hash, seal_own_code_hash
* fix missed place found by CI
* Fixed missed __unstable__
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* `ecdsa::Public::to_eth_address` + test, beefy-mmr `convert()` to use it, contracts Ext interface
* `seal_ecdsa_to_eth_address` all but benchmark done
* `seal_ecdsa_to_eth_address` + wasm test
* `seal_ecdsa_to_eth_address` + benchmark
* fixed dependencies
* Apply suggestions from code review
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* fixes from review #1
* ecdsa::Public(*pk).to_eth_address() moved to frame_support and contracts to use it
* beefy-mmr to use newly added frame_support function for convertion
* a doc fix
* import fix
* benchmark fix-1 (still fails)
* benchmark fixed
* Apply suggestions from code review
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* fixes on Alex T feedback
* to_eth_address() put into extension trait for sp-core::ecdsa::Public
* Update frame/support/src/crypto/ecdsa.rs
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* Update frame/contracts/src/wasm/mod.rs
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* fixes on issues pointed out in review
* benchmark errors fixed
* fmt fix
* EcdsaRecoverFailed err docs updated
* Apply suggestions from code review
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
* make applied suggestions compile
* get rid of unwrap() in runtime
* Remove expect
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
Co-authored-by: Bastian Köcher <info@kchr.de>
* `seal_origin` + tests added
* `seal_origin` benchmark added
* `seal_code_hash` + tests added
* `seal_code_hash` benchmark added
* `seal_own_code_hash` + tests added
* `seal_own_code_hash` benchmark added
* fmt lil fix
* akward accident bug fix
* Apply suggestions from code review
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* Apply suggestions from code review
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* benchmark fix
* `WasmModule::getter()` to take `module_name` arg
* test enhanced
* fixes based on review feedback
* Apply suggestions from code review
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* Hash left as const to return a ref to it from mock
* HASH test val to local const in mock
* Apply suggestions from code review
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
* fixes to benchmarks according to review feedback
* cargo run --quiet --profile=production --features=runtime-benchmarks --manifest-path=bin/node/cli/Cargo.toml -- benchmark --chain=dev --steps=50 --repeat=20 --pallet=pallet_contracts --extrinsic=* --execution=wasm --wasm-execution=compiled --heap-pages=4096 --output=./frame/contracts/src/weights.rs --template=./.maintain/frame-weight-template.hbs
* removed `seal_origin` from API
Co-authored-by: Alexander Theißen <alex.theissen@me.com>
Co-authored-by: Parity Bot <admin@parity.io>