@@ -40,7 +40,7 @@ pub use event::Event;
40
40
use event:: { EventHandler , EventQueue } ;
41
41
use peer_store:: { PeerInfo , PeerInfoStorage } ;
42
42
use types:: {
43
- ChainMonitor , ChannelManager , GossipSync , InvoicePayer , KeysManager , NetworkGraph ,
43
+ ChainMonitor , ChannelManager , GossipSync , InvoicePayer , KeysManager , Network , NetworkGraph ,
44
44
OnionMessenger , PaymentInfoStorage , PeerManager , Router , Scorer ,
45
45
} ;
46
46
pub use types:: { ChannelId , PaymentInfo , PaymentStatus , UserChannelId } ;
@@ -85,6 +85,7 @@ use std::convert::{TryFrom, TryInto};
85
85
use std:: default:: Default ;
86
86
use std:: fs;
87
87
use std:: net:: SocketAddr ;
88
+ use std:: str:: FromStr ;
88
89
use std:: sync:: atomic:: { AtomicBool , Ordering } ;
89
90
use std:: sync:: { Arc , Mutex , RwLock } ;
90
91
use std:: time:: { Duration , Instant , SystemTime } ;
@@ -109,7 +110,7 @@ pub struct Config {
109
110
/// The URL of the utilized Esplora server.
110
111
pub esplora_server_url : String ,
111
112
/// The used Bitcoin network.
112
- pub network : bitcoin :: Network ,
113
+ pub network : Network ,
113
114
/// The IP address and TCP port the node will listen on.
114
115
pub listening_address : Option < String > ,
115
116
/// The default CLTV expiry delta to be used for payments.
@@ -121,7 +122,7 @@ impl Default for Config {
121
122
// Set the config defaults
122
123
let storage_dir_path = "/tmp/ldk_node/" . to_string ( ) ;
123
124
let esplora_server_url = "https://blockstream.info/api" . to_string ( ) ;
124
- let network = bitcoin :: Network :: Regtest ;
125
+ let network = Network :: default ( ) ;
125
126
let listening_address = Some ( "0.0.0.0:9735" . to_string ( ) ) ;
126
127
let default_cltv_expiry_delta = 144 ;
127
128
@@ -175,16 +176,9 @@ impl Builder {
175
176
///
176
177
/// Options: `mainnet`/`bitcoin`, `testnet`, `regtest`, `signet`
177
178
///
178
- /// Default: `testnet `
179
+ /// Default: `regtest `
179
180
pub fn set_network ( & mut self , network : & str ) -> & mut Self {
180
- self . config . network = match network {
181
- "mainnet" => bitcoin:: Network :: Bitcoin ,
182
- "bitcoin" => bitcoin:: Network :: Bitcoin ,
183
- "testnet" => bitcoin:: Network :: Testnet ,
184
- "regtest" => bitcoin:: Network :: Regtest ,
185
- "signet" => bitcoin:: Network :: Signet ,
186
- _ => bitcoin:: Network :: Regtest ,
187
- } ;
181
+ self . config . network = Network :: from_str ( network) . unwrap_or ( Network :: default ( ) ) ;
188
182
self
189
183
}
190
184
@@ -213,13 +207,13 @@ impl Builder {
213
207
214
208
// Step 1: Initialize the on-chain wallet and chain access
215
209
let seed = io_utils:: read_or_generate_seed_file ( Arc :: clone ( & config) ) ;
216
- let xprv = bitcoin:: util:: bip32:: ExtendedPrivKey :: new_master ( config. network , & seed)
210
+ let xprv = bitcoin:: util:: bip32:: ExtendedPrivKey :: new_master ( config. network . 0 , & seed)
217
211
. expect ( "Failed to read wallet master key" ) ;
218
212
219
213
let wallet_name = bdk:: wallet:: wallet_name_from_descriptor (
220
214
Bip84 ( xprv, bdk:: KeychainKind :: External ) ,
221
215
Some ( Bip84 ( xprv, bdk:: KeychainKind :: Internal ) ) ,
222
- config. network ,
216
+ config. network . 0 ,
223
217
& Secp256k1 :: new ( ) ,
224
218
)
225
219
. expect ( "Failed to derive on-chain wallet name" ) ;
@@ -229,7 +223,7 @@ impl Builder {
229
223
let bdk_wallet = bdk:: Wallet :: new (
230
224
Bip84 ( xprv, bdk:: KeychainKind :: External ) ,
231
225
Some ( Bip84 ( xprv, bdk:: KeychainKind :: Internal ) ) ,
232
- config. network ,
226
+ config. network . 0 ,
233
227
database,
234
228
)
235
229
. expect ( "Failed to setup on-chain wallet" ) ;
@@ -318,12 +312,13 @@ impl Builder {
318
312
channel_manager
319
313
} else {
320
314
// We're starting a fresh node.
321
- let dummy_block_hash = bitcoin:: blockdata:: constants:: genesis_block ( config. network )
322
- . header
323
- . block_hash ( ) ;
315
+ let dummy_block_hash =
316
+ bitcoin:: blockdata:: constants:: genesis_block ( config. network . 0 )
317
+ . header
318
+ . block_hash ( ) ;
324
319
325
320
let chain_params = ChainParameters {
326
- network : config. network ,
321
+ network : config. network . 0 ,
327
322
best_block : BestBlock :: new ( dummy_block_hash, 0 ) ,
328
323
} ;
329
324
channelmanager:: ChannelManager :: new (
@@ -937,7 +932,7 @@ impl Node {
937
932
) -> Result < Invoice , Error > {
938
933
let mut inbound_payments_lock = self . inbound_payments . lock ( ) . unwrap ( ) ;
939
934
940
- let currency = match self . config . network {
935
+ let currency = match self . config . network . 0 {
941
936
bitcoin:: Network :: Bitcoin => Currency :: Bitcoin ,
942
937
bitcoin:: Network :: Testnet => Currency :: BitcoinTestnet ,
943
938
bitcoin:: Network :: Regtest => Currency :: Regtest ,
0 commit comments