Skip to content

Commit 995ad77

Browse files
authored
Merge pull request #733 from Adamant-im/trello.com/c/hzqPFC5l
[trello.com/c/hzqPFC5l] Update "Send Crypto" screen to use with secret wallets
2 parents db7551d + 9bc42f2 commit 995ad77

File tree

14 files changed

+87
-8
lines changed

14 files changed

+87
-8
lines changed

Adamant/Modules/Wallets/Adamant/AdmWalletFactory.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@ struct AdmWalletFactory: WalletFactory {
5555
vibroService: assembler.resolve(VibroService.self)!,
5656
walletService: service,
5757
reachabilityMonitor: assembler.resolve(ReachabilityMonitor.self)!,
58-
apiServiceCompose: assembler.resolve(ApiServiceComposeProtocol.self)!
58+
apiServiceCompose: assembler.resolve(ApiServiceComposeProtocol.self)!,
59+
secretWalletManager: assembler.resolve(SecretWalletsManagerProtocol.self)!,
60+
secretWalletViewModel: assembler.resolve(SecretWalletsViewModel.self)!
5961
)
6062
}
6163

Adamant/Modules/Wallets/Bitcoin/BtcWalletFactory.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ struct BtcWalletFactory: WalletFactory {
5151
vibroService: assembler.resolve(VibroService.self)!,
5252
walletService: service,
5353
reachabilityMonitor: assembler.resolve(ReachabilityMonitor.self)!,
54-
apiServiceCompose: assembler.resolve(ApiServiceComposeProtocol.self)!
54+
apiServiceCompose: assembler.resolve(ApiServiceComposeProtocol.self)!,
55+
secretWalletManager: assembler.resolve(SecretWalletsManagerProtocol.self)!,
56+
secretWalletViewModel: assembler.resolve(SecretWalletsViewModel.self)!
5557
)
5658
}
5759

Adamant/Modules/Wallets/Dash/DashWalletFactory.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,9 @@ struct DashWalletFactory: WalletFactory {
5050
vibroService: assembler.resolve(VibroService.self)!,
5151
walletService: service,
5252
reachabilityMonitor: assembler.resolve(ReachabilityMonitor.self)!,
53-
apiServiceCompose: assembler.resolve(ApiServiceComposeProtocol.self)!
53+
apiServiceCompose: assembler.resolve(ApiServiceComposeProtocol.self)!,
54+
secretWalletManager: assembler.resolve(SecretWalletsManagerProtocol.self)!,
55+
secretWalletViewModel: assembler.resolve(SecretWalletsViewModel.self)!
5456
)
5557
}
5658

Adamant/Modules/Wallets/Doge/DogeWalletFactory.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,9 @@ struct DogeWalletFactory: WalletFactory {
5050
vibroService: assembler.resolve(VibroService.self)!,
5151
walletService: service,
5252
reachabilityMonitor: assembler.resolve(ReachabilityMonitor.self)!,
53-
apiServiceCompose: assembler.resolve(ApiServiceComposeProtocol.self)!
53+
apiServiceCompose: assembler.resolve(ApiServiceComposeProtocol.self)!,
54+
secretWalletManager: assembler.resolve(SecretWalletsManagerProtocol.self)!,
55+
secretWalletViewModel: assembler.resolve(SecretWalletsViewModel.self)!
5456
)
5557
}
5658

Adamant/Modules/Wallets/ERC20/ERC20WalletFactory.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,9 @@ struct ERC20WalletFactory: WalletFactory {
5050
vibroService: assembler.resolve(VibroService.self)!,
5151
walletService: service,
5252
reachabilityMonitor: assembler.resolve(ReachabilityMonitor.self)!,
53-
apiServiceCompose: assembler.resolve(ApiServiceComposeProtocol.self)!
53+
apiServiceCompose: assembler.resolve(ApiServiceComposeProtocol.self)!,
54+
secretWalletManager: assembler.resolve(SecretWalletsManagerProtocol.self)!,
55+
secretWalletViewModel: assembler.resolve(SecretWalletsViewModel.self)!
5456
)
5557
}
5658

Adamant/Modules/Wallets/Ethereum/EthWalletFactory.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,9 @@ struct EthWalletFactory: WalletFactory {
5050
vibroService: assembler.resolve(VibroService.self)!,
5151
walletService: service,
5252
reachabilityMonitor: assembler.resolve(ReachabilityMonitor.self)!,
53-
apiServiceCompose: assembler.resolve(ApiServiceComposeProtocol.self)!
53+
apiServiceCompose: assembler.resolve(ApiServiceComposeProtocol.self)!,
54+
secretWalletManager: assembler.resolve(SecretWalletsManagerProtocol.self)!,
55+
secretWalletViewModel: assembler.resolve(SecretWalletsViewModel.self)!
5456
)
5557
}
5658

Adamant/Modules/Wallets/Klayr/KlyWalletFactory.swift

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,9 @@ struct KlyWalletFactory: WalletFactory {
5151
vibroService: assembler.resolve(VibroService.self)!,
5252
walletService: service,
5353
reachabilityMonitor: assembler.resolve(ReachabilityMonitor.self)!,
54-
apiServiceCompose: assembler.resolve(ApiServiceComposeProtocol.self)!
54+
apiServiceCompose: assembler.resolve(ApiServiceComposeProtocol.self)!,
55+
secretWalletManager: assembler.resolve(SecretWalletsManagerProtocol.self)!,
56+
secretWalletViewModel: assembler.resolve(SecretWalletsViewModel.self)!
5557
)
5658
}
5759

