Struct Signature
pub struct Signature { /* private fields */ }
Expand description
An Ethereum ECDSA signature.
Implementations§
§impl Signature
impl Signature
pub fn decode_rlp_vrs(buf: &mut &[u8]) -> Result<Signature, Error>
pub fn decode_rlp_vrs(buf: &mut &[u8]) -> Result<Signature, Error>
Decode an RLP-encoded VRS signature.
§impl Signature
impl Signature
pub fn new(r: Uint<256, 4>, s: Uint<256, 4>, v: Parity) -> Signature
pub fn new(r: Uint<256, 4>, s: Uint<256, 4>, v: Parity) -> Signature
Instantiate a new signature from r
, s
, and v
values.
pub fn into_inner(self) -> Signature<Secp256k1>
👎Deprecated: use Signature::to_k256
instead
pub fn into_inner(self) -> Signature<Secp256k1>
Signature::to_k256
insteadReturns the inner ECDSA signature.
pub fn from_signature_and_parity<T, E>(
sig: Signature<Secp256k1>,
parity: T,
) -> Result<Signature, SignatureError>
pub fn from_signature_and_parity<T, E>( sig: Signature<Secp256k1>, parity: T, ) -> Result<Signature, SignatureError>
Instantiate from a signature and recovery id
pub fn from_scalars_and_parity<T, E>(
r: FixedBytes<32>,
s: FixedBytes<32>,
parity: T,
) -> Result<Signature, SignatureError>
pub fn from_scalars_and_parity<T, E>( r: FixedBytes<32>, s: FixedBytes<32>, parity: T, ) -> Result<Signature, 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.
pub fn normalize_s(&self) -> Option<Signature>
pub fn normalize_s(&self) -> Option<Signature>
Normalizes the signature into “low S” form as described in BIP 0062: Dealing with Malleability.
pub const fn recid(&self) -> RecoveryId
pub const fn recid(&self) -> RecoveryId
Returns the recovery ID.
pub fn recover_address_from_msg<T>(
&self,
msg: T,
) -> Result<Address, SignatureError>
pub fn recover_address_from_msg<T>( &self, msg: T, ) -> Result<Address, SignatureError>
pub fn recover_address_from_prehash(
&self,
prehash: &FixedBytes<32>,
) -> Result<Address, SignatureError>
pub fn recover_address_from_prehash( &self, prehash: &FixedBytes<32>, ) -> Result<Address, SignatureError>
Recovers an Address
from this signature and the given prehashed message.
pub fn recover_from_msg<T>(
&self,
msg: T,
) -> Result<VerifyingKey<Secp256k1>, SignatureError>
pub fn recover_from_msg<T>( &self, msg: T, ) -> Result<VerifyingKey<Secp256k1>, SignatureError>
Recovers a VerifyingKey
from this signature and the given message by first prefixing and
hashing the message according to EIP-191.
pub fn recover_from_prehash(
&self,
prehash: &FixedBytes<32>,
) -> Result<VerifyingKey<Secp256k1>, SignatureError>
pub fn recover_from_prehash( &self, prehash: &FixedBytes<32>, ) -> Result<VerifyingKey<Secp256k1>, SignatureError>
Recovers a VerifyingKey
from this signature and the given prehashed message.
pub fn from_bytes_and_parity<T, E>(
bytes: &[u8],
parity: T,
) -> Result<Signature, SignatureError>
pub fn from_bytes_and_parity<T, E>( bytes: &[u8], parity: T, ) -> Result<Signature, SignatureError>
Parses a signature from a byte slice, with a v value
§Panics
If the slice is not at least 64 bytes long.
pub fn from_rs_and_parity<T, E>(
r: Uint<256, 4>,
s: Uint<256, 4>,
parity: T,
) -> Result<Signature, SignatureError>
pub fn from_rs_and_parity<T, E>( r: Uint<256, 4>, s: Uint<256, 4>, parity: T, ) -> Result<Signature, SignatureError>
Instantiate from v, r, s.
pub fn with_chain_id(self, chain_id: u64) -> Signature
pub fn with_chain_id(self, chain_id: u64) -> Signature
Modifies the recovery ID by applying EIP-155 to a v
value.
pub fn with_parity_bool(self) -> Signature
pub fn with_parity_bool(self) -> Signature
Modifies the recovery ID by dropping any [EIP-155] v value, converting to a simple parity bool.
pub const fn r(&self) -> Uint<256, 4>
pub const fn r(&self) -> Uint<256, 4>
Returns the r
component of this signature.
pub const fn s(&self) -> Uint<256, 4>
pub const fn s(&self) -> Uint<256, 4>
Returns the s
component of this signature.
pub const fn chain_id(&self) -> Option<u64>
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.
pub const fn has_eip155_value(&self) -> bool
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.
pub fn as_bytes(&self) -> [u8; 65]
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.
pub fn with_parity<T>(self, parity: T) -> Signature
pub fn with_parity<T>(self, parity: T) -> Signature
Sets the recovery ID by normalizing a v
value.
pub fn rlp_rs_len(&self) -> usize
pub fn rlp_rs_len(&self) -> usize
Length of RLP RS field encoding
pub fn rlp_vrs_len(&self) -> usize
pub fn rlp_vrs_len(&self) -> usize
Length of RLP V field encoding
pub fn write_rlp_rs(&self, out: &mut dyn BufMut)
pub fn write_rlp_rs(&self, out: &mut dyn BufMut)
Write R and S to an RLP buffer in progress.
pub fn write_rlp_v(&self, out: &mut dyn BufMut)
pub fn write_rlp_v(&self, out: &mut dyn BufMut)
Write the V to an RLP buffer without using EIP-155.
pub fn write_rlp_vrs(&self, out: &mut dyn BufMut)
pub fn write_rlp_vrs(&self, out: &mut dyn BufMut)
Write the VRS to the output. The V will always be 27 or 28.