Module: BSV::Wallet::Serializer::CreateHmac::Args

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

Overview

Args wire layout:

[key-related params]
[VarInt data_len][data bytes]
[optional_bool seek_permission]

Class Method Summary collapse

Class Method Details

.deserialize(bytes) ⇒ Object



36
37
38
39
40
41
42
43
# File 'lib/bsv/wallet/serializer/create_hmac.rb', line 36

def deserialize(bytes)
  r = BSV::Wallet::Wire::Reader.new(bytes)
  params = Common.read_key_related_params(r)
  len = r.read_varint
  data = r.read_bytes(len)
  seek_permission = r.read_optional_bool
  params.merge(data: data, seek_permission: seek_permission)
end

.serialize(args) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/bsv/wallet/serializer/create_hmac.rb', line 19

def serialize(args)
  w = BSV::Wallet::Wire::Writer.new
  Common.write_key_related_params(
    w,
    protocol_id: args[:protocol_id],
    key_id: args[:key_id],
    counterparty: args[:counterparty],
    privileged: args[:privileged],
    privileged_reason: args[:privileged_reason]
  )
  data = Common.to_binary(args[:data])
  w.write_varint(data.bytesize)
  w.write_bytes(data)
  w.write_optional_bool(args[:seek_permission])
  w.buf
end