Struct Signature

Source
pub struct Signature { /* private fields */ }
๐Ÿ‘ŽDeprecated since 0.8.15: use PrimitiveSignature instead
Expand description

An Ethereum ECDSA signature.

Implementationsยง

Sourceยง

impl Signature

Source

pub fn decode_rlp_vrs(buf: &mut &[u8]) -> Result<Self, Error>

Available on crate feature rlp only.

Decode an RLP-encoded VRS signature.

Sourceยง

impl Signature

Source

pub const fn new(r: U256, s: U256, v: Parity) -> Self

Instantiate a new signature from r, s, and v values.

Source

pub fn into_inner(self) -> Signature

๐Ÿ‘ŽDeprecated: use Signature::to_k256 instead
Available on crate feature k256 only.

Returns the inner ECDSA signature.

Source

pub fn to_k256(self) -> Result<Signature, Error>

Available on crate feature k256 only.

Returns the inner ECDSA signature.

Source

pub fn from_signature_and_parity<T: TryInto<Parity, Error = E>, E: Into<SignatureError>>( sig: Signature, parity: T, ) -> Result<Self, SignatureError>

Available on crate feature k256 only.

Instantiate from a signature and recovery id

Source

pub fn from_scalars_and_parity<T: TryInto<Parity, Error = E>, E: Into<SignatureError>>( r: B256, s: B256, parity: T, ) -> Result<Self, SignatureError>

Creates a Signature from the serialized r and s scalar values, which comprise the ECDSA signature, alongside a v value, used to determine the recovery ID.

Source

pub fn normalize_s(&self) -> Option<Self>

Normalizes the signature into โ€œlow Sโ€ form as described in BIP 0062: Dealing with Malleability.

Source

pub const fn recid(&self) -> RecoveryId

Available on crate feature k256 only.

Returns the recovery ID.

Source

pub fn recover_address_from_msg<T: AsRef<[u8]>>( &self, msg: T, ) -> Result<Address, SignatureError>

Available on crate feature k256 only.

Recovers an Address from this signature and the given message by first prefixing and hashing the message according to EIP-191.

Source

pub fn recover_address_from_prehash( &self, prehash: &B256, ) -> Result<Address, SignatureError>

Available on crate feature k256 only.

Recovers an Address from this signature and the given prehashed message.

Source

pub fn recover_from_msg<T: AsRef<[u8]>>( &self, msg: T, ) -> Result<VerifyingKey, SignatureError>

Available on crate feature k256 only.

Recovers a VerifyingKey from this signature and the given message by first prefixing and hashing the message according to EIP-191.

Source

pub fn recover_from_prehash( &self, prehash: &B256, ) -> Result<VerifyingKey, SignatureError>

Available on crate feature k256 only.

Recovers a VerifyingKey from this signature and the given prehashed message.

Source

pub fn from_bytes_and_parity<T: TryInto<Parity, Error = E>, E: Into<SignatureError>>( bytes: &[u8], parity: T, ) -> Result<Self, SignatureError>

Parses a signature from a byte slice, with a v value

ยงPanics

If the slice is not at least 64 bytes long.

Source

pub fn from_rs_and_parity<T: TryInto<Parity, Error = E>, E: Into<SignatureError>>( r: U256, s: U256, parity: T, ) -> Result<Self, SignatureError>

Instantiate from v, r, s.

Source

pub fn with_chain_id(self, chain_id: u64) -> Self

Modifies the recovery ID by applying EIP-155 to a v value.

Source

pub fn with_parity_bool(self) -> Self

Modifies the recovery ID by dropping any [EIP-155] v value, converting to a simple parity bool.

Source

pub const fn r(&self) -> U256

Returns the r component of this signature.

Source

pub const fn s(&self) -> U256

Returns the s component of this signature.

Source

pub const fn v(&self) -> Parity

Returns the recovery ID as a u8.

Source

pub const fn chain_id(&self) -> Option<u64>

Returns the chain ID associated with the V value, if this signature is replay-protected by EIP-155.

Source

pub const fn has_eip155_value(&self) -> bool

Returns true if the signature is replay-protected by EIP-155.

