Skip to content

Class BSV::Wallet::Substrates::HTTPWalletJSON

Inherits: Object Includes: BSV::Wallet::Interface::BRC100

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.

@example

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

Constants

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.

Public Instance Methods

abort_action(args, originator: = nil)

Not documented.

acquire_certificate(args, originator: = nil)

Not documented.

create_action(args, originator: = nil)

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

create_hmac(args, originator: = nil)

Not documented.

create_signature(args, originator: = nil)

Not documented.

decrypt(args, originator: = nil)

Not documented.

discover_by_attributes(args, originator: = nil)

Not documented.

discover_by_identity_key(args, originator: = nil)

Not documented.

encrypt(args, originator: = nil)

Not documented.

get_header_for_height(args, originator: = nil)

Not documented.

get_height(args = {}, originator: = nil)

Not documented.

get_network(args = {}, originator: = nil)

Not documented.

get_public_key(args, originator: = nil)

Not documented.

get_version(args = {}, originator: = nil)

Not documented.

initialize(base_url, originator: = nil, http_client: = nil)

  • @param base_url [String] base URL of the remote wallet server (e.g. 'http://localhost:3321')
  • @param originator [String, nil] FQDN of the originating application (sent as Origin/Originator headers)
  • @param http_client [Object, nil] injectable HTTP client for testing; must respond to start(uri, &block) returning a Net::HTTP-compatible response
  • @return [HTTPWalletJSON] a new instance of HTTPWalletJSON

internalize_action(args, originator: = nil)

Not documented.

is_authenticated(args = {}, originator: = nil)

Not documented.

list_actions(args, originator: = nil)

Not documented.

list_certificates(args, originator: = nil)

Not documented.

list_outputs(args, originator: = nil)

Not documented.

prove_certificate(args, originator: = nil)

Not documented.

relinquish_certificate(args, originator: = nil)

Not documented.

relinquish_output(args, originator: = nil)

Not documented.

reveal_counterparty_key_linkage(args, originator: = nil)

Not documented.

reveal_specific_key_linkage(args, originator: = nil)

Not documented.

sign_action(args, originator: = nil)

Not documented.

verify_hmac(args, originator: = nil)

Not documented.

verify_signature(args, originator: = nil)

Not documented.

wait_for_authentication(args = {}, originator: = nil)

Not documented.