Module: BSV::Wallet::Serializer::GetPublicKey::Args
- Defined in:
- lib/bsv/wallet/serializer/get_public_key.rb
Overview
Args wire layout:
[1 byte: identity_key flag — 0=no, 1=yes]
If 0: [key-related params][optional_bool for_self]
If 1: [privileged params only]
[optional_bool seek_permission]
Class Method Summary collapse
Class Method Details
.deserialize(bytes) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/bsv/wallet/serializer/get_public_key.rb', line 45 def deserialize(bytes) r = BSV::Wallet::Wire::Reader.new(bytes) flag = r.read_byte if flag == IDENTITY_KEY_FLAG privileged, reason = Common.read_privileged_params(r) = r.read_optional_bool { identity_key: true, privileged: privileged, privileged_reason: reason, seek_permission: } else params = Common.(r) for_self = r.read_optional_bool = r.read_optional_bool params.merge(identity_key: false, for_self: for_self, seek_permission: ) end end |
.serialize(args) ⇒ Object
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/bsv/wallet/serializer/get_public_key.rb', line 21 def serialize(args) identity_key = args[:identity_key] w = BSV::Wallet::Wire::Writer.new if identity_key w.write_byte(IDENTITY_KEY_FLAG) Common.write_privileged_params(w, args[:privileged], args[:privileged_reason]) else w.write_byte(0) Common.( w, protocol_id: args[:protocol_id], key_id: args[:key_id], counterparty: args[:counterparty], privileged: args[:privileged], privileged_reason: args[:privileged_reason] ) w.write_optional_bool(args[:for_self]) end w.write_optional_bool(args[:seek_permission]) w.buf end |