Module: BSV::Wallet::Interface::BroadcastQueue

Included in:
BroadcastQueue::Inline
Defined in:
lib/bsv/wallet/interface/broadcast_queue.rb

Overview

Duck-typed broadcast queue interface for wallet transaction dispatch.

Include this module in broadcast queue adapters and override the methods your adapter supports.

Instance Method Summary collapse

Instance Method Details

#async?Boolean

Returns false by default (synchronous execution). Override to return true for async adapters.

Returns:

  • (Boolean)


21
22
23
# File 'lib/bsv/wallet/interface/broadcast_queue.rb', line 21

def async?
  false
end

#broadcast_enabled?Boolean

Returns false by default. Override in adapters that hold a broadcaster reference.

Returns:

  • (Boolean)


27
28
29
# File 'lib/bsv/wallet/interface/broadcast_queue.rb', line 27

def broadcast_enabled?
  false
end

#enqueue(_payload) ⇒ Hash

Enqueues a transaction for broadcast and state promotion.

Parameters:

  • _payload (Hash)

    broadcast payload

Returns:

  • (Hash)

    result hash containing at minimum :txid

Raises:

  • (NotImplementedError)


15
16
17
# File 'lib/bsv/wallet/interface/broadcast_queue.rb', line 15

def enqueue(_payload)
  raise NotImplementedError, "#{self.class}#enqueue not implemented"
end

#status(_txid) ⇒ String?

Returns the broadcast status for a previously enqueued transaction.

Parameters:

  • _txid (String)

    hex transaction identifier

Returns:

  • (String, nil)

    status string, or nil if unknown

Raises:

  • (NotImplementedError)


35
36
37
# File 'lib/bsv/wallet/interface/broadcast_queue.rb', line 35

def status(_txid)
  raise NotImplementedError, "#{self.class}#status not implemented"
end