// Copyright SIX DAY LLC. All rights reserved. import Foundation import Result import TrustKeystore protocol Keystore { var hasWallets: Bool { get } var wallets: [Wallet] { get } var recentlyUsedWallet: Wallet? { get set } static var current: Wallet? { get } @available(iOS 10.0, *) func createAccount(with password: String, completion: @escaping (Result) -> Void) func importWallet(type: ImportType, completion: @escaping (Result) -> Void) func keystore(for privateKey: String, password: String, completion: @escaping (Result) -> Void) func importKeystore(value: String, password: String, newPassword: String, completion: @escaping (Result) -> Void) func createAccout(password: String) -> Account func importKeystore(value: String, password: String, newPassword: String) -> Result func export(account: Account, password: String, newPassword: String) -> Result func exportData(account: Account, password: String, newPassword: String) -> Result func delete(wallet: Wallet) -> Result func updateAccount(account: Account, password: String, newPassword: String) -> Result func signTransaction(_ signTransaction: SignTransaction) -> Result func getPassword(for account: Account) -> String? func convertPrivateKeyToKeystoreFile(privateKey: String, passphrase: String) -> Result<[String: Any], KeystoreError> }