@@ -556,3 +556,31 @@ def test_route_by_old_scid(node_factory, bitcoind):
556556 wait_for (lambda : only_one (l1 .rpc .listpeers ()['peers' ])['connected' ] is True )
557557 l1 .rpc .sendpay (route , inv2 ['payment_hash' ], payment_secret = inv2 ['payment_secret' ])
558558 l1 .rpc .waitsendpay (inv2 ['payment_hash' ])
559+
560+
561+ @pytest .mark .xfail (strict = True )
562+ @unittest .skipIf (TEST_NETWORK != 'regtest' , 'elementsd doesnt yet support PSBT features we need' )
563+ def test_splice_unannounced (node_factory , bitcoind ):
564+ l1 , l2 = node_factory .line_graph (2 , fundamount = 1000000 , wait_for_announce = False , opts = {'experimental-splicing' : None })
565+
566+ chan_id = l1 .get_channel_id (l2 )
567+
568+ # add extra sats to pay fee
569+ funds_result = l1 .rpc .fundpsbt ("109000sat" , "slow" , 166 , excess_as_change = True )
570+ result = l1 .rpc .splice_init (chan_id , 100000 , funds_result ['psbt' ])
571+ result = l1 .rpc .splice_update (chan_id , result ['psbt' ])
572+ assert (result ['commitments_secured' ] is False )
573+ result = l1 .rpc .splice_update (chan_id , result ['psbt' ])
574+ assert (result ['commitments_secured' ] is True )
575+ result = l1 .rpc .signpsbt (result ['psbt' ])
576+ result = l1 .rpc .splice_signed (chan_id , result ['signed_psbt' ])
577+
578+ l2 .daemon .wait_for_log (r'CHANNELD_NORMAL to CHANNELD_AWAITING_SPLICE' )
579+ l1 .daemon .wait_for_log (r'CHANNELD_NORMAL to CHANNELD_AWAITING_SPLICE' )
580+
581+ bitcoind .generate_block (1 , wait_for_mempool = 1 )
582+
583+ l2 .daemon .wait_for_log (r'CHANNELD_AWAITING_SPLICE to CHANNELD_NORMAL' )
584+ l1 .daemon .wait_for_log (r'CHANNELD_AWAITING_SPLICE to CHANNELD_NORMAL' )
585+ bitcoind .generate_block (1 )
586+ sync_blockheight (bitcoind , [l1 , l2 ])
0 commit comments