Class: BSV::Transaction::Beef::BeefTx

Inherits:
Object
  • Object
show all
Defined in:
lib/bsv/transaction/beef.rb

Overview

A single entry in a BEEF bundle, wrapping a transaction with its format metadata.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(format:, transaction: nil, known_txid: nil, bump_index: nil) ⇒ BeefTx

Returns a new instance of BeefTx.

Parameters:

  • format (Integer)

    format flag

  • transaction (Transaction, nil) (defaults to: nil)

    the transaction

  • known_txid (String, nil) (defaults to: nil)

    32-byte txid for TXID-only entries

  • bump_index (Integer, nil) (defaults to: nil)

    index into the bumps array

Raises:

  • (ArgumentError)

    if format is FORMAT_RAW_TX_AND_BUMP without a bump_index



58
59
60
61
62
63
64
65
# File 'lib/bsv/transaction/beef.rb', line 58

def initialize(format:, transaction: nil, known_txid: nil, bump_index: nil)
  raise ArgumentError, 'FORMAT_RAW_TX_AND_BUMP requires a bump_index' if format == FORMAT_RAW_TX_AND_BUMP && bump_index.nil?

  @format = format
  @transaction = transaction
  @known_txid = known_txid
  @bump_index = bump_index
end

Instance Attribute Details

#bump_indexInteger? (readonly)

Returns index into the BEEF bumps array.

Returns:

  • (Integer, nil)

    index into the BEEF bumps array



51
52
53
# File 'lib/bsv/transaction/beef.rb', line 51

def bump_index
  @bump_index
end

#formatInteger (readonly)

Returns format flag (FORMAT_RAW_TX, FORMAT_RAW_TX_AND_BUMP, or FORMAT_TXID_ONLY).

Returns:

  • (Integer)

    format flag (FORMAT_RAW_TX, FORMAT_RAW_TX_AND_BUMP, or FORMAT_TXID_ONLY)



42
43
44
# File 'lib/bsv/transaction/beef.rb', line 42

def format
  @format
end

#known_txidString? (readonly)

Returns 32-byte txid for TXID-only entries.

Returns:

  • (String, nil)

    32-byte txid for TXID-only entries



48
49
50
# File 'lib/bsv/transaction/beef.rb', line 48

def known_txid
  @known_txid
end

#transactionTransaction? (readonly)

Returns the transaction (nil for TXID-only entries).

Returns:

  • (Transaction, nil)

    the transaction (nil for TXID-only entries)



45
46
47
# File 'lib/bsv/transaction/beef.rb', line 45

def transaction
  @transaction
end

Instance Method Details

#txidString?

The transaction ID for this entry.

Returns:

  • (String, nil)

    32-byte txid in display byte order



70
71
72
73
74
75
76
77
# File 'lib/bsv/transaction/beef.rb', line 70

def txid
  case @format
  when FORMAT_TXID_ONLY
    @known_txid
  else
    @transaction&.txid
  end
end