Module: BSV::Wallet::Serializer::DiscoverCertificatesResult

Defined in:
lib/bsv/wallet/serializer/discover_certificates_result.rb

Overview

Shared BRC-103 result codec for discover_by_identity_key and discover_by_attributes (both return the same shape).

Result wire layout:

[varint: total_certificates]
per certificate: [IdentityCertificate inline bytes (int-prefixed base cert + meta)]

Class Method Summary collapse

Class Method Details

.deserialize(bytes) ⇒ Hash

Returns { total_certificates:, certificates: […] }.

Parameters:

  • bytes (String)

    binary

Returns:

  • (Hash)

    { total_certificates:, certificates: […] }



30
31
32
33
34
35
# File 'lib/bsv/wallet/serializer/discover_certificates_result.rb', line 30

def deserialize(bytes)
  r = Wire::Reader.new(bytes)
  total = r.read_varint
  certs = total.times.map { Certificate.deserialize_identity_certificate(r) }
  { total_certificates: total, certificates: certs }
end

.serialize(result) ⇒ String

Returns binary.

Parameters:

  • result (Hash)

    { total_certificates:, certificates: [IdentityCert Hash, …] }

Returns:

  • (String)

    binary



17
18
19
20
21
22
23
24
25
26
# File 'lib/bsv/wallet/serializer/discover_certificates_result.rb', line 17

def serialize(result)
  certs = result[:certificates] || []
  w = Wire::Writer.new
  w.write_varint(certs.length)
  certs.each do |cert|
    cert_bytes = Certificate.serialize_identity_certificate(cert)
    w.write_bytes(cert_bytes)
  end
  w.buf
end