pub enum EcdsaSighashType {
All = 1,
None = 2,
Single = 3,
AllPlusAnyoneCanPay = 129,
NonePlusAnyoneCanPay = 130,
SinglePlusAnyoneCanPay = 131,
}
Expand description
Hashtype of an input’s signature, encoded in the last byte of the signature.
Fixed values so they can be cast as integer types for encoding (see also
[SchnorrSighashType
]).
Variants§
All = 1
0x1: Sign all outputs.
None = 2
0x2: Sign no outputs — anyone can choose the destination.
Single = 3
0x3: Sign the output whose index matches this input’s index. If none exists,
sign the hash 0000000000000000000000000000000000000000000000000000000000000001
.
(This rule is probably an unintentional C++ism, but it’s consensus so we have
to follow it.)
AllPlusAnyoneCanPay = 129
0x81: Sign all outputs but only this input.
NonePlusAnyoneCanPay = 130
0x82: Sign no outputs and only this input.
SinglePlusAnyoneCanPay = 131
0x83: Sign one output and only this input (see Single
for what “one output” means).
Implementations§
§impl EcdsaSighashType
impl EcdsaSighashType
pub fn from_u32_consensus(n: u32) -> EcdsaSighashType
👎Deprecated since 0.28.0: please use from_consensus
pub fn from_u32_consensus(n: u32) -> EcdsaSighashType
from_consensus
Creates a EcdsaSighashType
from a raw u32
.
pub fn from_consensus(n: u32) -> EcdsaSighashType
pub fn from_consensus(n: u32) -> EcdsaSighashType
Creates a EcdsaSighashType
from a raw u32
.
Note: this replicates consensus behaviour, for current standardness rules correctness
you probably want Self::from_standard
.
This might cause unexpected behavior because it does not roundtrip. That is,
EcdsaSighashType::from_consensus(n) as u32 != n
for non-standard values of n
. While
verifying signatures, the user should retain the n
and use it compute the signature hash
message.
pub fn from_u32_standard(
n: u32,
) -> Result<EcdsaSighashType, NonStandardSighashType>
👎Deprecated since 0.28.0: please use from_standard
pub fn from_u32_standard( n: u32, ) -> Result<EcdsaSighashType, NonStandardSighashType>
from_standard
Creates a EcdsaSighashType
from a raw u32
.
pub fn from_standard(n: u32) -> Result<EcdsaSighashType, NonStandardSighashType>
pub fn from_standard(n: u32) -> Result<EcdsaSighashType, NonStandardSighashType>
pub fn to_u32(self) -> u32
pub fn to_u32(self) -> u32
Converts EcdsaSighashType
to a u32
sighash flag.
The returned value is guaranteed to be a valid according to standardness rules.
Trait Implementations§
§impl Clone for EcdsaSighashType
impl Clone for EcdsaSighashType
§fn clone(&self) -> EcdsaSighashType
fn clone(&self) -> EcdsaSighashType
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for EcdsaSighashType
impl Debug for EcdsaSighashType
§impl Display for EcdsaSighashType
impl Display for EcdsaSighashType
§impl From<EcdsaSighashType> for PsbtSighashType
impl From<EcdsaSighashType> for PsbtSighashType
§fn from(ecdsa_hash_ty: EcdsaSighashType) -> PsbtSighashType
fn from(ecdsa_hash_ty: EcdsaSighashType) -> PsbtSighashType
§impl From<EcdsaSighashType> for SchnorrSighashType
impl From<EcdsaSighashType> for SchnorrSighashType
§fn from(s: EcdsaSighashType) -> SchnorrSighashType
fn from(s: EcdsaSighashType) -> SchnorrSighashType
§impl FromStr for EcdsaSighashType
impl FromStr for EcdsaSighashType
§type Err = SighashTypeParseError
type Err = SighashTypeParseError
§fn from_str(
s: &str,
) -> Result<EcdsaSighashType, <EcdsaSighashType as FromStr>::Err>
fn from_str( s: &str, ) -> Result<EcdsaSighashType, <EcdsaSighashType as FromStr>::Err>
s
to return a value of this type. Read more§impl Hash for EcdsaSighashType
impl Hash for EcdsaSighashType
§impl PartialEq for EcdsaSighashType
impl PartialEq for EcdsaSighashType
impl Copy for EcdsaSighashType
impl Eq for EcdsaSighashType
impl StructuralPartialEq for EcdsaSighashType
Auto Trait Implementations§
impl Freeze for EcdsaSighashType
impl RefUnwindSafe for EcdsaSighashType
impl Send for EcdsaSighashType
impl Sync for EcdsaSighashType
impl Unpin for EcdsaSighashType
impl UnwindSafe for EcdsaSighashType
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<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)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