File tree Expand file tree Collapse file tree 2 files changed +24
-15
lines changed Expand file tree Collapse file tree 2 files changed +24
-15
lines changed Original file line number Diff line number Diff line change 1
- use crate :: api:: error:: LdkServerError ;
2
- use crate :: api:: error:: LdkServerErrorCode :: InvalidRequestError ;
1
+ use crate :: api:: { error:: LdkServerError , parse_counterparty_node_id, parse_user_channel_id} ;
3
2
use crate :: service:: Context ;
4
- use ldk_node:: bitcoin:: secp256k1:: PublicKey ;
5
- use ldk_node:: UserChannelId ;
6
3
use ldk_server_protos:: api:: { CloseChannelRequest , CloseChannelResponse } ;
7
- use std:: str:: FromStr ;
8
4
9
5
pub ( crate ) const CLOSE_CHANNEL_PATH : & str = "CloseChannel" ;
10
6
11
7
pub ( crate ) fn handle_close_channel_request (
12
8
context : Context , request : CloseChannelRequest ,
13
9
) -> Result < CloseChannelResponse , LdkServerError > {
14
- let user_channel_id =
15
- UserChannelId ( ( & request. user_channel_id ) . parse :: < u128 > ( ) . map_err ( |_| {
16
- LdkServerError :: new ( InvalidRequestError , "Invalid UserChannelId." . to_string ( ) )
17
- } ) ?) ;
18
- let counterparty_node_id = PublicKey :: from_str ( & request. counterparty_node_id ) . map_err ( |e| {
19
- LdkServerError :: new (
20
- InvalidRequestError ,
21
- format ! ( "Invalid counterparty node ID, error: {}" , e) ,
22
- )
23
- } ) ?;
10
+ let user_channel_id = parse_user_channel_id ( & request. user_channel_id ) ?;
11
+ let counterparty_node_id = parse_counterparty_node_id ( & request. counterparty_node_id ) ?;
12
+
24
13
context. node . close_channel ( & user_channel_id, counterparty_node_id) ?;
25
14
26
15
let response = CloseChannelResponse { } ;
Original file line number Diff line number Diff line change @@ -14,3 +14,23 @@ pub(crate) mod onchain_receive;
14
14
pub ( crate ) mod onchain_send;
15
15
pub ( crate ) mod open_channel;
16
16
pub ( crate ) mod update_channel_config;
17
+
18
+ use crate :: api:: error:: { LdkServerError , LdkServerErrorCode :: InvalidRequestError } ;
19
+ use ldk_node:: bitcoin:: secp256k1:: PublicKey ;
20
+ use ldk_node:: UserChannelId ;
21
+ use std:: str:: FromStr ;
22
+
23
+ pub fn parse_user_channel_id ( id : & str ) -> Result < UserChannelId , LdkServerError > {
24
+ Ok ( UserChannelId ( id. parse :: < u128 > ( ) . map_err ( |_| {
25
+ LdkServerError :: new ( InvalidRequestError , "Invalid UserChannelId." . to_string ( ) )
26
+ } ) ?) )
27
+ }
28
+
29
+ pub fn parse_counterparty_node_id ( id : & str ) -> Result < PublicKey , LdkServerError > {
30
+ PublicKey :: from_str ( id) . map_err ( |e| {
31
+ LdkServerError :: new (
32
+ InvalidRequestError ,
33
+ format ! ( "Invalid counterparty node ID, error: {}" , e) ,
34
+ )
35
+ } )
36
+ }
You can’t perform that action at this time.
0 commit comments