PG Herveou
f517900a48
Contracts expose pallet-xcm ( #1248 )
...
This PR introduces:
- XCM host functions `xcm_send`, `xcm_execute`
- An Xcm trait into the config. that proxy these functions to to
`pallet_xcm`, or disable their usage by using `()`.
- A mock_network and xcm_test files to test the newly added xcm-related
functions.
---------
Co-authored-by: Keith Yeung <kungfukeith11@gmail.com >
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
Co-authored-by: command-bot <>
Co-authored-by: Francisco Aguirre <franciscoaguirreperez@gmail.com >
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
2023-11-14 22:32:14 +02:00
PG Herveou
076529ea55
Contracts: Update read_sandbox ( #1390 )
...
* Update runtime.rs
* Fix
* Revert "Update runtime.rs"
This reverts commit 808f026a835b1f2707f640799454a50fd3a8be7b.
* nit mono-repo fixes
2023-09-04 21:33:20 +02:00
Juan
bdbe982970
Restructure dispatch macro related exports ( #1162 )
...
* restructure dispatch macro related exports
* moved Dispatchable to lib.rs
* fix .gitignore final newline
* ".git/.scripts/commands/fmt/fmt.sh"
* fix rustdocs
* wip
---------
Co-authored-by: Liam Aharon <liam.aharon@hotmail.com >
Co-authored-by: command-bot <>
Co-authored-by: ordian <write@reusable.software >
2023-08-31 14:08:44 +03:00
Juan
878c562cd4
Restructure frame_support macro related exports ( #14745 )
...
* make reexports private
* make reexports private 2
* make reexports private for runtime-benchmarking
* make reexports private for try-runtime
* fix for try-runtime
* make reexports private for tests
* fmt
* make reexports private for tests
* make reexports private for experimental
* fix beefy
* fix ui test
* fix ui test
* fix benches
* ".git/.scripts/commands/fmt/fmt.sh"
* fix contracts use
* wip
* wip
* do not reexport sp_api::metadata_ir
* fix CI checks
* fix support tests
* ".git/.scripts/commands/fmt/fmt.sh"
* Update frame/support/src/lib.rs
Co-authored-by: Bastian Köcher <git@kchr.de >
* import codec directly
* fmt
* fix node-cli tests
---------
Co-authored-by: command-bot <>
Co-authored-by: Bastian Köcher <git@kchr.de >
2023-08-23 12:30:12 +00:00
PG Herveou
5a5b1df69b
Contracts Add deposit for dependencies ( #14079 )
...
* wip
* fixes
* rm comment
* join fns
* clippy
* Fix limits
* reduce diff
* fix
* fix
* fix typo
* refactor store to use self
* refactor run to take self by value
* pass tests
* rm comment
* fixes
* fix typo
* rm
* fix fmt
* clippy
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
* Update frame/contracts/src/lib.rs
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
* Update frame/contracts/src/wasm/mod.rs
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
* Update frame/contracts/src/wasm/mod.rs
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
* PR review, rm duplicate increment_refcount
* PR review
* Update frame/contracts/src/wasm/prepare.rs
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
* Add test for failing storage_deposit
* fix lint
* wip
* Delegate update take 2
* update
* fix migration
* fix migration
* doc
* fix lint
* update migration
* fix warning
* reformat comment
* regenerate weightInfo trait
* fix merge
* PR review
https://github.com/paritytech/substrate/pull/14079#discussion_r1255904563
* PR review
https://github.com/paritytech/substrate/pull/14079/files#r1257521373
* PR review remove optimisation
https://github.com/paritytech/substrate/pull/14079/files#r1263312237
* PR review fix return type
https://github.com/paritytech/substrate/pull/14079/files#r1263315804
* Apply suggestions from code review
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
* PR review pass CodeInfo and update docstring
https://github.com/paritytech/substrate/pull/14079/files#r1257522327
* PR review add code_info to the executable
https://github.com/paritytech/substrate/pull/14079/files#r1263309049
* rename info -> contract_info
* Update frame/contracts/src/exec.rs
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
* Update frame/contracts/fixtures/add_remove_delegate_dependency.wat
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
* Update frame/contracts/src/migration/v13.rs
* fix tests
* Fmt & fix tests
* Test Result<(), _> return type
* Update frame/contracts/src/migration.rs
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
* Revert "Test Result<(), _> return type"
This reverts commit a876168f2054edf84d720c666387583ccbe78dcd.
* add / update doc comments
* fix backticks
* Revert "Revert "Test Result<(), _> return type""
This reverts commit 3cbb6161d1abd9520cd9f8519b4dfbf4f29a2998.
* fix bench
* fix bench
* fix
* Update frame/contracts/src/storage/meter.rs
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
* rm stale comments
* Apply suggestions from code review
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
* PR suggestion
* Add missing doc
* fx lint
* ".git/.scripts/commands/bench/bench.sh" --subcommand=pallet --runtime=dev --target_dir=substrate --pallet=pallet_contracts
* Update frame/contracts/src/lib.rs
Co-authored-by: Juan <juangirini@gmail.com >
---------
Co-authored-by: command-bot <>
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
Co-authored-by: Juan <juangirini@gmail.com >
2023-07-26 12:09:02 +00:00
gupnik
5e7b27e98c
Moves Block to frame_system instead of construct_runtime and removes Header and BlockNumber ( #14437 )
...
* Initial setup
* Adds node block
* Uses UncheckedExtrinsic and removes Where section
* Updates frame_system to use Block
* Adds deprecation warning
* Fixes pallet-timestamp
* Removes Header and BlockNumber
* Addresses review comments
* Addresses review comments
* Adds comment about compiler bug
* Removes where clause
* Refactors code
* Fixes errors in cargo check
* Fixes errors in cargo check
* Fixes warnings in cargo check
* Formatting
* Fixes construct_runtime tests
* Uses import instead of full path for BlockNumber
* Uses import instead of full path for Header
* Formatting
* Fixes construct_runtime tests
* Fixes imports in benchmarks
* Formatting
* Fixes construct_runtime tests
* Formatting
* Minor updates
* Fixes construct_runtime ui tests
* Fixes construct_runtime ui tests with 1.70
* Fixes docs
* Fixes docs
* Adds u128 mock block type
* Fixes split example
* fixes for cumulus
* ".git/.scripts/commands/fmt/fmt.sh"
* Updates new tests
* Fixes fully-qualified path in few places
* Formatting
* Update frame/examples/default-config/src/lib.rs
Co-authored-by: Juan <juangirini@gmail.com >
* Update frame/support/procedural/src/construct_runtime/mod.rs
Co-authored-by: Juan <juangirini@gmail.com >
* ".git/.scripts/commands/fmt/fmt.sh"
* Addresses some review comments
* Fixes build
* ".git/.scripts/commands/fmt/fmt.sh"
* Update frame/democracy/src/lib.rs
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Update frame/democracy/src/lib.rs
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Update frame/support/procedural/src/construct_runtime/mod.rs
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Update frame/support/procedural/src/construct_runtime/mod.rs
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Addresses review comments
* Updates trait bounds
* Minor fix
* ".git/.scripts/commands/fmt/fmt.sh"
* Removes unnecessary bound
* ".git/.scripts/commands/fmt/fmt.sh"
* Updates test
* Fixes build
* Adds a bound for header
* ".git/.scripts/commands/fmt/fmt.sh"
* Removes where block
* Minor fix
* Minor fix
* Fixes tests
* ".git/.scripts/commands/update-ui/update-ui.sh" 1.70
* Updates test
* Update primitives/runtime/src/traits.rs
Co-authored-by: Bastian Köcher <git@kchr.de >
* Update primitives/runtime/src/traits.rs
Co-authored-by: Bastian Köcher <git@kchr.de >
* Updates doc
* Updates doc
---------
Co-authored-by: command-bot <>
Co-authored-by: Juan <juangirini@gmail.com >
Co-authored-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
Co-authored-by: Bastian Köcher <git@kchr.de >
2023-07-13 12:01:34 +00:00
Sasha Gryaznov
fda86dd501
contracts: switch to wasmi gas metering ( #14084 )
...
* upgrade to wasmi 0.29
* prepare cleanup
* sync ref_time w engine from the stack frame
* proc_macro: sync gas in host funcs
save: compiles, only gas pushing left to macro
WIP proc macro
proc macro: done
* clean benchmarks & schedule: w_base = w_i64const
* scale gas values btw engine and gas meter
* (re)instrumentation & code_cache removed
* remove gas() host fn, continue clean-up
save
* address review comments
* move from CodeStorage&PrefabWasmModule to PristineCode&WasmBlob
* refactor: no reftime_limit&schedule passes, no CodeStorage
* bugs fixing
* fix tests: expected deposit amount
* fix prepare::tests
* update tests and fix bugs
tests::run_out_of_gas_engine, need 2 more
save: 2 bugs with gas syncs: 1 of 2 tests done
gas_syncs_no_overcharge bug fixed, test passes!
cleaned out debug prints
second bug is not a bug
disabled_chain_extension test fix (err msg)
tests run_out_of_fuel_host, chain_extension pass
all tests pass
* update docs
* bump wasmi 0.30.0
* benchmarks updated, tests pass
* refactoring
* s/OwnerInfo/CodeInfo/g;
* migration: draft, compiles
* migration: draft, runs
* migration: draft, runs (fixing)
* deposits repaid non pro rata
* deposits repaid pro rata
* better try-runtime output
* even better try-runtime output
* benchmark migration
* fix merge leftover
* add forgotten fixtures, fix docs
* address review comments
* ci fixes
* cleanup
* benchmarks::prepare to return DispatchError
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
* store memory limits to CodeInfo
* ci: roll back weights
* ".git/.scripts/commands/bench-vm/bench-vm.sh" pallet dev pallet_contracts
* drive-by: update Readme and pallet rustdoc
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
* use wasmi 0.29
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
* use wasmi 0.30 again
* query memory limits from wasmi
* better migration types
* ci: pull weights from master
* refactoring
* ".git/.scripts/commands/bench-vm/bench-vm.sh" pallet dev pallet_contracts
* addressing review comments
* refactor
* address review comments
* optimize migration
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
* another review round comments addressed
* ci fix one
* clippy fix
* ci fix two
---------
Co-authored-by: command-bot <>
2023-07-03 11:04:10 +00:00
Cyrill Leutwiler
6005d19905
stabilize instantiation_nonce ( #14493 )
...
Signed-off-by: Cyrill Leutwiler <bigcyrill@hotmail.com >
2023-07-03 09:25:17 +00:00
Sasha Gryaznov
d2575f0e5a
add error logging to call_runtime ( #14082 )
2023-05-05 14:34:21 +00:00
juangirini
5db4119f93
contracts: Make Origin information available ( #13708 )
...
* contracts: allow root calls
* contracts: update ContractOrigin
* contracts: test allow root calls
* contracts: rustfmt
* contracts: test root caller traps
* contracts: add Caller enum
* contracts: improve some comments
* contracts: improve some comments
* contracts: format code with +nightly
* contracts: fix failing tests
* contracts: improve charte instantiate call when root origin
* contract: refactor common, call and instantiate inputs
* contracts: fix some failing test
* contracts: trap caller when there is no account id
* Update frame/contracts/src/lib.rs
Co-authored-by: PG Herveou <pgherveou@gmail.com >
* Update frame/contracts/src/exec.rs
Co-authored-by: PG Herveou <pgherveou@gmail.com >
* contracts: make `into_deposit` return zero when the origin is root
* contracts: cargo fmt
* contracts: charging and terminating tests refactored
* contracts: improved errors
* contracts: refactor & merge ContractOrigin cand Caller enums
* Update frame/contracts/src/lib.rs
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
* contracts: apply suggested pr changes
* contracts: rename Caller to Origin
* contracts: refactor run fn
* contracts: cr improvements
* contracts: allow root to use delegate call
* contracts: add caller_is_root weight
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
* contracts: add caller_is_root benchmarking
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
* contracts: add caller_is_root benchmarking
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
* contracts: add some minor improvements
* contracts: make caller_is_root runtime fn unstable
* contracts: fix failing wasm test
* contracts: update benchmarking for origin_is_root
* contracts: improve seal_caller_is_root benchmarking
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
* contracts: add small pr improvements
* contracts: fix broken tests after master merge
* contracts: acknowledge the default storage deposit limit
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
* contracts: move origin to CommonInput
* contracts: add some extra tests
* contracts: move ensure origin logic inside invokable::run_guarded
* contracts: add minor improvements
* contracts: fix caller_is_root benchmarking
* contracts: improve function description
* Update frame/contracts/src/lib.rs
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
* Update frame/contracts/src/lib.rs
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
* Update frame/contracts/src/wasm/runtime.rs
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
* contracts: improve function description
---------
Co-authored-by: parity-processbot <>
Co-authored-by: PG Herveou <pgherveou@gmail.com >
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
2023-05-02 16:45:14 +00:00
Sasha Gryaznov
60310de7d6
[contracts] Port host functions to Weight V2 and storage deposit limit ( #13565 )
...
* 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 >
2023-04-26 11:27:13 +00:00
Sasha Gryaznov
3c1fb62621
stabilize call_runtime ( #13901 )
2023-04-13 13:57:28 +00:00
PG Herveou
03c99fe003
contracts: add sr25519_verify ( #13724 )
...
* wip
* fix
* wip
* fix lint
* rm fixture fix
* missing comment
* fix lint
* add comment to the wsm file
* fix comment
* Apply suggestions from code review
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
* wip
* wip weights
* wip weights
* PR comment: test with return code
* wip
* PR review add mock test
* remove
* lint
* Update frame/contracts/fixtures/sr25519_verify.wat
* fix comments
* Update frame/contracts/src/benchmarking/mod.rs
* Update frame/contracts/src/wasm/runtime.rs
* Update frame/contracts/fixtures/sr25519_verify.wat
* Update frame/contracts/src/benchmarking/mod.rs
* fix lint
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
* Update frame/contracts/src/wasm/runtime.rs
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
* PR: review use unstable + remove arbitrary index 4
* Add benchmark for calculating overhead of calling sr25519_verify
* fix message length encoding
* fix weights
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
* Apply suggestions from code review
* Update frame/contracts/src/wasm/runtime.rs
* Update frame/contracts/src/wasm/runtime.rs
* Update frame/contracts/src/benchmarking/mod.rs
* Update frame/contracts/src/benchmarking/mod.rs
* Update frame/contracts/src/schedule.rs
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
* Update frame/contracts/src/schedule.rs
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
* Update frame/contracts/src/wasm/runtime.rs
* Update frame/contracts/src/wasm/runtime.rs
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
* PR review
---------
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
Co-authored-by: command-bot <>
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
2023-04-12 14:49:10 +00:00
PG Herveou
836f544c86
contracts: Add host function tracing ( #13648 )
2023-03-27 19:33:59 +02:00
Alexander Theißen
82cb69922f
contracts: Upgrade to wasmi 0.28 ( #13312 )
...
* Upgrade to wasmi 0.28
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
* Update stale comment
* Renamed variants of `Determinism`
* Compile fix
---------
Co-authored-by: command-bot <>
2023-03-20 23:09:22 +00:00
PG Herveou
8fcd235e38
contracts: Refactor trait Ext::*_storage_transparent functions ( #13600 )
...
* Refactor _transparent methods
rewrote commits, stashed the typo changes to remove some diff noise
fixed my unverified email commit
* remove type alias
* Get rid of From<Fix/VarSizedKey> impl blocks
* Get rid of KeyType impl block
* remove unnecessary Key export
* Update frame/contracts/src/exec.rs
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
* PR review comment
---------
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
2023-03-17 23:17:21 +01:00
PG Herveou
f5773795e9
Fix typos in pallet-contracts ( #13629 )
...
* Fix typos in pallet-contracts
2023-03-17 16:31:51 +01:00
Oliver Tale-Yazdi
9e56e1acdd
Deprecate Weight::from_{ref_time, proof_size} ( #13475 )
...
* Deprecate Weight::from_{ref_time, proof_size}
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Update templates
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Use from_parts
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Use from_parts
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Dont revert comment 🤦
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_balances
* Update weight files
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* More fixes
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
* Adapt to Master changes
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
---------
Signed-off-by: Oliver Tale-Yazdi <oliver.tale-yazdi@parity.io >
Co-authored-by: command-bot <>
2023-03-02 21:28:17 +00:00
Vivek Pandya
bc53b9a03a
Remove years from copyright notes. ( #13415 )
...
* 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
2023-02-21 18:46:41 +00:00
Sasha Gryaznov
ac13aaeb2f
rename call_runtime() returned error ( #13412 )
2023-02-20 16:45:54 +01:00
Sasha Gryaznov
53b7778599
[contracts] make debug_message execution outcome invariant to node debug logging setting ( #13197 )
...
* update benchmark for seal_debug_message
* add seal_debug_message_per_kb benchmark
* un-fallable debug buffer: silently drops excessive and wrong utf-8 encoded messages
* charge debug_message per byte of the message
* improved benchmark
* cap debug_message
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
* Apply suggestions from code review
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
* fix applied buggy suggestion
* make sure i*1024 < MaxDebugBufferLen
* fix schedule for our non-batched benchmark
* Switch to a `wasmtime` fork with LTO linking failure workaround
* ".git/.scripts/commands/bench/bench.sh" pallet dev pallet_contracts
---------
Co-authored-by: command-bot <>
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
Co-authored-by: Jan Bujak <jan@parity.io >
2023-02-14 18:28:34 +00:00
Alexander Theißen
3b03862caf
contracts: Deprecate random interface ( #13204 )
...
* Deprecate random interface
* Revert change to runtime file
* Fix docs
* Fix tests
* Rename to not_deprecated
* Apply suggestions from code review
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
* Deprecate `set_rent_allowance`
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
2023-01-25 13:48:40 +00:00
Sasha Gryaznov
05b846d63b
[contracts] Adapt storage reading host functions to Weights V2 ( #12976 )
...
* update RuntimeCosts to Weights V2, update tests
* improve docs
* clearer naming and docs to compat_weight helper
* Apply suggestions from code review
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
* save before master merge
* HostFnWeights to Weight
* added to_weight! macro
* Apply suggestions from code review
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
* RuntimeCosts::ChainExtension to weight_v2
* chain extension to weight v2
Co-authored-by: Alexander Theißen <alex.theissen@me.com >
2023-01-18 10:36:09 +00:00
Green Baneling
643b69c64d
Allow duplicate topics in smart contract events ( #13065 )
...
* 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 <>
2023-01-11 13:22:22 +00:00
Sasha Gryaznov
628efddce1
[contracts] Add docs generator for the contracts API to the #[define_env] macro ( #13032 )
...
* 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 >
2023-01-05 23:22:43 +00:00
Sasha Gryaznov
2691f6de2e
[contracts] Make debug buffer work like a FIFO pipe ( #12953 )
...
* 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 >
2022-12-27 14:24:49 +01:00
Alexander Theißen
4083b5358a
contracts: Improve contract address derivation ( #12883 )
...
* Add prefix to address derivation
* Extend benchmark
* Fix node test
* ".git/.scripts/bench-bot.sh" pallet dev pallet_contracts
* Adapt to new benchmark
* Update dispatchable benchmarks
* ".git/.scripts/bench-bot.sh" pallet dev pallet_contracts
* Use benchmark results
* Apply suggestions from code review
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
* Don't use T::AdressGenerator directly
* Rename constructor_args to input_data
Co-authored-by: command-bot <>
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
2022-12-22 14:52:48 +00:00
Sasha Gryaznov
af15848be0
stabilize [seal0] take_storage ( #13007 )
2022-12-22 15:48:39 +01:00
Sasha Gryaznov
962580c82e
[contracts] Add debug buffer limit + enforcement ( #12845 )
...
* Add debug buffer limit + enforcement
Add debug buffer limit + enforcement
* use BoundedVec for the debug buffer
* revert schedule (debug buf len limit not needed anymore)
* return DispatchError
* addressed review comments
2022-12-13 15:54:50 +00:00
Alexander Theißen
770afb9ee3
contracts: Add instantiation_nonce API ( #12800 )
...
* Add `instantiation_nonce` API
* Fixes for tests
* Update frame/contracts/src/schedule.rs
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
* ".git/.scripts/bench-bot.sh" pallet dev pallet_contracts
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
Co-authored-by: command-bot <>
2022-12-06 11:01:58 +00:00
Alexander Theißen
edce3ead3b
contracts: Replace cargo feature unstable-interface with config ( #12787 )
...
* Replace cargo feature with config
* Update frame/contracts/proc-macro/src/lib.rs
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
2022-11-30 14:19:14 +00:00
Alexander Theißen
08657f14b7
contracts: Replace sp-sandbox and wasmi-validation by newest wasmi ( #12501 )
...
* Replace sp-sandbox and wasmi-validation by just wasmi
* ".git/.scripts/bench-bot.sh" pallet dev pallet_contracts
* Re-check original code on re-instrumentation
* Fix clippy
* ".git/.scripts/bench-bot.sh" pallet dev pallet_contracts
* Apply suggestions from code review
Co-authored-by: Robin Freyler <robin.freyler@gmail.com >
* Replace wasmi by ::wasmi
* Bump wasmi to 0.20
* Add explanation for `unreachable`
* Change proof
* Fixup master merge
* ".git/.scripts/bench-bot.sh" pallet dev pallet_contracts
* Fixup naming inconsistencies introduced by reentrancy PR
* Fix `scan_imports` docs
* Apply suggestions from code review
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
* Fixup suggestions
* Remove unnecessary &mut
* Fix test
* ".git/.scripts/bench-bot.sh" pallet dev pallet_contracts
* Fix benchmark merge fail
* ".git/.scripts/bench-bot.sh" pallet dev pallet_contracts
* Fix docs as suggested by code review
* Improve docs for `CodeRejected`
* Apply suggestions from code review
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
* Fix logic bug when setting `deterministic_only`
* Don't panic when module fails to compile
* Apply suggestions from code review
Co-authored-by: Robin Freyler <robin.freyler@gmail.com >
Co-authored-by: command-bot <>
Co-authored-by: Robin Freyler <robin.freyler@gmail.com >
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
2022-11-24 23:51:36 +01:00
Artemka374
103ea38f95
seal_reentrant_count returns contract reentrant count (#12695 )
...
* Add logic, test, broken benchmark
* account_entrance_count
* Addressing comments
* Address @agryaznov's comments
* Add test for account_entrance_count, fix ci
* Cargo fmt
* Fix tests
* Fix tests
* Remove delegated call from test, address comments
* Minor fixes and indentation in wat files
* Update test for account_entrance_count
* Update reentrant_count_call test
* Delegate call test
* Cargo +nightly fmt
* Address comments
* Update reentrant_count_works test
* Apply weights diff
* Add fixture descriptions
* Update comments as suggested
* Update reentrant_count_call test to use seal_address
* add missing code
* cargo fmt
* account_entrance_count -> account_reentrance_count
* fix tests
* fmt
* normalize signatures
Co-authored-by: yarikbratashchuk <yarik.bratashchuk@gmail.com >
2022-11-15 14:12:08 +01:00
Sasha Gryaznov
5e1d421125
stabilize 4 storage host funcs ( #12611 )
2022-11-03 16:23:05 +00:00
Alexander Theißen
3ae4be8662
contracts: Allow indeterministic instructions off-chain ( #12469 )
...
* Allow indetermistic instructions off-chain
* Apply suggestions from code review
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
* fmt
Co-authored-by: Sasha Gryaznov <hi@agryaznov.com >
2022-10-24 17:48:04 +00:00
Shawn Tabrizi
023aa03fea
Avoid Unstable Sort ( #12455 )
...
* dont use unstable sort
* remove comment
* add clippy rule
2022-10-11 18:41:43 +00:00
Alexander Theißen
bb9d2fa75a
Remove contracts RPCs ( #12358 )
...
* Remove contracts RPCs
* Remove serde as RPC serialization is no longer needed
* Rename folder to match crate name
* Compile fix
* Remove Byte wrapper
2022-10-02 15:16:45 +00:00
Alexander Theißen
4a6e78b8df
Bump wasm-instrument ( #12234 )
...
* Bump wasm-instrument
* Fix benchmarks
2022-09-15 06:00:11 +00:00
Keith Yeung
30e7b1e8cd
Create sp-weights crate to store weight primitives ( #12219 )
...
* Create sp-weights crate to store weight primitives
* Fix templates
* Fix templates
* Fixes
* Fixes
* cargo fmt
* Fixes
* Fixes
* Use deprecated type alias instead of deprecated unit types
* Use deprecated subtraits instead of deprecated hollow new traits
* Fixes
* Allow deprecation in macro expansion
* Add missing where clause during call macro expansion
* cargo fmt
* Fixes
* cargo fmt
* Fixes
* Fixes
* Fixes
* Fixes
* Move FRAME-specific weight files back to frame_support
* Fixes
* Update frame/support/src/dispatch.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
* Update frame/support/src/dispatch.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
* Update frame/support/src/dispatch.rs
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
* Add missing header
* Rewrite module docs
* Fixes
* Fixes
* Fixes
* Fixes
* cargo fmt
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com >
2022-09-13 13:23:44 +00:00
Sergej Sakac
6e8795afe6
BREAKING: Rename Call & Event ( #11981 )
...
* rename Event to RuntimeEvent
* rename Call
* rename in runtimes
* small fix
* rename Event
* small fix & rename RuntimeCall back to Call for now
* small fixes
* more renaming
* a bit more renaming
* fmt
* small fix
* commit
* prep for renaming associated types
* fix
* rename associated Event type
* rename to RuntimeEvent
* commit
* merge conflict fixes & fmt
* additional renaming
* fix.
* fix decl_event
* rename in tests
* remove warnings
* remove accidental rename
* .
* commit
* update .stderr
* fix in test
* update .stderr
* TRYBUILD=overwrite
* docs
* fmt
* small change in docs
* rename PalletEvent to Event
* rename Call to RuntimeCall
* renamed at wrong places :P
* rename Call
* rename
* rename associated type
* fix
* fix & fmt
* commit
* frame-support-test
* passing tests
* update docs
* rustdoc fix
* update .stderr
* wrong code in docs
* merge fix
* fix in error message
* update .stderr
* docs & error message
* .
* merge fix
* merge fix
* fmt
* fmt
* merge fix
* more fixing
* fmt
* remove unused
* fmt
* fix
Co-authored-by: Shawn Tabrizi <shawntabrizi@gmail.com >
2022-09-12 22:03:31 +00:00
Sasha Gryaznov
d8e9fff3e4
[contracts] API host functions: remove seal_ name prefix + enable aliasing ( #12126 )
...
* 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 >
2022-09-07 08:54:17 +00:00
Shawn Tabrizi
30951822ba
Weight v1.5: Opaque Struct ( #12138 )
...
* initial idea
* update frame_support
* update a bunch more
* add ord
* adjust RuntimeDbWeight
* frame_system builds
* re-export
* frame_support tests pass
* frame_executive compile
* frame_executive builds
* frame_system tests passing
* pallet-utility tests pass
* fix a bunch of pallets
* more
* phragmen
* state-trie-migration
* scheduler and referenda
* pallet-election-provider-multi-phase
* aura
* staking
* more
* babe
* balances
* bunch more
* sudo
* transaction-payment
* asset-tx-payment
* last pallets
* fix alliance merge
* fix node template runtime
* fix pallet-contracts cc @athei
* fix node runtime
* fix compile on runtime-benchmarks feature
* comment
* fix frame-support-test
* fix more tests
* weight regex
* frame system works
* fix a bunch
* more
* more
* more
* more
* more
* more fixes
* update templates
* fix contracts benchmarks
* Update lib.rs
* Update lib.rs
* fix ui
* make scalar saturating mul const
* more const functions
* scalar div
* refactor using constant functions
* move impl
* fix overhead template
* use compactas
* Update lib.rs
2022-08-31 11:26:13 +00:00
Sasha Gryaznov
c930cd0d79
[contracts] define_env! re-write as a proc macro ( #11888 )
...
* define_env proc macro basics + can_satisfy part ready
* expand_impls part done
* fix of the &FunctionType bug
* pallet is compiled
* updated host fn definition syntax
* docs comments allowed to host fn definitions
* all 53 host funcs re-defined by the new macro
* unstable feat fix
* cleanup
* legacy mbe macros cleaned up
* Added Env ident to macro attribute; all tests pass!
* \#[v(..)] -> \#[version(..)]
* some tiny corrections
* save
* builds with non-magic rt; tests fail
* tests pass
* refactored errors + added docs
* merge err fixed
* fixes on @ascjones review, all except moving away from `pub mod env` syntax
* debug printing cleared
* clippy fix
2022-08-22 13:06:43 +00:00
Alexander Theißen
d910386081
contracts: Apply depth limit when decoding ( #11991 )
2022-08-08 14:32:00 +00:00
yjh
e945ae6365
chore: fix typos and sort trait impls ( #11989 )
2022-08-08 09:49:00 +00:00
Alexander Theißen
c470e9d11d
contracts: Allow ChainExtension::call() to access &mut self ( #11874 )
...
* 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 >
2022-07-25 15:48:01 +00:00
Alexander Gryaznov
68ea2ab039
[contracts] Implement transparent hashing for contract storage ( #11501 )
...
* 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 <>
2022-06-23 12:10:35 +00:00
Alexander Gryaznov
c0fb033206
Stabilize ecdsa_ functions ( #11486 )
2022-05-20 11:20:41 +00:00
Alexander Gryaznov
e45d53552d
stabilize seal_contains_storage (seal0) and seal_set_storage (seal1) ( #11378 )
2022-05-10 08:07:13 +00:00
Alexander Gryaznov
9fd4df9ccf
[contracts] stabilize seal_code_hash, seal_set_code_hash and seal_own_code_hash ( #11337 )
...
* 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 >
2022-05-04 10:35:30 +03:00