Module BSV::Auth::AuthPayload ¶
BRC-104 binary serialisation and deserialisation of HTTP requests and responses for signing/verification.
The wire format is byte-compatible with the TS and Go SDKs, enabling cross-SDK signature verification.
Absent optional fields (nil path, nil query, nil body) are encoded as ABSENT (VarInt MAX_UINT64 = 9 bytes of 0xFF). Zero-length fields are encoded as varint(0) followed by zero bytes — a distinct encoding from absent.
All varint operations delegate to {BSV::Transaction::VarInt}.
Constants¶
ABSENT ¶
Sentinel value for absent optional fields (Bitcoin VarInt MAX_UINT64).
METHODS_WITH_BODY ¶
HTTP methods that typically carry a request body.
Public Class Methods¶
deserialize_request(data) ¶
Deserialises a binary request payload into a Hash. - @param data [String] binary payload (as returned by {.serialize_request}) - @return [Hash] with keys +:request_nonce+, +:method+, +:path+, +:query+, +:headers+, +:body+ (all values may be nil for absent optional fields)
deserialize_response(data) ¶
Deserialises a binary response payload into a Hash. - @param data [String] binary payload (as returned by {.serialize_response}) - @return [Hash] with keys +:request_id+, +:status+, +:headers+, +:body+
serialize_request(request_nonce:, method:, path:, query:, headers:, body:) ¶
Serialises an HTTP request into a binary payload for signing. - @param request_nonce [String] raw 32-byte binary string (the request nonce) - @param method [String] HTTP method (e.g. 'GET', 'POST') - @param path [String, nil] URL path (e.g. '/api/v1/resource'); nil encodes as ABSENT - @param query [String, nil] query string including leading '?' (e.g. '?q=hello'); nil encodes as ABSENT - @param headers [Arraybody [String, nil] request body bytes; nil encodes as ABSENT - @return [String] binary payload (ASCII-8BIT encoding)
serialize_response(request_id:, status:, headers:, body:) ¶
Serialises an HTTP response into a binary payload for signing. - @param request_id [String] raw 32-byte binary string - @param status [Integer] HTTP status code (e.g. 200, 404) - @param headers [Arraybody [String, nil] response body bytes; nil or empty encodes as ABSENT - @return [String] binary payload (ASCII-8BIT encoding)