class Lightning::Onion::Packet
Attributes
hmac[RW]
public_key[RW]
routing_info[RW]
version[RW]
Public Class Methods
new(version, public_key, routing_info, hmac)
click to toggle source
# File lib/lightning/onion/packet.rb, line 8 def initialize(version, public_key, routing_info, hmac) @version = version @public_key = public_key @routing_info = routing_info raise "invalid size #{routing_info.size}" unless routing_info.size == Packet.routing_bytesize * 2 @hmac = hmac end
parse(payload)
click to toggle source
# File lib/lightning/onion/packet.rb, line 20 def self.parse(payload) version, public_key, rest = payload.unpack('aH66a*') routing_info = rest[0...routing_bytesize].bth hmac = rest[routing_bytesize..-1].bth new(version, public_key, routing_info, hmac) end
routing_bytesize()
click to toggle source
# File lib/lightning/onion/packet.rb, line 16 def self.routing_bytesize Lightning::Onion::Sphinx::MAX_HOPS * Lightning::Onion::Sphinx::HOP_LENGTH end
Public Instance Methods
last?()
click to toggle source
# File lib/lightning/onion/packet.rb, line 35 def last? hmac == '00' * 32 end
to_payload()
click to toggle source
# File lib/lightning/onion/packet.rb, line 27 def to_payload payload = +'' payload << [version, public_key].pack('aH66') payload << routing_info.htb payload << hmac.htb payload end