Module: BSV::Wallet::Serializer::Encrypt::Args

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

Overview

Args wire layout:

[key-related params: protocol + key_id + counterparty + privileged]
[VarInt plaintext_len][plaintext bytes]
[optional_bool seek_permission]

Class Method Summary collapse

Class Method Details

.deserialize(bytes) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/bsv/wallet/serializer/encrypt.rb', line 34

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

.serialize(args) ⇒ Object



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

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]
  )
  plaintext = Common.to_binary(args[:plaintext])
  w.write_varint(plaintext.bytesize)
  w.write_bytes(plaintext)
  w.write_optional_bool(args[:seek_permission])
  w.buf
end