ZcashLightClientKit/Example/ZcashLightClientSample/ZcashLightClientSample/Get UTXOs/GetUTXOsViewController.swift

74 lines
2.6 KiB
Swift
Raw Normal View History

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!
2020-12-09 15:58:33 -08:00
override func viewDidLoad() {
super.viewDidLoad()
updateUI()
}
func updateUI() {
let tAddress = try! DerivationTool(networkType: ZCASH_NETWORK.networkType).deriveTransparentAddress(seed: DemoAppConfig.seed)
2021-04-02 15:18:16 -07:00
self.transparentAddressLabel.text = tAddress
2020-12-09 15:58:33 -08:00
let balance = try! AppDelegate.shared.sharedSynchronizer.getTransparentBalance(accountIndex: 0)
2020-12-09 15:58:33 -08:00
2021-04-02 15:18:16 -07:00
self.totalBalanceLabel.text = String(balance.total.asHumanReadableZecBalance())
self.verifiedBalanceLabel.text = String(balance.verified.asHumanReadableZecBalance())
2020-12-09 15:58:33 -08:00
}
2020-12-23 15:01:55 -08:00
@IBAction func shieldFunds(_ sender: Any) {
do {
let seed = DemoAppConfig.seed
let derivationTool = DerivationTool(networkType: ZCASH_NETWORK.networkType)
let sk = try derivationTool.deriveSpendingKeys(seed: seed, numberOfAccounts: 1).first!
2020-12-23 15:01:55 -08:00
let tsk = try derivationTool.deriveTransparentPrivateKey(seed: seed)
2020-12-23 15:01:55 -08:00
KRProgressHUD.showMessage("🛡 Shielding 🛡")
AppDelegate.shared.sharedSynchronizer.shieldFunds(spendingKey: sk, transparentSecretKey: tsk, memo: "shielding is fun!", from: 0) { (result) in
DispatchQueue.main.async {
KRProgressHUD.dismiss()
switch result{
case .success(let tx):
self.messageLabel.text = "funds shielded \(tx)"
case .failure(let error):
self.messageLabel.text = "Shielding failed: \(error)"
}
}
}
} catch {
self.messageLabel.text = "Error \(error)"
}
}
2020-12-09 15:58:33 -08:00
}
extension GetUTXOsViewController: UITextFieldDelegate {
func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {
updateUI()
return true
}
func textFieldDidEndEditing(_ textField: UITextField) {
updateUI()
}
}