Class: BSV::Overlay::OverlayBroadcastResult

Inherits:
Object
  • Object
show all
Defined in:
lib/bsv/overlay/types.rb

Overview

Result of broadcasting a transaction to an Overlay Services host.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(status:, txid: nil, message: nil, code: nil, description: nil) ⇒ OverlayBroadcastResult

Returns a new instance of OverlayBroadcastResult.

Parameters:

  • status (String)
  • txid (String, nil) (defaults to: nil)
  • message (String, nil) (defaults to: nil)
  • code (String, nil) (defaults to: nil)
  • description (String, nil) (defaults to: nil)


103
104
105
106
107
108
109
110
# File 'lib/bsv/overlay/types.rb', line 103

def initialize(status:, txid: nil, message: nil, code: nil, description: nil)
  @status = status
  BSV::Primitives::Hex.validate_dtxid_hex!(txid, name: 'overlay broadcast txid') if txid
  @txid = txid
  @message = message
  @code = code
  @description = description
end

Instance Attribute Details

#codeString? (readonly)

Returns machine-readable error code.

Returns:

  • (String, nil)

    machine-readable error code



93
94
95
# File 'lib/bsv/overlay/types.rb', line 93

def code
  @code
end

#descriptionString? (readonly)

Returns human-readable error description.

Returns:

  • (String, nil)

    human-readable error description



96
97
98
# File 'lib/bsv/overlay/types.rb', line 96

def description
  @description
end

#messageString? (readonly)

Returns human-readable result message.

Returns:

  • (String, nil)

    human-readable result message



90
91
92
# File 'lib/bsv/overlay/types.rb', line 90

def message
  @message
end

#statusString (readonly)

Returns result status (‘success’ or ‘error’).

Returns:

  • (String)

    result status (‘success’ or ‘error’)



83
84
85
# File 'lib/bsv/overlay/types.rb', line 83

def status
  @status
end

#txidString? (readonly)

Overlay API boundary: display-order hex txid echoed from the broadcast response.

Returns:

  • (String, nil)

    transaction identifier (present on success)



87
88
89
# File 'lib/bsv/overlay/types.rb', line 87

def txid
  @txid
end

Instance Method Details

#raise_if_error!self

Raise the appropriate BSV::Overlay::OverlayError subclass when #success? is false. Lets callers treat a broadcast failure as an exception rather than silently swallowing the result object — used by Identity and Registry clients which terminate on broadcast failure regardless.

Returns:

  • (self)

    when the result is a success (chainable)

Raises:



128
129
130
131
132
133
# File 'lib/bsv/overlay/types.rb', line 128

def raise_if_error!
  return self if success?

  message = [@code, @description].compact.join(': ')
  raise error_class_for_code, message
end

#success?Boolean

Returns true when the broadcast reached at least one competent host and satisfied any acknowledgement requirements.

Returns:

  • (Boolean)

    true when the broadcast reached at least one competent host and satisfied any acknowledgement requirements.



114
115
116
# File 'lib/bsv/overlay/types.rb', line 114

def success?
  @status == 'success'
end