@@ -25,18 +25,26 @@ private class BDKService {
25
25
let storedNetworkString = try ? keyClient. getNetwork ( ) ?? Network . signet. description
26
26
self . network = Network ( stringValue: storedNetworkString ?? " " ) ?? . signet
27
27
28
- switch self . network {
29
- case . bitcoin:
30
- self . esploraURL = Constants . Config. EsploraServerURLNetwork. Bitcoin. allValues. first ?? " "
31
- case . testnet:
32
- self . esploraURL = Constants . Config. EsploraServerURLNetwork. Testnet. allValues. first ?? " "
33
- case . regtest:
34
- self . esploraURL = Constants . Config. EsploraServerURLNetwork. Regtest. allValues. first ?? " "
35
- case . signet:
36
- self . esploraURL = Constants . Config. EsploraServerURLNetwork. Signet. allValues. first ?? " "
37
- case . testnet4:
38
- self . esploraURL =
39
- Constants . Config. EsploraServerURLNetwork. Testnet4. allValues. first ?? " "
28
+ if let savedURL = try ? keyClient. getEsploraURL ( ) {
29
+ self . esploraURL = savedURL
30
+ } else {
31
+ switch self . network {
32
+ case . bitcoin:
33
+ self . esploraURL =
34
+ Constants . Config. EsploraServerURLNetwork. Bitcoin. allValues. first ?? " "
35
+ case . testnet:
36
+ self . esploraURL =
37
+ Constants . Config. EsploraServerURLNetwork. Testnet. allValues. first ?? " "
38
+ case . regtest:
39
+ self . esploraURL =
40
+ Constants . Config. EsploraServerURLNetwork. Regtest. allValues. first ?? " "
41
+ case . signet:
42
+ self . esploraURL =
43
+ Constants . Config. EsploraServerURLNetwork. Signet. allValues. first ?? " "
44
+ case . testnet4:
45
+ self . esploraURL =
46
+ Constants . Config. EsploraServerURLNetwork. Testnet4. allValues. first ?? " "
47
+ }
40
48
}
41
49
42
50
self . esploraClient = EsploraClient ( url: self . esploraURL)
@@ -119,26 +127,33 @@ private class BDKService {
119
127
}
120
128
121
129
func createWallet( words: String ? ) throws {
130
+ let savedURL = try ? keyClient. getEsploraURL ( )
131
+
122
132
let documentsDirectoryURL = URL . documentsDirectory
123
133
let walletDataDirectoryURL = documentsDirectoryURL. appendingPathComponent ( " wallet_data " )
124
134
125
135
if FileManager . default. fileExists ( atPath: walletDataDirectoryURL. path) {
126
136
try FileManager . default. removeItem ( at: walletDataDirectoryURL)
127
137
}
128
138
129
- let baseUrl : String
130
- switch self . network {
131
- case . bitcoin:
132
- baseUrl = Constants . Config. EsploraServerURLNetwork. Bitcoin. allValues. first ?? " "
133
- case . testnet:
134
- baseUrl = Constants . Config. EsploraServerURLNetwork. Testnet. allValues. first ?? " "
135
- case . regtest:
136
- baseUrl = Constants . Config. EsploraServerURLNetwork. Regtest. allValues. first ?? " "
137
- case . signet:
138
- baseUrl = Constants . Config. EsploraServerURLNetwork. Signet. allValues. first ?? " "
139
- case . testnet4:
140
- baseUrl = Constants . Config. EsploraServerURLNetwork. Testnet4. allValues. first ?? " "
141
- }
139
+ let baseUrl =
140
+ savedURL
141
+ ?? {
142
+ let defaultURL =
143
+ switch self . network {
144
+ case . bitcoin:
145
+ Constants . Config. EsploraServerURLNetwork. Bitcoin. allValues. first ?? " "
146
+ case . testnet:
147
+ Constants . Config. EsploraServerURLNetwork. Testnet. allValues. first ?? " "
148
+ case . regtest:
149
+ Constants . Config. EsploraServerURLNetwork. Regtest. allValues. first ?? " "
150
+ case . signet:
151
+ Constants . Config. EsploraServerURLNetwork. Signet. allValues. first ?? " "
152
+ case . testnet4:
153
+ Constants . Config. EsploraServerURLNetwork. Testnet4. allValues. first ?? " "
154
+ }
155
+ return defaultURL
156
+ } ( )
142
157
143
158
var words12 : String
144
159
if let words = words, !words. isEmpty {
@@ -193,27 +208,33 @@ private class BDKService {
193
208
}
194
209
195
210
func createWallet( descriptor: String ? ) throws {
211
+ let savedURL = try ? keyClient. getEsploraURL ( )
212
+
196
213
let documentsDirectoryURL = URL . documentsDirectory
197
214
let walletDataDirectoryURL = documentsDirectoryURL. appendingPathComponent ( " wallet_data " )
198
215
199
216
if FileManager . default. fileExists ( atPath: walletDataDirectoryURL. path) {
200
217
try FileManager . default. removeItem ( at: walletDataDirectoryURL)
201
- } else {
202
218
}
203
219
204
- let baseUrl : String
205
- switch self . network {
206
- case . bitcoin:
207
- baseUrl = Constants . Config. EsploraServerURLNetwork. Bitcoin. allValues. first ?? " "
208
- case . testnet:
209
- baseUrl = Constants . Config. EsploraServerURLNetwork. Testnet. allValues. first ?? " "
210
- case . regtest:
211
- baseUrl = Constants . Config. EsploraServerURLNetwork. Regtest. allValues. first ?? " "
212
- case . signet:
213
- baseUrl = Constants . Config. EsploraServerURLNetwork. Signet. allValues. first ?? " "
214
- case . testnet4:
215
- baseUrl = Constants . Config. EsploraServerURLNetwork. Testnet4. allValues. first ?? " "
216
- }
220
+ let baseUrl =
221
+ savedURL
222
+ ?? {
223
+ let defaultURL =
224
+ switch self . network {
225
+ case . bitcoin:
226
+ Constants . Config. EsploraServerURLNetwork. Bitcoin. allValues. first ?? " "
227
+ case . testnet:
228
+ Constants . Config. EsploraServerURLNetwork. Testnet. allValues. first ?? " "
229
+ case . regtest:
230
+ Constants . Config. EsploraServerURLNetwork. Regtest. allValues. first ?? " "
231
+ case . signet:
232
+ Constants . Config. EsploraServerURLNetwork. Signet. allValues. first ?? " "
233
+ case . testnet4:
234
+ Constants . Config. EsploraServerURLNetwork. Testnet4. allValues. first ?? " "
235
+ }
236
+ return defaultURL
237
+ } ( )
217
238
218
239
guard let descriptorString = descriptor, !descriptorString. isEmpty else {
219
240
throw WalletError . walletNotFound
@@ -268,26 +289,33 @@ private class BDKService {
268
289
}
269
290
270
291
func createWallet( xpub: String ? ) throws {
292
+ let savedURL = try ? keyClient. getEsploraURL ( )
293
+
271
294
let documentsDirectoryURL = URL . documentsDirectory
272
295
let walletDataDirectoryURL = documentsDirectoryURL. appendingPathComponent ( " wallet_data " )
273
296
274
297
if FileManager . default. fileExists ( atPath: walletDataDirectoryURL. path) {
275
298
try FileManager . default. removeItem ( at: walletDataDirectoryURL)
276
299
}
277
300
278
- let baseUrl : String
279
- switch self . network {
280
- case . bitcoin:
281
- baseUrl = Constants . Config. EsploraServerURLNetwork. Bitcoin. allValues. first ?? " "
282
- case . testnet:
283
- baseUrl = Constants . Config. EsploraServerURLNetwork. Testnet. allValues. first ?? " "
284
- case . regtest:
285
- baseUrl = Constants . Config. EsploraServerURLNetwork. Regtest. allValues. first ?? " "
286
- case . signet:
287
- baseUrl = Constants . Config. EsploraServerURLNetwork. Signet. allValues. first ?? " "
288
- case . testnet4:
289
- baseUrl = Constants . Config. EsploraServerURLNetwork. Testnet4. allValues. first ?? " "
290
- }
301
+ let baseUrl =
302
+ savedURL
303
+ ?? {
304
+ let defaultURL =
305
+ switch self . network {
306
+ case . bitcoin:
307
+ Constants . Config. EsploraServerURLNetwork. Bitcoin. allValues. first ?? " "
308
+ case . testnet:
309
+ Constants . Config. EsploraServerURLNetwork. Testnet. allValues. first ?? " "
310
+ case . regtest:
311
+ Constants . Config. EsploraServerURLNetwork. Regtest. allValues. first ?? " "
312
+ case . signet:
313
+ Constants . Config. EsploraServerURLNetwork. Signet. allValues. first ?? " "
314
+ case . testnet4:
315
+ Constants . Config. EsploraServerURLNetwork. Testnet4. allValues. first ?? " "
316
+ }
317
+ return defaultURL
318
+ } ( )
291
319
292
320
guard let xpubString = xpub, !xpubString. isEmpty else {
293
321
throw WalletError . walletNotFound
@@ -363,20 +391,28 @@ private class BDKService {
363
391
}
364
392
365
393
func deleteWallet( ) throws {
394
+ let savedURL = try ? keyClient. getEsploraURL ( )
395
+ let savedNetwork = try ? keyClient. getNetwork ( )
396
+
366
397
if let bundleID = Bundle . main. bundleIdentifier {
367
398
UserDefaults . standard. removePersistentDomain ( forName: bundleID)
368
399
}
400
+
369
401
try self . keyClient. deleteBackupInfo ( )
370
- try self . keyClient. deleteEsplora ( )
371
- try self . keyClient. deleteNetwork ( )
372
402
373
403
let documentsDirectoryURL = URL . documentsDirectory
374
404
let walletDataDirectoryURL = documentsDirectoryURL. appendingPathComponent ( " wallet_data " )
375
-
376
405
if FileManager . default. fileExists ( atPath: walletDataDirectoryURL. path) {
377
406
try FileManager . default. removeItem ( at: walletDataDirectoryURL)
378
407
}
379
408
409
+ if let savedURL = savedURL {
410
+ try keyClient. saveEsploraURL ( savedURL)
411
+ }
412
+ if let savedNetwork = savedNetwork {
413
+ try keyClient. saveNetwork ( savedNetwork)
414
+ }
415
+
380
416
needsFullScan = true
381
417
}
382
418
0 commit comments