Skip to main content

Script

Struct Script 

Source
pub struct Script { /* private fields */ }
Expand description

A Bitcoin script represented as a sequence of parsed chunks.

Implementations§

Source§

impl Script

Source

pub fn new() -> Self

Create an empty script.

Source

pub fn from_binary(bytes: &[u8]) -> Self

Parse a script from raw binary bytes.

Source

pub fn from_hex(hex: &str) -> Result<Self, ScriptError>

Parse a script from a hex string.

Source

pub fn from_asm(asm: &str) -> Self

Parse a script from a space-separated ASM string.

Handles opcodes like “OP_DUP”, data pushes as hex strings, “0” as OP_0, and “-1” as OP_1NEGATE. OP_PUSHDATA1/2/4 in ASM format: "OP_PUSHDATA1 <len> <hex>"

Source

pub fn from_chunks(chunks: Vec<ScriptChunk>) -> Self

Create a script from pre-built chunks.

Source

pub fn to_binary(&self) -> Vec<u8>

Serialize the script to binary bytes.

Source

pub fn to_hex(&self) -> String

Serialize then hex-encode.

Source

pub fn to_asm(&self) -> String

ASM string representation.

Source

pub fn chunks(&self) -> &[ScriptChunk]

Access the parsed chunks.

Source

pub fn len(&self) -> usize

Number of chunks.

Source

pub fn is_empty(&self) -> bool

Whether the script has no chunks.

Source

pub fn find_and_delete(&self, target: &Script) -> Script

Remove all occurrences of target from this script (borrowing).

Matching is done by comparing the serialized bytes of each chunk against the full serialized target, following the TS SDK’s findAndDelete algorithm.

Source

pub fn find_and_delete_owned(self, target: &Script) -> Script

Remove all occurrences of target from this script (consuming self to avoid clone).

Same semantics as find_and_delete but takes ownership, avoiding the internal Vec<ScriptChunk> clone when the caller no longer needs the original.

Source

pub fn is_push_only(&self) -> bool

Check if the script contains only push-data operations.

Push-only means all opcodes are <= OP_16 (0x60).

Trait Implementations§

Source§

impl Clone for Script

Source§

fn clone(&self) -> Script

Returns a duplicate 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 Script

Source§

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

Formats the value using the given formatter. Read more
Source§

impl Default for Script

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl PartialEq for Script

Source§

fn eq(&self, other: &Script) -> 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 Eq for Script

Source§

impl StructuralPartialEq for Script

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, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
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> 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.