1
0

lnonion: work around immutability of OnionHopsDataSingle

This commit is contained in:
Sander van Grieken
2025-11-19 14:13:10 +01:00
parent 23d5ed87e7
commit 30f2bc9eb8

View File

@@ -283,7 +283,7 @@ def decrypt_onionmsg_data_tlv(*, shared_secret: bytes, encrypted_recipient_data:
def encrypt_hops_recipient_data(
tlv_stream_name: str,
hops_data: Sequence[OnionHopsDataSingle],
hops_data: List[OnionHopsDataSingle],
hop_shared_secrets: Sequence[bytes]
) -> None:
"""encrypt unencrypted encrypted_recipient_data for hops with blind_fields.
@@ -301,7 +301,10 @@ def encrypt_hops_recipient_data(
if hops_data[i].tlv_stream_name == tlv_stream_name and 'encrypted_recipient_data' not in hops_data[i].payload:
# construct encrypted_recipient_data from blind_fields
encrypted_recipient_data = encrypt_onionmsg_data_tlv(shared_secret=hop_shared_secrets[i], **hops_data[i].blind_fields)
hops_data[i].payload['encrypted_recipient_data'] = {erd_key: encrypted_recipient_data}
# work around immutablility of OnionHopsDataSingle
hop_payload = {'encrypted_recipient_data': {erd_key: encrypted_recipient_data}}
hop_payload.update(hops_data[i].payload)
hops_data[i] = OnionHopsDataSingle(tlv_stream_name=hops_data[i].tlv_stream_name, payload=hop_payload, blind_fields=hops_data[i].blind_fields)
def calc_hops_data_for_payment(