mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-20 08:11:02 +00:00
Metadata V15: Expose types for the overarching Call, Event, Error enums (#14143)
* 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>
This commit is contained in:
@@ -26,6 +26,8 @@ pub fn expand_tt_default_parts(def: &mut Def) -> proc_macro2::TokenStream {
|
||||
let count = COUNTER.with(|counter| counter.borrow_mut().inc());
|
||||
let default_parts_unique_id =
|
||||
syn::Ident::new(&format!("__tt_default_parts_{}", count), def.item.span());
|
||||
let extra_parts_unique_id =
|
||||
syn::Ident::new(&format!("__tt_extra_parts_{}", count), def.item.span());
|
||||
|
||||
let call_part = def.call.as_ref().map(|_| quote::quote!(Call,));
|
||||
|
||||
@@ -36,6 +38,8 @@ pub fn expand_tt_default_parts(def: &mut Def) -> proc_macro2::TokenStream {
|
||||
quote::quote!( Event #gen , )
|
||||
});
|
||||
|
||||
let error_part = def.error.as_ref().map(|_| quote::quote!(Error<T>,));
|
||||
|
||||
let origin_part = def.origin.as_ref().map(|origin| {
|
||||
let gen = origin.is_generic.then(|| quote::quote!( <T> ));
|
||||
quote::quote!( Origin #gen , )
|
||||
@@ -95,8 +99,8 @@ pub fn expand_tt_default_parts(def: &mut Def) -> proc_macro2::TokenStream {
|
||||
$($frame_support)*::tt_return! {
|
||||
$caller
|
||||
tokens = [{
|
||||
::{
|
||||
Pallet, #call_part #storage_part #event_part #origin_part #config_part
|
||||
expanded::{
|
||||
Pallet, #call_part #storage_part #event_part #error_part #origin_part #config_part
|
||||
#inherent_part #validate_unsigned_part #freeze_reason_part
|
||||
#hold_reason_part #lock_id_part #slash_reason_part
|
||||
}
|
||||
@@ -106,5 +110,33 @@ pub fn expand_tt_default_parts(def: &mut Def) -> proc_macro2::TokenStream {
|
||||
}
|
||||
|
||||
pub use #default_parts_unique_id as tt_default_parts;
|
||||
|
||||
|
||||
// This macro is similar to the `tt_default_parts!`. It expands the pallets thare are declared
|
||||
// explicitly (`System: frame_system::{Pallet, Call}`) with extra parts.
|
||||
//
|
||||
// For example, after expansion an explicit pallet would look like:
|
||||
// `System: expanded::{Error} ::{Pallet, Call}`.
|
||||
//
|
||||
// The `expanded` keyword is a marker of the final state of the `construct_runtime!`.
|
||||
#[macro_export]
|
||||
#[doc(hidden)]
|
||||
macro_rules! #extra_parts_unique_id {
|
||||
{
|
||||
$caller:tt
|
||||
frame_support = [{ $($frame_support:ident)::* }]
|
||||
} => {
|
||||
$($frame_support)*::tt_return! {
|
||||
$caller
|
||||
tokens = [{
|
||||
expanded::{
|
||||
#error_part
|
||||
}
|
||||
}]
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
pub use #extra_parts_unique_id as tt_extra_parts;
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user