Module BSV::Primitives::Base58 ¶
Base58 and Base58Check encoding/decoding.
Implements the Base58 alphabet used throughout Bitcoin for addresses, WIF keys, and extended keys. Base58Check adds a 4-byte double-SHA-256 checksum for error detection.
@example Encode and decode an address payload
encoded = BSV::Primitives::Base58.check_encode(payload)
decoded = BSV::Primitives::Base58.check_decode(encoded)
Constants¶
ALPHABET ¶
The Base58 alphabet (no 0, O, I, l to avoid visual ambiguity).
BASE ¶
The base (58).
DECODE_MAP ¶
Reverse lookup table mapping ASCII byte values to Base58 digit indices.
Public Class Methods¶
check_decode(string) ¶
Decode a Base58Check string and verify its checksum. - @param string [String] Base58Check-encoded string - @raise [ChecksumError] if the checksum does not match or input is too short - @return [String] decoded payload (without checksum)
check_encode(payload) ¶
Encode binary data with a 4-byte double-SHA-256 checksum appended. - @param payload [String] binary data to encode - @return [String] Base58Check-encoded string
decode(string) ¶
Decode a Base58 string to binary data.
Leading +'1'+ characters are decoded as zero bytes. - @param string [String] Base58-encoded string - @raise [ArgumentError] if the string contains invalid Base58 characters - @return [String] decoded binary data
encode(bytes) ¶
Encode binary data as a Base58 string.
Leading zero bytes are preserved as +'1'+ characters. - @param bytes [String] binary data to encode - @return [String] Base58-encoded string