Sha256: f639bd7d43b24a74d3f02c924202081a793b4d72735308740190b908b15ab88b
Contents?: true
Size: 950 Bytes
Versions: 1
Compression:
Stored size: 950 Bytes
Contents
# frozen_string_literal: true module Lightning module Onion class Packet include Lightning::Onion::Sphinx attr_accessor :version, :public_key, :routing_info, :hmac 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 == MAX_HOPS * HOP_LENGTH * 2 @hmac = hmac end def self.parse(payload) version, public_key, rest = payload.unpack('aH66a*') routing_info = rest[0...MAX_HOPS * HOP_LENGTH].bth hmac = rest[MAX_HOPS * HOP_LENGTH..-1].bth new(version, public_key, routing_info, hmac) end def to_payload payload = +'' payload << [version, public_key].pack('aH66') payload << routing_info.htb payload << hmac.htb payload end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
lightning-onion-0.2.4 | lib/lightning/onion/packet.rb |