This is true if the V value is 35 or greater. Values less than 35 are either not replay protected (27/28), or are invalid.

Source

pub fn as_bytes(&self) -> [u8; 65]

Returns the byte-array representation of this signature.

The first 32 bytes are the r value, the second 32 bytes the s value and the final byte is the v value in โ€˜Electrumโ€™ notation.

Source

pub fn with_parity<T: Into<Parity>>(self, parity: T) -> Self

Sets the recovery ID by normalizing a v value.

Source

pub fn rlp_rs_len(&self) -> usize

Available on crate feature rlp only.

Length of RLP RS field encoding

Source

pub fn rlp_vrs_len(&self) -> usize

Available on crate feature rlp only.

Length of RLP V field encoding

Source

pub fn write_rlp_rs(&self, out: &mut dyn BufMut)

Available on crate feature rlp only.

Write R and S to an RLP buffer in progress.

Source

pub fn write_rlp_v(&self, out: &mut dyn BufMut)

Available on crate feature rlp only.

Write the V to an RLP buffer without using EIP-155.

Source

pub fn write_rlp_vrs(&self, out: &mut dyn BufMut)

Available on crate feature rlp only.

Write the VRS to the output. The V will always be 27 or 28.

Trait Implementationsยง

Sourceยง

impl<'a> Arbitrary<'a> for Signature

Available on crate feature arbitrary only.
Sourceยง

fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self>

Generate an arbitrary value of Self from the given unstructured data. Read more
Sourceยง

fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self, Error>

Generate an arbitrary value of Self from the entirety of the given unstructured data. Read more
Sourceยง

fn size_hint(depth: usize) -> (usize, Option<usize>)

Get a size hint for how many bytes out of an Unstructured this type needs to construct itself. Read more
Sourceยง

fn try_size_hint( depth: usize, ) -> Result<(usize, Option<usize>), MaxRecursionReached>

Get a size hint for how many bytes out of an Unstructured this type needs to construct itself. Read more
Sourceยง

impl Arbitrary for Signature

Available on crate feature arbitrary only.
Sourceยง

type Parameters = ()

The type of parameters that arbitrary_with accepts for configuration of the generated Strategy. Parameters must implement Default.
Sourceยง

type Strategy = FilterMap<<(Uint<256, 4>, Uint<256, 4>, Parity) as Arbitrary>::Strategy, fn(_: (Uint<256, 4>, Uint<256, 4>, Parity)) -> Option<Signature>>

The type of Strategy used to generate values of type Self.
Sourceยง

fn arbitrary_with((): Self::Parameters) -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the implementing type (Self). The strategy is passed the arguments given in args. Read more
Sourceยง

fn arbitrary() -> Self::Strategy

Generates a Strategy for producing arbitrary values of type the implementing type (Self). Read more
Sourceยง

impl Clone for Signature

Sourceยง

fn clone(&self) -> Signature

Returns a copy of the value. Read more
1.0.0 ยท Sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Sourceยง

impl Debug for Signature

Sourceยง

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Sourceยง

impl Decodable for Signature

Available on crate feature rlp only.
Sourceยง

fn decode(buf: &mut &[u8]) -> Result<Self, Error>

Decodes the blob into the appropriate type. buf must be advanced past the decoded object.
Sourceยง

impl<'de> Deserialize<'de> for Signature

Available on crate feature serde only.
Sourceยง

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Sourceยง

impl Encodable for Signature

Available on crate feature rlp only.
Sourceยง

fn encode(&self, out: &mut dyn BufMut)

Encodes the type into the out buffer.
Sourceยง

fn length(&self) -> usize

Returns the length of the encoding of this type in bytes. Read more
Sourceยง

impl From<&Signature> for [u8; 65]

Sourceยง

fn from(value: &Signature) -> [u8; 65]

Converts to this type from the input type.
Sourceยง

impl From<&Signature> for Vec<u8>

Sourceยง

fn from(value: &Signature) -> Self

Converts to this type from the input type.
Sourceยง

impl From<(Signature<Secp256k1>, RecoveryId)> for Signature

