Class: BSV::Wallet::Substrates::WalletWireTransceiver

Inherits:
Object
  • Object
show all
Includes:
Interface
Defined in:
lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb

Overview

BRC-100 wallet Interface implementation that transmits calls over a binary wire transport.

Serialises each Interface method call into a binary wire frame via Wire::Serializer, transmits it via a wire transport (any object responding to ‘#transmit_to_wallet`), then deserialises the response.

The wire transport is duck-typed — any object that accepts ‘transmit_to_wallet(message)` where message is an Array of byte integers and returns an Array of byte integers qualifies. The canonical wire transport is HTTPWalletWire.

Examples:

Using with HTTPWalletWire

wire = BSV::Wallet::Substrates::HTTPWalletWire.new('http://localhost:3301')
wallet = BSV::Wallet::Substrates::WalletWireTransceiver.new(wire, originator: 'myapp.example.com')
result = wallet.get_public_key({ identity_key: true })
# => { public_key: '02abc...' }

Instance Method Summary collapse

Constructor Details

#initialize(wire, originator: nil) ⇒ WalletWireTransceiver

Returns a new instance of WalletWireTransceiver.

Parameters:

  • wire (#transmit_to_wallet)

    wire transport (duck-typed)

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

    default FQDN of the originating application; may be overridden per-call via the method-level originator keyword argument



28
29
30
31
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 28

def initialize(wire, originator: nil)
  @wire = wire
  @originator = originator
end

Instance Method Details

#abort_action(args, originator: nil) ⇒ Object



41
42
43
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 41

def abort_action(args, originator: nil)
  transmit(:abort_action, args, originator || @originator)
end

#acquire_certificate(args, originator: nil) ⇒ Object



97
98
99
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 97

def acquire_certificate(args, originator: nil)
  transmit(:acquire_certificate, args, originator || @originator)
end

#create_action(args, originator: nil) ⇒ Object



33
34
35
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 33

def create_action(args, originator: nil)
  transmit(:create_action, args, originator || @originator)
end

#create_hmac(args, originator: nil) ⇒ Object



81
82
83
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 81

def create_hmac(args, originator: nil)
  transmit(:create_hmac, args, originator || @originator)
end

#create_signature(args, originator: nil) ⇒ Object



89
90
91
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 89

def create_signature(args, originator: nil)
  transmit(:create_signature, args, originator || @originator)
end

#decrypt(args, originator: nil) ⇒ Object



77
78
79
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 77

def decrypt(args, originator: nil)
  transmit(:decrypt, args, originator || @originator)
end

#discover_by_attributes(args, originator: nil) ⇒ Object



117
118
119
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 117

def discover_by_attributes(args, originator: nil)
  transmit(:discover_by_attributes, args, originator || @originator)
end

#discover_by_identity_key(args, originator: nil) ⇒ Object



113
114
115
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 113

def discover_by_identity_key(args, originator: nil)
  transmit(:discover_by_identity_key, args, originator || @originator)
end

#encrypt(args, originator: nil) ⇒ Object



73
74
75
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 73

def encrypt(args, originator: nil)
  transmit(:encrypt, args, originator || @originator)
end

#get_header_for_height(args, originator: nil) ⇒ Object



133
134
135
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 133

def get_header_for_height(args, originator: nil)
  transmit(:get_header_for_height, args, originator || @originator)
end

#get_height(args = {}, originator: nil) ⇒ Object



129
130
131
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 129

def get_height(args = {}, originator: nil)
  transmit(:get_height, args, originator || @originator)
end

#get_network(args = {}, originator: nil) ⇒ Object



137
138
139
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 137

def get_network(args = {}, originator: nil)
  transmit(:get_network, args, originator || @originator)
end

#get_public_key(args, originator: nil) ⇒ Object



61
62
63
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 61

def get_public_key(args, originator: nil)
  transmit(:get_public_key, args, originator || @originator)
end

#get_version(args = {}, originator: nil) ⇒ Object



141
142
143
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 141

def get_version(args = {}, originator: nil)
  transmit(:get_version, args, originator || @originator)
end

#internalize_action(args, originator: nil) ⇒ Object



49
50
51
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 49

def internalize_action(args, originator: nil)
  transmit(:internalize_action, args, originator || @originator)
end

#is_authenticated(args = {}, originator: nil) ⇒ Object



121
122
123
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 121

def is_authenticated(args = {}, originator: nil)
  transmit(:is_authenticated, args, originator || @originator)
end

#list_actions(args, originator: nil) ⇒ Object



45
46
47
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 45

def list_actions(args, originator: nil)
  transmit(:list_actions, args, originator || @originator)
end

#list_certificates(args, originator: nil) ⇒ Object



101
102
103
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 101

def list_certificates(args, originator: nil)
  transmit(:list_certificates, args, originator || @originator)
end

#list_outputs(args, originator: nil) ⇒ Object



53
54
55
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 53

def list_outputs(args, originator: nil)
  transmit(:list_outputs, args, originator || @originator)
end

#prove_certificate(args, originator: nil) ⇒ Object



105
106
107
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 105

def prove_certificate(args, originator: nil)
  transmit(:prove_certificate, args, originator || @originator)
end

#relinquish_certificate(args, originator: nil) ⇒ Object



109
110
111
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 109

def relinquish_certificate(args, originator: nil)
  transmit(:relinquish_certificate, args, originator || @originator)
end

#relinquish_output(args, originator: nil) ⇒ Object



57
58
59
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 57

def relinquish_output(args, originator: nil)
  transmit(:relinquish_output, args, originator || @originator)
end

#reveal_counterparty_key_linkage(args, originator: nil) ⇒ Object



65
66
67
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 65

def reveal_counterparty_key_linkage(args, originator: nil)
  transmit(:reveal_counterparty_key_linkage, args, originator || @originator)
end

#reveal_specific_key_linkage(args, originator: nil) ⇒ Object



69
70
71
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 69

def reveal_specific_key_linkage(args, originator: nil)
  transmit(:reveal_specific_key_linkage, args, originator || @originator)
end

#sign_action(args, originator: nil) ⇒ Object



37
38
39
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 37

def sign_action(args, originator: nil)
  transmit(:sign_action, args, originator || @originator)
end

#verify_hmac(args, originator: nil) ⇒ Object



85
86
87
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 85

def verify_hmac(args, originator: nil)
  transmit(:verify_hmac, args, originator || @originator)
end

#verify_signature(args, originator: nil) ⇒ Object



93
94
95
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 93

def verify_signature(args, originator: nil)
  transmit(:verify_signature, args, originator || @originator)
end

#wait_for_authentication(args = {}, originator: nil) ⇒ Object



125
126
127
# File 'lib/bsv/wallet_interface/substrates/wallet_wire_transceiver.rb', line 125

def wait_for_authentication(args = {}, originator: nil)
  transmit(:wait_for_authentication, args, originator || @originator)
end