Module: BSV::Wallet::BroadcastQueue

Defined in:
lib/bsv/wallet/broadcast_queue.rb,
lib/bsv/wallet/broadcast_queue/inline.rb

Overview

Broadcast queue implementations. See Interface::BroadcastQueue for the contract.

Defined Under Namespace

Classes: Inline

Class Method Summary collapse

Class Method Details

.status_for_error(error) ⇒ String

Maps a broadcast exception to a status string.

Shared helper so all queue adapters produce consistent status strings.

Parameters:

  • error (StandardError)

    the exception raised during broadcast

Returns:

  • (String)

    one of ‘doubleSpend’, ‘invalidTx’, ‘serviceError’



15
16
17
18
19
20
21
22
23
24
25
# File 'lib/bsv/wallet/broadcast_queue.rb', line 15

def self.status_for_error(error)
  return 'serviceError' unless error.is_a?(BSV::Network::BroadcastError)

  arc_status = error.arc_status.to_s.upcase
  return 'doubleSpend' if arc_status == 'DOUBLE_SPEND_ATTEMPTED'

  invalid_statuses = %w[REJECTED INVALID MALFORMED MINED_IN_STALE_BLOCK]
  return 'invalidTx' if invalid_statuses.include?(arc_status) || arc_status.include?('ORPHAN')

  'serviceError'
end