2020-12-09 15:58:33 -08:00
|
|
|
//
|
|
|
|
// GetUTXOsViewController.swift
|
|
|
|
// ZcashLightClientSample
|
|
|
|
//
|
|
|
|
// Created by Francisco Gindre on 12/9/20.
|
|
|
|
// Copyright © 2020 Electric Coin Company. All rights reserved.
|
|
|
|
//
|
|
|
|
|
|
|
|
import UIKit
|
|
|
|
import ZcashLightClientKit
|
|
|
|
import KRProgressHUD
|
|
|
|
class GetUTXOsViewController: UIViewController {
|
2021-04-02 15:18:16 -07:00
|
|
|
@IBOutlet weak var transparentAddressLabel: UILabel!
|
|
|
|
@IBOutlet weak var verifiedBalanceLabel: UILabel!
|
|
|
|
@IBOutlet weak var totalBalanceLabel: UILabel!
|
2020-12-09 15:58:33 -08:00
|
|
|
@IBOutlet weak var messageLabel: UILabel!
|
2021-04-02 15:18:16 -07:00
|
|
|
@IBOutlet weak var shieldFundsButton: UIButton!
|
2021-09-17 06:49:58 -07:00
|
|
|
|
2020-12-09 15:58:33 -08:00
|
|
|
override func viewDidLoad() {
|
|
|
|
super.viewDidLoad()
|
|
|
|
|
|
|
|
updateUI()
|
|
|
|
}
|
|
|
|
|
|
|
|
func updateUI() {
|
2022-10-02 19:11:17 -07:00
|
|
|
let synchronizer = SDKSynchronizer.shared
|
|
|
|
let tAddress = synchronizer.getTransparentAddress(accountIndex: 0)?.stringEncoded ?? "no t-address found"
|
2021-09-17 06:49:58 -07:00
|
|
|
|
2022-10-02 19:11:17 -07:00
|
|
|
self.transparentAddressLabel.text = tAddress
|
2021-09-17 06:49:58 -07:00
|
|
|
|
2022-10-27 03:51:38 -07:00
|
|
|
Task { @MainActor in
|
|
|
|
// swiftlint:disable:next force_try
|
|
|
|
let balance = try! await AppDelegate.shared.sharedSynchronizer.getTransparentBalance(accountIndex: 0)
|
|
|
|
|
|
|
|
self.totalBalanceLabel.text = NumberFormatter.zcashNumberFormatter.string(from: NSNumber(value: balance.total.amount))
|
|
|
|
self.verifiedBalanceLabel.text = NumberFormatter.zcashNumberFormatter.string(from: NSNumber(value: balance.verified.amount))
|
|
|
|
}
|
2020-12-09 15:58:33 -08:00
|
|
|
}
|
2020-12-23 15:01:55 -08:00
|
|
|
|
|
|
|
@IBAction func shieldFunds(_ sender: Any) {
|
|
|
|
do {
|
2021-09-15 05:21:29 -07:00
|
|
|
let derivationTool = DerivationTool(networkType: kZcashNetwork.networkType)
|
2022-08-20 15:10:22 -07:00
|
|
|
|
2022-10-02 19:11:17 -07:00
|
|
|
let usk = try derivationTool.deriveUnifiedSpendingKey(seed: DemoAppConfig.seed, accountIndex: 0)
|
2021-09-17 06:49:58 -07:00
|
|
|
|
2020-12-23 15:01:55 -08:00
|
|
|
KRProgressHUD.showMessage("🛡 Shielding 🛡")
|
2021-09-17 06:49:58 -07:00
|
|
|
|
2022-09-21 05:30:06 -07:00
|
|
|
Task { @MainActor in
|
|
|
|
let transaction = try await AppDelegate.shared.sharedSynchronizer.shieldFunds(
|
2022-10-04 08:32:32 -07:00
|
|
|
spendingKey: usk,
|
2022-10-02 19:11:17 -07:00
|
|
|
memo: try Memo(string: "shielding is fun!")
|
2022-09-30 05:53:34 -07:00
|
|
|
)
|
2022-09-21 05:30:06 -07:00
|
|
|
KRProgressHUD.dismiss()
|
|
|
|
self.messageLabel.text = "funds shielded \(transaction)"
|
|
|
|
}
|
2020-12-23 15:01:55 -08:00
|
|
|
} catch {
|
2022-09-21 05:30:06 -07:00
|
|
|
self.messageLabel.text = "Shielding failed \(error)"
|
2020-12-23 15:01:55 -08:00
|
|
|
}
|
|
|
|
}
|
2020-12-09 15:58:33 -08:00
|
|
|
}
|
|
|
|
|
|
|
|
extension GetUTXOsViewController: UITextFieldDelegate {
|
2021-09-17 06:49:58 -07:00
|
|
|
func textField(
|
|
|
|
_ textField: UITextField,
|
|
|
|
shouldChangeCharactersIn range: NSRange,
|
|
|
|
replacementString string: String
|
|
|
|
) -> Bool {
|
2020-12-09 15:58:33 -08:00
|
|
|
updateUI()
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
|
2021-09-17 06:49:58 -07:00
|
|
|
func textFieldDidEndEditing(_ textField: UITextField) {
|
2020-12-09 15:58:33 -08:00
|
|
|
updateUI()
|
|
|
|
}
|
|
|
|
}
|