Module: BSV::Auth::Transport

Included in:
SimplifiedFetchTransport
Defined in:
lib/bsv/auth/transport.rb

Overview

Duck-typed interface for BRC-31 message transport.

Concrete transports (HTTP, WebSocket, in-process, etc.) must implement both methods. Include this module to get the default NotImplementedError stubs — override in your implementation class.

Examples:

Minimal in-process transport for testing

class DirectTransport
  include BSV::Auth::Transport

  def initialize(peer)
    @peer = peer
  end

  def send(message)
    @peer.handle_incoming_message(message)
  end

  def on_data(&block)
    @on_data = block
  end
end

Instance Method Summary collapse

Instance Method Details

#on_data {|message| ... } ⇒ void

This method returns an undefined value.

Registers a callback to be invoked when a message arrives.

Yield Parameters:

  • message (Hash)

    the incoming auth message

Raises:

  • (NotImplementedError)


40
41
42
# File 'lib/bsv/auth/transport.rb', line 40

def on_data(&_block)
  raise NotImplementedError, "#{self.class}#on_data not implemented"
end

#send(_message) ⇒ void

This method returns an undefined value.

Sends a message to the remote peer.

Parameters:

  • message (Hash)

    the serialised auth message

Raises:

  • (NotImplementedError)


32
33
34
# File 'lib/bsv/auth/transport.rb', line 32

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