Skip to content

Module BSV::Wallet::Wire::Validation

Branded-type validators for BRC-100 parameters.

Each method raises InvalidParameterError on failure and returns nil on success. Port of ts-sdk/src/wallet/validationHelpers.ts.

The existing ProtoWallet::Validators module delegates here so there is a single source of truth for all parameter validation logic.

Constants

MAX_SATOSHIS

Not documented.

Public Class Methods

acquisition_protocol!(name, value)

Validates a certificate acquisition protocol: 'direct' or 'issuance'. - @param name [String] parameter name for error messages - @param value [Object] the value to validate - @raise [InvalidParameterError]

base64_string!(name, value)

Validates that value is a Base64-encoded string. - @param name [String] parameter name for error messages - @param value [Object] the value to validate - @raise [InvalidParameterError]

basket_string!(name, value)

Validates a basket name (1..300 characters). - @param name [String] parameter name for error messages - @param value [Object] the value to validate - @raise [InvalidParameterError]

description_5_to_50!(name, value)

Validates a description string (5..50 printable characters). - @param name [String] parameter name for error messages - @param value [Object] the value to validate - @raise [InvalidParameterError]

hex_string!(name, value, length: = nil)

Validates that value is a hex string (even length, hex chars only). - @param name [String] parameter name for error messages - @param value [Object] the value to validate - @param length [Integer, nil] expected number of hex chars (nil = any) - @raise [InvalidParameterError]

key_id_string_1_to_800!(name, value)

Validates a BRC-43 key ID string (1..800 bytes). - @param name [String] parameter name for error messages - @param value [Object] the value to validate - @raise [InvalidParameterError]

label_string!(name, value)

Validates a label string (1..150 characters, no spaces). - @param name [String] parameter name for error messages - @param value [Object] the value to validate - @raise [InvalidParameterError]

originator_domain!(name, value)

Validates an originator domain (1..250 bytes UTF-8). The originator must fit in a single-byte length field in the wire frame. - @param name [String] parameter name for error messages - @param value [Object] the value to validate - @raise [InvalidParameterError]

outpoint_string!(name, value)

Validates an outpoint string in the form "<64-hex-txid>.". - @param name [String] parameter name for error messages - @param value [Object] the value to validate - @raise [InvalidParameterError]

positive_integer_or_zero!(name, value)

Validates a non-negative integer. - @param name [String] parameter name for error messages - @param value [Object] the value to validate - @raise [InvalidParameterError]

protocol_string_5_to_400!(name, value)

Validates a BRC-43 protocol name string (5..400 chars, lowercase). - @param name [String] parameter name for error messages - @param value [Object] the value to validate - @raise [InvalidParameterError]

pub_key_hex!(name, value)

Validates a compressed public key in hex form (66 chars, 02/03 prefix). - @param name [String] parameter name for error messages - @param value [Object] the value to validate - @raise [InvalidParameterError]

satoshi_value!(name, value)

Validates a satoshi amount (0..21_000_000 * 10^8). - @param name [String] parameter name for error messages - @param value [Object] the value to validate - @raise [InvalidParameterError]

wallet_counterparty!(name, value)

Validates a wallet counterparty: 'self', 'anyone', or a 66-char hex pubkey. - @param name [String] parameter name for error messages - @param value [Object] the value to validate

wallet_protocol!(name, value)

Validates a BRC-43 protocol ID: [security_level (0-2), protocol_name (5-400 chars)]. - @param name [String] parameter name for error messages - @param value [Object] the value to validate - @raise [InvalidParameterError]