@@ -342,10 +342,13 @@ TwoTuple<byte[], TwoTuple<Integer, TxOut>[]>[] connect_block(Block b, int height
342342 txn = new TwoTuple []{txp };
343343 } else
344344 txn = new TwoTuple [0 ];
345- chan_manager .as_Listen ().block_connected (b .bitcoinSerialize (), height );
346345 if (chain_monitor != null ) {
346+ chan_manager .as_Listen ().block_connected (b .bitcoinSerialize (), height );
347347 chain_monitor .block_connected (header , txn , height );
348348 } else {
349+ chan_manager .transactions_confirmed (header , height , txn );
350+ chan_manager .update_best_block (header , height );
351+ // Connect manually if we aren't using a ChainMonitor and are implementing Watch ourselves
349352 synchronized (monitors ) {
350353 assert monitors .size () == 1 ;
351354 for (ChannelMonitor mon : monitors .values ()) {
@@ -519,13 +522,13 @@ TestState do_test_message_handler() throws InterruptedException {
519522 funding .getInputs ().get (0 ).setWitness (new TransactionWitness (2 )); // Make sure we don't complain about lack of witness
520523 funding .getInput (0 ).getWitness ().setPush (0 , new byte []{0x1 });
521524 funding .addOutput (Coin .SATOSHI .multiply (10000 ), new Script (funding_spk ));
522- peer1 .chan_manager .funding_transaction_generated (chan_id , OutPoint .constructor_new (funding .getTxId ().getReversedBytes (), (short ) 0 ));
525+ Result_NoneAPIErrorZ funding_res = peer1 .chan_manager .funding_transaction_generated (chan_id , funding .bitcoinSerialize (), (short ) 0 );
526+ assert funding_res instanceof Result_NoneAPIErrorZ .Result_NoneAPIErrorZ_OK ;
523527 wait_events_processed (peer1 , peer2 );
524528
525- events = peer1 .chan_manager_events .get_and_clear_pending_events ();
526- assert events .length == 1 ;
527- assert events [0 ] instanceof Event .FundingBroadcastSafe ;
528- assert ((Event .FundingBroadcastSafe ) events [0 ]).user_channel_id == 42 ;
529+ assert peer1 .broadcast_set .size () == 1 ;
530+ assert Arrays .equals (peer1 .broadcast_set .get (0 ), funding .bitcoinSerialize ());
531+ peer1 .broadcast_set .clear ();
529532
530533 Block b = new Block (bitcoinj_net , 2 , Sha256Hash .ZERO_HASH , Sha256Hash .ZERO_HASH , 42 , 0 , 0 , Arrays .asList (new Transaction []{funding }));
531534 peer1 .connect_block (b , 1 , 0 );
@@ -644,7 +647,7 @@ void do_test_message_handler_b(TestState state) {
644647 wait_events_processed (state .peer1 , state .peer2 );
645648
646649 assert state .peer1 .broadcast_set .size () == 1 ;
647- assert state .peer2 .broadcast_set .size () == 0 ;
650+ assert state .peer2 .broadcast_set .size () == 1 ;
648651
649652 NetworkParameters bitcoinj_net = NetworkParameters .fromID (NetworkParameters .ID_MAINNET );
650653 Transaction tx = new Transaction (bitcoinj_net , state .peer1 .broadcast_set .getFirst ());
0 commit comments