Struct sapio_bitcoin::blockdata::script::Script[][src]

pub struct Script(_);

A Bitcoin script

Implementations

impl Script[src]

pub fn new() -> Script[src]

Creates a new empty script

pub fn new_p2pk(pubkey: &PublicKey) -> Script[src]

Generates P2PK-type of scriptPubkey

pub fn new_p2pkh(pubkey_hash: &PubkeyHash) -> Script[src]

Generates P2PKH-type of scriptPubkey

pub fn new_p2sh(script_hash: &ScriptHash) -> Script[src]

Generates P2SH-type of scriptPubkey with a given hash of the redeem script

pub fn new_v0_wpkh(pubkey_hash: &WPubkeyHash) -> Script[src]

Generates P2WPKH-type of scriptPubkey

pub fn new_v0_wsh(script_hash: &WScriptHash) -> Script[src]

Generates P2WSH-type of scriptPubkey with a given hash of the redeem script

pub fn new_witness_program(ver: u5, program: &[u8]) -> Script[src]

Generates P2WSH-type of scriptPubkey with a given hash of the redeem script

pub fn new_op_return(data: &[u8]) -> Script[src]

Generates OP_RETURN-type of scriptPubkey for a given data

pub fn script_hash(&self) -> ScriptHash[src]

Returns 160-bit hash of the script

pub fn wscript_hash(&self) -> WScriptHash[src]

Returns 256-bit hash of the script for P2WSH outputs

pub fn len(&self) -> usize[src]

The length in bytes of the script

pub fn is_empty(&self) -> bool[src]

Whether the script is the empty script

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

Notable traits for &'_ [u8]

impl<'_> Read for &'_ [u8]impl<'_> Write for &'_ mut [u8]
[src]

Returns the script data

pub fn to_bytes(&self) -> Vec<u8>[src]

Returns a copy of the script data

pub fn into_bytes(self) -> Vec<u8>[src]

Convert the script into a byte vector

pub fn to_p2sh(&self) -> Script[src]

Compute the P2SH output corresponding to this redeem script

pub fn to_v0_p2wsh(&self) -> Script[src]

Compute the P2WSH output corresponding to this witnessScript (aka the “witness redeem script”)

pub fn is_p2sh(&self) -> bool[src]

Checks whether a script pubkey is a p2sh output

pub fn is_p2pkh(&self) -> bool[src]

Checks whether a script pubkey is a p2pkh output

pub fn is_p2pk(&self) -> bool[src]

Checks whether a script pubkey is a p2pk output

pub fn is_witness_program(&self) -> bool[src]

Checks whether a script pubkey is a Segregated Witness (segwit) program.

pub fn is_v0_p2wsh(&self) -> bool[src]

Checks whether a script pubkey is a p2wsh output

pub fn is_v0_p2wpkh(&self) -> bool[src]

Checks whether a script pubkey is a p2wpkh output

pub fn is_op_return(&self) -> bool[src]

Check if this is an OP_RETURN output

pub fn is_provably_unspendable(&self) -> bool[src]

Whether a script can be proven to have no satisfying input

pub fn instructions(&self) -> Instructions<'_>

Notable traits for Instructions<'a>

impl<'a> Iterator for Instructions<'a> type Item = Result<Instruction<'a>, Error>;
[src]

Iterate over the script in the form of Instructions, which are an enum covering opcodes, datapushes and errors. At most one error will be returned and then the iterator will end. To instead iterate over the script as sequence of bytes, treat it as a slice using script[..] or convert it to a vector using into_bytes().

To force minimal pushes, use [instructions_minimal].

pub fn instructions_minimal(&self) -> Instructions<'_>

Notable traits for Instructions<'a>

impl<'a> Iterator for Instructions<'a> type Item = Result<Instruction<'a>, Error>;
[src]

Iterate over the script in the form of Instructions while enforcing minimal pushes.

pub fn fmt_asm(&self, f: &mut dyn Write) -> Result[src]

Write the assembly decoding of the script to the formatter.

pub fn asm(&self) -> String[src]

Get the assembly decoding of the script.

Trait Implementations

impl Clone for Script[src]

impl Debug for Script[src]

impl Decodable for Script[src]

impl Default for Script[src]

impl Deserialize for Script[src]

impl Display for Script[src]

impl Encodable for Script[src]

impl Eq for Script[src]

impl From<Vec<u8, Global>> for Script[src]

Creates a new script from an existing vector

impl FromHex for Script[src]

impl FromStr for Script[src]

type Err = Error

The associated error which can be returned from parsing.

impl Hash for Script[src]

impl Index<Range<usize>> for Script[src]

type Output = [u8]

The returned type after indexing.

impl Index<RangeFrom<usize>> for Script[src]

type Output = [u8]

The returned type after indexing.

impl Index<RangeFull> for Script[src]

type Output = [u8]

The returned type after indexing.

impl Index<RangeTo<usize>> for Script[src]

type Output = [u8]

The returned type after indexing.

impl Index<usize> for Script[src]

type Output = u8

The returned type after indexing.

impl LowerHex for Script[src]

impl Ord for Script[src]

impl PartialEq<Script> for Script[src]

impl PartialOrd<Script> for Script[src]

impl Serialize for Script[src]

impl StructuralEq for Script[src]

impl StructuralPartialEq for Script[src]

impl UpperHex for Script[src]

Auto Trait Implementations

impl RefUnwindSafe for Script

impl Send for Script

impl Sync for Script

impl Unpin for Script

impl UnwindSafe for Script

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToHex for T where
    T: LowerHex
[src]

pub fn to_hex(&self) -> String[src]

Outputs the hash in hexadecimal form

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.