diff --git a/analysis_options.yaml b/analysis_options.yaml index 2063b5a8c..be68a4f26 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -1,5 +1,6 @@ include: package:lints/recommended.yaml + analyzer: exclude: [ build/**, @@ -83,4 +84,4 @@ linter: # - unawaited_futures # - unnecessary_getters_setters # - unrelated_type_equality_checks -# - valid_regexps \ No newline at end of file +# - valid_regexps diff --git a/assets/bitcoin_cash_electrum_server_list.yml b/assets/bitcoin_cash_electrum_server_list.yml index d76668169..948e5f3dc 100644 --- a/assets/bitcoin_cash_electrum_server_list.yml +++ b/assets/bitcoin_cash_electrum_server_list.yml @@ -1,3 +1,10 @@ - uri: bitcoincash.stackwallet.com:50002 - is_default: true \ No newline at end of file + is_default: true + useSSL: true +- + uri: bch.aftrek.org:50002 + useSSL: true +- + uri: node.minisatoshi.cash:50002 + useSSL: true diff --git a/assets/images/cards.png b/assets/images/cards.png new file mode 100644 index 000000000..b263bc742 Binary files /dev/null and b/assets/images/cards.png differ diff --git a/assets/images/cards.svg b/assets/images/cards.svg deleted file mode 100644 index 699f9d311..000000000 --- a/assets/images/cards.svg +++ /dev/null @@ -1,65 +0,0 @@ - - - - diff --git a/assets/images/flags/arm.png b/assets/images/flags/arm.png index 7bdabd4ee..0e4c356e2 100644 Binary files a/assets/images/flags/arm.png and b/assets/images/flags/arm.png differ diff --git a/assets/images/flags/bra.png b/assets/images/flags/bra.png index ee0b0e8c6..6c4ba8968 100644 Binary files a/assets/images/flags/bra.png and b/assets/images/flags/bra.png differ diff --git a/assets/images/flags/hau.png b/assets/images/flags/hau.png index 7583b5daf..2bfb0a71c 100644 Binary files a/assets/images/flags/hau.png and b/assets/images/flags/hau.png differ diff --git a/assets/images/flags/ind.png b/assets/images/flags/ind.png index ef721a2aa..45d4a7109 100644 Binary files a/assets/images/flags/ind.png and b/assets/images/flags/ind.png differ diff --git a/assets/images/flags/ukr.png b/assets/images/flags/ukr.png index 61071e338..c4fe57fcc 100644 Binary files a/assets/images/flags/ukr.png and b/assets/images/flags/ukr.png differ diff --git a/assets/images/nanogpt.png b/assets/images/nanogpt.png new file mode 100644 index 000000000..958400452 Binary files /dev/null and b/assets/images/nanogpt.png differ diff --git a/cw_bitcoin/lib/exceptions.dart b/cw_bitcoin/lib/exceptions.dart index 3307bfeed..575a61b0b 100644 --- a/cw_bitcoin/lib/exceptions.dart +++ b/cw_bitcoin/lib/exceptions.dart @@ -30,4 +30,6 @@ class BitcoinTransactionCommitFailedVoutNegative extends TransactionCommitFailed class BitcoinTransactionCommitFailedBIP68Final extends TransactionCommitFailedBIP68Final {} +class BitcoinTransactionCommitFailedLessThanMin extends TransactionCommitFailedBIP68Final {} + class BitcoinTransactionSilentPaymentsNotSupported extends TransactionInputNotSupported {} diff --git a/cw_bitcoin/lib/pending_bitcoin_transaction.dart b/cw_bitcoin/lib/pending_bitcoin_transaction.dart index e90e2193a..aeba9394a 100644 --- a/cw_bitcoin/lib/pending_bitcoin_transaction.dart +++ b/cw_bitcoin/lib/pending_bitcoin_transaction.dart @@ -91,6 +91,10 @@ class PendingBitcoinTransaction with PendingTransaction { throw BitcoinTransactionCommitFailedBIP68Final(); } + if (error.contains("min fee not met")) { + throw BitcoinTransactionCommitFailedLessThanMin(); + } + throw BitcoinTransactionCommitFailed(errorMessage: error); } diff --git a/cw_core/lib/crypto_currency.dart b/cw_core/lib/crypto_currency.dart index cf7a73b3c..d3ef6526a 100644 --- a/cw_core/lib/crypto_currency.dart +++ b/cw_core/lib/crypto_currency.dart @@ -178,7 +178,7 @@ class CryptoCurrency extends EnumerableItem with Serializable implemen static const dcr = CryptoCurrency(title: 'DCR', fullName: 'Decred', raw: 47, name: 'dcr', iconPath: 'assets/images/dcr_icon.png', decimals: 8); static const kmd = CryptoCurrency(title: 'KMD', fullName: 'Komodo', raw: 48, name: 'kmd', iconPath: 'assets/images/kmd_icon.png', decimals: 8); static const mana = CryptoCurrency(title: 'MANA', tag: 'ETH', fullName: 'Decentraland', raw: 49, name: 'mana', iconPath: 'assets/images/mana_icon.png', decimals: 18); - static const maticpoly = CryptoCurrency(title: 'MATIC', tag: 'POLY', fullName: 'Polygon', raw: 50, name: 'maticpoly', iconPath: 'assets/images/matic_icon.png', decimals: 18); + static const maticpoly = CryptoCurrency(title: 'POL', tag: 'POLY', fullName: 'Polygon', raw: 50, name: 'maticpoly', iconPath: 'assets/images/matic_icon.png', decimals: 18); static const matic = CryptoCurrency(title: 'MATIC', tag: 'ETH', fullName: 'Polygon', raw: 51, name: 'matic', iconPath: 'assets/images/matic_icon.png', decimals: 18); static const mkr = CryptoCurrency(title: 'MKR', tag: 'ETH', fullName: 'Maker', raw: 52, name: 'mkr', iconPath: 'assets/images/mkr_icon.png', decimals: 18); static const near = CryptoCurrency(title: 'NEAR', fullName: 'NEAR Protocol', raw: 53, name: 'near', iconPath: 'assets/images/near_icon.png', decimals: 24); diff --git a/cw_core/lib/exceptions.dart b/cw_core/lib/exceptions.dart index dccacd799..c13861698 100644 --- a/cw_core/lib/exceptions.dart +++ b/cw_core/lib/exceptions.dart @@ -36,4 +36,6 @@ class TransactionCommitFailedVoutNegative implements Exception {} class TransactionCommitFailedBIP68Final implements Exception {} +class TransactionCommitFailedLessThanMin implements Exception {} + class TransactionInputNotSupported implements Exception {} diff --git a/cw_ethereum/lib/ethereum_wallet.dart b/cw_ethereum/lib/ethereum_wallet.dart index 51aeab5e1..e8a9e85fa 100644 --- a/cw_ethereum/lib/ethereum_wallet.dart +++ b/cw_ethereum/lib/ethereum_wallet.dart @@ -142,7 +142,7 @@ class EthereumWallet extends EVMChainWallet { if (!hasKeysFile) rethrow; } - final balance = EVMChainERC20Balance.fromJSON(data?['balance'] as String) ?? + final balance = EVMChainERC20Balance.fromJSON(data?['balance'] as String?) ?? EVMChainERC20Balance(BigInt.zero); final WalletKeysData keysData; diff --git a/lib/buy/moonpay/moonpay_provider.dart b/lib/buy/moonpay/moonpay_provider.dart index c89fb222f..67ee75d7c 100644 --- a/lib/buy/moonpay/moonpay_provider.dart +++ b/lib/buy/moonpay/moonpay_provider.dart @@ -298,7 +298,9 @@ class MoonPayProvider extends BuyProvider { String _normalizeCurrency(CryptoCurrency currency) { if (currency == CryptoCurrency.maticpoly) { - return "MATIC_POLYGON"; + return "POL_POLYGON"; + } else if (currency == CryptoCurrency.matic) { + return "POL"; } return currency.toString().toLowerCase(); diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index 42e55d2b7..e76cb99d1 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -5,9 +5,6 @@ import 'package:cake_wallet/solana/solana.dart'; import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/erc20_token.dart'; -const BEFORE_REGEX = '(^|\s)'; -const AFTER_REGEX = '(\$|\s)'; - class AddressValidator extends TextValidator { AddressValidator({required CryptoCurrency type}) : super( @@ -22,23 +19,21 @@ class AddressValidator extends TextValidator { length: getLength(type)); static String getPattern(CryptoCurrency type) { - var pattern = ""; if (type is Erc20Token) { - pattern = '0x[0-9a-zA-Z]'; + return '0x[0-9a-zA-Z]'; } switch (type) { case CryptoCurrency.xmr: - pattern = '4[0-9a-zA-Z]{94}|8[0-9a-zA-Z]{94}|[0-9a-zA-Z]{106}'; + return '^4[0-9a-zA-Z]{94}\$|^8[0-9a-zA-Z]{94}\$|^[0-9a-zA-Z]{106}\$'; case CryptoCurrency.ada: - pattern = '[0-9a-zA-Z]{59}|[0-9a-zA-Z]{92}|[0-9a-zA-Z]{104}' - '|[0-9a-zA-Z]{105}|addr1[0-9a-zA-Z]{98}'; + return '^[0-9a-zA-Z]{59}\$|^[0-9a-zA-Z]{92}\$|^[0-9a-zA-Z]{104}\$' + '|^[0-9a-zA-Z]{105}\$|^addr1[0-9a-zA-Z]{98}\$'; case CryptoCurrency.btc: - pattern = - '${P2pkhAddress.regex.pattern}|${P2shAddress.regex.pattern}|${P2wpkhAddress.regex.pattern}|${P2trAddress.regex.pattern}|${P2wshAddress.regex.pattern}|${SilentPaymentAddress.regex.pattern}'; + return '^${P2pkhAddress.regex.pattern}\$|^${P2shAddress.regex.pattern}\$|^${P2wpkhAddress.regex.pattern}\$|${P2trAddress.regex.pattern}\$|^${P2wshAddress.regex.pattern}\$|^${SilentPaymentAddress.regex.pattern}\$'; case CryptoCurrency.nano: - pattern = '[0-9a-zA-Z_]'; + return '[0-9a-zA-Z_]'; case CryptoCurrency.banano: - pattern = '[0-9a-zA-Z_]'; + return '[0-9a-zA-Z_]'; case CryptoCurrency.usdc: case CryptoCurrency.usdcpoly: case CryptoCurrency.usdtPoly: @@ -74,11 +69,11 @@ class AddressValidator extends TextValidator { case CryptoCurrency.dydx: case CryptoCurrency.steth: case CryptoCurrency.shib: - pattern = '0x[0-9a-zA-Z]'; + return '0x[0-9a-zA-Z]'; case CryptoCurrency.xrp: - pattern = '[0-9a-zA-Z]{34}|X[0-9a-zA-Z]{46}'; + return '^[0-9a-zA-Z]{34}\$|^X[0-9a-zA-Z]{46}\$'; case CryptoCurrency.xhv: - pattern = 'hvx|hvi|hvs[0-9a-zA-Z]'; + return '^hvx|hvi|hvs[0-9a-zA-Z]'; case CryptoCurrency.xag: case CryptoCurrency.xau: case CryptoCurrency.xaud: @@ -100,43 +95,40 @@ class AddressValidator extends TextValidator { case CryptoCurrency.dash: case CryptoCurrency.eos: case CryptoCurrency.wow: - pattern = '[0-9a-zA-Z]'; + return '[0-9a-zA-Z]'; case CryptoCurrency.bch: - pattern = - '(?!bitcoincash:)[0-9a-zA-Z]*|(?!bitcoincash:)q|p[0-9a-zA-Z]{41}|(?!bitcoincash:)q|p[0-9a-zA-Z]{42}|bitcoincash:q|p[0-9a-zA-Z]{41}|bitcoincash:q|p[0-9a-zA-Z]{42}'; + return '^(?!bitcoincash:)[0-9a-zA-Z]*\$|^(?!bitcoincash:)q|p[0-9a-zA-Z]{41}\$|^(?!bitcoincash:)q|p[0-9a-zA-Z]{42}\$|^bitcoincash:q|p[0-9a-zA-Z]{41}\$|^bitcoincash:q|p[0-9a-zA-Z]{42}\$'; case CryptoCurrency.bnb: - pattern = '[0-9a-zA-Z]'; + return '[0-9a-zA-Z]'; case CryptoCurrency.ltc: - pattern = '(?!(ltc|LTC)1)[0-9a-zA-Z]*|(LTC1[A-Z0-9]*)|(ltc1[a-z0-9]*)'; + return '^(?!(ltc|LTC)1)[0-9a-zA-Z]*\$|(^LTC1[A-Z0-9]*\$)|(^ltc1[a-z0-9]*\$)'; case CryptoCurrency.hbar: - pattern = '[0-9a-zA-Z.]'; + return '[0-9a-zA-Z.]'; case CryptoCurrency.zaddr: - pattern = 'zs[0-9a-zA-Z]{75}'; + return '^zs[0-9a-zA-Z]{75}'; case CryptoCurrency.zec: - pattern = 't1[0-9a-zA-Z]{33}|t3[0-9a-zA-Z]{33}'; + return '^t1[0-9a-zA-Z]{33}\$|^t3[0-9a-zA-Z]{33}\$'; case CryptoCurrency.dcr: - pattern = 'D[ksecS]([0-9a-zA-Z])+'; + return 'D[ksecS]([0-9a-zA-Z])+'; case CryptoCurrency.rvn: - pattern = '[Rr]([1-9a-km-zA-HJ-NP-Z]){33}'; + return '[Rr]([1-9a-km-zA-HJ-NP-Z]){33}'; case CryptoCurrency.near: - pattern = '[0-9a-f]{64}'; + return '[0-9a-f]{64}'; case CryptoCurrency.rune: - pattern = 'thor1[0-9a-z]{38}'; + return 'thor1[0-9a-z]{38}'; case CryptoCurrency.scrt: - pattern = 'secret1[0-9a-z]{38}'; + return 'secret1[0-9a-z]{38}'; case CryptoCurrency.stx: - pattern = 'S[MP][0-9a-zA-Z]+'; + return 'S[MP][0-9a-zA-Z]+'; case CryptoCurrency.kmd: - pattern = 'R[0-9a-zA-Z]{33}'; + return 'R[0-9a-zA-Z]{33}'; case CryptoCurrency.pivx: - pattern = 'D([1-9a-km-zA-HJ-NP-Z]){33}'; + return 'D([1-9a-km-zA-HJ-NP-Z]){33}'; case CryptoCurrency.btcln: - pattern = '(lnbc|LNBC)([0-9]{1,}[a-zA-Z0-9]+)'; + return '^(lnbc|LNBC)([0-9]{1,}[a-zA-Z0-9]+)'; default: - pattern = '[0-9a-zA-Z]'; + return '[0-9a-zA-Z]'; } - - return '$BEFORE_REGEX$pattern$AFTER_REGEX'; } static List? getLength(CryptoCurrency type) { @@ -277,54 +269,56 @@ class AddressValidator extends TextValidator { } static String? getAddressFromStringPattern(CryptoCurrency type) { - String? pattern = null; - switch (type) { case CryptoCurrency.xmr: case CryptoCurrency.wow: - pattern = '4[0-9a-zA-Z]{94}' - '|8[0-9a-zA-Z]{94}' - '|[0-9a-zA-Z]{106}'; + return '([^0-9a-zA-Z]|^)4[0-9a-zA-Z]{94}([^0-9a-zA-Z]|\$)' + '|([^0-9a-zA-Z]|^)8[0-9a-zA-Z]{94}([^0-9a-zA-Z]|\$)' + '|([^0-9a-zA-Z]|^)[0-9a-zA-Z]{106}([^0-9a-zA-Z]|\$)'; case CryptoCurrency.btc: - pattern = - '${P2pkhAddress.regex.pattern}|${P2shAddress.regex.pattern}|${P2wpkhAddress.regex.pattern}|${P2trAddress.regex.pattern}|${P2wshAddress.regex.pattern}|${SilentPaymentAddress.regex.pattern}'; + return '([^0-9a-zA-Z]|^)([1mn][a-km-zA-HJ-NP-Z1-9]{25,34})([^0-9a-zA-Z]|\$)' //P2pkhAddress type + '|([^0-9a-zA-Z]|^)([23][a-km-zA-HJ-NP-Z1-9]{25,34})([^0-9a-zA-Z]|\$)' //P2shAddress type + '|([^0-9a-zA-Z]|^)((bc|tb)1q[ac-hj-np-z02-9]{25,39})([^0-9a-zA-Z]|\$)' //P2wpkhAddress type + '|([^0-9a-zA-Z]|^)((bc|tb)1q[ac-hj-np-z02-9]{40,80})([^0-9a-zA-Z]|\$)' //P2wshAddress type + '|([^0-9a-zA-Z]|^)((bc|tb)1p([ac-hj-np-z02-9]{39}|[ac-hj-np-z02-9]{59}|[ac-hj-np-z02-9]{8,89}))([^0-9a-zA-Z]|\$)' //P2trAddress type + '|${SilentPaymentAddress.regex.pattern}\$'; + case CryptoCurrency.ltc: - pattern = '^L[a-zA-Z0-9]{26,33}' - '|[LM][a-km-zA-HJ-NP-Z1-9]{26,33}' - '|ltc[a-zA-Z0-9]{26,45}'; + return '([^0-9a-zA-Z]|^)^L[a-zA-Z0-9]{26,33}([^0-9a-zA-Z]|\$)' + '|([^0-9a-zA-Z]|^)[LM][a-km-zA-HJ-NP-Z1-9]{26,33}([^0-9a-zA-Z]|\$)' + '|([^0-9a-zA-Z]|^)ltc[a-zA-Z0-9]{26,45}([^0-9a-zA-Z]|\$)'; case CryptoCurrency.eth: - pattern = '0x[0-9a-zA-Z]{42}'; + return '0x[0-9a-zA-Z]{42}'; case CryptoCurrency.maticpoly: - pattern = '0x[0-9a-zA-Z]{42}'; + return '0x[0-9a-zA-Z]{42}'; case CryptoCurrency.nano: - pattern = 'nano_[0-9a-zA-Z]{60}'; + return 'nano_[0-9a-zA-Z]{60}'; case CryptoCurrency.banano: - pattern = 'ban_[0-9a-zA-Z]{60}'; + return 'ban_[0-9a-zA-Z]{60}'; case CryptoCurrency.bch: - pattern = '(bitcoincash:)?q[0-9a-zA-Z]{41,42}'; + return 'bitcoincash:q[0-9a-zA-Z]{41}([^0-9a-zA-Z]|\$)' + '|bitcoincash:q[0-9a-zA-Z]{42}([^0-9a-zA-Z]|\$)' + '|([^0-9a-zA-Z]|^)q[0-9a-zA-Z]{41}([^0-9a-zA-Z]|\$)' + '|([^0-9a-zA-Z]|^)q[0-9a-zA-Z]{42}([^0-9a-zA-Z]|\$)'; case CryptoCurrency.sol: - pattern = '[1-9A-HJ-NP-Za-km-z]{43,44}'; + return '([^0-9a-zA-Z]|^)[1-9A-HJ-NP-Za-km-z]{43,44}([^0-9a-zA-Z]|\$)'; case CryptoCurrency.trx: - pattern = '(T|t)[1-9A-HJ-NP-Za-km-z]{33}'; + return '(T|t)[1-9A-HJ-NP-Za-km-z]{33}'; default: if (type.tag == CryptoCurrency.eth.title) { - pattern = '0x[0-9a-zA-Z]{42}'; + return '0x[0-9a-zA-Z]{42}'; } if (type.tag == CryptoCurrency.maticpoly.tag) { - pattern = '0x[0-9a-zA-Z]{42}'; + return '0x[0-9a-zA-Z]{42}'; } if (type.tag == CryptoCurrency.sol.title) { - pattern = '[1-9A-HJ-NP-Za-km-z]{43,44}'; + return '([^0-9a-zA-Z]|^)[1-9A-HJ-NP-Za-km-z]{43,44}([^0-9a-zA-Z]|\$)'; } if (type.tag == CryptoCurrency.trx.title) { - pattern = '(T|t)[1-9A-HJ-NP-Za-km-z]{33}'; + return '(T|t)[1-9A-HJ-NP-Za-km-z]{33}'; } - } - if (pattern != null) { - return "$BEFORE_REGEX$pattern$AFTER_REGEX"; + return null; } - - return null; } } diff --git a/lib/entities/pin_code_required_duration.dart b/lib/entities/pin_code_required_duration.dart index fef5715b5..0c0d6d132 100644 --- a/lib/entities/pin_code_required_duration.dart +++ b/lib/entities/pin_code_required_duration.dart @@ -1,32 +1,39 @@ import 'package:cake_wallet/generated/i18n.dart'; -enum PinCodeRequiredDuration { - always(0), - tenminutes(10), - onehour(60); +enum PinCodeRequiredDuration { + always(0), + tenMinutes(10), + halfHour(30), + fortyFiveMinutes(45), + oneHour(60); const PinCodeRequiredDuration(this.value); + final int value; static PinCodeRequiredDuration deserialize({required int raw}) => PinCodeRequiredDuration.values.firstWhere((e) => e.value == raw); @override - String toString(){ + String toString() { String label = ''; switch (this) { case PinCodeRequiredDuration.always: label = S.current.always; break; - case PinCodeRequiredDuration.tenminutes: + case PinCodeRequiredDuration.tenMinutes: label = S.current.minutes_to_pin_code('10'); break; - case PinCodeRequiredDuration.onehour: + case PinCodeRequiredDuration.oneHour: label = S.current.minutes_to_pin_code('60'); break; + case PinCodeRequiredDuration.halfHour: + label = S.current.minutes_to_pin_code('30'); + break; + case PinCodeRequiredDuration.fortyFiveMinutes: + label = S.current.minutes_to_pin_code('45'); + break; } return label; - } - -} \ No newline at end of file +} diff --git a/lib/exchange/provider/simpleswap_exchange_provider.dart b/lib/exchange/provider/simpleswap_exchange_provider.dart index 885878684..be52b73fe 100644 --- a/lib/exchange/provider/simpleswap_exchange_provider.dart +++ b/lib/exchange/provider/simpleswap_exchange_provider.dart @@ -236,7 +236,7 @@ class SimpleSwapExchangeProvider extends ExchangeProvider { case CryptoCurrency.usdcsol: return 'usdcspl'; case CryptoCurrency.matic: - return 'maticerc20'; + return 'pol'; case CryptoCurrency.maticpoly: return 'matic'; default: diff --git a/lib/polygon/cw_polygon.dart b/lib/polygon/cw_polygon.dart index b76626684..307107dd4 100644 --- a/lib/polygon/cw_polygon.dart +++ b/lib/polygon/cw_polygon.dart @@ -156,7 +156,8 @@ class CWPolygon extends Polygon { @override CryptoCurrency assetOfTransaction(WalletBase wallet, TransactionInfo transaction) { transaction as EVMChainTransactionInfo; - if (transaction.tokenSymbol == CryptoCurrency.maticpoly.title) { + if (transaction.tokenSymbol == CryptoCurrency.maticpoly.title || + transaction.tokenSymbol == "MATIC") { return CryptoCurrency.maticpoly; } diff --git a/lib/src/screens/dashboard/pages/cake_features_page.dart b/lib/src/screens/dashboard/pages/cake_features_page.dart index 0c953c892..37bc3a55f 100644 --- a/lib/src/screens/dashboard/pages/cake_features_page.dart +++ b/lib/src/screens/dashboard/pages/cake_features_page.dart @@ -52,20 +52,26 @@ class CakeFeaturesPage extends StatelessWidget { onTap: () => _navigatorToGiftCardsPage(context), title: 'Cake Pay', subTitle: S.of(context).cake_pay_subtitle, - svgPicture: SvgPicture.asset( - 'assets/images/cards.svg', - height: 125, - width: 125, + image: Image.asset( + 'assets/images/cards.png', + height: 100, + width: 115, fit: BoxFit.cover, ), ), SizedBox(height: 10), DashBoardRoundedCardWidget( + onTap: () => _launchUrl("cake.nano-gpt.com"), title: "NanoGPT", subTitle: S.of(context).nanogpt_subtitle, - onTap: () => _launchUrl("cake.nano-gpt.com"), + image: Image.asset( + 'assets/images/nanogpt.png', + height: 80, + width: 80, + fit: BoxFit.cover, + ), ), - SizedBox(height: 20), + SizedBox(height: 10), Observer( builder: (context) { if (!dashboardViewModel.hasSignMessages) { @@ -75,6 +81,12 @@ class CakeFeaturesPage extends StatelessWidget { onTap: () => Navigator.of(context).pushNamed(Routes.signPage), title: S.current.sign_verify_message, subTitle: S.current.sign_verify_message_sub, + icon: Icon( + Icons.speaker_notes_rounded, + color: + Theme.of(context).extension()!.pageTitleTextColor, + size: 75, + ), ); }, ), diff --git a/lib/src/screens/restore/restore_options_page.dart b/lib/src/screens/restore/restore_options_page.dart index cb5086fe1..472f311c9 100644 --- a/lib/src/screens/restore/restore_options_page.dart +++ b/lib/src/screens/restore/restore_options_page.dart @@ -8,7 +8,6 @@ import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/src/screens/pin_code/pin_code_widget.dart'; import 'package:cake_wallet/src/widgets/alert_with_one_action.dart'; import 'package:cake_wallet/src/widgets/option_tile.dart'; -import 'package:cake_wallet/themes/extensions/option_tile_theme.dart'; import 'package:cake_wallet/utils/device_info.dart'; import 'package:cake_wallet/utils/permission_handler.dart'; import 'package:cake_wallet/utils/responsive_layout_util.dart'; @@ -20,6 +19,9 @@ import 'package:cw_core/hardware/device_connection_type.dart'; import 'package:cw_core/wallet_type.dart'; import 'package:flutter/material.dart'; import 'package:permission_handler/permission_handler.dart'; +import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart'; +import 'package:cake_wallet/themes/extensions/info_theme.dart'; +import 'package:cake_wallet/themes/theme_base.dart'; class RestoreOptionsPage extends BasePage { RestoreOptionsPage({required this.isNewInstall}); @@ -44,12 +46,16 @@ class RestoreOptionsPage extends BasePage { @override Widget body(BuildContext context) { - final imageColor = Theme.of(context).extension()!.titleColor; + final mainImageColor = Theme.of(context).extension()!.pageTitleTextColor; + final brightImageColor = Theme.of(context).extension()!.textColor; + final imageColor = currentTheme.type == ThemeType.bright ? brightImageColor : mainImageColor; final imageLedger = Image.asset('assets/images/ledger_nano.png', width: 40, color: imageColor); final imageSeedKeys = Image.asset('assets/images/restore_wallet_image.png', color: imageColor); final imageBackup = Image.asset('assets/images/backup.png', color: imageColor); final qrCode = Image.asset('assets/images/restore_qr.png', color: imageColor); + + return Center( child: Container( width: ResponsiveLayoutUtilBase.kDesktopMaxWidthConstraint, @@ -96,12 +102,15 @@ class RestoreOptionsPage extends BasePage { Padding( padding: EdgeInsets.only(top: 24), child: OptionTile( - key: ValueKey('restore_options_from_qr_button_key'), - onPressed: () => _onScanQRCode(context), - image: qrCode, - title: S.of(context).scan_qr_code, - description: S.of(context).cold_or_recover_wallet, - ), + key: ValueKey('restore_options_from_qr_button_key'), + onPressed: () => _onScanQRCode(context), + icon: Icon( + Icons.qr_code_rounded, + color: imageColor, + size: 50, + ), + title: S.of(context).scan_qr_code, + description: S.of(context).cold_or_recover_wallet), ) ], ), diff --git a/lib/src/screens/support/support_page.dart b/lib/src/screens/support/support_page.dart index 471ff15b0..049ab2fb7 100644 --- a/lib/src/screens/support/support_page.dart +++ b/lib/src/screens/support/support_page.dart @@ -2,17 +2,20 @@ import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/src/widgets/option_tile.dart'; +import 'package:cake_wallet/themes/extensions/info_theme.dart'; import 'package:cake_wallet/utils/device_info.dart'; import 'package:cake_wallet/view_model/support_view_model.dart'; import 'package:flutter/material.dart'; import 'package:url_launcher/url_launcher.dart'; +import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart'; +import 'package:cake_wallet/themes/theme_base.dart'; class SupportPage extends BasePage { SupportPage(this.supportViewModel); final SupportViewModel supportViewModel; - final imageLiveSupport = Image.asset('assets/images/live_support.png'); + final imageLiveSupport = Image.asset('assets/images/cake_icon.png'); final imageWalletGuides = Image.asset('assets/images/wallet_guides.png'); final imageMoreLinks = Image.asset('assets/images/more_links.png'); @@ -22,8 +25,16 @@ class SupportPage extends BasePage { @override AppBarStyle get appBarStyle => AppBarStyle.regular; + + @override Widget body(BuildContext context) { + + final mainColor = Theme.of(context).extension()!.pageTitleTextColor; + final brightColor = Theme.of(context).extension()!.textColor; + + final iconColor = currentTheme.type == ThemeType.bright ? brightColor : mainColor; + return Container( child: Center( child: ConstrainedBox( @@ -33,7 +44,11 @@ class SupportPage extends BasePage { Padding( padding: EdgeInsets.only(top: 24), child: OptionTile( - image: imageLiveSupport, + icon: Icon( + Icons.support_agent, + color: iconColor, + size: 50, + ), title: S.of(context).support_title_live_chat, description: S.of(context).support_description_live_chat, onPressed: () { @@ -48,7 +63,11 @@ class SupportPage extends BasePage { Padding( padding: EdgeInsets.only(top: 24), child: OptionTile( - image: imageWalletGuides, + icon: Icon( + Icons.find_in_page, + color: iconColor, + size: 50, + ), title: S.of(context).support_title_guides, description: S.of(context).support_description_guides, onPressed: () => _launchUrl(supportViewModel.guidesUrl), @@ -57,7 +76,11 @@ class SupportPage extends BasePage { Padding( padding: EdgeInsets.only(top: 24), child: OptionTile( - image: imageMoreLinks, + icon: Icon( + Icons.contact_support, + color: iconColor, + size: 50, + ), title: S.of(context).support_title_other_links, description: S.of(context).support_description_other_links, onPressed: () => Navigator.pushNamed(context, Routes.supportOtherLinks), diff --git a/lib/src/screens/support_other_links/support_other_links_page.dart b/lib/src/screens/support_other_links/support_other_links_page.dart index 7a1a945ca..b115594b4 100644 --- a/lib/src/screens/support_other_links/support_other_links_page.dart +++ b/lib/src/screens/support_other_links/support_other_links_page.dart @@ -37,7 +37,6 @@ class SupportOtherLinksPage extends BasePage { itemCounter: (int _) => supportViewModel.items.length, itemBuilder: (_, index) { final item = supportViewModel.items[index]; - if (item is RegularListItem) { return SettingsCellWithArrow(title: item.title, handler: item.handler); } diff --git a/lib/src/widgets/dashboard_card_widget.dart b/lib/src/widgets/dashboard_card_widget.dart index 5a8ca14a4..4013dd79e 100644 --- a/lib/src/widgets/dashboard_card_widget.dart +++ b/lib/src/widgets/dashboard_card_widget.dart @@ -11,6 +11,7 @@ class DashBoardRoundedCardWidget extends StatelessWidget { required this.subTitle, this.hint, this.svgPicture, + this.image, this.icon, this.onClose, this.customBorder, @@ -22,6 +23,7 @@ class DashBoardRoundedCardWidget extends StatelessWidget { final String subTitle; final Widget? hint; final SvgPicture? svgPicture; + final Image? image; final Icon? icon; final double? customBorder; @@ -77,7 +79,8 @@ class DashBoardRoundedCardWidget extends StatelessWidget { ], ), ), - if (svgPicture != null) svgPicture!, + if (image != null) image! + else if (svgPicture != null) svgPicture!, if (icon != null) icon! ], ), diff --git a/lib/src/widgets/option_tile.dart b/lib/src/widgets/option_tile.dart index f7811a888..31f958f54 100644 --- a/lib/src/widgets/option_tile.dart +++ b/lib/src/widgets/option_tile.dart @@ -4,13 +4,16 @@ import 'package:flutter/material.dart'; class OptionTile extends StatelessWidget { const OptionTile( {required this.onPressed, - required this.image, + this.image, + this.icon, required this.title, required this.description, - super.key}); + super.key}) + : assert(image!=null || icon!=null); final VoidCallback onPressed; - final Image image; + final Image? image; + final Icon? icon; final String title; final String description; @@ -31,7 +34,7 @@ class OptionTile extends StatelessWidget { mainAxisAlignment: MainAxisAlignment.center, crossAxisAlignment: CrossAxisAlignment.start, children: [ - image, + icon ?? image!, Expanded( child: Padding( padding: EdgeInsets.only(left: 16), diff --git a/lib/store/settings_store.dart b/lib/store/settings_store.dart index 6873ffde8..debaeb07a 100644 --- a/lib/store/settings_store.dart +++ b/lib/store/settings_store.dart @@ -570,7 +570,7 @@ abstract class SettingsStoreBase with Store { static const defaultPinLength = 4; static const defaultActionsMode = 11; - static const defaultPinCodeTimeOutDuration = PinCodeRequiredDuration.tenminutes; + static const defaultPinCodeTimeOutDuration = PinCodeRequiredDuration.tenMinutes; static const defaultAutoGenerateSubaddressStatus = AutoGenerateSubaddressStatus.initialized; static final walletPasswordDirectInput = Platform.isLinux; static const defaultSeedPhraseLength = SeedPhraseLength.twelveWords; diff --git a/lib/utils/exception_handler.dart b/lib/utils/exception_handler.dart index dd58d3e56..e3a571eea 100644 --- a/lib/utils/exception_handler.dart +++ b/lib/utils/exception_handler.dart @@ -21,9 +21,9 @@ class ExceptionHandler { static File? _file; static void _saveException(String? error, StackTrace? stackTrace, {String? library}) async { - if (_file == null) { - final appDocDir = await getAppDir(); + final appDocDir = await getAppDir(); + if (_file == null) { _file = File('${appDocDir.path}/error.txt'); } diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index e8b00eb7e..c1ab9d822 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -692,6 +692,9 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor if (error is TransactionCommitFailedBIP68Final) { return S.current.tx_rejected_bip68_final; } + if (error is TransactionCommitFailedLessThanMin) { + return S.current.fee_less_than_min; + } if (error is TransactionNoDustOnChangeException) { return S.current.tx_commit_exception_no_dust_on_change(error.min, error.max); } diff --git a/lib/view_model/support_view_model.dart b/lib/view_model/support_view_model.dart index 2bb749b42..45b9cb9bf 100644 --- a/lib/view_model/support_view_model.dart +++ b/lib/view_model/support_view_model.dart @@ -14,14 +14,16 @@ abstract class SupportViewModelBase with Store { : items = [ LinkListItem( title: 'Email', + icon: 'assets/images/support_icon.png', linkTitle: 'support@cakewallet.com', link: 'mailto:support@cakewallet.com'), if (!isMoneroOnly) LinkListItem( title: 'Website', + icon: 'assets/images/global.png', linkTitle: 'cakewallet.com', link: 'https://cakewallet.com'), - if (!isMoneroOnly) + if (!isMoneroOnly) LinkListItem( title: 'GitHub', icon: 'assets/images/github.png', @@ -29,7 +31,12 @@ abstract class SupportViewModelBase with Store { linkTitle: S.current.apk_update, link: 'https://github.com/cake-tech/cake_wallet/releases'), LinkListItem( - title: 'Telegram', + title: 'Telegram Community', + icon: 'assets/images/Telegram.png', + linkTitle: 't.me/cakewallet', + link: 'https://t.me/cakewallet'), + LinkListItem( + title: 'Telegram Support Bot', icon: 'assets/images/Telegram.png', linkTitle: '@cakewallet_bot', link: 'https://t.me/cakewallet_bot'), diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 20ad96eef..12ecceed9 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -129,6 +129,7 @@ "choose_from_available_options": "اختر من بين الخيارات المتاحة:", "choose_one": "اختر واحدة", "choose_relay": "ﻡﺍﺪﺨﺘﺳﻼﻟ ﻊﺑﺎﺘﺘﻟﺍ ﺭﺎﻴﺘﺧﺍ ءﺎﺟﺮﻟﺍ", + "choose_wallet_currency": "الرجاء اختيار عملة المحفظة:", "choose_wallet_group": "اختر مجموعة المحفظة", "clear": "مسح", "clearnet_link": "رابط Clearnet", @@ -297,6 +298,7 @@ "failed_authentication": "${state_error} فشل المصادقة.", "faq": "الأسئلة الشائعة", "features": "سمات", + "fee_less_than_min": "الرسوم المحددة أقل من الحد الأدنى ، يرجى زيادة الرسوم لتكون قادرة على إرسال المعاملة", "fee_rate": "معدل الرسوم", "fetching": "جار الجلب", "fiat_api": "Fiat API", @@ -605,6 +607,7 @@ "seedtype_alert_title": "تنبيه البذور", "seedtype_legacy": "إرث (25 كلمة)", "seedtype_polyseed": "بوليسيد (16 كلمة)", + "seedtype_wownero": "Wownero (14 كلمة)", "select_backup_file": "حدد ملف النسخ الاحتياطي", "select_buy_provider_notice": "حدد مزود شراء أعلاه. يمكنك تخطي هذه الشاشة عن طريق تعيين مزود شراء الافتراضي في إعدادات التطبيق.", "select_destination": ".ﻲﻃﺎﻴﺘﺣﻻﺍ ﺦﺴﻨﻟﺍ ﻒﻠﻣ ﺔﻬﺟﻭ ﺪﻳﺪﺤﺗ ءﺎﺟﺮﻟﺍ", @@ -676,7 +679,7 @@ "show_seed": "عرض السييد", "sign_message": "تسجيل رسالة", "sign_up": "اشتراك", - "sign_verify_message": "توقيع أو التحقق من الرسالة", + "sign_verify_message": "تسجيل / تحقق", "sign_verify_message_sub": "قم بتوقيع أو التحقق من رسالة باستخدام المفتاح الخاص بك", "sign_verify_title": "تسجيل / تحقق", "signature": "إمضاء", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index d07ed0509..b1a1096e6 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -298,6 +298,7 @@ "failed_authentication": "Неуспешно удостоверяване. ${state_error}", "faq": "FAQ", "features": "Характеристика", + "fee_less_than_min": "Избраната такса е по -малка от минимума, моля, увеличете таксите, за да можете да изпратите транзакцията", "fee_rate": "Такса ставка", "fetching": "Обработване", "fiat_api": "Fiat API", @@ -606,6 +607,7 @@ "seedtype_alert_title": "Сигнал за семена", "seedtype_legacy": "Наследство (25 думи)", "seedtype_polyseed": "Поли семе (16 думи)", + "seedtype_wownero": "Wownero (14 думи)", "select_backup_file": "Избор на резервно копие", "select_buy_provider_notice": "Изберете доставчик на покупка по -горе. Можете да пропуснете този екран, като зададете вашия доставчик по подразбиране по подразбиране в настройките на приложението.", "select_destination": "Моля, изберете дестинация за архивния файл.", @@ -677,7 +679,7 @@ "show_seed": "Покажи seed", "sign_message": "Съобщение за подписване", "sign_up": "Регистрация", - "sign_verify_message": "Подпишете или проверете съобщението", + "sign_verify_message": "Подпишете / проверете", "sign_verify_message_sub": "Подпишете или проверете съобщение с помощта на вашия личен ключ", "sign_verify_title": "Подпишете / проверете", "signature": "Подпис", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index 40ca8fb2c..7ce797845 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -298,6 +298,7 @@ "failed_authentication": "Ověřování selhalo. ${state_error}", "faq": "FAQ", "features": "Funkce", + "fee_less_than_min": "Vybraný poplatek je menší než minimum, zvýšit poplatky, abyste mohli transakci odeslat", "fee_rate": "Sazba poplatků", "fetching": "Načítá se", "fiat_api": "Fiat API", @@ -606,6 +607,7 @@ "seedtype_alert_title": "Upozornění seedtype", "seedtype_legacy": "Legacy (25 slov)", "seedtype_polyseed": "Polyseed (16 slov)", + "seedtype_wownero": "Wownero (14 slov)", "select_backup_file": "Vybrat soubor se zálohou", "select_buy_provider_notice": "Vyberte výše uvedeného poskytovatele nákupu. Tuto obrazovku můžete přeskočit nastavením výchozího poskytovatele nákupu v nastavení aplikace.", "select_destination": "Vyberte cíl pro záložní soubor.", @@ -677,7 +679,7 @@ "show_seed": "Zobrazit seed", "sign_message": "Podepsat zprávu", "sign_up": "Registrovat se", - "sign_verify_message": "Podepište nebo ověřte zprávu", + "sign_verify_message": "Podepsat / ověřit", "sign_verify_message_sub": "Podepište nebo ověřte zprávu pomocí soukromého klíče", "sign_verify_title": "Podepsat / ověřit", "signature": "Podpis", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 3c7e9fbc9..e599da769 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -298,6 +298,7 @@ "failed_authentication": "Authentifizierung fehlgeschlagen. ${state_error}", "faq": "Häufig gestellte Fragen", "features": "Merkmale", + "fee_less_than_min": "Die ausgewählte Gebühr ist geringer als das Minimum. Bitte erhöhen Sie die Gebühren, um die Transaktion senden zu können", "fee_rate": "Gebührenpreis", "fetching": "Frage ab", "fiat_api": "Fiat API", @@ -607,6 +608,7 @@ "seedtype_alert_title": "Seedype -Alarm", "seedtype_legacy": "Veraltet (25 Wörter)", "seedtype_polyseed": "Polyseed (16 Wörter)", + "seedtype_wownero": "WOWNO (14 Wörter)", "select_backup_file": "Sicherungsdatei auswählen", "select_buy_provider_notice": "Wählen Sie oben einen Anbieter kaufen. Sie können diese Seite überspringen, indem Sie Ihren Standard-Kaufanbieter in den App-Einstellungen festlegen.", "select_destination": "Bitte wählen Sie das Ziel für die Sicherungsdatei aus.", @@ -678,7 +680,7 @@ "show_seed": "Seed zeigen", "sign_message": "Nachricht unterschreiben", "sign_up": "Anmelden", - "sign_verify_message": "Nachricht unterschreiben oder überprüfen", + "sign_verify_message": "Zeichen / überprüfen", "sign_verify_message_sub": "Unterschreiben oder überprüfen Sie eine Nachricht mit Ihrem privaten Schlüssel", "sign_verify_title": "Zeichen / überprüfen", "signature": "Signatur", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 7b98ed3d6..72e05b8b5 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -299,6 +299,7 @@ "faq": "FAQ", "features": "Features", "fee_rate": "Fee rate", + "fee_less_than_min": "Selected Fee is less than the minimum, please increase the fees to be able to send the transaction", "fetching": "Fetching", "fiat_api": "Fiat API", "fiat_balance": "Fiat Balance", @@ -678,7 +679,7 @@ "show_seed": "Show seed", "sign_message": "Sign Message", "sign_up": "Sign Up", - "sign_verify_message": "Sign or verify message", + "sign_verify_message": "Sign / Verify", "sign_verify_message_sub": "Sign or verify a message using your private key", "sign_verify_title": "Sign / Verify", "signature": "Signature", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 4043e5ac3..2cdc2318a 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -298,6 +298,7 @@ "failed_authentication": "Autenticación fallida. ${state_error}", "faq": "FAQ", "features": "Características", + "fee_less_than_min": "La tarifa seleccionada es menor que la mínima, aumente las tarifas para poder enviar la transacción", "fee_rate": "Tarifa", "fetching": "Cargando", "fiat_api": "Fiat API", @@ -607,6 +608,7 @@ "seedtype_alert_title": "Alerta de type de semillas", "seedtype_legacy": "Legado (25 palabras)", "seedtype_polyseed": "Polieta (16 palabras)", + "seedtype_wownero": "Wownero (14 palabras)", "select_backup_file": "Seleccionar archivo de respaldo", "select_buy_provider_notice": "Seleccione un proveedor de compra arriba. Puede omitir esta pantalla configurando su proveedor de compra predeterminado en la configuración de la aplicación.", "select_destination": "Seleccione el destino del archivo de copia de seguridad.", @@ -678,7 +680,7 @@ "show_seed": "Mostrar semilla", "sign_message": "Mensaje de firma", "sign_up": "Registrarse", - "sign_verify_message": "Firmar o verificar el mensaje", + "sign_verify_message": "Firmar / verificar", "sign_verify_message_sub": "Firmar o verificar un mensaje usando su clave privada", "sign_verify_title": "Firmar / verificar", "signature": "Firma", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index 7bbc1076b..27109c0ae 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -298,6 +298,7 @@ "failed_authentication": "Échec d'authentification. ${state_error}", "faq": "FAQ", "features": "Caractéristiques", + "fee_less_than_min": "Les frais sélectionnés sont inférieurs au minimum, veuillez augmenter les frais pour pouvoir envoyer la transaction", "fee_rate": "Taux de frais", "fetching": "Récupération", "fiat_api": "Fiat API", @@ -606,6 +607,7 @@ "seedtype_alert_title": "Alerte de type SeedType", "seedtype_legacy": "Héritage (25 mots)", "seedtype_polyseed": "Polyseed (16 mots)", + "seedtype_wownero": "WOWNERO (14 mots)", "select_backup_file": "Sélectionnez le fichier de sauvegarde", "select_buy_provider_notice": "Sélectionnez un fournisseur d'achat ci-dessus. Vous pouvez ignorer cet écran en définissant votre fournisseur d'achat par défaut dans les paramètres de l'application.", "select_destination": "Veuillez sélectionner la destination du fichier de sauvegarde.", @@ -677,7 +679,7 @@ "show_seed": "Visualiser la phrase secrète (seed)", "sign_message": "Signer le message", "sign_up": "S'inscrire", - "sign_verify_message": "Signer ou vérifier le message", + "sign_verify_message": "Signe / vérifier", "sign_verify_message_sub": "Signez ou vérifiez un message en utilisant votre clé privée", "sign_verify_title": "Signe / vérifier", "signature": "Signature", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 6f551a656..1c293bd54 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -298,6 +298,7 @@ "failed_authentication": "Binne wajen shiga. ${state_error}", "faq": "FAQ", "features": "Fasas", + "fee_less_than_min": "Kudin da aka zaba kasa da mafi karancin, don Allah ƙara kudaden don samun damar aika ma'amala", "fee_rate": "Kudi", "fetching": "Daukewa", "fiat_api": "API ɗin Fiat", @@ -608,6 +609,7 @@ "seedtype_alert_title": "Seedtype farke", "seedtype_legacy": "Legacy (25 kalmomi)", "seedtype_polyseed": "Polyseed (16 kalmomi)", + "seedtype_wownero": "WowRero (kalmomi 14)", "select_backup_file": "Zaɓi fayil ɗin madadin", "select_buy_provider_notice": "Zaɓi mai ba da kyauta a sama. Zaka iya tsallake wannan allon ta hanyar saita mai ba da isasshen busasshen mai ba da isasshen busasshiyar saiti.", "select_destination": "Da fatan za a zaɓi wurin da za a yi wa madadin fayil ɗin.", @@ -679,7 +681,7 @@ "show_seed": "Nuna iri", "sign_message": "Sa hannu", "sign_up": "Shiga", - "sign_verify_message": "Shiga ko Tabbatar da Saƙo", + "sign_verify_message": "Sa hannu / Tabbatar", "sign_verify_message_sub": "Shiga ko tabbatar da saƙo ta amfani da Maɓallinku na sirri", "sign_verify_title": "Sa hannu / Tabbatar", "signature": "Sa hannu", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 8e3990552..a93e20ea0 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -236,7 +236,7 @@ "email_address": "ईमेल पता", "enable_mempool_api": "सटीक शुल्क और तिथियों के लिए मेमपूल एपीआई", "enable_replace_by_fee": "प्रतिस्थापित-दर-शुल्क सक्षम करें", - "enable_silent_payments_scanning": "साइलेंट पेमेंट्स को स्कैन करना शुरू करें, जब तक कि टिप तक पहुंच न जाए", + "enable_silent_payments_scanning": "मूक भुगतान स्कैनिंग सक्षम करें", "enabled": "सक्रिय", "enter_amount": "राशि दर्ज करें", "enter_backup_password": "यहां बैकअप पासवर्ड डालें", @@ -298,6 +298,7 @@ "failed_authentication": "प्रमाणीकरण विफल. ${state_error}", "faq": "FAQ", "features": "विशेषताएँ", + "fee_less_than_min": "चयनित शुल्क न्यूनतम से कम है, कृपया लेन -देन भेजने में सक्षम होने के लिए शुल्क बढ़ाएं", "fee_rate": "शुल्क दर", "fetching": "ला रहा है", "fiat_api": "फिएट पैसे API", @@ -604,10 +605,11 @@ "seed_share": "बीज साझा करें", "seed_title": "बीज", "seedtype": "बीज", - "seedtype_alert_content": "अन्य बटुए के साथ बीज साझा करना केवल BIP39 SEEDTYPE के साथ संभव है।", + "seedtype_alert_content": "अन्य पर्स के साथ बीज साझा करना केवल BIP39 सीडटाइप के साथ संभव है।", "seedtype_alert_title": "बीजगणित अलर्ट", "seedtype_legacy": "विरासत (25 शब्द)", "seedtype_polyseed": "पॉलीसीड (16 शब्द)", + "seedtype_wownero": "Wownero (14 शब्द)", "select_backup_file": "बैकअप फ़ाइल का चयन करें", "select_buy_provider_notice": "ऊपर एक खरीद प्रदाता का चयन करें। आप इस स्क्रीन को ऐप सेटिंग्स में अपना डिफ़ॉल्ट बाय प्रदाता सेट करके छोड़ सकते हैं।", "select_destination": "कृपया बैकअप फ़ाइल के लिए गंतव्य का चयन करें।", @@ -679,7 +681,7 @@ "show_seed": "बीज दिखाओ", "sign_message": "हस्ताक्षर संदेश", "sign_up": "साइन अप करें", - "sign_verify_message": "संदेश पर हस्ताक्षर या सत्यापित करें", + "sign_verify_message": "हस्ताक्षर / सत्यापित करें", "sign_verify_message_sub": "अपनी निजी कुंजी का उपयोग करके किसी संदेश पर हस्ताक्षर या सत्यापित करें", "sign_verify_title": "हस्ताक्षर / सत्यापित करें", "signature": "हस्ताक्षर", @@ -861,8 +863,8 @@ "wallet_group_description_four": "एक पूरी तरह से नए बीज के साथ एक बटुआ बनाने के लिए।", "wallet_group_description_one": "केक बटुए में, आप एक बना सकते हैं", "wallet_group_description_three": "उपलब्ध वॉलेट और/या वॉलेट समूह स्क्रीन देखने के लिए। या चुनें", - "wallet_group_description_two": "एक बीज साझा करने के लिए एक मौजूदा बटुए का चयन करके। प्रत्येक वॉलेट समूह में प्रत्येक मुद्रा प्रकार का एक एकल वॉलेट हो सकता है। \n\n आप चयन कर सकते हैं", - "wallet_group_empty_state_text_one": "लगता है कि आपके पास कोई संगत बटुआ समूह नहीं है !\n\n टैप करें", + "wallet_group_description_two": "एक बीज साझा करने के लिए एक मौजूदा बटुए का चयन करके। प्रत्येक वॉलेट समूह में प्रत्येक मुद्रा प्रकार का एक एकल वॉलेट हो सकता है।\n\nआप चयन कर सकते हैं", + "wallet_group_empty_state_text_one": "लगता है कि आपके पास कोई संगत बटुआ समूह नहीं है!\n\nनल", "wallet_group_empty_state_text_two": "नीचे एक नया बनाने के लिए।", "wallet_keys": "बटुआ बीज / चाबियाँ", "wallet_list_create_new_wallet": "नया बटुआ बनाएँ", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 648f996ec..b60a056fd 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -298,6 +298,7 @@ "failed_authentication": "Autentifikacija neuspješna. ${state_error}", "faq": "FAQ", "features": "Značajke", + "fee_less_than_min": "Odabrana naknada je manja od minimalnog, povećajte naknade kako biste mogli poslati transakciju", "fee_rate": "Stopa naknade", "fetching": "Dohvaćanje", "fiat_api": "Fiat API", @@ -606,6 +607,7 @@ "seedtype_alert_title": "Upozorenje o sjemenu", "seedtype_legacy": "Nasljeđe (25 riječi)", "seedtype_polyseed": "Poliseed (16 riječi)", + "seedtype_wownero": "WANERO (14 riječi)", "select_backup_file": "Odaberite datoteku sigurnosne kopije", "select_buy_provider_notice": "Odaberite gornji davatelj kupnje. Ovaj zaslon možete preskočiti postavljanjem zadanog davatelja usluga kupnje u postavkama aplikacija.", "select_destination": "Odaberite odredište za datoteku sigurnosne kopije.", @@ -677,7 +679,7 @@ "show_seed": "Prikaži pristupni izraz", "sign_message": "Poruka", "sign_up": "Prijavite se", - "sign_verify_message": "Potpisati ili provjeriti poruku", + "sign_verify_message": "Potpisati / provjeriti", "sign_verify_message_sub": "Potpišite ili provjerite poruku pomoću privatnog ključa", "sign_verify_title": "Potpisati / provjeriti", "signature": "Potpis", diff --git a/res/values/strings_hy.arb b/res/values/strings_hy.arb index 786b4cfee..eeb1d3f99 100644 --- a/res/values/strings_hy.arb +++ b/res/values/strings_hy.arb @@ -198,6 +198,7 @@ "delete_wallet_confirm_message": "Դուք վստահ եք, որ ուզում եք ջնջել ${wallet_name} դրամապանակը?", "deleteConnectionConfirmationPrompt": "Դուք վստահ եք, որ ուզում եք ջնջել կապը", "denominations": "Անվանակարգեր", + "derivationpath": "Ածանցման ուղին", "descending": "Նվազող", "description": "Նկարագրություն", "destination_tag": "Նպատակակետի պիտակ:", @@ -235,7 +236,7 @@ "email_address": "Էլ. փոստի հասցե", "enable_mempool_api": "Mempool API ճշգրիտ վճարների եւ ամսաթվերի համար", "enable_replace_by_fee": "Միացնել փոխարինումը միջնորդավճարով", - "enable_silent_payments_scanning": "Սկսեք սկանավորել լուռ վճարումները, մինչեւ որ ծայրը հասնի", + "enable_silent_payments_scanning": "Միացնել Լուռ Վճարումների սկանավորումը", "enabled": "Միացված", "enter_amount": "Մուտքագրեք գումար", "enter_backup_password": "Մուտքագրեք կրկնօրինակի գաղտնաբառը", @@ -297,6 +298,7 @@ "failed_authentication": "Վավերացումը ձախողվեց. ${state_error}", "faq": "Հաճախ տրվող հարցեր", "features": "Հատկանիշներ", + "fee_less_than_min": "Ընտրված վճարը նվազագույնից պակաս է, խնդրում ենք ավելացնել վճարները, որպեսզի կարողանաք գործարքը ուղարկել", "fee_rate": "Վճարման տոկոսադրույքը", "fetching": "Ստացվում է", "fiat_api": "Fiat API", @@ -677,7 +679,7 @@ "show_seed": "Ցուցադրել սերմ", "sign_message": "Կնքել հաղորդագրություն", "sign_up": "Գրանցվել", - "sign_verify_message": "Կնքել կամ ստուգել հաղորդագրություն", + "sign_verify_message": "Նշեք / ստուգեք", "sign_verify_message_sub": "Կնքել կամ ստուգել հաղորդագրությունը ձեր գախտնի բանալիով", "sign_verify_title": "Կնքել / Ստուգել", "signature": "Կնիք", @@ -859,8 +861,8 @@ "wallet_group_description_four": "Ամբողջովին նոր սերմով դրամապանակ ստեղծելու համար:", "wallet_group_description_one": "Տորթի դրամապանակում կարող եք ստեղծել ա", "wallet_group_description_three": "Տեսնել առկա դրամապանակներն ու (կամ) դրամապանակների խմբերի էկրանը: Կամ ընտրել", - "wallet_group_description_two": "ընտրելով գոյություն ունեցող դրամապանակ `սերմը կիսելու համար: Դրամապանակների յուրաքանչյուր խումբ կարող է պարունակել յուրաքանչյուր արժույթի տիպի մեկ դրամապանակ: \n\n Կարող եք ընտրել", - "wallet_group_empty_state_text_one": "Կարծես թե դուք չունեք որեւէ համատեղելի դրամապանակների խմբեր !\n\n թակել", + "wallet_group_description_two": "ընտրելով գոյություն ունեցող դրամապանակ `սերմը կիսելու համար: Դրամապանակների յուրաքանչյուր խումբ կարող է պարունակել յուրաքանչյուր արժույթի տեսակի մեկ դրամապանակ:\n\nԿարող եք ընտրել", + "wallet_group_empty_state_text_one": "Կարծես թե որեւէ համատեղելի դրամապանակի խմբեր չունեք:\n\nԹակել", "wallet_group_empty_state_text_two": "ներքեւում `նորը կազմելու համար:", "wallet_keys": "Դրամապանակի սերմ/բանալիներ", "wallet_list_create_new_wallet": "Ստեղծել Նոր Դրամապանակ", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 530f78eef..5e48ff1d3 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -298,6 +298,7 @@ "failed_authentication": "Otentikasi gagal. ${state_error}", "faq": "Pertanyaan yang Sering Diajukan", "features": "Fitur", + "fee_less_than_min": "Biaya yang dipilih kurang dari minimum, harap tingkatkan biaya untuk dapat mengirim transaksi", "fee_rate": "Tarif biaya", "fetching": "Mengambil", "fiat_api": "API fiat", @@ -609,6 +610,7 @@ "seedtype_alert_title": "Peringatan seedtype", "seedtype_legacy": "Legacy (25 kata)", "seedtype_polyseed": "Polyseed (16 kata)", + "seedtype_wownero": "Wownero (14 kata)", "select_backup_file": "Pilih file cadangan", "select_buy_provider_notice": "Pilih penyedia beli di atas. Anda dapat melewatkan layar ini dengan mengatur penyedia pembelian default Anda di pengaturan aplikasi.", "select_destination": "Silakan pilih tujuan untuk file cadangan.", @@ -680,7 +682,7 @@ "show_seed": "Tampilkan seed", "sign_message": "Pesan tanda", "sign_up": "Daftar", - "sign_verify_message": "Tanda tangan atau verifikasi pesan", + "sign_verify_message": "Tanda / verifikasi", "sign_verify_message_sub": "Menandatangani atau memverifikasi pesan menggunakan kunci pribadi Anda", "sign_verify_title": "Tanda / verifikasi", "signature": "Tanda tangan", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 6257d4800..d509cb256 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -299,6 +299,7 @@ "failed_authentication": "Autenticazione fallita. ${state_error}", "faq": "Domande Frequenti", "features": "Caratteristiche", + "fee_less_than_min": "La commissione selezionata è inferiore al minimo, aumenta le commissioni per poter inviare la transazione", "fee_rate": "Tasso di commissione", "fetching": "Recupero", "fiat_api": "Fiat API", @@ -608,6 +609,7 @@ "seedtype_alert_title": "Avviso seedType", "seedtype_legacy": "Legacy (25 parole)", "seedtype_polyseed": "Polyseed (16 parole)", + "seedtype_wownero": "Wownero (14 parole)", "select_backup_file": "Seleziona file di backup", "select_buy_provider_notice": "Seleziona un fornitore di acquisto sopra. È possibile saltare questa schermata impostando il provider di acquisto predefinito nelle impostazioni dell'app.", "select_destination": "Seleziona la destinazione per il file di backup.", @@ -679,7 +681,7 @@ "show_seed": "Mostra seme", "sign_message": "Messaggio di firma", "sign_up": "Registrati", - "sign_verify_message": "Firmare o verificare il messaggio", + "sign_verify_message": "Firmare / verificare", "sign_verify_message_sub": "Firma o verifica un messaggio utilizzando la chiave privata", "sign_verify_title": "Firmare / verificare", "signature": "Firma", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index e30409cdf..f08437336 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -298,6 +298,7 @@ "failed_authentication": "認証失敗. ${state_error}", "faq": "FAQ", "features": "特徴", + "fee_less_than_min": "選択した料金は最低額よりも少ないので、取引を送信できるように料金を引き上げてください", "fee_rate": "料金金利", "fetching": "フェッチング", "fiat_api": "不換紙幣 API", @@ -607,6 +608,7 @@ "seedtype_alert_title": "SeedTypeアラート", "seedtype_legacy": "レガシー(25語)", "seedtype_polyseed": "ポリシード(16語)", + "seedtype_wownero": "wownero(14ワード)", "select_backup_file": "バックアップファイルを選択", "select_buy_provider_notice": "上記の購入プロバイダーを選択してください。デフォルトの購入プロバイダーをアプリ設定で設定して、この画面をスキップできます。", "select_destination": "バックアップファイルの保存先を選択してください。", @@ -678,7 +680,7 @@ "show_seed": "シードを表示", "sign_message": "署名メッセージ", "sign_up": "サインアップ", - "sign_verify_message": "メッセージに署名または確認します", + "sign_verify_message": "署名 /検証", "sign_verify_message_sub": "秘密鍵を使用してメッセージに署名または確認します", "sign_verify_title": "署名 /検証", "signature": "サイン", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 29e68d4c3..60ee05da2 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -298,6 +298,7 @@ "failed_authentication": "인증 실패. ${state_error}", "faq": "FAQ", "features": "특징", + "fee_less_than_min": "선택된 수수료는 최소값보다 적습니다. 거래를 보낼 수있는 수수료를 늘리십시오.", "fee_rate": "수수료", "fetching": "가져 오는 중", "fiat_api": "명목 화폐 API", @@ -607,6 +608,7 @@ "seedtype_alert_title": "종자 경보", "seedtype_legacy": "레거시 (25 단어)", "seedtype_polyseed": "다문 (16 단어)", + "seedtype_wownero": "Wownero (14 단어)", "select_backup_file": "백업 파일 선택", "select_buy_provider_notice": "위의 구매 제공자를 선택하십시오. 앱 설정에서 기본 구매 제공자를 설정 하여이 화면을 건너 뛸 수 있습니다.", "select_destination": "백업 파일의 대상을 선택하십시오.", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index d95a1b00d..d0aae18ea 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -298,6 +298,7 @@ "failed_authentication": "အထောက်အထားစိစစ်ခြင်း မအောင်မြင်ပါ။. ${state_error}", "faq": "အမြဲမေးလေ့ရှိသောမေးခွန်းများ", "features": "အင်္ဂါရပ်များ", + "fee_less_than_min": "ရွေးချယ်ထားသည့်အခကြေးငွေသည်အနည်းဆုံးထက်နည်းသည်, ငွေပေးချေမှုကိုပေးပို့နိုင်ရန်အခကြေးငွေကိုတိုးမြှင့်ပေးပါ", "fee_rate": "ကြေးနှုန်း", "fetching": "ခေါ်ယူခြင်း။", "fiat_api": "Fiat API", @@ -606,6 +607,7 @@ "seedtype_alert_title": "ပျိုးပင်သတိပေးချက်", "seedtype_legacy": "အမွေအနှစ် (စကားလုံး 25 လုံး)", "seedtype_polyseed": "polyseed (စကားလုံး 16 လုံး)", + "seedtype_wownero": "Wownero (စကားလုံး 14 လုံး)", "select_backup_file": "အရန်ဖိုင်ကို ရွေးပါ။", "select_buy_provider_notice": "အပေါ်ကဝယ်သူတစ် ဦး ကိုရွေးချယ်ပါ။ သင်၏ default 0 ယ်သူအား app settings တွင် setting လုပ်ခြင်းဖြင့်ဤ screen ကိုကျော်သွားနိုင်သည်။", "select_destination": "အရန်ဖိုင်အတွက် ဦးတည်ရာကို ရွေးပါ။", @@ -677,7 +679,7 @@ "show_seed": "မျိုးစေ့ကိုပြပါ။", "sign_message": "လက်မှတ်စာ", "sign_up": "ဆိုင်းအပ်", - "sign_verify_message": "မက်ဆေ့ခ်ျကိုလက်မှတ်ထိုးသို့မဟုတ်အတည်ပြုရန်", + "sign_verify_message": "လက်မှတ်ထိုး / အတည်ပြုရန်", "sign_verify_message_sub": "သင်၏ကိုယ်ပိုင်သော့ကို သုံး. မက်ဆေ့ခ်ျကိုလက်မှတ်ထိုးပါ", "sign_verify_title": "လက်မှတ်ထိုး / အတည်ပြုရန်", "signature": "လက်မှတ်", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 2bb505f3c..273a65ae5 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -298,6 +298,7 @@ "failed_authentication": "Mislukte authenticatie. ${state_error}", "faq": "FAQ", "features": "Functies", + "fee_less_than_min": "Geselecteerde vergoeding is lager dan het minimum, verhoog de kosten om de transactie te kunnen verzenden", "fee_rate": "Tarief", "fetching": "Ophalen", "fiat_api": "Fiat API", @@ -606,6 +607,7 @@ "seedtype_alert_title": "Zaadtype alert", "seedtype_legacy": "Legacy (25 woorden)", "seedtype_polyseed": "Polyseed (16 woorden)", + "seedtype_wownero": "WOWNERO (14 woorden)", "select_backup_file": "Selecteer een back-upbestand", "select_buy_provider_notice": "Selecteer hierboven een koopprovider. U kunt dit scherm overslaan door uw standaard kopenprovider in te stellen in app -instellingen.", "select_destination": "Selecteer de bestemming voor het back-upbestand.", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 09d42e74a..046db2187 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -298,6 +298,7 @@ "failed_authentication": "Nieudane uwierzytelnienie. ${state_error}", "faq": "FAQ", "features": "Cechy", + "fee_less_than_min": "Wybrana opłata jest niższa niż minimum, proszę zwiększyć opłaty, aby móc wysłać transakcję", "fee_rate": "Stawka opłaty", "fetching": "Pobieranie", "fiat_api": "API Walut FIAT", @@ -606,6 +607,7 @@ "seedtype_alert_title": "Ustanowienie typu sedype", "seedtype_legacy": "Dziedzictwo (25 słów)", "seedtype_polyseed": "Poliqueed (16 słów)", + "seedtype_wownero": "Wowero (14 słów)", "select_backup_file": "Wybierz plik kopii zapasowej", "select_buy_provider_notice": "Wybierz powyższe dostawcę zakupu. Możesz pominąć ten ekran, ustawiając domyślnego dostawcę zakupu w ustawieniach aplikacji.", "select_destination": "Wybierz miejsce docelowe dla pliku kopii zapasowej.", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 332623c04..164cb9530 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -298,6 +298,7 @@ "failed_authentication": "Falha na autenticação. ${state_error}", "faq": "FAQ", "features": "Funcionalidades", + "fee_less_than_min": "A taxa selecionada é menor que o mínimo, aumente as taxas para poder enviar a transação", "fee_rate": "Taxa de transação", "fetching": "Buscando", "fiat_api": "API da Fiat", @@ -608,6 +609,7 @@ "seedtype_alert_title": "Alerta de SeedType", "seedtype_legacy": "Legado (25 palavras)", "seedtype_polyseed": "Polyseed (16 palavras)", + "seedtype_wownero": "Wowrone (14 palavras)", "select_backup_file": "Selecione o arquivo de backup", "select_buy_provider_notice": "Selecione um provedor de compra acima. Você pode pular esta tela definindo seu provedor de compra padrão nas configurações de aplicativos.", "select_destination": "Selecione o destino para o arquivo de backup.", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 5b64feb64..28d856191 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -298,6 +298,7 @@ "failed_authentication": "Ошибка аутентификации. ${state_error}", "faq": "FAQ", "features": "Функции", + "fee_less_than_min": "Выбранный сбор меньше, чем минимум, пожалуйста, увеличьте сборы, чтобы быть в состоянии отправить транзакцию", "fee_rate": "Плата", "fetching": "Загрузка", "fiat_api": "Фиат API", @@ -607,6 +608,7 @@ "seedtype_alert_title": "SEEDTYPE ALERT", "seedtype_legacy": "Наследие (25 слов)", "seedtype_polyseed": "Полиса (16 слов)", + "seedtype_wownero": "Wownero (14 слов)", "select_backup_file": "Выберите файл резервной копии", "select_buy_provider_notice": "Выберите поставщика покупки выше. Вы можете пропустить этот экран, установив поставщика покупки по умолчанию в настройках приложения.", "select_destination": "Пожалуйста, выберите место для файла резервной копии.", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index 3bd50af5d..ee6d5b7a2 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -298,6 +298,7 @@ "failed_authentication": "การยืนยันสิทธิ์ล้มเหลว ${state_error}", "faq": "คำถามที่พบบ่อย", "features": "คุณสมบัติ", + "fee_less_than_min": "ค่าธรรมเนียมที่เลือกน้อยกว่าขั้นต่ำโปรดเพิ่มค่าธรรมเนียมเพื่อให้สามารถส่งธุรกรรมได้", "fee_rate": "อัตราค่าธรรมเนียม", "fetching": "กำลังโหลด", "fiat_api": "API สกุลเงินตรา", @@ -606,6 +607,7 @@ "seedtype_alert_title": "การแจ้งเตือน seedtype", "seedtype_legacy": "มรดก (25 คำ)", "seedtype_polyseed": "โพลีส (16 คำ)", + "seedtype_wownero": "wownero (14 คำ)", "select_backup_file": "เลือกไฟล์สำรอง", "select_buy_provider_notice": "เลือกผู้ให้บริการซื้อด้านบน คุณสามารถข้ามหน้าจอนี้ได้โดยการตั้งค่าผู้ให้บริการซื้อเริ่มต้นในการตั้งค่าแอป", "select_destination": "โปรดเลือกปลายทางสำหรับไฟล์สำรอง", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 48914c1e5..2e7b4f4db 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -298,6 +298,7 @@ "failed_authentication": "Nabigo ang pagpapatunay. ${state_error}", "faq": "FAQ", "features": "Mga tampok", + "fee_less_than_min": "Ang napiling bayad ay mas mababa sa minimum, mangyaring dagdagan ang mga bayarin upang maipadala ang transaksyon", "fee_rate": "Rate ng bayad", "fetching": "Pagkuha", "fiat_api": "Fiat API", @@ -606,6 +607,7 @@ "seedtype_alert_title": "Alerto ng Seedtype", "seedtype_legacy": "Legacy (25 na salita)", "seedtype_polyseed": "Polyseed (16 na salita)", + "seedtype_wownero": "Wownero (14 na salita)", "select_backup_file": "Piliin ang backup na file", "select_buy_provider_notice": "Pumili ng provider ng pagbili sa itaas. Maaari mong laktawan ang screen na ito sa pamamagitan ng pagtatakda ng iyong default na provider ng pagbili sa mga setting ng app.", "select_destination": "Mangyaring piliin ang patutunguhan para sa backup na file.", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 22f7c8253..fba4a796e 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -298,6 +298,7 @@ "failed_authentication": "Doğrulama başarısız oldu. ${state_error}", "faq": "SSS", "features": "Özellikler", + "fee_less_than_min": "Seçilen ücret asgari düzeyden azdır, lütfen işlemi gönderebilmek için ücretleri artırın", "fee_rate": "Ücret oranı", "fetching": "Getiriliyor", "fiat_api": "İtibari Para API", @@ -606,6 +607,7 @@ "seedtype_alert_title": "SeedType uyarısı", "seedtype_legacy": "Miras (25 kelime)", "seedtype_polyseed": "Polyseed (16 kelime)", + "seedtype_wownero": "Wownero (14 kelime)", "select_backup_file": "Yedek dosyası seç", "select_buy_provider_notice": "Yukarıda bir satın alma sağlayıcısı seçin. App ayarlarında varsayılan satın alma sağlayıcınızı ayarlayarak bu ekranı atlayabilirsiniz.", "select_destination": "Lütfen yedekleme dosyası için hedef seçin.", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 969e46036..ff1f2905f 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -298,6 +298,7 @@ "failed_authentication": "Помилка аутентифікації. ${state_error}", "faq": "FAQ", "features": "Особливості", + "fee_less_than_min": "Вибрана плата менша, ніж мінімум, будь ласка, збільште збори, щоб мати можливість відправити транзакцію", "fee_rate": "Ставка плати", "fetching": "Завантаження", "fiat_api": "Фіат API", @@ -607,6 +608,7 @@ "seedtype_alert_title": "Попередження насінника", "seedtype_legacy": "Спадщина (25 слів)", "seedtype_polyseed": "Полісей (16 слів)", + "seedtype_wownero": "Влонеро (14 слів)", "select_backup_file": "Виберіть файл резервної копії", "select_buy_provider_notice": "Виберіть постачальника купівлі вище. Ви можете пропустити цей екран, встановивши свого постачальника купівлі за замовчуванням у налаштуваннях додатків.", "select_destination": "Виберіть місце призначення для файлу резервної копії.", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 6b0906c75..8cfe2ec9f 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -298,6 +298,7 @@ "failed_authentication": "ناکام تصدیق۔ ${state_error}", "faq": "عمومی سوالات", "features": "خصوصیات", + "fee_less_than_min": "منتخب فیس کم سے کم سے کم ہے ، براہ کرم لین دین بھیجنے کے قابل فیس میں اضافہ کریں", "fee_rate": "فیس کی شرح", "fetching": "لا رہا ہے۔", "fiat_api": "Fiat API", @@ -608,6 +609,7 @@ "seedtype_alert_title": "سیڈ ٹائپ الرٹ", "seedtype_legacy": "میراث (25 الفاظ)", "seedtype_polyseed": "پالیسیڈ (16 الفاظ)", + "seedtype_wownero": "واونرو (14 الفاظ)", "select_backup_file": "بیک اپ فائل کو منتخب کریں۔", "select_buy_provider_notice": "اوپر خریدنے والا خریدنے والا منتخب کریں۔ آپ ایپ کی ترتیبات میں اپنے پہلے سے طے شدہ خریدنے والے کو ترتیب دے کر اس اسکرین کو چھوڑ سکتے ہیں۔", "select_destination": "۔ﮟﯾﺮﮐ ﺏﺎﺨﺘﻧﺍ ﺎﮐ ﻝﺰﻨﻣ ﮯﯿﻟ ﮯﮐ ﻞﺋﺎﻓ ﭖﺍ ﮏﯿﺑ ﻡﺮﮐ ﮦﺍﺮﺑ", diff --git a/res/values/strings_vi.arb b/res/values/strings_vi.arb index cc99dcf97..444c1d6d8 100644 --- a/res/values/strings_vi.arb +++ b/res/values/strings_vi.arb @@ -143,6 +143,7 @@ "confirm_delete_wallet": "Thao tác này sẽ xóa ví này. Bạn có muốn tiếp tục không?", "confirm_fee_dedction_content": "Bạn có đồng ý trừ phí từ đầu ra không?", "confirm_fee_deduction": "Xác nhận Khấu trừ Phí", + "confirm_fee_deduction_content": "Bạn có đồng ý khấu trừ phí từ đầu ra không?", "confirm_sending": "Xác nhận gửi", "confirm_silent_payments_switch_node": "Nút hiện tại của bạn không hỗ trợ thanh toán im lặng\\nCake Wallet sẽ chuyển sang một nút tương thích chỉ để quét", "confirmations": "Xác nhận", @@ -161,6 +162,7 @@ "contact_name": "Tên liên hệ", "contact_support": "Liên hệ Hỗ trợ", "continue_text": "Tiếp tục", + "contract_warning": "Địa chỉ hợp đồng này đã được gắn cờ là có khả năng lừa đảo. Vui lòng xử lý một cách thận trọng.", "contractName": "Tên Hợp đồng", "contractSymbol": "Ký hiệu Hợp đồng", "copied_key_to_clipboard": "Đã sao chép ${key} vào khay nhớ tạm", @@ -221,6 +223,7 @@ "displayable": "Có thể hiển thị", "do_not_have_enough_gas_asset": "Bạn không có đủ ${currency} để thực hiện giao dịch với điều kiện mạng blockchain hiện tại. Bạn cần thêm ${currency} để trả phí mạng blockchain, ngay cả khi bạn đang gửi tài sản khác.", "do_not_send": "Đừng gửi", + "do_not_send_funds_to_contract_address_warning": "Không gửi tiền đến địa chỉ này\n\n Đây chỉ là một mã định danh cho mã thông báo, bất kỳ khoản tiền nào được gửi đến địa chỉ này sẽ bị mất.\n\n Lưu ý: Bánh sẽ không bao giờ yêu cầu bạn thêm địa chỉ hợp đồng", "do_not_share_warning_text": "Không chia sẻ điều này với bất kỳ ai, bao gồm cả bộ phận hỗ trợ.\n\nTài sản của bạn có thể và sẽ bị đánh cắp!", "do_not_show_me": "Không hiển thị lại cho tôi", "domain_looks_up": "Tra cứu tên miền", @@ -296,6 +299,8 @@ "failed_authentication": "Xác thực không thành công. ${state_error}", "faq": "FAQ", "features": "Tính năng", + "fee_less_than_min": "Phí được chọn ít hơn mức tối thiểu, vui lòng tăng phí để có thể gửi giao dịch", + "fee_rate": "Tỷ lệ phí", "fetching": "Đang tải", "fiat_api": "API Fiat", "fiat_balance": "Số dư Fiat", @@ -599,6 +604,8 @@ "seed_share": "Chia sẻ hạt giống", "seed_title": "Hạt giống", "seedtype": "Loại hạt giống", + "seedtype_alert_content": "Chia sẻ hạt giống với ví khác chỉ có thể với BIP39 SeedType.", + "seedtype_alert_title": "Cảnh báo hạt giống", "seedtype_legacy": "Di sản (25 từ)", "seedtype_polyseed": "Polyseed (16 từ)", "seedtype_wownero": "Wownero (14 từ)", @@ -612,6 +619,7 @@ "send": "Gửi", "send_address": "Địa chỉ ${cryptoCurrency}", "send_amount": "Số tiền:", + "send_change_to_you": "Thay đổi, cho bạn:", "send_creating_transaction": "Tạo giao dịch", "send_error_currency": "Tiền tệ chỉ có thể chứa số", "send_error_minimum_value": "Giá trị tối thiểu của số tiền là 0.01", @@ -665,6 +673,7 @@ "setup_your_debit_card": "Thiết lập thẻ ghi nợ của bạn", "share": "Chia sẻ", "share_address": "Chia sẻ địa chỉ", + "shared_seed_wallet_groups": "Nhóm ví hạt được chia sẻ", "show_details": "Hiển thị chi tiết", "show_keys": "Hiển thị hạt giống/khóa", "show_market_place": "Hiển thị Thị trường", @@ -678,6 +687,7 @@ "signature_invalid_error": "Chữ ký không hợp lệ cho tin nhắn đã cho", "signTransaction": "Ký giao dịch", "signup_for_card_accept_terms": "Đăng ký thẻ và chấp nhận các điều khoản.", + "silent_payment": "Thanh toán im lặng", "silent_payments": "Thanh toán im lặng", "silent_payments_always_scan": "Đặt Thanh toán im lặng luôn quét", "silent_payments_disclaimer": "Địa chỉ mới không phải là danh tính mới. Đây là việc tái sử dụng một danh tính hiện có với nhãn khác.", @@ -688,6 +698,7 @@ "silent_payments_scanned_tip": "ĐÃ QUÉT ĐỂ TIP! (${tip})", "silent_payments_scanning": "Đang quét thanh toán im lặng", "silent_payments_settings": "Cài đặt thanh toán im lặng", + "single_seed_wallets_group": "Ví hạt đơn", "slidable": "Có thể kéo", "sort_by": "Sắp xếp theo", "spend_key_private": "Khóa chi tiêu (riêng tư)", @@ -710,6 +721,7 @@ "switchToEVMCompatibleWallet": "Vui lòng chuyển sang ví tương thích EVM và thử lại (Ethereum, Polygon)", "symbol": "Ký hiệu", "sync_all_wallets": "Đồng bộ tất cả các ví", + "sync_status_attempting_scan": "Cố gắng quét", "sync_status_attempting_sync": "ĐANG THỬ ĐỒNG BỘ", "sync_status_connected": "ĐÃ KẾT NỐI", "sync_status_connecting": "ĐANG KẾT NỐI", @@ -846,6 +858,7 @@ "view_transaction_on": "Xem giao dịch trên", "voting_weight": "Trọng số bỏ phiếu", "waitFewSecondForTxUpdate": "Vui lòng đợi vài giây để giao dịch được phản ánh trong lịch sử giao dịch", + "wallet_group": "Nhóm ví", "wallet_group_description_four": "Để tạo ra một ví với một hạt giống hoàn toàn mới.", "wallet_group_description_one": "Trong ví bánh, bạn có thể tạo", "wallet_group_description_three": "Để xem ví trên ví và/hoặc màn hình nhóm ví. Hoặc chọn", @@ -854,6 +867,7 @@ "wallet_group_empty_state_text_two": "Dưới đây để làm một cái mới.", "wallet_keys": "Hạt giống/khóa ví", "wallet_list_create_new_wallet": "Tạo ví mới", + "wallet_list_edit_group_name": "Chỉnh sửa tên nhóm", "wallet_list_edit_wallet": "Chỉnh sửa ví", "wallet_list_failed_to_load": "Tải ví ${wallet_name} không thành công. ${error}", "wallet_list_failed_to_remove": "Xóa ví ${wallet_name} không thành công. ${error}", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index aa7264b67..15b90b973 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -299,6 +299,7 @@ "failed_authentication": "Ìfẹ̀rílàdí pipòfo. ${state_error}", "faq": "Àwọn ìbéèrè l'a máa ń bèèrè", "features": "Awọn ẹya", + "fee_less_than_min": "Owo ti a ti yan kere ju ti o kere ju, jọwọ mu awọn owo naa pọ si lati ni anfani lati firanṣẹ iṣowo naa", "fee_rate": "Oṣuwọn owo ọya", "fetching": "ń wá", "fiat_api": "Ojú ètò áàpù owó tí ìjọba pàṣẹ wa lò", @@ -607,6 +608,7 @@ "seedtype_alert_title": "Ṣajọpọ Seeytype", "seedtype_legacy": "Legacy (awọn ọrọ 25)", "seedtype_polyseed": "Polyseed (awọn ọrọ 16)", + "seedtype_wownero": "Wowero (awọn ọrọ 14)", "select_backup_file": "Select backup file", "select_buy_provider_notice": "Yan olupese Ra loke. O le skii iboju yii nipa ṣiṣeto olupese rẹ ni awọn eto App.", "select_destination": "Jọwọ yan ibi ti o nlo fun faili afẹyinti.", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 0306f8ad6..ae7e15132 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -298,6 +298,7 @@ "failed_authentication": "身份验证失败. ${state_error}", "faq": "FAQ", "features": "特征", + "fee_less_than_min": "选定费用小于最低费用,请增加费用以发送交易", "fee_rate": "费率", "fetching": "正在获取", "fiat_api": "法币API", @@ -606,6 +607,7 @@ "seedtype_alert_title": "籽粒警报", "seedtype_legacy": "遗产(25个单词)", "seedtype_polyseed": "多种物品(16个单词)", + "seedtype_wownero": "沃恩罗(14个单词)", "select_backup_file": "选择备份文件", "select_buy_provider_notice": "在上面选择买入提供商。您可以通过在应用程序设置中设置默认的购买提供商来跳过此屏幕。", "select_destination": "请选择备份文件的目的地。",