Class: BSV::Wallet::Substrates::HTTPWalletJSON
- Inherits:
-
Object
- Object
- BSV::Wallet::Substrates::HTTPWalletJSON
- Includes:
- Interface
- Defined in:
- lib/bsv/wallet_interface/substrates/http_wallet_json.rb
Overview
BRC-100 wallet substrate that delegates all Interface methods to a remote wallet server via JSON-over-HTTP (POST #base_url/#camelCaseMethodName).
Key conversion is handled by BSV::WireFormat: Ruby snake_case symbol keys in args are converted to camelCase strings before the request, and the camelCase JSON response is converted back to snake_case symbol keys.
Constant Summary collapse
- METHOD_NAMES =
Maps the 28 BRC-100 Interface method symbols to their camelCase HTTP endpoint names. Derived from Wire::Serializer::CALL_CODES keys via BSV::WireFormat.snake_to_camel.
BSV::Wallet::Wire::Serializer::CALL_CODES.keys.to_h do |sym| [sym, BSV::WireFormat.snake_to_camel(sym.to_s)] end.freeze
Instance Method Summary collapse
- #abort_action(args, originator: nil) ⇒ Object
- #acquire_certificate(args, originator: nil) ⇒ Object
-
#create_action(args, originator: nil) ⇒ Object
Per-call originator is accepted for Interface conformance but not forwarded.
- #create_hmac(args, originator: nil) ⇒ Object
- #create_signature(args, originator: nil) ⇒ Object
- #decrypt(args, originator: nil) ⇒ Object
- #discover_by_attributes(args, originator: nil) ⇒ Object
- #discover_by_identity_key(args, originator: nil) ⇒ Object
- #encrypt(args, originator: nil) ⇒ Object
- #get_header_for_height(args, originator: nil) ⇒ Object
- #get_height(args = {}, originator: nil) ⇒ Object
- #get_network(args = {}, originator: nil) ⇒ Object
- #get_public_key(args, originator: nil) ⇒ Object
- #get_version(args = {}, originator: nil) ⇒ Object
-
#initialize(base_url, originator: nil, http_client: nil) ⇒ HTTPWalletJSON
constructor
A new instance of HTTPWalletJSON.
- #internalize_action(args, originator: nil) ⇒ Object
- #is_authenticated(args = {}, originator: nil) ⇒ Object
- #list_actions(args, originator: nil) ⇒ Object
- #list_certificates(args, originator: nil) ⇒ Object
- #list_outputs(args, originator: nil) ⇒ Object
- #prove_certificate(args, originator: nil) ⇒ Object
- #relinquish_certificate(args, originator: nil) ⇒ Object
- #relinquish_output(args, originator: nil) ⇒ Object
- #reveal_counterparty_key_linkage(args, originator: nil) ⇒ Object
- #reveal_specific_key_linkage(args, originator: nil) ⇒ Object
- #sign_action(args, originator: nil) ⇒ Object
- #verify_hmac(args, originator: nil) ⇒ Object
- #verify_signature(args, originator: nil) ⇒ Object
- #wait_for_authentication(args = {}, originator: nil) ⇒ Object
Constructor Details
#initialize(base_url, originator: nil, http_client: nil) ⇒ HTTPWalletJSON
Returns a new instance of HTTPWalletJSON.
35 36 37 38 39 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 35 def initialize(base_url, originator: nil, http_client: nil) @base_url = base_url @originator = originator @http_client = http_client end |
Instance Method Details
#abort_action(args, originator: nil) ⇒ Object
56 57 58 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 56 def abort_action(args, originator: nil) call(METHOD_NAMES[:abort_action], args) end |
#acquire_certificate(args, originator: nil) ⇒ Object
112 113 114 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 112 def acquire_certificate(args, originator: nil) call(METHOD_NAMES[:acquire_certificate], args) end |
#create_action(args, originator: nil) ⇒ Object
Per-call originator is accepted for Interface conformance but not forwarded. The Origin header uses the constructor-level @originator for the lifetime of the connection — matching the TS SDK’s HTTPWalletJSON, which also ignores per-call originator. WalletWireTransceiver supports per-call originator because the wire frame encodes it per-message; HTTP substrates identify by connection, not by call. rubocop:disable Lint/UnusedMethodArgument
48 49 50 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 48 def create_action(args, originator: nil) call(METHOD_NAMES[:create_action], args) end |
#create_hmac(args, originator: nil) ⇒ Object
96 97 98 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 96 def create_hmac(args, originator: nil) call(METHOD_NAMES[:create_hmac], args) end |
#create_signature(args, originator: nil) ⇒ Object
104 105 106 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 104 def create_signature(args, originator: nil) call(METHOD_NAMES[:create_signature], args) end |
#decrypt(args, originator: nil) ⇒ Object
92 93 94 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 92 def decrypt(args, originator: nil) call(METHOD_NAMES[:decrypt], args) end |
#discover_by_attributes(args, originator: nil) ⇒ Object
132 133 134 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 132 def discover_by_attributes(args, originator: nil) call(METHOD_NAMES[:discover_by_attributes], args) end |
#discover_by_identity_key(args, originator: nil) ⇒ Object
128 129 130 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 128 def discover_by_identity_key(args, originator: nil) call(METHOD_NAMES[:discover_by_identity_key], args) end |
#encrypt(args, originator: nil) ⇒ Object
88 89 90 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 88 def encrypt(args, originator: nil) call(METHOD_NAMES[:encrypt], args) end |
#get_header_for_height(args, originator: nil) ⇒ Object
148 149 150 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 148 def get_header_for_height(args, originator: nil) call(METHOD_NAMES[:get_header_for_height], args) end |
#get_height(args = {}, originator: nil) ⇒ Object
144 145 146 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 144 def get_height(args = {}, originator: nil) call(METHOD_NAMES[:get_height], args) end |
#get_network(args = {}, originator: nil) ⇒ Object
152 153 154 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 152 def get_network(args = {}, originator: nil) call(METHOD_NAMES[:get_network], args) end |
#get_public_key(args, originator: nil) ⇒ Object
76 77 78 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 76 def get_public_key(args, originator: nil) call(METHOD_NAMES[:get_public_key], args) end |
#get_version(args = {}, originator: nil) ⇒ Object
156 157 158 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 156 def get_version(args = {}, originator: nil) call(METHOD_NAMES[:get_version], args) end |
#internalize_action(args, originator: nil) ⇒ Object
64 65 66 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 64 def internalize_action(args, originator: nil) call(METHOD_NAMES[:internalize_action], args) end |
#is_authenticated(args = {}, originator: nil) ⇒ Object
136 137 138 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 136 def is_authenticated(args = {}, originator: nil) call(METHOD_NAMES[:is_authenticated], args) end |
#list_actions(args, originator: nil) ⇒ Object
60 61 62 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 60 def list_actions(args, originator: nil) call(METHOD_NAMES[:list_actions], args) end |
#list_certificates(args, originator: nil) ⇒ Object
116 117 118 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 116 def list_certificates(args, originator: nil) call(METHOD_NAMES[:list_certificates], args) end |
#list_outputs(args, originator: nil) ⇒ Object
68 69 70 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 68 def list_outputs(args, originator: nil) call(METHOD_NAMES[:list_outputs], args) end |
#prove_certificate(args, originator: nil) ⇒ Object
120 121 122 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 120 def prove_certificate(args, originator: nil) call(METHOD_NAMES[:prove_certificate], args) end |
#relinquish_certificate(args, originator: nil) ⇒ Object
124 125 126 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 124 def relinquish_certificate(args, originator: nil) call(METHOD_NAMES[:relinquish_certificate], args) end |
#relinquish_output(args, originator: nil) ⇒ Object
72 73 74 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 72 def relinquish_output(args, originator: nil) call(METHOD_NAMES[:relinquish_output], args) end |
#reveal_counterparty_key_linkage(args, originator: nil) ⇒ Object
80 81 82 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 80 def reveal_counterparty_key_linkage(args, originator: nil) call(METHOD_NAMES[:reveal_counterparty_key_linkage], args) end |
#reveal_specific_key_linkage(args, originator: nil) ⇒ Object
84 85 86 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 84 def reveal_specific_key_linkage(args, originator: nil) call(METHOD_NAMES[:reveal_specific_key_linkage], args) end |
#sign_action(args, originator: nil) ⇒ Object
52 53 54 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 52 def sign_action(args, originator: nil) call(METHOD_NAMES[:sign_action], args) end |
#verify_hmac(args, originator: nil) ⇒ Object
100 101 102 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 100 def verify_hmac(args, originator: nil) call(METHOD_NAMES[:verify_hmac], args) end |
#verify_signature(args, originator: nil) ⇒ Object
108 109 110 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 108 def verify_signature(args, originator: nil) call(METHOD_NAMES[:verify_signature], args) end |
#wait_for_authentication(args = {}, originator: nil) ⇒ Object
140 141 142 |
# File 'lib/bsv/wallet_interface/substrates/http_wallet_json.rb', line 140 def wait_for_authentication(args = {}, originator: nil) call(METHOD_NAMES[:wait_for_authentication], args) end |