Module: BSV::Wallet::Serializer::RelinquishOutput

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

Overview

BRC-103 wire codec for the relinquish_output call (call byte 7).

Args wire layout:

[varint-str: basket]
[32-byte wire txid][varint vout]

Result wire layout:

[empty — relinquished is implicit from the frame error byte]

Class Method Summary collapse

Class Method Details

.deserialize_args(bytes) ⇒ Object



26
27
28
29
30
31
32
# File 'lib/bsv/wallet/serializer/relinquish_output.rb', line 26

def deserialize_args(bytes)
  r = Wire::Reader.new(bytes)
  basket = r.read_str_with_varint_len
  outpoint_data = r.read_outpoint
  output = "#{outpoint_data[:txid_hex]}.#{outpoint_data[:vout]}"
  { basket: basket, output: output }
end

.deserialize_result(_bytes) ⇒ Object



38
39
40
# File 'lib/bsv/wallet/serializer/relinquish_output.rb', line 38

def deserialize_result(_bytes)
  { relinquished: true }
end

.serialize_args(args) ⇒ Object



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

def serialize_args(args)
  Wire::Validation.outpoint_string!('output', args[:output].to_s)
  txid_hex, vout = args[:output].to_s.split('.', 2)
  w = Wire::Writer.new
  w.write_str_with_varint_len(args.fetch(:basket, ''))
  w.write_outpoint(txid_hex, vout.to_i)
  w.buf
end

.serialize_result(_result) ⇒ Object



34
35
36
# File 'lib/bsv/wallet/serializer/relinquish_output.rb', line 34

def serialize_result(_result)
  ''.b
end