Available on crate feature k256 only.
Sourceยง

fn from(value: (Signature, RecoveryId)) -> Self

Converts to this type from the input type.
Sourceยง

impl From<Signature> for [u8; 65]

Sourceยง

fn from(value: Signature) -> [u8; 65]

Converts to this type from the input type.
Sourceยง

impl From<Signature> for Vec<u8>

Sourceยง

fn from(value: Signature) -> Self

Converts to this type from the input type.
Sourceยง

impl FromStr for Signature

Sourceยง

type Err = SignatureError

The associated error which can be returned from parsing.
Sourceยง

fn from_str(s: &str) -> Result<Self, Self::Err>

Parses a string s to return a value of this type. Read more
Sourceยง

impl Hash for Signature

Sourceยง

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 ยท Sourceยง

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Sourceยง

impl PartialEq for Signature

Sourceยง

fn eq(&self, other: &Signature) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 ยท Sourceยง

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Sourceยง

impl Serialize for Signature

Available on crate feature serde only.
Sourceยง

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Sourceยง

impl<'a> TryFrom<&'a [u8]> for Signature

Sourceยง

fn try_from(bytes: &'a [u8]) -> Result<Self, Self::Error>

Parses a raw signature which is expected to be 65 bytes long where the first 32 bytes is the r value, the second 32 bytes the s value and the final byte is the v value in โ€˜Electrumโ€™ notation.

Sourceยง

type Error = SignatureError

The type returned in the event of a conversion error.
Sourceยง

impl TryFrom<Signature> for Signature

Available on crate feature k256 only.
Sourceยง

type Error = Error

The type returned in the event of a conversion error.
Sourceยง

fn try_from(value: Signature) -> Result<Self, Self::Error>

Performs the conversion.
Sourceยง

impl Copy for Signature

Sourceยง

impl Eq for Signature

Sourceยง

impl StructuralPartialEq for Signature

Auto Trait Implementationsยง

Blanket Implementationsยง

Sourceยง

impl<T> Any for T
where T: 'static + ?Sized,

Sourceยง

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Sourceยง

impl<T> Borrow<T> for T
where T: ?Sized,

Sourceยง

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Sourceยง

impl<T> BorrowMut<T> for T
where T: ?Sized,

Sourceยง

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Sourceยง

impl<T> CloneToUninit for T
where T: Clone,

Sourceยง

unsafe fn clone_to_uninit(&self, dst: *mut u8)

๐Ÿ”ฌThis is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
Sourceยง

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Sourceยง

fn equivalent(&self, key: &K) -> bool

Checks if this value is equivalent to the given key. Read more
Sourceยง

impl<Q, K> Equivalent<K> for Q
where Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,

Sourceยง

fn equivalent(&self, key: &K) -> bool

Compare self to key and return true if they are equal.
Sourceยง

impl<T> From<T> for T

Sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

Sourceยง

impl<T, U> Into<U> for T
where U: From<T>,

Sourceยง

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Sourceยง

impl<T> IntoEither for T

Sourceยง

fn into_either(self, into_left: bool) -> Either<Self, Self> โ“˜

Converts 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 more
Sourceยง

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> โ“˜
where F: FnOnce(&Self) -> bool,

Converts 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
Sourceยง

impl<T> Pointable for T

Sourceยง

const ALIGN: usize

The alignment of pointer.
Sourceยง

type Init = T

The type for initializers.
Sourceยง

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Sourceยง

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Sourceยง

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Sourceยง

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Sourceยง

impl<T> Same for T

Sourceยง

type Output = T

Should always be Self
Sourceยง

impl<T> ToOwned for T
where T: Clone,

Sourceยง

type Owned = T

The resulting type after obtaining ownership.
Sourceยง

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Sourceยง

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Sourceยง

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Sourceยง

type Error = Infallible

The type returned in the event of a conversion error.
Sourceยง

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Sourceยง

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Sourceยง

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Sourceยง

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Sourceยง

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Sourceยง

fn vzip(self) -> V

Sourceยง

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Layoutยง

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's โ€œType Layoutโ€ chapter for details on type layout guarantees.

Size: 80 bytes