MCPcopy Create free account
hub / github.com/ElementsProject/lightning / serialize_payload_final_tlv

Function serialize_payload_final_tlv

tests/utils.py:648–667  ·  view source on GitHub ↗

Encode TLV onion payload for final hop, returns bytes

(amount_msat, delay, total_msat, blockheight, payment_secret: str)

Source from the content-addressed store, hash-verified

646
647
648def serialize_payload_final_tlv(amount_msat, delay, total_msat, blockheight, payment_secret: str):
649 """Encode TLV onion payload for final hop, returns bytes"""
650 payload = TlvPayload()
651 # BOLT #4:
652 # 1. type: 2 (`amt_to_forward`)
653 # 2. data:
654 # * [`tu64`:`amt_to_forward`]
655 payload.add_field(2, tu64_encode(int(amount_msat)))
656 # BOLT #4:
657 # 1. type: 4 (`outgoing_cltv_value`)
658 # 2. data:
659 # * [`tu32`:`outgoing_cltv_value`]
660 payload.add_field(4, tu64_encode(blockheight + delay))
661 # BOLT #4:
662 # 1. type: 8 (`payment_data`)
663 # 2. data:
664 # * [`32*byte`:`payment_secret`]
665 # * [`tu64`:`total_msat`]
666 payload.add_field(8, bytes.fromhex(payment_secret) + tu64_encode(int(total_msat)))
667 return payload.to_bytes()
668
669
670# I wish we could force libwally to use different entropy and thus force it to

Calls 4

add_fieldMethod · 0.95
to_bytesMethod · 0.95
TlvPayloadClass · 0.90
tu64_encodeFunction · 0.85