part of 'zano.dart'; class CWZano extends Zano { List getZanoAssets(WalletBase wallet) => (wallet as ZanoWallet).zanoAssets.values.toList(); @override Future addZanoAssetById(WalletBase wallet, String assetId) async => await (wallet as ZanoWallet).addZanoAssetById(assetId); @override Future changeZanoAssetAvailability(WalletBase wallet, CryptoCurrency token) async => await (wallet as ZanoWallet).changeZanoAssetAvailability(token as ZanoAsset); @override Future deleteZanoAsset(WalletBase wallet, CryptoCurrency token) async => await (wallet as ZanoWallet).deleteZanoAsset(token as ZanoAsset); @override Future getZanoAsset(WalletBase wallet, String assetId) async { final zanoWallet = wallet as ZanoWallet; return await zanoWallet.getZanoAsset(assetId); } // @override // TransactionHistoryBase getTransactionHistory(Object wallet) { // final zanoWallet = wallet as ZanoWallet; // return zanoWallet.transactionHistory; // } @override TransactionPriority getDefaultTransactionPriority() { return MoneroTransactionPriority.automatic; } @override TransactionPriority deserializeMoneroTransactionPriority({required int raw}) { return MoneroTransactionPriority.deserialize(raw: raw); } @override List getTransactionPriorities() { return MoneroTransactionPriority.all; } @override List getWordList(String language) { assert(language.toLowerCase() == LanguageList.english.toLowerCase()); return EnglishMnemonics.words; } @override WalletCredentials createZanoRestoreWalletFromKeysCredentials( {required String name, required String spendKey, required String viewKey, required String address, required String password, required String language, required int height}) { return ZanoRestoreWalletFromKeysCredentials( name: name, spendKey: spendKey, viewKey: viewKey, address: address, password: password, language: language, height: height); } @override WalletCredentials createZanoRestoreWalletFromSeedCredentials( {required String name, required String password, required int height, required String mnemonic}) { return ZanoRestoreWalletFromSeedCredentials(name: name, password: password, height: height, mnemonic: mnemonic); } @override WalletCredentials createZanoNewWalletCredentials({required String name, String? password}) { return ZanoNewWalletCredentials(name: name, password: password); } // @override // Map getKeys(Object wallet) { // final zanoWallet = wallet as ZanoWallet; // final keys = zanoWallet.keys; // return { // 'privateSpendKey': keys.privateSpendKey, // 'privateViewKey': keys.privateViewKey, // 'publicSpendKey': keys.publicSpendKey, // 'publicViewKey': keys.publicViewKey // }; // } @override Object createZanoTransactionCredentials({required List outputs, required TransactionPriority priority, required CryptoCurrency currency}) { return ZanoTransactionCredentials( outputs: outputs .map((out) => OutputInfo( fiatAmount: out.fiatAmount, cryptoAmount: out.cryptoAmount, address: out.address, note: out.note, sendAll: out.sendAll, extractedAddress: out.extractedAddress, isParsedAddress: out.isParsedAddress, formattedCryptoAmount: out.formattedCryptoAmount)) .toList(), priority: priority as MoneroTransactionPriority, currency: currency, ); } @override double formatterIntAmountToDouble({required int amount, required CryptoCurrency currency, required bool forFee}) { // fee always counted in zano with default decimal points if (forFee) return ZanoFormatter.intAmountToDouble(amount); if (currency is ZanoAsset) return ZanoFormatter.intAmountToDouble(amount, currency.decimalPoint); return ZanoFormatter.intAmountToDouble(amount); } @override int formatterParseAmount({required String amount, required CryptoCurrency currency}) { if (currency is ZanoAsset) return ZanoFormatter.parseAmount(amount, currency.decimalPoint); return ZanoFormatter.parseAmount(amount); } // @override // int getTransactionInfoAccountId(TransactionInfo tx) { // final zanoTransactionInfo = tx as ZanoTransactionInfo; // return zanoTransactionInfo.accountIndex; // } @override WalletService createZanoWalletService(Box walletInfoSource) { return ZanoWalletService(walletInfoSource); } @override CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo transaction) { transaction as ZanoTransactionInfo; if (transaction.tokenSymbol == CryptoCurrency.zano.title) { return CryptoCurrency.zano; } wallet as ZanoWallet; final asset = wallet.zanoAssets.values.firstWhereOrNull((element) => element.ticker == transaction.tokenSymbol); return asset ?? CryptoCurrency.zano; } String getZanoAssetAddress(CryptoCurrency asset) => (asset as ZanoAsset).assetId; @override String getAddress(WalletBase wallet) => (wallet as ZanoWallet).walletAddresses.address; }