error type implementations

This commit is contained in:
Tadeo hepperle
2024-01-22 18:53:04 +01:00
parent a349daaf45
commit 2c40b14230
32 changed files with 269 additions and 207 deletions
+11 -5
View File
@@ -7,18 +7,19 @@
//! [`crate::config::DefaultExtrinsicParams`] provides a general-purpose
//! implementation of this that will work in many cases.
use crate::{client::OfflineClientT, Config};
use crate::prelude::*;
use crate::{client::OfflineClientT, Config};
use core::fmt::Debug;
use derive_more::Display;
/// An error that can be emitted when trying to construct an instance of [`ExtrinsicParams`],
/// encode data from the instance, or match on signed extensions.
#[derive(thiserror::Error, Debug)]
#[derive(Display, Debug)]
#[non_exhaustive]
pub enum ExtrinsicParamsError {
/// Cannot find a type id in the metadata. The context provides some additional
/// information about the source of the error (eg the signed extension name).
#[error("Cannot find type id '{type_id} in the metadata (context: {context})")]
#[display(fmt = "Cannot find type id '{type_id} in the metadata (context: {context})")]
MissingTypeId {
/// Type ID.
type_id: u32,
@@ -26,13 +27,18 @@ pub enum ExtrinsicParamsError {
context: &'static str,
},
/// A signed extension in use on some chain was not provided.
#[error("The chain expects a signed extension with the name {0}, but we did not provide one")]
#[display(
fmt = "The chain expects a signed extension with the name {_0}, but we did not provide one"
)]
UnknownSignedExtension(String),
/// Some custom error.
#[error("Error constructing extrinsic parameters: {0}")]
#[display(fmt = "Error constructing extrinsic parameters: {_0}")]
Custom(CustomExtrinsicParamsError),
}
#[cfg(feature = "std")]
impl std::error::Error for ExtrinsicParamsError {}
/// A custom error.
pub type CustomExtrinsicParamsError = Box<dyn std::error::Error + Send + Sync + 'static>;
+3 -3
View File
@@ -8,9 +8,9 @@
//! when interacting with a chain.
use super::extrinsic_params::{ExtrinsicParams, ExtrinsicParamsEncoder, ExtrinsicParamsError};
use crate::prelude::*;
use crate::utils::Era;
use crate::{client::OfflineClientT, Config};
use crate::prelude::*;
use codec::{Compact, Encode};
use core::fmt::Debug;
use derivative::Derivative;
@@ -368,7 +368,7 @@ impl<T: Config> SignedExtension<T> for ChargeTransactionPayment {
/// is a sensible default, and allows for a single configuration to work across multiple chains.
pub struct AnyOf<T, Params> {
params: Vec<Box<dyn ExtrinsicParamsEncoder>>,
_marker: std::marker::PhantomData<(T, Params)>,
_marker: PhantomData<(T, Params)>,
}
macro_rules! impl_tuples {
@@ -425,7 +425,7 @@ macro_rules! impl_tuples {
Ok(AnyOf {
params,
_marker: std::marker::PhantomData
_marker: PhantomData
})
}
}