* sp-api: Support nested transactions
Adds support for nested transactions in `sp-api` by using `execute_in_transaction`. This was working
until a recent refactor, but this was actually not intended. However, supporting nested transactions
is a worthwhile feature to have. So, this pr "brings it back" and adds a test to ensure it will not break.
* Make clippy happy
* Assert that the runtime api type is not unwind safe
* Count number of transactions
* frame-benchmarking-cli: Remove native dispatch requirement
No need for this, we can just use the `WasmExecutor` directly.
* Fixes
* Pass benchmarking host functions
* Ensure we can pass custom host functions
* metadata-ir: Add extrinsic type info to decode address, call, sig
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame-metadata: Point to unreleased branch
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata-ir: Include addrees, call, signature in V15 conversion
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata-ir: Include extra ty
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* construct_runtime: Extract address,call,sig,extra ty from tx type
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/tests: Check metadata populates xt types correctly
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata-ir/tests: Add extra fields on ExtrinsicMetadataIR
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* primitives/traits: Expand the `Extrinsic::SignaturePayload`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* primitives: Adjust to new `Extrinsic` associated types
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/metadata: Simplify metadata generation
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/example: Adjust to new interface
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/tests: Adjust `extrinsic_metadata_ir_types`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Revert the additional Extrinsic' associated types
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* primitives: Add `SignaturePayload` marker trait
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* primitives: Implement SignaturePayload for empty tuple
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Adjust to new SignaturePayload trait
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* tests: Adjust `extrinsic_metadata_ir_types` to new interface
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/support: Adjust pallet test
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame: Add Extrinsic length prefix to the metadata
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* primitives: Populate `ExtrinsicMetadataIR` with `len_ty`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update primitives/runtime/src/traits.rs
Co-authored-by: Bastian Köcher <git@kchr.de>
* Apply cargo fmt
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* v15: Remove len type of the extrinsic
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* cargo: Update frame-metadata
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: Bastian Köcher <git@kchr.de>
Co-authored-by: parity-processbot <>
* frame-metadata: Point to unreleased branch
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame: Generalize outer enum generation for events and errors
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame: Remove individual generation of outer enum events
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* primitives/traits: Add marker trait for outer runtime enums
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame: Derive Clone, PartialEq, Eq for RuntimeEvents only
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/pallet: Include `#[pallet::error]` enum into pallet parts
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* metadata-ir: Include call, event, error types
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/metadata: Include outer enum types in V15 metadata
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/tests: Ensure `RuntimeError` includes `#[pallet::error]` parts
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/support: Document the reserved name for `RuntimeError`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame: Use self-generated `RuntimeEvent` for `GetRuntimeOuterEnumTypes`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/ui: Fix UI tests
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/support: Remove unused system path
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/ui: Unexpected field and reintroduce frame_system::Config for RuntimeCall
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/support: Remove `GetRuntimeOuterEnumTypes` marker trait
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/support: Remove `;` from macro
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update frame-metadata to point to unreleased branch
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Rename error_enum_ty to module_error_enum_ty
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update module_error_ty documentation
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame: Implement from_dispatch_error
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/support: Adjust test to ModuleErrorType
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Fix clippy
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Improve documentation
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame/tests: Check `from_dispatch_error` impl
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update frame-metadata
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Remove the module_error_ty
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Apply fmt
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Revert unneeded parts
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Revert "Revert unneeded parts"
This reverts commit b94bbd16078a025775a48da1095edec1705e6a4d.
Revert "Apply fmt"
This reverts commit 9b1c3e7b4ef27d32e10b35054a99916067e0397b.
Revert "Remove the module_error_ty"
This reverts commit 98de5b24653f9f9ec6ee842b749401b18a01758a.
* Update frame-metadata to origin/master
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Add outerEnums to the metadata
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Add tests
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Keep backwards compatibility for explicit pallet parts
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Rename tt_error_part to be more generic
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Increase recursion_limit to 1k
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Rename `fully_expanded` to `expanded`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Improve documentation
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Adjust UI tests
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update UI tests
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update undefined_validate_unsigned_part.stderr UI test
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Adjust yet again
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Optimise macro expansions
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Use latest frame-metadata and rename `moduleErrorType` to `RuntimeError`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Fix comment
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Apply fmt
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update frame/support/procedural/src/construct_runtime/parse.rs
Co-authored-by: Bastian Köcher <git@kchr.de>
* Update frame/support/procedural/src/construct_runtime/parse.rs
Co-authored-by: Bastian Köcher <git@kchr.de>
* Update frame-metadata PR
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Remove `expanded` from error messages and fix typo
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Move docs to the function
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* ui: Use the intermed syntax for pallet parts
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* Update frame-metadata with latest release
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
* frame: Address feedback for `from_dispatch_error`
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
---------
Signed-off-by: Alexandru Vasile <alexandru.vasile@parity.io>
Co-authored-by: Bastian Köcher <git@kchr.de>
* New Society
* More logic drafting
* More work
* Building
* Some tests
* Fixes
* Improvements to the voting process
* More tests
* Test number 20
* Tests
* 30 tests
* Another test]
* All tests enabled
* Minor stuff
* generate_storage_alias: Rewrite as proc macro attribute
This rewrites the `generate_storage_alias!` declarative macro as proc-macro attribute. While doing
this the name is changed to `storage_alias`. The prefix can now also be the name of a pallet. This
makes storage aliases work in migrations for all kind of chains and not just for the ones that use
predefined prefixes.
* Maintenance operations don't pay fee
* Fix compilation and FMT
* Moare fixes
* Migrations
* Fix tests and add migration testing
* Introduce lazy-cleanup and avoid unbounded prefix removal
* Fixes
* Fixes
* [WIP][Society] Adding benchmarking to the v2. (#11776)
* [Society] Adding benchmarking to the v2.
* [Society] Code review.
* [Society] Better code.
* Using clear() + clear_prefix() and adding more tests.
* Benchmarking again...
* Fix Cargo
* Fixes
* Fixes
* Spelling
* Fix benchmarks
* Another fix
* Remove println
---------
Co-authored-by: Bastian Köcher <info@kchr.de>
Co-authored-by: Artur Gontijo <arturgontijo@users.noreply.github.com>
* sp-api: Make the generated code act based on `std` in `sp-api`
Instead of letting the macro generate code that checks if the `std` feature is enabled, it will now
generate code that checks if the `std` feature is enabled for the `sp-api` crate. The old
implementation basically required that the crate in which the macro was used, had a `std` feature.
Now we don't have this requirement anymore and act accordingly the feature in `sp-api` directly.
* Missing feature!
---------
Co-authored-by: parity-processbot <>
`Hash` is no longer part of `pallet_mmr::Config`, but this code
would still build because it assumes we're referring to underlying
`<pallet_mmr::Config as frame_system::Config>::Hash` which is not
what we want when using different hashing between `frame_system`
and `pallet_mmr`.
Disambiguate by using correct `pallet_mmr::Config::Hashing` type.
Signed-off-by: acatangiu <adrian@parity.io>
* app_crypto: macro improvements
During `app_crypto` macro expansion the `cfg` feature gate was injected
into the macro client crate. This resulted in compilation error if
`serde` or `std` was not defined in client crate. This PR fixes this
problem.
For reference, the error was:
```
error: cannot find macro `format` in this scope
--> /home/miszka/parity/10-genesis-config/substrate-2/primitives/consensus/aura/src/lib.rs:32:3
|
32 | app_crypto!(sr25519, AURA);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
...
error[E0433]: failed to resolve: use of undeclared type `String`
-->
/home/miszka/parity/10-genesis-config/substrate-2/primitives/consensus/aura/src/lib.rs:32:3
|
32 | app_crypto!(sr25519, AURA);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^ use of undeclared type `String`
```
* app_crypto: cleanup
The where bound for the `create_metadata` function wasn't correct. This pr fixes this by using the
where bound declared at the type declaration augmented with the manual where bound.
* wasm-builder: Enforce `runtime_version` wasm section
This pr changes the `wasm-builder` to enforce the `runtime_version` wasm section. This wasm section
is being created by the `sp_version::runtime_version` attribute macro. This attribute macro now
exists since quite some time and `runtime_version` also is the only way for parachains to support
reading the `RuntimeVersion` from the runtime.
\# Disabling the check
By default the `WasmBuilder` will now check for this wasm section and if not found, exit with an
error. However, there are situations where you may want to disable this check (like for tests). In
this case there exists the `disable_runtime_version_section_check` function.
```
WasmBuilder::new()
...
...
...
.disable_runtime_version_section_check()
.build()
```
By using this method you get back the old behavior.
* Review comment
* Fix
* Fix issue with `enum-as-inner`
* Support cfg attribute in host functions definitions
* Added test to check feature gated methods are not included
* Versioned conditional compiled host function are forbidden
* Improve runtime-interface macro docs
* Fix doc
* Apply review suggestion
Co-authored-by: Koute <koute@users.noreply.github.com>
* Better error message
* Rust fmt
* More refinements to the docs
---------
Co-authored-by: Koute <koute@users.noreply.github.com>
First, we increase the size to 10MiB for the local cache. Second, we give the node cache a bigger
max size than the value cache, see the changed comment on why.
In general this should ensure that we are able to cache the `:code` and not directly throw it out of
the cache because it is too big (which currently happens when the size of the runtime > 2MiB). In
the future this should be improved to ensure that certain values are not removed from the cache at
all, like `:code`.
This is followup of #13027.
`Aura` need to enable `serde` feature in dependent crates, otherwise
test-substrate-runtime compilation fails with the following error if
`serde` is enabled:
```
error: cannot find macro `format` in this scope
-->
/home/miszka/parity/10-genesis-config/substrate-master/primitives/consensus/aura/src/lib.rs:50:3
|
50 | app_crypto!(ed25519, AURA);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: consider importing one of these items:
scale_info::prelude::format
sp_application_crypto::format
= note: this error originates in the macro
`$crate::app_crypto_public_common_if_serde` which comes from the
expansion of the macro `app_crypto` (in Nightly builds, run with -Z
macro-backtrace for more info)
```
* add serde_full feature flag
add serde_full to sp_runtime
add space to toml
add serde_full to application-crypto
add serde_full to arithmetic
fix arithmetic
add serde full to beefy
add serde full to consensus
add serde_full to core
add serdefull to finality grandpa
add serde_full to several primitives crates
make rpc no_std compatible
add scale info to runtime
make serializer no_std compatible
add serde full to storage
add full serde to version
add serde full to weights
add all serde_full features
add . to comment
add missing impl-serde
fix no-std build
fix build
add full_crypto to serde_full
serde_full also implements crypto
full_serde does not work with full_crytpo. needs std
no no_std serde impl possible
also for crypto std is necessary
no serde full for application crypto
fix arithmetic
fix tomls
fix some things
impl fmt for Signature
add serialize to Public
add impl_maybe_marker_serde_full
fix sp-application-crypto toml
add serde feature flag
fix clippy
fix toml grandpa
fix grandpa
rename if_std to if_serde
keystore is not no_std compatible
make keystore vrf no_std compatible
fix nopos-elections
fix rpc
fix serializer
fix test-primitives
fix version
add comment
add serde full only import for format string
remove all(serde_full and full_crypot) as serde_full enforces full_crypto
make comment better readable
even better comment
clean up rpc toml
clean up toml
clean up serializer toml
clean up storage toml
fix std build
update .lock
fix sp-version
move sp_std import
test extern crate alloc
replace sp_std with core
add missing core
sp_core: serde feature do not enforce full crypto
application-crypto: serde feature do not enforce full crypto
rename serde_full to serde
add dep:serde and alloc to default feature
add full_crypto and remove unnecessary debu/fmt impls for serde
update comment
remove obolsete change in display AccountId32
remove extra changes
minimize diff
revert keystore changes
remove std from keystore
remove full-crypto feature
fix serde import
fix comment
fix feature = serde
* rename serde_full to serde
* move #[doc(hidden)] back
* remove feature = full crypto require frm MultiSigner
* reorder serde and scale_info import
* fix bs58 missing alloc import in serde feature
* add `from_string` to serde feature and add unimplemented
* remove serde feature from fixed_point display
* Remove serde/alloc
Co-authored-by: Davide Galassi <davxy@datawok.net>
* Update primitives/consensus/babe/Cargo.toml
Co-authored-by: Bastian Köcher <git@kchr.de>
* Update primitives/arithmetic/src/fixed_point.rs
Co-authored-by: Bastian Köcher <git@kchr.de>
* revert `from_string`fixed impl back to std only
* remove duplicate runtime string impl
* use sp_std::alloc
* remove no_std compatible rpc
* remove no_std compatibility from serializer
* rename mpl_maybe_marker_serde to std_or_serde
* update .lock
* add sp-std to executor
* fix sp-std import
* fix sp_std::format import
* use crate import
* add serde feature
* Update primitives/core/src/lib.rs
---------
Co-authored-by: Davide Galassi <davxy@datawok.net>
Co-authored-by: Bastian Köcher <git@kchr.de>