chore/error: remove from str conversion and add deprecation notificat… (#7472)

* chore/error: remove from str conversion and add deprecation notifications

* fixup changes

* fix test looking for gone ::Msg variant

* another test fix

* one is duplicate, the other is not, so duplicates reported are n-1

* darn spaces

Co-authored-by: Andronik Ordian <write@reusable.software>

* remove pointless doc comments of error variants without any value

* low hanging fruits (for a tall person)

* moar error type variants

* avoid the storage modules for now

They are in need of a refactor, and the pain is rather large
removing all String error and DefaultError occurences.

* chore remove pointless error generic

* fix test for mocks, add a bunch of non_exhaustive

* max line width

* test fixes due to error changes

* fin

* error outputs... again

* undo stderr adjustments

* Update client/consensus/slots/src/lib.rs

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* remove closure clutter

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* more error types

* introduce ApiError

* extract Mock error

* ApiError refactor

* even more error types

* the last for now

* chore unused deps

* another extraction

* reduce should panic, due to extended error messages

* error test happiness

* shift error lines by one

* doc tests

* white space

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* Into -> From

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* remove pointless codec

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

* avoid pointless self import

Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>

Co-authored-by: Bernhard Schuster <bernhard@parity.io>
Co-authored-by: Andronik Ordian <write@reusable.software>
Co-authored-by: Bastian Köcher <bkchr@users.noreply.github.com>
This commit is contained in:
Bernhard Schuster
2020-11-27 19:37:53 +01:00
committed by GitHub
parent 6722a83ba6
commit 8c7d217091
48 changed files with 500 additions and 350 deletions
@@ -25,49 +25,49 @@ use sp_runtime::transaction_validity::{
pub type Result<T> = std::result::Result<T, Error>;
/// Transaction pool error type.
#[derive(Debug, derive_more::Display, derive_more::From)]
#[derive(Debug, thiserror::Error, derive_more::From)]
#[allow(missing_docs)]
pub enum Error {
/// Transaction is not verifiable yet, but might be in the future.
#[display(fmt="Unknown transaction validity: {:?}", _0)]
#[error("Unknown transaction validity: {0:?}")]
UnknownTransaction(UnknownTransaction),
/// Transaction is invalid.
#[display(fmt="Invalid transaction validity: {:?}", _0)]
#[error("Invalid transaction validity: {0:?}")]
InvalidTransaction(InvalidTransaction),
/// The transaction validity returned no "provides" tag.
///
/// Such transactions are not accepted to the pool, since we use those tags
/// to define identity of transactions (occupance of the same "slot").
#[display(fmt="The transaction does not provide any tags, so the pool can't identify it.")]
#[error("Transaction does not provide any tags, so the pool can't identify it")]
NoTagsProvided,
/// The transaction is temporarily banned.
#[display(fmt="Temporarily Banned")]
#[error("Transaction temporarily Banned")]
TemporarilyBanned,
/// The transaction is already in the pool.
#[display(fmt="[{:?}] Already imported", _0)]
#[error("[{0:?}] Already imported")]
AlreadyImported(Box<dyn std::any::Any + Send>),
/// The transaction cannot be imported cause it's a replacement and has too low priority.
#[display(fmt="Too low priority ({} > {})", old, new)]
#[error("Too low priority ({} > {})", old, new)]
TooLowPriority {
/// Transaction already in the pool.
old: Priority,
/// Transaction entering the pool.
new: Priority
},
/// Deps cycle detected and we couldn't import transaction.
#[display(fmt="Cycle Detected")]
#[error("Transaction with cyclic dependency")]
CycleDetected,
/// Transaction was dropped immediately after it got inserted.
#[display(fmt="Transaction couldn't enter the pool because of the limit.")]
#[error("Transaction couldn't enter the pool because of the limit")]
ImmediatelyDropped,
/// Invalid block id.
#[from(ignore)]
#[error("{0}")]
InvalidBlockId(String),
/// The pool is not accepting future transactions.
#[display(fmt="The pool is not accepting future transactions")]
#[error("The pool is not accepting future transactions")]
RejectedFutureTransaction,
}
impl std::error::Error for Error {}
/// Transaction pool error conversion.
pub trait IntoPoolError: std::error::Error + Send + Sized {
/// Try to extract original `Error`