Skip to content

electrum protocol: add support for 1.6, but keep supporting 1.4 - #10295

Merged
SomberNight merged 3 commits into
spesmilo:masterfrom
SomberNight:202510_proto16
Nov 7, 2025
Merged

electrum protocol: add support for 1.6, but keep supporting 1.4#10295
SomberNight merged 3 commits into
spesmilo:masterfrom
SomberNight:202510_proto16

interface: get_history: enforce order of mempool txs

2cac527
Select commit
Loading
Failed to load commit list.
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) =============