Struct Witness
pub struct Witness { /* private fields */ }
Expand description
The Witness is the data used to unlock bitcoins since the segwit upgrade
Can be logically seen as an array of byte-arrays Vec<Vec<u8>>
and indeed you can convert from
it Witness::from_vec
and convert into it Witness::to_vec
.
For serialization and deserialization performance it is stored internally as a single Vec
,
saving some allocations.
Implementations§
§impl Witness
impl Witness
pub fn to_vec(&self) -> Vec<Vec<u8>>
pub fn to_vec(&self) -> Vec<Vec<u8>>
Convenience method to create an array of byte-arrays from this witness
pub fn serialized_len(&self) -> usize
pub fn serialized_len(&self) -> usize
Returns the bytes required when this Witness is consensus encoded
pub fn clear(&mut self)
pub fn clear(&mut self)
Clear the witness
pub fn push<T>(&mut self, new_element: T)
pub fn push<T>(&mut self, new_element: T)
Push a new element on the witness, requires an allocation
pub fn push_bitcoin_signature(
&mut self,
signature: &SerializedSignature,
hash_type: EcdsaSighashType,
)
pub fn push_bitcoin_signature( &mut self, signature: &SerializedSignature, hash_type: EcdsaSighashType, )
Pushes a DER-encoded ECDSA signature with a signature hash type as a new element on the witness, requires an allocation.
pub fn second_to_last(&self) -> Option<&[u8]>
pub fn second_to_last(&self) -> Option<&[u8]>
Return the second-to-last element in the witness, if any
Trait Implementations§
§impl Deserialize for Witness
impl Deserialize for Witness
§impl Ord for Witness
impl Ord for Witness
§impl PartialOrd for Witness
impl PartialOrd for Witness
§impl Writeable for Witness
impl Writeable for Witness
impl Eq for Witness
impl StructuralPartialEq for Witness
Auto Trait Implementations§
impl Freeze for Witness
impl RefUnwindSafe for Witness
impl Send for Witness
impl Sync for Witness
impl Unpin for Witness
impl UnwindSafe for Witness
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
Mutably borrows from an owned value. Read more
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)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
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
Compare self to
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
Checks if this value is equivalent to the given key. Read more
§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
Compare self to
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>
Wrap the input message
T
in a tonic::Request