Skip to content

Commit efc02d3

Browse files
committed
[trello.com/c/vawidi4o] Remove secret wallets storing in KVS
1 parent fa2a825 commit efc02d3

File tree

6 files changed

+43
-70
lines changed

6 files changed

+43
-70
lines changed

Adamant/Modules/Account/AccountViewController/AccountViewController.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -178,12 +178,16 @@ final class AccountViewController: FormViewController {
178178
accountHeaderView.delegate = self
179179

180180
secretWalletsViewModel.$state
181-
.map{ $0.currentActiveIndex }
181+
.map { $0.currentActiveIndex }
182182
.removeDuplicates()
183183
.receive(on: DispatchQueue.main)
184184
.sink { [weak self] index in
185+
guard let self = self else { return }
186+
self.setupWalletsVC()
187+
self.pagingViewController.reloadData()
188+
self.pagingViewController.select(index: currentWalletIndex, animated: false)
185189
guard index >= 0 else { return }
186-
self?.accountHeaderView.setWalletIcon(index == 0 ? .regular : .secret, badgeCount: index)
190+
self.accountHeaderView.setWalletIcon(index == 0 ? .regular : .secret, badgeCount: index)
187191
}
188192
.store(in: &notificationsSet)
189193

@@ -223,11 +227,10 @@ final class AccountViewController: FormViewController {
223227

224228
walletsViewModel.$state
225229
.removeDuplicates()
226-
.debounce(for: .nanoseconds(500_000_000), scheduler: DispatchQueue.main)
230+
.debounce(for: .seconds(1) , scheduler: DispatchQueue.main)
227231
.receive(on: DispatchQueue.main)
228232
.sink { [weak self] _ in
229233
guard let self = self else { return }
230-
self.setupWalletsVC()
231234
self.pagingViewController.reloadMenu()
232235
self.pagingViewController.select(index: currentWalletIndex, animated: false)
233236
}

Adamant/Modules/Wallets/Bitcoin/BtcWalletService.swift

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -468,7 +468,6 @@ extension BtcWalletService {
468468
addressConverter: addressConverter
469469
)
470470
self.btcWallet = eWallet
471-
let kvsAddressModel = makeKVSAddressModel(wallet: eWallet)
472471

473472
NotificationCenter.default.post(
474473
name: walletUpdatedNotification,
@@ -483,8 +482,16 @@ extension BtcWalletService {
483482
NotificationCenter.default.post(name: self.serviceEnabledChanged, object: self)
484483
}
485484

485+
self.setState(.upToDate)
486+
487+
Task {
488+
self.update()
489+
}
490+
486491
guard storeInKVC else { return eWallet }
492+
487493
// MARK: 4. Save address into KVS
494+
let kvsAddressModel = makeKVSAddressModel(wallet: eWallet)
488495
let service = self
489496
do {
490497
let address = try await getWalletAddress(byAdamantAddress: adamant.address)
@@ -495,23 +502,12 @@ extension BtcWalletService {
495502
throw WalletServiceError.accountNotFound
496503
}
497504

498-
service.setState(.upToDate)
499-
500-
Task {
501-
service.update()
502-
}
503-
504505
return eWallet
505506
} catch let error as WalletServiceError {
506507
switch error {
507508
case .walletNotInitiated:
508509
/// The ADM Wallet is not initialized. Check the balance of the current wallet
509510
/// and save the wallet address to kvs when dropshipping ADM
510-
service.setState(.upToDate)
511-
512-
Task {
513-
await service.update()
514-
}
515511

516512
if let kvsAddressModel {
517513
service.save(kvsAddressModel) { result in
@@ -522,7 +518,6 @@ extension BtcWalletService {
522518
return eWallet
523519

524520
default:
525-
service.setState(.upToDate)
526521
throw error
527522
}
528523
}

Adamant/Modules/Wallets/Dash/DashWalletService.swift

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -325,7 +325,6 @@ extension DashWalletService {
325325
)
326326

327327
self.dashWallet = eWallet
328-
let kvsAddressModel = makeKVSAddressModel(wallet: eWallet)
329328

330329
NotificationCenter.default.post(
331330
name: walletUpdatedNotification,
@@ -340,9 +339,16 @@ extension DashWalletService {
340339
NotificationCenter.default.post(name: self.serviceEnabledChanged, object: self)
341340
}
342341

342+
self.setState(.upToDate)
343+
344+
Task {
345+
self.update()
346+
}
347+
343348
guard storeInKVC else { return eWallet }
344349

345350
// MARK: 4. Save address into KVS
351+
let kvsAddressModel = makeKVSAddressModel(wallet: eWallet)
346352
do {
347353
let address = try await getWalletAddress(byAdamantAddress: adamant.address)
348354
let service = self
@@ -352,35 +358,23 @@ extension DashWalletService {
352358
}
353359
}
354360

355-
service.setState(.upToDate)
356-
357-
Task {
358-
service.update()
359-
}
360361
return eWallet
361362
} catch let error as WalletServiceError {
362363
let service = self
363364
switch error {
364365
case .walletNotInitiated:
365366
/// The ADM Wallet is not initialized. Check the balance of the current wallet
366367
/// and save the wallet address to kvs when dropshipping ADM
367-
service.setState(.upToDate)
368-
369-
Task {
370-
await service.update()
371-
}
372368

373369
if let kvsAddressModel {
374370
service.save(kvsAddressModel) { result in
375371
service.kvsSaveCompletionRecursion(kvsAddressModel, result: result)
376372
}
377373
}
378374

379-
service.setState(.upToDate)
380375
return eWallet
381376

382377
default:
383-
service.setState(.upToDate)
384378
throw error
385379
}
386380
}

Adamant/Modules/Wallets/Doge/DogeWalletService.swift

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -343,7 +343,6 @@ extension DogeWalletService {
343343
addressConverter: addressConverter
344344
)
345345
self.dogeWallet = eWallet
346-
let kvsAddressModel = makeKVSAddressModel(wallet: eWallet)
347346

348347
NotificationCenter.default.post(
349348
name: walletUpdatedNotification,
@@ -358,9 +357,16 @@ extension DogeWalletService {
358357
NotificationCenter.default.post(name: self.serviceEnabledChanged, object: self)
359358
}
360359

360+
self.setState(.upToDate)
361+
362+
Task {
363+
await self.update()
364+
}
365+
361366
guard storeInKVC else { return eWallet }
362367

363368
// MARK: 4. Save address into KVS
369+
let kvsAddressModel = makeKVSAddressModel(wallet: eWallet)
364370
let service = self
365371
do {
366372
let address = try await getWalletAddress(byAdamantAddress: adamant.address)
@@ -370,35 +376,22 @@ extension DogeWalletService {
370376
}
371377
}
372378

373-
service.setState(.upToDate)
374-
375-
Task {
376-
await service.update()
377-
}
378-
379379
return eWallet
380380
} catch let error as WalletServiceError {
381381
switch error {
382382
case .walletNotInitiated:
383383
/// The ADM Wallet is not initialized. Check the balance of the current wallet
384384
/// and save the wallet address to kvs when dropshipping ADM
385-
service.setState(.upToDate)
386-
387-
Task {
388-
await service.update()
389-
}
390385

391386
if let kvsAddressModel {
392387
service.save(kvsAddressModel) { result in
393388
service.kvsSaveCompletionRecursion(kvsAddressModel, result: result)
394389
}
395390
}
396391

397-
service.setState(.upToDate)
398392
return eWallet
399393

400394
default:
401-
service.setState(.upToDate)
402395
throw error
403396
}
404397
}

Adamant/Modules/Wallets/Ethereum/EthWalletService.swift

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,6 @@ extension EthWalletService {
428428

429429
// MARK: 3. Update
430430
ethWallet = eWallet
431-
let kvsAddressModel = makeKVSAddressModel(wallet: eWallet)
432431

433432
NotificationCenter.default.post(
434433
name: walletUpdatedNotification,
@@ -443,9 +442,16 @@ extension EthWalletService {
443442
NotificationCenter.default.post(name: serviceEnabledChanged, object: self)
444443
}
445444

445+
self.setState(.upToDate)
446+
447+
Task {
448+
await self.update()
449+
}
450+
446451
guard storeInKVC else { return eWallet }
447452

448453
// MARK: 4. Save into KVS
454+
let kvsAddressModel = makeKVSAddressModel(wallet: eWallet)
449455
let service = self
450456
do {
451457
let address = try await getWalletAddress(byAdamantAddress: adamant.address)
@@ -455,24 +461,13 @@ extension EthWalletService {
455461
}
456462
}
457463

458-
service.setState(.upToDate)
459-
460-
Task {
461-
await service.update()
462-
}
463-
464464
return eWallet
465465
} catch let error as WalletServiceError {
466466
switch error {
467467
case .walletNotInitiated:
468468
/// The ADM Wallet is not initialized. Check the balance of the current wallet
469469
/// and save the wallet address to kvs when dropshipping ADM
470-
service.setState(.upToDate)
471-
472-
Task {
473-
await service.update()
474-
}
475-
470+
476471
if let kvsAddressModel {
477472
service.save(kvsAddressModel) { result in
478473
service.kvsSaveCompletionRecursion(kvsAddressModel, result: result)
@@ -482,7 +477,6 @@ extension EthWalletService {
482477
return eWallet
483478

484479
default:
485-
service.setState(.upToDate)
486480
throw error
487481
}
488482
}

Adamant/Modules/Wallets/Klayr/WalletService/KlyWalletService.swift

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -465,6 +465,12 @@ private extension KlyWalletService {
465465
throw WalletServiceError.accountNotFound
466466
}
467467

468+
setState(.upToDate)
469+
470+
Task {
471+
await update()
472+
}
473+
468474
guard storeInKVC else { return eWallet }
469475

470476
// Save into KVS
@@ -476,29 +482,17 @@ private extension KlyWalletService {
476482
updateKvsAddress(kvsAddressModel)
477483
}
478484

479-
setState(.upToDate)
480-
481-
Task {
482-
await update()
483-
}
484-
485485
return eWallet
486486
} catch let error as WalletServiceError {
487487
switch error {
488488
case .walletNotInitiated:
489489
/// The ADM Wallet is not initialized. Check the balance of the current wallet
490490
/// and save the wallet address to kvs when dropshipping ADM
491-
setState(.upToDate)
492-
493-
Task {
494-
await update()
495-
}
496491

497492
updateKvsAddress(kvsAddressModel)
498493

499494
return eWallet
500495
default:
501-
setState(.upToDate)
502496
throw error
503497
}
504498
}

0 commit comments

Comments
 (0)