Enum UserSignature
#[non_exhaustive]pub enum UserSignature {
Simple(SimpleSignature),
Multisig(MultisigAggregatedSignature),
PasskeyAuthenticator(PasskeyAuthenticator),
MoveAuthenticator(MoveAuthenticator),
}Expand description
A signature from a user
A UserSignature is most commonly used to authorize the execution and
inclusion of a transaction to the blockchain.
§BCS
The BCS serialized form for this type is defined by the following ABNF:
user-signature-bcs = bytes ; where the contents of the bytes are defined by <user-signature>
user-signature = simple-signature / multisig / multisig-legacy / passkey / move-authenticatorNote: Due to historical reasons, signatures are serialized slightly
different from the majority of the types in IOTA. In particular if a
signature is ever embedded in another structure it generally is serialized
as bytes meaning it has a length prefix that defines the length of
the completely serialized signature.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Simple(SimpleSignature)
Multisig(MultisigAggregatedSignature)
PasskeyAuthenticator(PasskeyAuthenticator)
MoveAuthenticator(MoveAuthenticator)
Implementations§
§impl UserSignature
impl UserSignature
pub fn derive_address(&self) -> Address
pub fn derive_address(&self) -> Address
Derive the Address of the signer that this signature authenticates.
§impl UserSignature
impl UserSignature
pub fn as_simple(&self) -> &SimpleSignature
pub fn as_simple(&self) -> &SimpleSignature
Converts this into a simple if it is a simple variant, or panics otherwise.
pub fn as_mut_simple(&mut self) -> &mut SimpleSignature
pub fn as_mut_simple(&mut self) -> &mut SimpleSignature
Converts this into a mut simple if it is a simple variant, or panics otherwise.
pub fn as_opt_simple(&self) -> Option<&SimpleSignature>
pub fn as_opt_simple(&self) -> Option<&SimpleSignature>
Converts this into a simple if it is a simple variant, or returns None otherwise.
pub fn as_opt_mut_simple(&mut self) -> Option<&mut SimpleSignature>
pub fn as_opt_mut_simple(&mut self) -> Option<&mut SimpleSignature>
Converts this into a mut simple if it is a simple variant, or returns None otherwise.
pub fn into_opt_simple(self) -> Option<SimpleSignature>
pub fn into_opt_simple(self) -> Option<SimpleSignature>
Converts this into a simple if it is a simple variant, or returns None otherwise.
pub fn into_simple(self) -> SimpleSignature
pub fn into_simple(self) -> SimpleSignature
Converts this into a simple if it is a simple variant, or panics otherwise.
pub fn is_multisig(&self) -> bool
pub fn is_multisig(&self) -> bool
Checks if this is a multisig variant.
pub fn as_multisig(&self) -> &MultisigAggregatedSignature
pub fn as_multisig(&self) -> &MultisigAggregatedSignature
Converts this into a multisig if it is a multisig variant, or panics otherwise.
pub fn as_mut_multisig(&mut self) -> &mut MultisigAggregatedSignature
pub fn as_mut_multisig(&mut self) -> &mut MultisigAggregatedSignature
Converts this into a mut multisig if it is a multisig variant, or panics otherwise.
pub fn as_opt_multisig(&self) -> Option<&MultisigAggregatedSignature>
pub fn as_opt_multisig(&self) -> Option<&MultisigAggregatedSignature>
Converts this into a multisig if it is a multisig variant, or returns None otherwise.
pub fn as_opt_mut_multisig(
&mut self,
) -> Option<&mut MultisigAggregatedSignature>
pub fn as_opt_mut_multisig( &mut self, ) -> Option<&mut MultisigAggregatedSignature>
Converts this into a mut multisig if it is a multisig variant, or returns None otherwise.
pub fn into_opt_multisig(self) -> Option<MultisigAggregatedSignature>
pub fn into_opt_multisig(self) -> Option<MultisigAggregatedSignature>
Converts this into a multisig if it is a multisig variant, or returns None otherwise.
pub fn into_multisig(self) -> MultisigAggregatedSignature
pub fn into_multisig(self) -> MultisigAggregatedSignature
Converts this into a multisig if it is a multisig variant, or panics otherwise.
pub fn is_passkey_authenticator(&self) -> bool
pub fn is_passkey_authenticator(&self) -> bool
Checks if this is a passkey_authenticator variant.
pub fn as_passkey_authenticator(&self) -> &PasskeyAuthenticator
pub fn as_passkey_authenticator(&self) -> &PasskeyAuthenticator
Converts this into a passkey_authenticator if it is a passkey_authenticator variant, or panics otherwise.
pub fn as_mut_passkey_authenticator(&mut self) -> &mut PasskeyAuthenticator
pub fn as_mut_passkey_authenticator(&mut self) -> &mut PasskeyAuthenticator
Converts this into a mut passkey_authenticator if it is a passkey_authenticator variant, or panics otherwise.
pub fn as_opt_passkey_authenticator(&self) -> Option<&PasskeyAuthenticator>
pub fn as_opt_passkey_authenticator(&self) -> Option<&PasskeyAuthenticator>
Converts this into a passkey_authenticator if it is a passkey_authenticator variant, or returns None otherwise.
pub fn as_opt_mut_passkey_authenticator(
&mut self,
) -> Option<&mut PasskeyAuthenticator>
pub fn as_opt_mut_passkey_authenticator( &mut self, ) -> Option<&mut PasskeyAuthenticator>
Converts this into a mut passkey_authenticator if it is a passkey_authenticator variant, or returns None otherwise.
pub fn into_opt_passkey_authenticator(self) -> Option<PasskeyAuthenticator>
pub fn into_opt_passkey_authenticator(self) -> Option<PasskeyAuthenticator>
Converts this into a passkey_authenticator if it is a passkey_authenticator variant, or returns None otherwise.
pub fn into_passkey_authenticator(self) -> PasskeyAuthenticator
pub fn into_passkey_authenticator(self) -> PasskeyAuthenticator
Converts this into a passkey_authenticator if it is a passkey_authenticator variant, or panics otherwise.
pub fn is_move_authenticator(&self) -> bool
pub fn is_move_authenticator(&self) -> bool
Checks if this is a move_authenticator variant.
pub fn as_move_authenticator(&self) -> &MoveAuthenticator
pub fn as_move_authenticator(&self) -> &MoveAuthenticator
Converts this into a move_authenticator if it is a move_authenticator variant, or panics otherwise.
pub fn as_mut_move_authenticator(&mut self) -> &mut MoveAuthenticator
pub fn as_mut_move_authenticator(&mut self) -> &mut MoveAuthenticator
Converts this into a mut move_authenticator if it is a move_authenticator variant, or panics otherwise.
pub fn as_opt_move_authenticator(&self) -> Option<&MoveAuthenticator>
pub fn as_opt_move_authenticator(&self) -> Option<&MoveAuthenticator>
Converts this into a move_authenticator if it is a move_authenticator variant, or returns None otherwise.
pub fn as_opt_mut_move_authenticator(
&mut self,
) -> Option<&mut MoveAuthenticator>
pub fn as_opt_mut_move_authenticator( &mut self, ) -> Option<&mut MoveAuthenticator>
Converts this into a mut move_authenticator if it is a move_authenticator variant, or returns None otherwise.
pub fn into_opt_move_authenticator(self) -> Option<MoveAuthenticator>
pub fn into_opt_move_authenticator(self) -> Option<MoveAuthenticator>
Converts this into a move_authenticator if it is a move_authenticator variant, or returns None otherwise.
pub fn into_move_authenticator(self) -> MoveAuthenticator
pub fn into_move_authenticator(self) -> MoveAuthenticator
Converts this into a move_authenticator if it is a move_authenticator variant, or panics otherwise.
pub fn scheme(&self) -> SignatureScheme
pub fn scheme(&self) -> SignatureScheme
Return the flag for this signature scheme
pub fn to_public_key(&self) -> Result<PublicKey, InvalidSignatureScheme>
pub fn to_public_key(&self) -> Result<PublicKey, InvalidSignatureScheme>
Return the public key for this signature, if the scheme supports it.
§impl UserSignature
impl UserSignature
pub fn to_bytes(&self) -> Vec<u8> ⓘ
pub fn to_base64(&self) -> String
pub fn from_bytes( bytes: impl AsRef<[u8]>, ) -> Result<UserSignature, SignatureFromBytesError>
pub fn from_base64(s: &str) -> Result<UserSignature, Error>
Trait Implementations§
§impl Arbitrary for UserSignature
impl Arbitrary for UserSignature
§type Parameters = ()
type Parameters = ()
arbitrary_with accepts for configuration
of the generated Strategy. Parameters must implement Default.§type Strategy = BoxedStrategy<UserSignature>
type Strategy = BoxedStrategy<UserSignature>
Strategy used to generate values of type Self.§fn arbitrary_with(
args_shared: <UserSignature as Arbitrary>::Parameters,
) -> <UserSignature as Arbitrary>::Strategy
fn arbitrary_with( args_shared: <UserSignature as Arbitrary>::Parameters, ) -> <UserSignature as Arbitrary>::Strategy
Source§impl AuthenticatorTrait for UserSignature
impl AuthenticatorTrait for UserSignature
fn verify_claims<T>(
&self,
value: &IntentMessage<T>,
author: Address,
aux_verify_data: &VerifyParams,
) -> IotaResultwhere
T: Serialize,
§impl Clone for UserSignature
impl Clone for UserSignature
§fn clone(&self) -> UserSignature
fn clone(&self) -> UserSignature
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for UserSignature
impl Debug for UserSignature
§impl<'de> Deserialize<'de> for UserSignature
impl<'de> Deserialize<'de> for UserSignature
§fn deserialize<D>(
deserializer: D,
) -> Result<UserSignature, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
fn deserialize<D>(
deserializer: D,
) -> Result<UserSignature, <D as Deserializer<'de>>::Error>where
D: Deserializer<'de>,
§impl From<MoveAuthenticator> for UserSignature
impl From<MoveAuthenticator> for UserSignature
§fn from(value: MoveAuthenticator) -> UserSignature
fn from(value: MoveAuthenticator) -> UserSignature
§impl From<MultisigAggregatedSignature> for UserSignature
impl From<MultisigAggregatedSignature> for UserSignature
§fn from(value: MultisigAggregatedSignature) -> UserSignature
fn from(value: MultisigAggregatedSignature) -> UserSignature
§impl From<PasskeyAuthenticator> for UserSignature
impl From<PasskeyAuthenticator> for UserSignature
§fn from(value: PasskeyAuthenticator) -> UserSignature
fn from(value: PasskeyAuthenticator) -> UserSignature
§impl From<SimpleSignature> for UserSignature
impl From<SimpleSignature> for UserSignature
§fn from(value: SimpleSignature) -> UserSignature
fn from(value: SimpleSignature) -> UserSignature
§impl FromStr for UserSignature
impl FromStr for UserSignature
§impl Hash for UserSignature
Available on crate feature serde only.
impl Hash for UserSignature
serde only.§impl PartialEq for UserSignature
impl PartialEq for UserSignature
§impl Serialize for UserSignature
impl Serialize for UserSignature
§fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
fn serialize<S>(
&self,
serializer: S,
) -> Result<<S as Serializer>::Ok, <S as Serializer>::Error>where
S: Serializer,
§impl TryFrom<UserSignature> for MultisigMemberSignature
impl TryFrom<UserSignature> for MultisigMemberSignature
§fn try_from(
signature: UserSignature,
) -> Result<MultisigMemberSignature, <MultisigMemberSignature as TryFrom<UserSignature>>::Error>
fn try_from( signature: UserSignature, ) -> Result<MultisigMemberSignature, <MultisigMemberSignature as TryFrom<UserSignature>>::Error>
impl Eq for UserSignature
impl StructuralPartialEq for UserSignature
Auto Trait Implementations§
impl Freeze for UserSignature
impl RefUnwindSafe for UserSignature
impl Send for UserSignature
impl Sync for UserSignature
impl Unpin for UserSignature
impl UnsafeUnpin for UserSignature
impl UnwindSafe for UserSignature
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read more§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
§impl<T> CallHasher for T
impl<T> CallHasher for T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for 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<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
§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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 more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a Request§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.