@@ -94,14 +94,58 @@ impl MutinyWallet {
9494 skip_device_lock : Option < bool > ,
9595 safe_mode : Option < bool > ,
9696 ) -> Result < MutinyWallet , MutinyJsError > {
97+ utils:: set_panic_hook ( ) ;
9798 let mut init = INITIALIZED . lock ( ) . await ;
9899 if * init {
99100 return Err ( MutinyJsError :: AlreadyRunning ) ;
100101 } else {
101102 * init = true ;
102103 }
103104
104- utils:: set_panic_hook ( ) ;
105+ match Self :: new_internal (
106+ password,
107+ mnemonic_str,
108+ websocket_proxy_addr,
109+ network_str,
110+ user_esplora_url,
111+ user_rgs_url,
112+ lsp_url,
113+ auth_url,
114+ subscription_url,
115+ storage_url,
116+ scorer_url,
117+ do_not_connect_peers,
118+ skip_device_lock,
119+ safe_mode,
120+ )
121+ . await
122+ {
123+ Ok ( m) => Ok ( m) ,
124+ Err ( e) => {
125+ // mark uninitialized because we failed to startup
126+ * init = false ;
127+ Err ( e)
128+ }
129+ }
130+ }
131+
132+ #[ allow( clippy:: too_many_arguments) ]
133+ async fn new_internal (
134+ password : Option < String > ,
135+ mnemonic_str : Option < String > ,
136+ websocket_proxy_addr : Option < String > ,
137+ network_str : Option < String > ,
138+ user_esplora_url : Option < String > ,
139+ user_rgs_url : Option < String > ,
140+ lsp_url : Option < String > ,
141+ auth_url : Option < String > ,
142+ subscription_url : Option < String > ,
143+ storage_url : Option < String > ,
144+ scorer_url : Option < String > ,
145+ do_not_connect_peers : Option < bool > ,
146+ skip_device_lock : Option < bool > ,
147+ safe_mode : Option < bool > ,
148+ ) -> Result < MutinyWallet , MutinyJsError > {
105149 let safe_mode = safe_mode. unwrap_or ( false ) ;
106150 let logger = Arc :: new ( MutinyLogger :: default ( ) ) ;
107151
0 commit comments