pub struct Builder(/* private fields */);
Expand description
An Object which can be used to construct a script piece by piece.
Implementations§
§impl Builder
impl Builder
pub fn push_int(self, data: i64) -> Builder
pub fn push_int(self, data: i64) -> Builder
Adds instructions to push an integer onto the stack.
Integers are encoded as little-endian signed-magnitude numbers, but there are dedicated opcodes to push some small integers.
pub fn push_slice<T>(self, data: T) -> Builder
pub fn push_slice<T>(self, data: T) -> Builder
Adds instructions to push some arbitrary data onto the stack.
pub fn push_key(self, key: &PublicKey) -> Builder
pub fn push_key(self, key: &PublicKey) -> Builder
Adds instructions to push a public key onto the stack.
pub fn push_x_only_key(self, x_only_key: &XOnlyPublicKey) -> Builder
pub fn push_x_only_key(self, x_only_key: &XOnlyPublicKey) -> Builder
Adds instructions to push an XOnly public key onto the stack.
pub fn push_opcode(self, data: Opcode) -> Builder
pub fn push_opcode(self, data: Opcode) -> Builder
Adds a single opcode to the script.
pub fn push_verify(self) -> Builder
pub fn push_verify(self) -> Builder
Adds an OP_VERIFY
to the script or replaces the last opcode with VERIFY form.
Some opcodes such as OP_CHECKSIG
have a verify variant that works as if VERIFY
was
in the script right after. To save space this function appends VERIFY
only if
the most-recently-added opcode does not have an alternate VERIFY
form. If it does
the last opcode is replaced. E.g., OP_CHECKSIG
will become OP_CHECKSIGVERIFY
.
Note that existing OP_*VERIFY
opcodes do not lead to the instruction being ignored
because OP_VERIFY
consumes an item from the stack so ignoring them would change the
semantics.
pub fn push_lock_time(self, lock_time: LockTime) -> Builder
pub fn push_lock_time(self, lock_time: LockTime) -> Builder
Adds instructions to push an absolute lock time onto the stack.
pub fn push_sequence(self, sequence: Sequence) -> Builder
pub fn push_sequence(self, sequence: Sequence) -> Builder
Adds instructions to push a sequence number onto the stack.
pub fn into_script(self) -> ScriptBuf
pub fn into_script(self) -> ScriptBuf
Converts the Builder
into ScriptBuf
.
pub fn into_bytes(self) -> Vec<u8> ⓘ
pub fn into_bytes(self) -> Vec<u8> ⓘ
Converts the Builder
into script bytes