Adamant/Modules/Wallets/TransferViewControllerBase.swift

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ class TransferViewControllerBase: FormViewController {
9090
// MARK: - Rows
9191

9292
enum BaseRows {
93+
case senderAddress
94+
case type
9395
case balance
9496
case amount
9597
case fiat
@@ -105,6 +107,8 @@ class TransferViewControllerBase: FormViewController {
105107

106108
var tag: String {
107109
switch self {
110+
case .senderAddress: return "senderAddress"
111+
case .type: return "type"
108112
case .balance: return "balance"
109113
case .amount: return "amount"
110114
case .fiat: return "fiat"
@@ -122,6 +126,8 @@ class TransferViewControllerBase: FormViewController {
122126

123127
var localized: String {
124128
switch self {
129+
case .senderAddress: return .localized("TransferScene.Row.SenderAddress", comment: "Transfer: sender address")
130+
case .type: return .localized("TransferScene.Row.Type", comment: "Transfer: transaction type")
125131
case .balance: return .localized("TransferScene.Row.Balance", comment: "Transfer: logged user balance.")
126132
case .amount: return .localized("TransferScene.Row.Amount", comment: "Transfer: amount of adamant to transfer.")
127133
case .fiat: return .localized("TransferScene.Row.Fiat", comment: "Transfer: fiat value of crypto-amout")
@@ -188,6 +194,8 @@ class TransferViewControllerBase: FormViewController {
188194
let walletCore: WalletCoreProtocol
189195
let reachabilityMonitor: ReachabilityMonitor
190196
let apiServiceCompose: ApiServiceComposeProtocol
197+
let secretWalletManager: SecretWalletsManagerProtocol
198+
let secretWalletViewModel: SecretWalletsViewModel
191199

192200
// MARK: - Properties
193201

@@ -319,7 +327,9 @@ class TransferViewControllerBase: FormViewController {
319327
vibroService: VibroService,
320328
walletService: WalletService,
321329
reachabilityMonitor: ReachabilityMonitor,
322-
apiServiceCompose: ApiServiceComposeProtocol
330+
apiServiceCompose: ApiServiceComposeProtocol,
331+
secretWalletManager: SecretWalletsManagerProtocol,
332+
secretWalletViewModel: SecretWalletsViewModel
323333
) {
324334
self.accountService = accountService
325335
self.accountsProvider = accountsProvider
@@ -333,6 +343,8 @@ class TransferViewControllerBase: FormViewController {
333343
self.walletCore = walletService.core
334344
self.reachabilityMonitor = reachabilityMonitor
335345
self.apiServiceCompose = apiServiceCompose
346+
self.secretWalletManager = secretWalletManager
347+
self.secretWalletViewModel = secretWalletViewModel
336348
super.init(style: .insetGrouped)
337349
}
338350

@@ -501,6 +513,8 @@ class TransferViewControllerBase: FormViewController {
501513
$0.tag = Sections.wallet.tag
502514
}
503515

516+
section.append(defaultRowFor(baseRow: BaseRows.senderAddress))
517+
section.append(defaultRowFor(baseRow: BaseRows.type))
504518
section.append(defaultRowFor(baseRow: BaseRows.balance))
505519
section.append(defaultRowFor(baseRow: BaseRows.maxToTransfer))
506520

@@ -1023,6 +1037,28 @@ class TransferViewControllerBase: FormViewController {
10231037
extension TransferViewControllerBase {
10241038
func defaultRowFor(baseRow: BaseRows) -> BaseRow {
10251039
switch baseRow {
1040+
case .senderAddress:
1041+
return LabelRow { [weak self] in
1042+
$0.title = BaseRows.senderAddress.localized
1043+
$0.tag = BaseRows.senderAddress.tag
1044+
$0.disabled = true
1045+
$0.cell.detailTextLabel?.lineBreakMode = .byTruncatingMiddle
1046+
$0.value = self?.walletCore.wallet?.address
1047+
}
1048+
case .type:
1049+
return LabelRow {
1050+
$0.title = BaseRows.type.localized
1051+
$0.tag = BaseRows.type.tag
1052+
$0.disabled = true
1053+
1054+
$0.value = secretWalletViewModel.state.currentWallet?.name ?? String.localized("SecretWallets.Menu.Regular", comment: "Regular Wallet")
1055+
1056+
for wallet in secretWalletManager.getRegularWallet().sorted(includeInvisible: false) where wallet.core.wallet?.address == walletCore.wallet?.address {
1057+
$0.value = String.localized("SecretWallets.Menu.Regular", comment: "Regular Wallet")
1058+
break
1059+
}
1060+
}
1061+
10261062
case .balance:
10271063
return SafeDecimalRow { [weak self] in
10281064
$0.title = BaseRows.balance.localized

Adamant/ServiceProtocols/SecretWalletsManagerProtocol.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ protocol SecretWalletsManagerProtocol {
1414
func createSecretWallet(withPassword password: String)
1515
func removeSecretWallet(at index: Int) -> WalletStoreServiceProtocol?
1616
func getCurrentWallet() -> WalletStoreServiceProtocol
17+
func getRegularWallet() -> WalletStoreServiceProtocol
1718
func getSecretWallets() -> [WalletStoreServiceProtocol]
1819
func activateSecretWallet(at index: Int)
1920
func activateDefaultWallet()

Adamant/Services/SecretWalletsManager.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,10 @@ final class AdamantSecretWalletsManager: SecretWalletsManagerProtocol {
5252
state.currentWallet
5353
}
5454

55+
func getRegularWallet() -> WalletStoreServiceProtocol {
56+
state.regularWallet
57+
}
58+
5559
func getSecretWallets() -> [WalletStoreServiceProtocol] {
5660
state.secretWallets
5761
}

0 commit comments

Comments
 (0)