pub enum NodeError {
Show 31 variants
CryptoError {
error: String,
},
ArithmeticError {
error: String,
},
ViewError {
error: String,
},
ChainError {
error: String,
},
WorkerError {
error: String,
},
InactiveChain(ChainId),
WrongRound(Round),
UnexpectedBlockHeight {
expected_block_height: BlockHeight,
found_block_height: BlockHeight,
},
MissingCrossChainUpdate {
chain_id: ChainId,
origin: ChainId,
height: BlockHeight,
},
BlobsNotFound(Vec<BlobId>),
EventsNotFound(Vec<EventId>),
MissingCertificateValue,
MissingCertificates(Vec<CryptoHash>),
MissingVoteInValidatorResponse(String),
InvalidChainInfoResponse,
UnexpectedCertificateValue,
InvalidDecoding,
UnexpectedMessage,
GrpcError {
error: String,
},
ClientIoError {
error: String,
},
CannotResolveValidatorAddress {
address: String,
},
SubscriptionError {
transport: String,
},
SubscriptionFailed {
status: String,
},
InvalidCertificateForBlob(BlobId),
DuplicatesInBlobsNotFound,
UnexpectedEntriesInBlobsNotFound,
UnexpectedCertificates {
returned: Vec<CryptoHash>,
requested: Vec<CryptoHash>,
},
EmptyBlobsNotFound,
ResponseHandlingError {
error: String,
},
MissingCertificatesByHeights {
chain_id: ChainId,
heights: Vec<BlockHeight>,
},
TooManyCertificatesReturned {
chain_id: ChainId,
remote_node: Box<ValidatorPublicKey>,
},
}Expand description
Error type for node queries.
This error is meant to be serialized over the network and aggregated by clients (i.e. clients will track validator votes on each error value).
Variants§
CryptoError
ArithmeticError
ViewError
ChainError
WorkerError
InactiveChain(ChainId)
WrongRound(Round)
UnexpectedBlockHeight
MissingCrossChainUpdate
BlobsNotFound(Vec<BlobId>)
EventsNotFound(Vec<EventId>)
MissingCertificateValue
MissingCertificates(Vec<CryptoHash>)
MissingVoteInValidatorResponse(String)
InvalidChainInfoResponse
UnexpectedCertificateValue
InvalidDecoding
UnexpectedMessage
GrpcError
ClientIoError
CannotResolveValidatorAddress
SubscriptionError
SubscriptionFailed
InvalidCertificateForBlob(BlobId)
DuplicatesInBlobsNotFound
UnexpectedEntriesInBlobsNotFound
UnexpectedCertificates
EmptyBlobsNotFound
ResponseHandlingError
MissingCertificatesByHeights
TooManyCertificatesReturned
Implementations§
Source§impl NodeError
impl NodeError
Sourcepub fn parse_invalid_timestamp(&self) -> Option<InvalidTimestampError>
pub fn parse_invalid_timestamp(&self) -> Option<InvalidTimestampError>
If this error is an InvalidTimestamp error (wrapped in WorkerError), parses and
returns the timestamps. Returns None for other error types.
The error string format is expected to contain [us:{block_timestamp}:{local_time}]
where both values are microseconds since epoch.
Source§impl NodeError
impl NodeError
Sourcepub fn is_expected(&self) -> bool
pub fn is_expected(&self) -> bool
Returns whether this error is an expected part of the protocol flow.
Expected errors are those that validators return during normal operation and that the client handles automatically (e.g. by supplying missing data and retrying). Unexpected errors indicate genuine network issues, validator misbehavior, or internal problems.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for NodeError
impl<'de> Deserialize<'de> for NodeError
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Error for NodeError
impl Error for NodeError
1.30.0 · Source§fn source(&self) -> Option<&(dyn Error + 'static)>
fn source(&self) -> Option<&(dyn Error + 'static)>
1.0.0 · Source§fn description(&self) -> &str
fn description(&self) -> &str
Source§impl From<ArithmeticError> for NodeError
impl From<ArithmeticError> for NodeError
Source§fn from(error: ArithmeticError) -> Self
fn from(error: ArithmeticError) -> Self
Source§impl From<ChainError> for NodeError
impl From<ChainError> for NodeError
Source§fn from(error: ChainError) -> Self
fn from(error: ChainError) -> Self
Source§impl From<CryptoError> for NodeError
impl From<CryptoError> for NodeError
Source§fn from(error: CryptoError) -> Self
fn from(error: CryptoError) -> Self
Source§impl From<NodeError> for ChainClientError
impl From<NodeError> for ChainClientError
Source§impl From<WorkerError> for NodeError
impl From<WorkerError> for NodeError
Source§fn from(error: WorkerError) -> Self
fn from(error: WorkerError) -> Self
impl Eq for NodeError
impl StructuralPartialEq for NodeError
Auto Trait Implementations§
impl Freeze for NodeError
impl RefUnwindSafe for NodeError
impl Send for NodeError
impl Sync for NodeError
impl Unpin for NodeError
impl UnsafeUnpin for NodeError
impl UnwindSafe for NodeError
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
impl<Choices> CoproductSubsetter<CNil, HNil> for Choices
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::RequestSource§impl<M, I> RuntimeMemory<&mut I> for Mwhere
M: RuntimeMemory<I>,
impl<M, I> RuntimeMemory<&mut I> for Mwhere
M: RuntimeMemory<I>,
Source§fn read<'instance>(
&self,
instance: &'instance &mut I,
location: GuestPointer,
length: u32,
) -> Result<Cow<'instance, [u8]>, RuntimeError>
fn read<'instance>( &self, instance: &'instance &mut I, location: GuestPointer, length: u32, ) -> Result<Cow<'instance, [u8]>, RuntimeError>
Reads length bytes from memory from the provided location.
Source§fn write(
&mut self,
instance: &mut &mut I,
location: GuestPointer,
bytes: &[u8],
) -> Result<(), RuntimeError>
fn write( &mut self, instance: &mut &mut I, location: GuestPointer, bytes: &[u8], ) -> Result<(), RuntimeError>
Writes the bytes to memory at the provided location.