electrum protocol: add support for 1.6, but keep supporting 1.4 - #10295
Merged
Cirrus CI / unittests: py3.10, frozen-deps
failed
Nov 5, 2025 in 2m 55s
Task Summary
Instruction pytest failed in 01:50
Details
✅ 00:18 clone
✅ 00:04 pip
✅ 00:01 tag
✅ 00:01 libsecp_build
✅ 00:36 install
✅ 00:01 version
❌ 01:50 pytest
self.assertEqual(payload['onion_message_packet'], kwargs['onion_message_packet'])
lnw.peers[self.bob.pubkey] = MockPeer(self.bob.pubkey, on_send_message=partial(on_send, 'bob'))
lnw.peers[self.carol.pubkey] = MockPeer(self.carol.pubkey, on_send_message=partial(on_send, 'carol'))
t = OnionMessageManager(lnw)
t.start_network(network=n)
onionmsg = bfh(test_vectors['onionmessage']['onion_message_packet'])
try:
t.on_onion_message({
'blinding': bfh(test_vectors['route']['blinding']),
'len': len(onionmsg),
'onion_message_packet': onionmsg
})
finally:
await asyncio.sleep(2*TIME_STEP)
self.logger.debug('stopping manager')
await t.stop()
await lnw.stop()
> self.assertTrue(self.was_sent)
E AssertionError: False is not true
tests/test_onion_message.py:448: AssertionError
----------------------------- Captured stderr call -----------------------------
97.62 | I | simple_config.SimpleConfig | electrum directory /root/.electrum (chain=mainnet)
97.62 | I | simple_config.SimpleConfig | electrum directory /tmp/electrum-lnpeer-test-anl2p_ci (chain=mainnet)
97.62 | I | channel_db.ChannelDB | SQL thread started
97.62 | I | channel_db.ChannelDB | Creating database
97.62 | I | tests.test_onion_message.MockLNWallet.[alice] | created LNWallet[alice] with nodeID=02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619
97.62 | D | onion_message.OnionMessageManager | handling onion message
97.63 | D | onion_message.OnionMessageManager | onion peeled: ProcessedOnionPacket(are_we_final=False, hop_data=<OnionHopsDataSingle. payload={'encrypted_recipient_data': {'encrypted_recipient_data': b'IS\x1c\xf3\x8d2\x80\xb7\xf4\xafmda\xa2\xb3.=\xf5\n\xcf\xd3Qv\xfcaB*\x10\x96\xee\xd4\xdf\xc3\x80o)\xbft2\x0fq*a\xc7f\xe7\xf7\xca\xac\x0cB\xf8`@\x12_\xba\xee\xc0\xc7a2\x02\xb2\x06\xdb\xdd1\xfd\xa5c\x946{f\xa7\x11\xbf\xd7\xd5\xbe\xdb\xe2\x0b\xed\x1b'}}. hmac=b'\xa5)c%\xbaG\x8b\xa1\xe1\xa9\xd1\xf3\n-PR\xb2\xe2\x88\x9b\xbdd\xf7,r\xbcq\xd8\x81r\x88\xa2'>, next_packet=<electrum.lnonion.OnionPacket object at 0x7b0857c59510>, trampoline_onion_packet=None)
97.63 | D | onion_message.OnionMessageManager | parsed recipient_data: {'next_node_id': {'node_id': b'\x03$e>\xacCD\x88\x00,\xc0k\xbf\xb7\xf1\x0f\xe1\x89\x91\xe3_\x9f\xe40-\xbe\xa6\xd25=\xc0\xab\x1c'}, 'next_blinding_override': {'blinding': b'\x03\x1b\x84\xc5V{\x12d@\x99]>\xd5\xaa\xba\x05e\xd7\x1e\x184`H\x19\xff\x9c\x17\xf5\xe9\xd5\xdd\x07\x8f'}}
97.63 | I | onion_message.OnionMessageManager | starting taskgroup.
97.71 | D | onion_message.OnionMessageManager | forward expired node_id=b'\x03$e>\xacCD\x88\x00,\xc0k\xbf\xb7\xf1\x0f\xe1\x89\x91\xe3_\x9f\xe40-\xbe\xa6\xd25=\xc0\xab\x1c'
97.71 | D | tests.test_onion_message.TestOnionMessageManager | stopping manager
97.71 | I | onion_message.OnionMessageManager | taskgroup stopped.
97.76 | I | channel_db.ChannelDB | SQL thread terminated
------------------------------ Captured log call -------------------------------
INFO electrum.simple_config.SimpleConfig:simple_config.py:266 electrum directory /root/.electrum (chain=mainnet)
INFO electrum.simple_config.SimpleConfig:simple_config.py:266 electrum directory /tmp/electrum-lnpeer-test-anl2p_ci (chain=mainnet)
INFO electrum.channel_db.ChannelDB:sql_db.py:45 SQL thread started
INFO electrum.channel_db.ChannelDB:sql_db.py:47 Creating database
INFO electrum.tests.test_onion_message.MockLNWallet.[alice]:test_lnpeer.py:222 created LNWallet[alice] with nodeID=02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619
DEBUG electrum.onion_message.OnionMessageManager:onion_message.py:733 handling onion message
DEBUG electrum.onion_message.OnionMessageManager:onion_message.py:743 onion peeled: ProcessedOnionPacket(are_we_final=False, hop_data=<OnionHopsDataSingle. payload={'encrypted_recipient_data': {'encrypted_recipient_data': b'IS\x1c\xf3\x8d2\x80\xb7\xf4\xafmda\xa2\xb3.=\xf5\n\xcf\xd3Qv\xfcaB*\x10\x96\xee\xd4\xdf\xc3\x80o)\xbft2\x0fq*a\xc7f\xe7\xf7\xca\xac\x0cB\xf8`@\x12_\xba\xee\xc0\xc7a2\x02\xb2\x06\xdb\xdd1\xfd\xa5c\x946{f\xa7\x11\xbf\xd7\xd5\xbe\xdb\xe2\x0b\xed\x1b'}}. hmac=b'\xa5)c%\xbaG\x8b\xa1\xe1\xa9\xd1\xf3\n-PR\xb2\xe2\x88\x9b\xbdd\xf7,r\xbcq\xd8\x81r\x88\xa2'>, next_packet=<electrum.lnonion.OnionPacket object at 0x7b0857c59510>, trampoline_onion_packet=None)
DEBUG electrum.onion_message.OnionMessageManager:onion_message.py:757 parsed recipient_data: {'next_node_id': {'node_id': b'\x03$e>\xacCD\x88\x00,\xc0k\xbf\xb7\xf1\x0f\xe1\x89\x91\xe3_\x9f\xe40-\xbe\xa6\xd25=\xc0\xab\x1c'}, 'next_blinding_override': {'blinding': b'\x03\x1b\x84\xc5V{\x12d@\x99]>\xd5\xaa\xba\x05e\xd7\x1e\x184`H\x19\xff\x9c\x17\xf5\xe9\xd5\xdd\x07\x8f'}}
INFO electrum.onion_message.OnionMessageManager:onion_message.py:458 starting taskgroup.
DEBUG electrum.onion_message.OnionMessageManager:onion_message.py:471 forward expired node_id=b'\x03$e>\xacCD\x88\x00,\xc0k\xbf\xb7\xf1\x0f\xe1\x89\x91\xe3_\x9f\xe40-\xbe\xa6\xd25=\xc0\xab\x1c'
DEBUG electrum.tests.test_onion_message.TestOnionMessageManager:test_onion_message.py:444 stopping manager
INFO electrum.onion_message.OnionMessageManager:onion_message.py:462 taskgroup stopped.
INFO electrum.channel_db.ChannelDB:sql_db.py:72 SQL thread terminated
=========================== short test summary info ============================
FAILED tests/test_onion_message.py::TestOnionMessageManager::test_forward - AssertionError: False is not true
============= 1 failed, 864 passed, 5 skipped in 109.98s (0:01:49) =============
Loading