11use ldk_node:: bitcoin:: Network ;
22use ldk_node:: lightning:: ln:: msgs:: SocketAddress ;
3+ use ldk_node:: lightning:: routing:: gossip:: NodeAlias ;
34use ldk_node:: liquidity:: LSPS2ServiceConfig ;
45use serde:: { Deserialize , Serialize } ;
56use std:: net:: SocketAddr ;
@@ -11,6 +12,7 @@ use std::{fs, io};
1112#[ derive( Debug ) ]
1213pub struct Config {
1314 pub listening_addr : SocketAddress ,
15+ pub alias : Option < NodeAlias > ,
1416 pub network : Network ,
1517 pub rest_service_addr : SocketAddr ,
1618 pub storage_dir_path : String ,
@@ -48,6 +50,21 @@ impl TryFrom<TomlConfig> for Config {
4850 )
4951 } ) ?;
5052
53+ let alias = if let Some ( alias_str) = toml_config. node . alias {
54+ let mut bytes = [ 0u8 ; 32 ] ;
55+ let alias_bytes = alias_str. trim ( ) . as_bytes ( ) ;
56+ if alias_bytes. len ( ) > 32 {
57+ return Err ( io:: Error :: new (
58+ io:: ErrorKind :: InvalidInput ,
59+ "node.alias must be at most 32 bytes long." . to_string ( ) ,
60+ ) ) ;
61+ }
62+ bytes[ ..alias_bytes. len ( ) ] . copy_from_slice ( alias_bytes) ;
63+ Some ( NodeAlias ( bytes) )
64+ } else {
65+ None
66+ } ;
67+
5168 let ( rabbitmq_connection_string, rabbitmq_exchange_name) = {
5269 let rabbitmq = toml_config. rabbitmq . unwrap_or ( RabbitmqConfig {
5370 connection_string : String :: new ( ) ,
@@ -77,6 +94,7 @@ impl TryFrom<TomlConfig> for Config {
7794 Ok ( Config {
7895 listening_addr,
7996 network : toml_config. node . network ,
97+ alias,
8098 rest_service_addr,
8199 storage_dir_path : toml_config. storage . disk . dir_path ,
82100 bitcoind_rpc_addr,
@@ -104,6 +122,7 @@ struct NodeConfig {
104122 network : Network ,
105123 listening_address : String ,
106124 rest_service_address : String ,
125+ alias : Option < String > ,
107126}
108127
109128#[ derive( Deserialize , Serialize ) ]
@@ -209,6 +228,7 @@ mod tests {
209228 network = "regtest"
210229 listening_address = "localhost:3001"
211230 rest_service_address = "127.0.0.1:3002"
231+ alias = "LDK Server"
212232
213233 [storage.disk]
214234 dir_path = "/tmp"
@@ -235,9 +255,14 @@ mod tests {
235255
236256 fs:: write ( storage_path. join ( config_file_name) , toml_config) . unwrap ( ) ;
237257
258+ let mut bytes = [ 0u8 ; 32 ] ;
259+ let alias = "LDK Server" ;
260+ bytes[ ..alias. as_bytes ( ) . len ( ) ] . copy_from_slice ( alias. as_bytes ( ) ) ;
261+
238262 let config = load_config ( storage_path. join ( config_file_name) ) . unwrap ( ) ;
239263 let expected = Config {
240264 listening_addr : SocketAddress :: from_str ( "localhost:3001" ) . unwrap ( ) ,
265+ alias : Some ( NodeAlias ( bytes) ) ,
241266 network : Network :: Regtest ,
242267 rest_service_addr : SocketAddr :: from_str ( "127.0.0.1:3002" ) . unwrap ( ) ,
243268 storage_dir_path : "/tmp" . to_string ( ) ,
0 commit comments