Enum SendError
pub enum SendError {
Secp256k1(Error),
TooBigPacket,
TooFewBlindedHops,
InvalidFirstHop,
InvalidMessage,
BufferFull,
GetNodeIdFailed,
BlindedPathAdvanceFailed,
}
Expand description
Errors that may occur when sending an onion message.
Variants§
Secp256k1(Error)
Errored computing onion message packet keys.
TooBigPacket
Because implementations such as Eclair will drop onion messages where the message packet exceeds 32834 bytes, we refuse to send messages where the packet exceeds this size.
TooFewBlindedHops
The provided Destination
was an invalid BlindedPath
due to not having any blinded
hops.
InvalidFirstHop
Our next-hop peer was offline or does not support onion message forwarding.
InvalidMessage
Onion message contents must have a TLV type >= 64.
BufferFull
Our next-hop peer’s buffer was full or our total outbound buffer was full.
GetNodeIdFailed
Failed to retrieve our node id from the provided NodeSigner
.
BlindedPathAdvanceFailed
We attempted to send to a blinded path where we are the introduction node, and failed to
advance the blinded path to make the second hop the new introduction node. Either
NodeSigner::ecdh
failed, we failed to tweak the current blinding point to get the
new blinding point, or we were attempting to send to ourselves.
Trait Implementations§
impl Eq for SendError
impl StructuralPartialEq for SendError
Auto Trait Implementations§
impl Freeze for SendError
impl RefUnwindSafe for SendError
impl Send for SendError
impl Sync for SendError
impl Unpin for SendError
impl UnwindSafe for SendError
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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<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.§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key
and return true
if they are equal.§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
source§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::Request