pub enum SignedWriteError {
MissingSignatureFields {
fields: Vec<&'static str>,
},
UnknownSigner {
pubkey: [u8; 32],
},
RevokedSigner {
pubkey: [u8; 32],
},
InvalidSignature,
MalformedSignerPubkey,
MalformedSignature,
}Expand description
Failure modes for a signed-writes INSERT. The runtime maps each variant onto an HTTP status:
| Variant | HTTP |
|---|---|
MissingSignatureFields | 400 |
UnknownSigner | 401 |
RevokedSigner | 401 |
InvalidSignature | 401 |
MalformedSignerPubkey | 400 |
MalformedSignature | 400 |
Variants§
MissingSignatureFields
Row omitted signer_pubkey and/or signature on a collection
that requires them. Carries the missing column name(s) for the
error response.
UnknownSigner
signer_pubkey was a valid Ed25519 key but is not in the
collection’s current allowed-signer set AND has never appeared
in the history — i.e. an entirely unknown key.
RevokedSigner
signer_pubkey was previously allowed (appears in history with
an Add event) but has since been revoked. Distinguished from
UnknownSigner so operators can tell “never seen” from
“revoked” in audit logs.
InvalidSignature
Signature parsed as 64 bytes but did NOT verify against the
supplied signer_pubkey + canonical payload.
MalformedSignerPubkey
signer_pubkey was present but not 32 bytes / not a valid
Ed25519 public key encoding.
MalformedSignature
signature was present but not 64 bytes.
Trait Implementations§
Source§impl Clone for SignedWriteError
impl Clone for SignedWriteError
Source§fn clone(&self) -> SignedWriteError
fn clone(&self) -> SignedWriteError
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for SignedWriteError
impl Debug for SignedWriteError
Source§impl Display for SignedWriteError
impl Display for SignedWriteError
Source§impl Error for SignedWriteError
impl Error for SignedWriteError
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
use the Display impl or to_string()
Source§impl PartialEq for SignedWriteError
impl PartialEq for SignedWriteError
Source§fn eq(&self, other: &SignedWriteError) -> bool
fn eq(&self, other: &SignedWriteError) -> bool
self and other values to be equal, and is used by ==.impl Eq for SignedWriteError
impl StructuralPartialEq for SignedWriteError
Auto Trait Implementations§
impl Freeze for SignedWriteError
impl RefUnwindSafe for SignedWriteError
impl Send for SignedWriteError
impl Sync for SignedWriteError
impl Unpin for SignedWriteError
impl UnsafeUnpin for SignedWriteError
impl UnwindSafe for SignedWriteError
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<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> 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::Request