The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Bitcoin::Crypto::Transaction::Output - Bitcoin transaction output instance

SYNOPSIS

        use Bitcoin::Crypto qw(btc_transaction);

        my $tx = btc_transaction->new;

        $tx->add_output(
                value => 1234,
                locking_script => [P2WPKH => $my_address],
        );

        print $tx->outputs->[0]->dump;

DESCRIPTION

This is an output instance implementation used in transactions. It is rarely interacted with directly.

INTERFACE

Attributes

value

Non-negative integer value of the output in the smallest unit (satoshi). It is an instance of Math::BigInt with type coercions from integers and strings. Required.

Available in the constructor.

writer: set_value

locking_script

An instance of the script used to lock the coins. Required.

Can be constructed from a standard script by passing an array reference with script type and an address.

Available in the constructor.

writer: set_locking_script

Methods

new

        $block = $class->new(%args)

This is a standard Moo constructor, which can be used to create the object. It takes arguments specified in "Attributes".

Returns class instance.

is_standard

        $boolean = $object->is_standard()

Returns true if "locking_script" is a standard script type.

set_max_value

        $object = $object->set_max_value()

Sets the max possible value for this output, as required by digests. Mostly used internally.

value_serialized

        $bytestring = $object->value_serialized()

Returns the bytesting of serialized value ready to be included in a serialized transaction or digest. Mostly used internally.

to_serialized

        $bytestring = $object->to_serialized()

Returns the serialized output data to be included into a serialized transaction.

from_serialized

        $object = $class->from_serialized($bytestring, %params)

Creates an object instance from serialized data.

%params can be any of:

  • pos

    Position for partial string decoding. Optional. If passed, must be a scalar reference to an integer value.

    This integer will mark the starting position of $bytestring from which to start decoding. It will be set to the next byte after end of output stream.

dump

        $text = $object->dump()

Returns a readable description of the output.

EXCEPTIONS

This module throws an instance of Bitcoin::Crypto::Exception if it encounters an error. It can produce the following error types from the Bitcoin::Crypto::Exception namespace:

  • Transaction - general error with transaction

SEE ALSO

Bitcoin::Crypto::Transaction
Bitcoin::Crypto::Transaction::UTXO