@@ -1439,6 +1439,30 @@ impl ChannelManager {
1439
1439
Ok ( accept_msg)
1440
1440
}
1441
1441
1442
+ fn internal_accept_channel ( & self , their_node_id : & PublicKey , msg : & msgs:: AcceptChannel ) -> Result < ( ) , MsgHandleErrInternal > {
1443
+ let ( value, output_script, user_id) = {
1444
+ let mut channel_state = self . channel_state . lock ( ) . unwrap ( ) ;
1445
+ match channel_state. by_id . get_mut ( & msg. temporary_channel_id ) {
1446
+ Some ( chan) => {
1447
+ if chan. get_their_node_id ( ) != * their_node_id {
1448
+ return Err ( HandleError { err : "Got a message for a channel from the wrong node!" , action : None } ) ;
1449
+ }
1450
+ chan. accept_channel ( & msg) . map_err ( |e| MsgHandleErrInternal :: from_maybe_close ( e) ) ?;
1451
+ ( chan. get_value_satoshis ( ) , chan. get_funding_redeemscript ( ) . to_v0_p2wsh ( ) , chan. get_user_id ( ) )
1452
+ } ,
1453
+ None => return Err ( HandleError { err : "Failed to find corresponding channel" , action : None } )
1454
+ }
1455
+ } ;
1456
+ let mut pending_events = self . pending_events . lock ( ) . unwrap ( ) ;
1457
+ pending_events. push ( events:: Event :: FundingGenerationReady {
1458
+ temporary_channel_id : msg. temporary_channel_id ,
1459
+ channel_value_satoshis : value,
1460
+ output_script : output_script,
1461
+ user_channel_id : user_id,
1462
+ } ) ;
1463
+ Ok ( ( ) )
1464
+ }
1465
+
1442
1466
fn internal_announcement_signatures ( & self , their_node_id : & PublicKey , msg : & msgs:: AnnouncementSignatures ) -> Result < ( ) , MsgHandleErrInternal > {
1443
1467
let ( chan_announcement, chan_update) = {
1444
1468
let mut channel_state = self . channel_state . lock ( ) . unwrap ( ) ;
@@ -1645,27 +1669,7 @@ impl ChannelMessageHandler for ChannelManager {
1645
1669
}
1646
1670
1647
1671
fn handle_accept_channel ( & self , their_node_id : & PublicKey , msg : & msgs:: AcceptChannel ) -> Result < ( ) , HandleError > {
1648
- let ( value, output_script, user_id) = {
1649
- let mut channel_state = self . channel_state . lock ( ) . unwrap ( ) ;
1650
- match channel_state. by_id . get_mut ( & msg. temporary_channel_id ) {
1651
- Some ( chan) => {
1652
- if chan. get_their_node_id ( ) != * their_node_id {
1653
- return Err ( HandleError { err : "Got a message for a channel from the wrong node!" , action : None } )
1654
- }
1655
- chan. accept_channel ( & msg) ?;
1656
- ( chan. get_value_satoshis ( ) , chan. get_funding_redeemscript ( ) . to_v0_p2wsh ( ) , chan. get_user_id ( ) )
1657
- } ,
1658
- None => return Err ( HandleError { err : "Failed to find corresponding channel" , action : None } )
1659
- }
1660
- } ;
1661
- let mut pending_events = self . pending_events . lock ( ) . unwrap ( ) ;
1662
- pending_events. push ( events:: Event :: FundingGenerationReady {
1663
- temporary_channel_id : msg. temporary_channel_id ,
1664
- channel_value_satoshis : value,
1665
- output_script : output_script,
1666
- user_channel_id : user_id,
1667
- } ) ;
1668
- Ok ( ( ) )
1672
+ handle_error ! ( self , self . internal_accept_channel( their_node_id, msg) , their_node_id)
1669
1673
}
1670
1674
1671
1675
fn handle_funding_created ( & self , their_node_id : & PublicKey , msg : & msgs:: FundingCreated ) -> Result < msgs:: FundingSigned , HandleError > {
0 commit comments