From 9590aa25b6b679a19c69db313cde84087eb1ede5 Mon Sep 17 00:00:00 2001 From: David Adegoke <64401859+Blazebrain@users.noreply.github.com> Date: Wed, 11 Dec 2024 15:45:15 +0100 Subject: [PATCH 01/10] CW-802: Ethereum enhancements (#1826) * fix: Ethereum enhancements around fees and computations relating to signing and sending transactions * feat: Add nownodes key for evm to workflow * feat: Reactivate send all on both eth and polygon wallet types * fix: Add generic function for updating the node for a wallet type, move ethereum transaction error fees handler to a new file * fix: Revert podfile.lock --------- Co-authored-by: Omar Hatem --- .github/workflows/pr_test_build_android.yml | 1 + .github/workflows/pr_test_build_linux.yml | 1 + assets/ethereum_server_list.yml | 2 + assets/polygon_node_list.yml | 4 +- cw_evm/lib/evm_chain_client.dart | 36 ++++++--- cw_evm/lib/evm_chain_wallet.dart | 61 +++++++++++--- cw_polygon/lib/polygon_client.dart | 8 ++ lib/entities/default_settings_migration.dart | 36 ++++++++- .../evm_transaction_error_fees_handler.dart | 81 +++++++++++++++++++ lib/main.dart | 2 +- lib/view_model/send/send_view_model.dart | 36 ++++++--- res/values/strings_ar.arb | 4 + res/values/strings_bg.arb | 4 + res/values/strings_cs.arb | 4 + res/values/strings_de.arb | 4 + res/values/strings_en.arb | 4 + res/values/strings_es.arb | 4 + res/values/strings_fr.arb | 4 + res/values/strings_ha.arb | 4 + res/values/strings_hi.arb | 4 + res/values/strings_hr.arb | 4 + res/values/strings_hy.arb | 4 + res/values/strings_id.arb | 4 + res/values/strings_it.arb | 4 + res/values/strings_ja.arb | 4 + res/values/strings_ko.arb | 4 + res/values/strings_my.arb | 4 + res/values/strings_nl.arb | 4 + res/values/strings_pl.arb | 4 + res/values/strings_pt.arb | 4 + res/values/strings_ru.arb | 4 + res/values/strings_th.arb | 4 + res/values/strings_tl.arb | 4 + res/values/strings_tr.arb | 4 + res/values/strings_uk.arb | 4 + res/values/strings_ur.arb | 4 + res/values/strings_vi.arb | 4 + res/values/strings_yo.arb | 4 + res/values/strings_zh.arb | 4 + tool/utils/secret_key.dart | 1 + 40 files changed, 346 insertions(+), 35 deletions(-) create mode 100644 lib/entities/evm_transaction_error_fees_handler.dart diff --git a/.github/workflows/pr_test_build_android.yml b/.github/workflows/pr_test_build_android.yml index 2b605c775a..ab198dfb2d 100644 --- a/.github/workflows/pr_test_build_android.yml +++ b/.github/workflows/pr_test_build_android.yml @@ -188,6 +188,7 @@ jobs: echo "const polygonScanApiKey = '${{ secrets.POLYGON_SCAN_API_KEY }}';" >> lib/.secrets.g.dart echo "const etherScanApiKey = '${{ secrets.ETHER_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart echo "const moralisApiKey = '${{ secrets.MORALIS_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart + echo "const nowNodesApiKey = '${{ secrets.EVM_NOWNODES_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart echo "const chatwootWebsiteToken = '${{ secrets.CHATWOOT_WEBSITE_TOKEN }}';" >> lib/.secrets.g.dart echo "const exolixApiKey = '${{ secrets.EXOLIX_API_KEY }}';" >> lib/.secrets.g.dart echo "const robinhoodApplicationId = '${{ secrets.ROBINHOOD_APPLICATION_ID }}';" >> lib/.secrets.g.dart diff --git a/.github/workflows/pr_test_build_linux.yml b/.github/workflows/pr_test_build_linux.yml index c37b115821..f690e02366 100644 --- a/.github/workflows/pr_test_build_linux.yml +++ b/.github/workflows/pr_test_build_linux.yml @@ -165,6 +165,7 @@ jobs: echo "const walletConnectProjectId = '${{ secrets.WALLET_CONNECT_PROJECT_ID }}';" >> lib/.secrets.g.dart echo "const moralisApiKey = '${{ secrets.MORALIS_API_KEY }}';" >> lib/.secrets.g.dart echo "const polygonScanApiKey = '${{ secrets.POLYGON_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart + echo "const nowNodesApiKey = '${{ secrets.EVM_NOWNODES_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart echo "const ankrApiKey = '${{ secrets.ANKR_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart echo "const testCakePayApiKey = '${{ secrets.TEST_CAKE_PAY_API_KEY }}';" >> lib/.secrets.g.dart echo "const cakePayApiKey = '${{ secrets.CAKE_PAY_API_KEY }}';" >> lib/.secrets.g.dart diff --git a/assets/ethereum_server_list.yml b/assets/ethereum_server_list.yml index 125085d887..9656384712 100644 --- a/assets/ethereum_server_list.yml +++ b/assets/ethereum_server_list.yml @@ -6,5 +6,7 @@ uri: rpc.flashbots.net - uri: eth-mainnet.public.blastapi.io +- + uri: eth.nownodes.io - uri: ethereum.publicnode.com \ No newline at end of file diff --git a/assets/polygon_node_list.yml b/assets/polygon_node_list.yml index 34504269da..63878bc0c0 100644 --- a/assets/polygon_node_list.yml +++ b/assets/polygon_node_list.yml @@ -3,4 +3,6 @@ - uri: polygon-bor.publicnode.com - - uri: polygon.llamarpc.com \ No newline at end of file + uri: polygon.llamarpc.com +- + uri: matic.nownodes.io \ No newline at end of file diff --git a/cw_evm/lib/evm_chain_client.dart b/cw_evm/lib/evm_chain_client.dart index 1935df2af9..7dad39f7a6 100644 --- a/cw_evm/lib/evm_chain_client.dart +++ b/cw_evm/lib/evm_chain_client.dart @@ -36,7 +36,18 @@ abstract class EVMChainClient { bool connect(Node node) { try { - _client = Web3Client(node.uri.toString(), httpClient); + Uri? rpcUri; + bool isModifiedNodeUri = false; + + if (node.uriRaw == 'eth.nownodes.io' || node.uriRaw == 'matic.nownodes.io') { + isModifiedNodeUri = true; + String nowNodeApiKey = secrets.nowNodesApiKey; + + rpcUri = Uri.https(node.uriRaw, '/$nowNodeApiKey'); + } + + _client = + Web3Client(isModifiedNodeUri ? rpcUri!.toString() : node.uri.toString(), httpClient); return true; } catch (e) { @@ -83,23 +94,20 @@ abstract class EVMChainClient { } } - Future getEstimatedGas({ - String? contractAddress, + Future getEstimatedGasUnitsForTransaction({ required EthereumAddress toAddress, required EthereumAddress senderAddress, required EtherAmount value, + String? contractAddress, EtherAmount? gasPrice, - // EtherAmount? maxFeePerGas, - // EtherAmount? maxPriorityFeePerGas, + EtherAmount? maxFeePerGas, }) async { try { if (contractAddress == null) { final estimatedGas = await _client!.estimateGas( sender: senderAddress, - gasPrice: gasPrice, to: toAddress, value: value, - // maxPriorityFeePerGas: maxPriorityFeePerGas, // maxFeePerGas: maxFeePerGas, ); @@ -133,7 +141,9 @@ abstract class EVMChainClient { required Credentials privateKey, required String toAddress, required BigInt amount, - required BigInt gas, + required BigInt gasFee, + required int estimatedGasUnits, + required int maxFeePerGas, required EVMChainTransactionPriority priority, required CryptoCurrency currency, required int exponent, @@ -152,6 +162,8 @@ abstract class EVMChainClient { maxPriorityFeePerGas: EtherAmount.fromInt(EtherUnit.gwei, priority.tip), amount: isNativeToken ? EtherAmount.inWei(amount) : EtherAmount.zero(), data: data != null ? hexToBytes(data) : null, + maxGas: estimatedGasUnits, + maxFeePerGas: EtherAmount.fromInt(EtherUnit.wei, maxFeePerGas), ); Uint8List signedTransaction; @@ -180,7 +192,7 @@ abstract class EVMChainClient { return PendingEVMChainTransaction( signedTransaction: signedTransaction, amount: amount.toString(), - fee: gas, + fee: gasFee, sendTransaction: _sendTransaction, exponent: exponent, ); @@ -191,7 +203,10 @@ abstract class EVMChainClient { required EthereumAddress to, required EtherAmount amount, EtherAmount? maxPriorityFeePerGas, + EtherAmount? gasPrice, + EtherAmount? maxFeePerGas, Uint8List? data, + int? maxGas, }) { return Transaction( from: from, @@ -199,6 +214,9 @@ abstract class EVMChainClient { maxPriorityFeePerGas: maxPriorityFeePerGas, value: amount, data: data, + maxGas: maxGas, + gasPrice: gasPrice, + maxFeePerGas: maxFeePerGas, ); } diff --git a/cw_evm/lib/evm_chain_wallet.dart b/cw_evm/lib/evm_chain_wallet.dart index eeb86c5bd2..eb93bd94fa 100644 --- a/cw_evm/lib/evm_chain_wallet.dart +++ b/cw_evm/lib/evm_chain_wallet.dart @@ -221,7 +221,7 @@ abstract class EVMChainWalletBase /// - The exact amount the user wants to send, /// - The addressHex for the receiving wallet, /// - A contract address which would be essential in determining if to calcualate the estimate for ERC20 or native ETH - Future calculateActualEstimatedFeeForCreateTransaction({ + Future calculateActualEstimatedFeeForCreateTransaction({ required amount, required String? contractAddress, required String receivingAddressHex, @@ -240,22 +240,27 @@ abstract class EVMChainWalletBase maxFeePerGas = gasPrice; } - final estimatedGas = await _client.getEstimatedGas( + final estimatedGas = await _client.getEstimatedGasUnitsForTransaction( contractAddress: contractAddress, senderAddress: _evmChainPrivateKey.address, value: EtherAmount.fromBigInt(EtherUnit.wei, amount!), gasPrice: EtherAmount.fromInt(EtherUnit.wei, gasPrice), toAddress: EthereumAddress.fromHex(receivingAddressHex), - // maxFeePerGas: EtherAmount.fromInt(EtherUnit.wei, maxFeePerGas), - // maxPriorityFeePerGas: EtherAmount.fromInt(EtherUnit.gwei, priority.tip), + maxFeePerGas: EtherAmount.fromInt(EtherUnit.wei, maxFeePerGas), ); final totalGasFee = estimatedGas * maxFeePerGas; - return totalGasFee; + + return GasParamsHandler( + estimatedGasUnits: estimatedGas, + estimatedGasFee: totalGasFee, + maxFeePerGas: maxFeePerGas, + gasPrice: gasPrice, + ); } - return 0; + return GasParamsHandler.zero(); } catch (e) { - return 0; + return GasParamsHandler.zero(); } } @@ -318,7 +323,7 @@ abstract class EVMChainWalletBase gasPrice = await _client.getGasUnitPrice(); - estimatedGasUnits = await _client.getEstimatedGas( + estimatedGasUnits = await _client.getEstimatedGasUnitsForTransaction( senderAddress: _evmChainPrivateKey.address, toAddress: _evmChainPrivateKey.address, gasPrice: EtherAmount.fromInt(EtherUnit.wei, gasPrice), @@ -349,6 +354,8 @@ abstract class EVMChainWalletBase int exponent = transactionCurrency is Erc20Token ? transactionCurrency.decimal : 18; num amountToEVMChainMultiplier = pow(10, exponent); String? contractAddress; + int estimatedGasUnitsForTransaction = 0; + int maxFeePerGasForTransaction = 0; String toAddress = _credentials.outputs.first.isParsedAddress ? _credentials.outputs.first.extractedAddress! : _credentials.outputs.first.address; @@ -367,14 +374,16 @@ abstract class EVMChainWalletBase outputs.fold(0, (acc, value) => acc + (value.formattedCryptoAmount ?? 0))); totalAmount = BigInt.from(totalOriginalAmount * amountToEVMChainMultiplier); - final estimateFees = await calculateActualEstimatedFeeForCreateTransaction( + final gasFeesModel = await calculateActualEstimatedFeeForCreateTransaction( amount: totalAmount, receivingAddressHex: toAddress, priority: _credentials.priority!, contractAddress: contractAddress, ); - estimatedFeesForTransaction = BigInt.from(estimateFees); + estimatedFeesForTransaction = BigInt.from(gasFeesModel.estimatedGasFee); + estimatedGasUnitsForTransaction = gasFeesModel.estimatedGasUnits; + maxFeePerGasForTransaction = gasFeesModel.maxFeePerGas; if (erc20Balance.balance < totalAmount) { throw EVMChainTransactionCreationException(transactionCurrency); @@ -392,14 +401,16 @@ abstract class EVMChainWalletBase totalAmount = erc20Balance.balance; } - final estimateFees = await calculateActualEstimatedFeeForCreateTransaction( + final gasFeesModel = await calculateActualEstimatedFeeForCreateTransaction( amount: totalAmount, receivingAddressHex: toAddress, priority: _credentials.priority!, contractAddress: contractAddress, ); - estimatedFeesForTransaction = BigInt.from(estimateFees); + estimatedFeesForTransaction = BigInt.from(gasFeesModel.estimatedGasFee); + estimatedGasUnitsForTransaction = gasFeesModel.estimatedGasUnits; + maxFeePerGasForTransaction = gasFeesModel.maxFeePerGas; if (output.sendAll && transactionCurrency is! Erc20Token) { totalAmount = (erc20Balance.balance - estimatedFeesForTransaction); @@ -420,12 +431,14 @@ abstract class EVMChainWalletBase } final pendingEVMChainTransaction = await _client.signTransaction( + estimatedGasUnits: estimatedGasUnitsForTransaction, privateKey: _evmChainPrivateKey, toAddress: toAddress, amount: totalAmount, - gas: estimatedFeesForTransaction, + gasFee: estimatedFeesForTransaction, priority: _credentials.priority!, currency: transactionCurrency, + maxFeePerGas: maxFeePerGasForTransaction, exponent: exponent, contractAddress: transactionCurrency is Erc20Token ? transactionCurrency.contractAddress : null, @@ -728,3 +741,25 @@ abstract class EVMChainWalletBase @override final String? passphrase; } + +class GasParamsHandler { + final int estimatedGasUnits; + final int estimatedGasFee; + final int maxFeePerGas; + final int gasPrice; + + GasParamsHandler( + {required this.estimatedGasUnits, + required this.estimatedGasFee, + required this.maxFeePerGas, + required this.gasPrice}); + + static GasParamsHandler zero() { + return GasParamsHandler( + estimatedGasUnits: 0, + estimatedGasFee: 0, + maxFeePerGas: 0, + gasPrice: 0, + ); + } +} diff --git a/cw_polygon/lib/polygon_client.dart b/cw_polygon/lib/polygon_client.dart index d55ee22690..d9f96d1c95 100644 --- a/cw_polygon/lib/polygon_client.dart +++ b/cw_polygon/lib/polygon_client.dart @@ -14,11 +14,19 @@ class PolygonClient extends EVMChainClient { required EtherAmount amount, EtherAmount? maxPriorityFeePerGas, Uint8List? data, + int? maxGas, + EtherAmount? gasPrice, + EtherAmount? maxFeePerGas, }) { return Transaction( from: from, to: to, value: amount, + data: data, + maxGas: maxGas, + gasPrice: gasPrice, + maxFeePerGas: maxFeePerGas, + maxPriorityFeePerGas: maxPriorityFeePerGas, ); } diff --git a/lib/entities/default_settings_migration.dart b/lib/entities/default_settings_migration.dart index f2cfe79b7f..d91ad64422 100644 --- a/lib/entities/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -289,7 +289,21 @@ Future defaultSettingsMigration( ], ); break; - + case 45: + await updateWalletTypeNodesWithNewNode( + newNodeUri: 'matic.nownodes.io', + sharedPreferences: sharedPreferences, + nodes: nodes, + type: WalletType.polygon, + useSSL: true, + ); + await updateWalletTypeNodesWithNewNode( + newNodeUri: 'eth.nownodes.io', + sharedPreferences: sharedPreferences, + nodes: nodes, + type: WalletType.ethereum, + useSSL: true, + ); default: break; } @@ -339,6 +353,26 @@ Future _changeDefaultNode({ } } +/// Generic function for adding a new Node for a Wallet Type. +Future updateWalletTypeNodesWithNewNode({ + required SharedPreferences sharedPreferences, + required Box nodes, + required WalletType type, + required String newNodeUri, + required bool useSSL, +}) async { + // If it already exists in the box of nodes, no need to add it annymore. + if (nodes.values.any((node) => node.uriRaw == newNodeUri)) return; + + await nodes.add( + Node( + uri: newNodeUri, + type: type, + useSSL: useSSL, + ), + ); +} + Future _updateCakeXmrNode(Box nodes) async { final node = nodes.values.firstWhereOrNull((element) => element.uriRaw == newCakeWalletMoneroUri); diff --git a/lib/entities/evm_transaction_error_fees_handler.dart b/lib/entities/evm_transaction_error_fees_handler.dart new file mode 100644 index 0000000000..63f6e164db --- /dev/null +++ b/lib/entities/evm_transaction_error_fees_handler.dart @@ -0,0 +1,81 @@ +class EVMTransactionErrorFeesHandler { + EVMTransactionErrorFeesHandler({ + this.balanceWei, + this.balanceEth, + this.balanceUsd, + this.txCostWei, + this.txCostEth, + this.txCostUsd, + this.overshotWei, + this.overshotEth, + this.overshotUsd, + this.error, + }); + + String? balanceWei; + String? balanceEth; + String? balanceUsd; + + String? txCostWei; + String? txCostEth; + String? txCostUsd; + + String? overshotWei; + String? overshotEth; + String? overshotUsd; + + String? error; + + factory EVMTransactionErrorFeesHandler.parseEthereumFeesErrorMessage( + String errorMessage, + double assetPriceUsd, + ) { + // Define Regular Expressions to extract the numerical values + RegExp balanceRegExp = RegExp(r'balance (\d+)'); + RegExp txCostRegExp = RegExp(r'tx cost (\d+)'); + RegExp overshotRegExp = RegExp(r'overshot (\d+)'); + + // Match the patterns in the error message + Match? balanceMatch = balanceRegExp.firstMatch(errorMessage); + Match? txCostMatch = txCostRegExp.firstMatch(errorMessage); + Match? overshotMatch = overshotRegExp.firstMatch(errorMessage); + + // Check if all required values are found + if (balanceMatch != null && txCostMatch != null && overshotMatch != null) { + // Extract the numerical strings + String balanceStr = balanceMatch.group(1)!; + String txCostStr = txCostMatch.group(1)!; + String overshotStr = overshotMatch.group(1)!; + + // Parse the numerical strings to BigInt + BigInt balanceWei = BigInt.parse(balanceStr); + BigInt txCostWei = BigInt.parse(txCostStr); + BigInt overshotWei = BigInt.parse(overshotStr); + + // Convert wei to ETH (1 ETH = 1e18 wei) + double balanceEth = balanceWei.toDouble() / 1e18; + double txCostEth = txCostWei.toDouble() / 1e18; + double overshotEth = overshotWei.toDouble() / 1e18; + + // Calculate the USD values + double balanceUsd = balanceEth * assetPriceUsd; + double txCostUsd = txCostEth * assetPriceUsd; + double overshotUsd = overshotEth * assetPriceUsd; + + return EVMTransactionErrorFeesHandler( + balanceWei: balanceWei.toString(), + balanceEth: balanceEth.toString().substring(0, 12), + balanceUsd: balanceUsd.toString().substring(0, 4), + txCostWei: txCostWei.toString(), + txCostEth: txCostEth.toString().substring(0, 12), + txCostUsd: txCostUsd.toString().substring(0, 4), + overshotWei: overshotWei.toString(), + overshotEth: overshotEth.toString().substring(0, 12), + overshotUsd: overshotUsd.toString().substring(0, 4), + ); + } else { + // If any value is missing, return an error message + return EVMTransactionErrorFeesHandler(error: 'Could not parse the error message.'); + } + } +} diff --git a/lib/main.dart b/lib/main.dart index 72818a1d4e..00d76800d0 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -203,7 +203,7 @@ Future initializeAppConfigs() async { transactionDescriptions: transactionDescriptions, secureStorage: secureStorage, anonpayInvoiceInfo: anonpayInvoiceInfo, - initialMigrationVersion: 44, + initialMigrationVersion: 45, ); } diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart index 61474d6c9c..dc3b2701dd 100644 --- a/lib/view_model/send/send_view_model.dart +++ b/lib/view_model/send/send_view_model.dart @@ -1,5 +1,6 @@ import 'package:cake_wallet/di.dart'; import 'package:cake_wallet/entities/contact.dart'; +import 'package:cake_wallet/entities/evm_transaction_error_fees_handler.dart'; import 'package:cake_wallet/entities/priority_for_wallet_type.dart'; import 'package:cake_wallet/entities/transaction_description.dart'; import 'package:cake_wallet/ethereum/ethereum.dart'; @@ -136,11 +137,11 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor bool get shouldDisplaySendALL { if (walletType == WalletType.solana) return false; - if (walletType == WalletType.ethereum && selectedCryptoCurrency == CryptoCurrency.eth) - return false; + // if (walletType == WalletType.ethereum && selectedCryptoCurrency == CryptoCurrency.eth) + // return false; - if (walletType == WalletType.polygon && selectedCryptoCurrency == CryptoCurrency.matic) - return false; + // if (walletType == WalletType.polygon && selectedCryptoCurrency == CryptoCurrency.maticpoly) + // return false; return true; } @@ -502,9 +503,7 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor nano!.updateTransactions(wallet); } - if (pendingTransaction!.id.isNotEmpty) { - final descriptionKey = '${pendingTransaction!.id}_${wallet.walletAddresses.primaryAddress}'; _settingsStore.shouldSaveRecipientAddress ? await transactionDescriptionBox.add(TransactionDescription( @@ -688,9 +687,26 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor if (walletType == WalletType.ethereum || walletType == WalletType.polygon || walletType == WalletType.haven) { - if (errorMessage.contains('gas required exceeds allowance') || - errorMessage.contains('insufficient funds')) { - return S.current.do_not_have_enough_gas_asset(currency.toString()); + if (errorMessage.contains('gas required exceeds allowance')) { + return S.current.gas_exceeds_allowance; + } + + if (errorMessage.contains('insufficient funds')) { + final parsedErrorMessageResult = + EVMTransactionErrorFeesHandler.parseEthereumFeesErrorMessage( + errorMessage, + _fiatConversationStore.prices[currency]!, + ); + + if (parsedErrorMessageResult.error != null) { + return S.current.insufficient_funds_for_tx; + } + + return + '''${S.current.insufficient_funds_for_tx} \n\n''' + '''${S.current.balance}: ${parsedErrorMessageResult.balanceEth} ETH (${parsedErrorMessageResult.balanceUsd} USD)\n\n''' + '''${S.current.transaction_cost}: ${parsedErrorMessageResult.txCostEth} ETH (${parsedErrorMessageResult.txCostUsd} USD)\n\n''' + '''${S.current.overshot}: ${parsedErrorMessageResult.overshotEth} ETH (${parsedErrorMessageResult.overshotUsd} USD)'''; } return errorMessage; @@ -767,4 +783,4 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor return false; } -} +} \ No newline at end of file diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index cfcbca1633..1b1f37e1ee 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "الأسئلة الشائعة", "frozen": "مجمدة", "full_balance": "الرصيد الكامل", + "gas_exceeds_allowance": "الغاز المطلوب بالمعاملة يتجاوز البدل.", "generate_name": "توليد الاسم", "generating_gift_card": "يتم توليد بطاقة هدية", "get_a": "احصل على", @@ -360,6 +361,7 @@ "incoming": "الواردة", "incorrect_seed": "النص الذي تم إدخاله غير صالح.", "inputs": "المدخلات", + "insufficient_funds_for_tx": "أموال غير كافية لتنفيذ المعاملة بنجاح.", "insufficient_lamport_for_tx": "ليس لديك ما يكفي من SOL لتغطية المعاملة ورسوم المعاملات الخاصة بها. يرجى إضافة المزيد من SOL إلى محفظتك أو تقليل كمية SOL التي ترسلها.", "insufficient_lamports": "ليس لديك ما يكفي من SOL لتغطية المعاملة ورسوم المعاملات الخاصة بها. تحتاج على الأقل ${solValueNeeded} sol. يرجى إضافة المزيد من sol إلى محفظتك أو تقليل مبلغ sol الذي ترسله", "insufficientFundsForRentError": "ليس لديك ما يكفي من SOL لتغطية رسوم المعاملة والإيجار للحساب. يرجى إضافة المزيد من sol إلى محفظتك أو تقليل مبلغ sol الذي ترسله", @@ -480,6 +482,7 @@ "outdated_electrum_wallet_receive_warning": "إذا كانت هذه المحفظة تحتوي على سييد مكونة من 12 كلمة وتم إنشاؤها في Cake ، فلا تقم بإيداع Bitcoin في هذه المحفظة. قد يتم فقد أي BTC تم تحويله إلى هذه المحفظة. قم بإنشاء محفظة جديدة مكونة من 24 كلمة (انقر فوق القائمة في الجزء العلوي الأيمن ، وحدد محافظ ، واختر إنشاء محفظة جديدة ، ثم حدد Bitcoin) وقم على الفور بنقل BTC الخاص بك هناك. محافظ BTC الجديدة (24 كلمة) من Cake آمنة", "outgoing": "الصادره", "outputs": "المخرجات", + "overshot": "طغمة", "overwrite_amount": "تغير المبلغ", "pairingInvalidEvent": "ﺢﻟﺎﺻ ﺮﻴﻏ ﺙﺪﺣ ﻥﺍﺮﻗﺇ", "passphrase": "عبارة الممر (اختياري)", @@ -828,6 +831,7 @@ "trade_state_underpaid": "أجر أقل من اللازم", "trade_state_unpaid": "غير مدفوعة", "trades": "عمليات التداول", + "transaction_cost": "تكلفة المعاملة", "transaction_details_amount": "مقدار", "transaction_details_copied": "تم نسخ ${title} إلى الحافظة", "transaction_details_date": "تاريخ", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index b9197a8eab..36ecd4b5dd 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "Често задавани въпроси", "frozen": "Замразени", "full_balance": "Пълен баланс", + "gas_exceeds_allowance": "Газът, изискван от транзакцията, надвишава надбавката.", "generate_name": "Генериране на име", "generating_gift_card": "Създаване на Gift Card", "get_a": "Вземете ", @@ -360,6 +361,7 @@ "incoming": "Входящи", "incorrect_seed": "Въведеният текст е невалиден.", "inputs": "Входове", + "insufficient_funds_for_tx": "Недостатъчни средства за успешно извършване на транзакция.", "insufficient_lamport_for_tx": "Нямате достатъчно SOL, за да покриете транзакцията и таксата му за транзакция. Моля, добавете повече SOL към портфейла си или намалете сумата на SOL, която изпращате.", "insufficient_lamports": "Нямате достатъчно SOL, за да покриете транзакцията и таксата му за транзакция. Имате нужда от поне ${solValueNeeded} sol. Моля, добавете повече SOL към портфейла си или намалете сумата на SOL, която изпращате", "insufficientFundsForRentError": "Нямате достатъчно SOL, за да покриете таксата за транзакцията и наемането на сметката. Моля, добавете повече SOL към портфейла си или намалете сумата на SOL, която изпращате", @@ -480,6 +482,7 @@ "outdated_electrum_wallet_receive_warning": "Ако този адрес има seed от 12 думи и е създаден чрез Cake, НЕ добавяйте Bitcoin в него. Всякакъв Bitcoin, изпратен на този адрес, може да бъде загубен завинаги. Създайте нов портфейл от 24 думи (натиснете менюто горе, вдясно, изберете Портфейли, изберете Създаване на нов портфейл, след това изберете Bitcoin) и НЕЗАБАВНО преместете своя Bitcoin там. Нови (такива с 24 думи) Bitcoin портфейли от Cake са надеждни", "outgoing": "Изходящи", "outputs": "Изходи", + "overshot": "Превишаване", "overwrite_amount": "Промени сума", "pairingInvalidEvent": "Невалидно събитие при сдвояване", "passphrase": "Passphrase (по избор)", @@ -828,6 +831,7 @@ "trade_state_underpaid": "Недостатъчно плащане", "trade_state_unpaid": "Неплатено", "trades": "Trades", + "transaction_cost": "Транзакционни разходи", "transaction_details_amount": "Сума", "transaction_details_copied": "${title} копирано", "transaction_details_date": "Дата", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index a3c3c03d61..af91ea6430 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "Často kladené otázky", "frozen": "Zmraženo", "full_balance": "Celkový zůstatek", + "gas_exceeds_allowance": "Plyn vyžadovaný transakcí přesahuje příspěvek.", "generate_name": "Generovat jméno", "generating_gift_card": "Generuji dárkovou kartu", "get_a": "Získejte ", @@ -360,6 +361,7 @@ "incoming": "Příchozí", "incorrect_seed": "Zadaný text není správný.", "inputs": "Vstupy", + "insufficient_funds_for_tx": "Nedostatečné prostředky na úspěšné provedení transakce.", "insufficient_lamport_for_tx": "Nemáte dostatek SOL na pokrytí transakce a jejího transakčního poplatku. Laskavě přidejte do své peněženky více solu nebo snižte množství Sol, kterou odesíláte.", "insufficient_lamports": "Nemáte dostatek SOL na pokrytí transakce a jejího transakčního poplatku. Potřebujete alespoň ${solValueNeeded} sol. Laskavě přidejte do své peněženky více SOL nebo snižte množství Sol, kterou odesíláte", "insufficientFundsForRentError": "Nemáte dostatek SOL na pokrytí transakčního poplatku a nájemného za účet. Laskavě přidejte do své peněženky více SOL nebo snižte množství Sol, kterou odesíláte", @@ -480,6 +482,7 @@ "outdated_electrum_wallet_receive_warning": "Tato peněženka má seed se 12 slovy a byla vytvořena pomocí Cake, NEUKLÁDEJTE Bitcoin na tuto peněženku. Jakékoliv BTC převedené na tuto peněženku může být ztraceno. Vytvořte si novou peněženku s 24 slovy (otevřete menu vpravo nahoře, vyberte Peněženky, zvolte Vytvořit novou peněženku a pak zvolte Bitcoin) a IHNED tam přesuňte své BTC. Nové (24-slovní) BTC peněženky z Cake jsou bezpečné", "outgoing": "Odchozí", "outputs": "Výstupy", + "overshot": "Překročení", "overwrite_amount": "Přepsat částku", "pairingInvalidEvent": "Neplatná událost párování", "passphrase": "Passphrase (volitelné)", @@ -828,6 +831,7 @@ "trade_state_underpaid": "Zaplaceno méně", "trade_state_unpaid": "Nezaplaceno", "trades": "Obchody", + "transaction_cost": "Transakční náklady", "transaction_details_amount": "Částka", "transaction_details_copied": "${title} zkopírováno do schránky", "transaction_details_date": "Datum", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index 39b239f975..f09b8c7149 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "Häufig gestellte Fragen", "frozen": "Gefroren", "full_balance": "Gesamtguthaben", + "gas_exceeds_allowance": "Die durch Transaktion erforderliche Gas übertrifft die Zulage.", "generate_name": "Namen generieren", "generating_gift_card": "Geschenkkarte wird erstellt", "get_a": "Hole ein", @@ -360,6 +361,7 @@ "incoming": "Eingehend", "incorrect_seed": "Der eingegebene Text ist ungültig.", "inputs": "Eingänge", + "insufficient_funds_for_tx": "Unzureichende Mittel zur erfolgreichen Ausführung der Transaktion.", "insufficient_lamport_for_tx": "Sie haben nicht genug SOL, um die Transaktion und ihre Transaktionsgebühr abzudecken. Bitte fügen Sie Ihrer Wallet mehr Sol hinzu oder reduzieren Sie die SOL-Menge, die Sie senden.", "insufficient_lamports": "Sie haben nicht genug SOL, um die Transaktion und ihre Transaktionsgebühr abzudecken. Sie brauchen mindestens ${solValueNeeded} Sol. Bitte fügen Sie mehr Sol zu Ihrer Wallet hinzu oder reduzieren Sie den von Ihnen gesendeten Sol-Betrag", "insufficientFundsForRentError": "Sie haben nicht genug SOL, um die Transaktionsgebühr und die Miete für das Konto zu decken. Bitte fügen Sie mehr Sol zu Ihrer Wallet hinzu oder reduzieren Sie den von Ihnen gesendeten Sol-Betrag", @@ -480,6 +482,7 @@ "outdated_electrum_wallet_receive_warning": "Wenn diese Wallet einen 12-Wort-Seed hat und in Cake erstellt wurde, zahlen Sie KEINE Bitcoins in diese Wallet ein. Alle auf diese Wallet übertragenen BTC können verloren gehen. Erstellen Sie eine neue 24-Wort-Wallet (tippen Sie auf das Menü oben rechts, wählen Sie Wallets, wählen Sie Neue Wallet erstellen und dann Bitcoin) und verschieben Sie Ihre BTC SOFORT dorthin. Neue (24-Wort-)BTC-Wallets von Cake sind sicher", "outgoing": "Ausgehend", "outputs": "Ausgänge", + "overshot": "Überschreiten", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Paarung ungültiges Ereignis", "passphrase": "Passphrase (optional)", @@ -829,6 +832,7 @@ "trade_state_underpaid": "Unterbezahlt", "trade_state_unpaid": "Unbezahlt", "trades": "Börsen", + "transaction_cost": "Transaktionskosten", "transaction_details_amount": "Betrag", "transaction_details_copied": "${title} in die Zwischenablage kopiert", "transaction_details_date": "Datum", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 496ac1afc7..86d807d8f1 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "Frequently asked questions", "frozen": "Frozen", "full_balance": "Full Balance", + "gas_exceeds_allowance": "Gas required by transaction exceeds allowance.", "generate_name": "Generate Name", "generating_gift_card": "Generating Gift Card", "get_a": "Get a ", @@ -360,6 +361,7 @@ "incoming": "Incoming", "incorrect_seed": "The text entered is not valid.", "inputs": "Inputs", + "insufficient_funds_for_tx": "Insufficient funds to successfully execute transaction.", "insufficient_lamport_for_tx": "You do not have enough SOL to cover the transaction and its transaction fee. Kindly add more SOL to your wallet or reduce the SOL amount you\\'re sending.", "insufficient_lamports": "You do not have enough SOL to cover the transaction and its transaction fee. You need at least ${solValueNeeded} SOL. Kindly add more SOL to your wallet or reduce the SOL amount you\\'re sending", "insufficientFundsForRentError": "You do not have enough SOL to cover the transaction fee and rent for the account. Kindly add more SOL to your wallet or reduce the SOL amount you\\'re sending", @@ -480,6 +482,7 @@ "outdated_electrum_wallet_receive_warning": "If this wallet has a 12-word seed and was created in Cake, DO NOT deposit Bitcoin into this wallet. Any BTC transferred to this wallet may be lost. Create a new 24-word wallet (tap the menu at the top right, select Wallets, choose Create New Wallet, then select Bitcoin) and IMMEDIATELY move your BTC there. New (24-word) BTC wallets from Cake are secure", "outgoing": "Outgoing", "outputs": "Outputs", + "overshot": "Overshot", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Pairing Invalid Event", "passphrase": "Passphrase (Optional)", @@ -828,6 +831,7 @@ "trade_state_underpaid": "Underpaid", "trade_state_unpaid": "Unpaid", "trades": "Trades", + "transaction_cost": "Transaction Cost", "transaction_details_amount": "Amount", "transaction_details_copied": "${title} copied to Clipboard", "transaction_details_date": "Date", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index f44909fe44..4c0d16b98f 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "Preguntas frecuentes", "frozen": "Congelada", "full_balance": "Balance completo", + "gas_exceeds_allowance": "El gas requerido por la transacción excede la asignación.", "generate_name": "Generar nombre", "generating_gift_card": "Generando tarjeta de regalo", "get_a": "Obtener un", @@ -360,6 +361,7 @@ "incoming": "Entrante", "incorrect_seed": "El texto ingresado no es válido.", "inputs": "Entradas", + "insufficient_funds_for_tx": "Fondos insuficientes para ejecutar con éxito la transacción.", "insufficient_lamport_for_tx": "No tienes suficiente SOL para cubrir la transacción y su tarifa de transacción. Por favor, agrega más SOL a su billetera o reduce la cantidad de sol que está enviando.", "insufficient_lamports": "No tienes suficiente SOL para cubrir la transacción y su tarifa de transacción. Necesita al menos ${solValueNeeded} sol. Por favor, agrega más sol a su billetera o reduzca la cantidad de sol que está enviando", "insufficientFundsForRentError": "No tienes suficiente SOL para cubrir la tarifa de transacción y alquilar para la cuenta. Por favor, agrega más sol a su billetera o reduce la cantidad de sol que está enviando", @@ -480,6 +482,7 @@ "outdated_electrum_wallet_receive_warning": "Si esta billetera tiene una semilla de 12 palabras y se creó en Cake, NO deposite Bitcoin en esta billetera. Cualquier BTC transferido a esta billetera se puede perder. Cree una nueva billetera de 24 palabras (toque el menú en la parte superior derecha, seleccione Monederos, elija Crear nueva billetera, luego seleccione Bitcoin) e INMEDIATAMENTE mueva su BTC allí. Las nuevas carteras BTC (24 palabras) de Cake son seguras", "outgoing": "Saliente", "outputs": "Salidas", + "overshot": "Sobrepasar", "overwrite_amount": "Sobreescribir monto", "pairingInvalidEvent": "Evento de emparejamiento no válido", "passphrase": "Passfrase (opcional)", @@ -829,6 +832,7 @@ "trade_state_underpaid": "Poco pagado", "trade_state_unpaid": "No pagado", "trades": "Cambios", + "transaction_cost": "Costo de transacción", "transaction_details_amount": "Cantidad", "transaction_details_copied": "${title} Copiado al portapapeles", "transaction_details_date": "Fecha", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index fd22e40fce..c15366f5ad 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "Foire aux questions", "frozen": "Gelées", "full_balance": "Solde Complet", + "gas_exceeds_allowance": "Le gaz requis par la transaction dépasse l'allocation.", "generate_name": "Générer un nom", "generating_gift_card": "Génération d'une carte-cadeau", "get_a": "Obtenir un ", @@ -360,6 +361,7 @@ "incoming": "Entrantes", "incorrect_seed": "Le texte entré est invalide.", "inputs": "Contributions", + "insufficient_funds_for_tx": "Fonds insuffisants pour exécuter avec succès la transaction.", "insufficient_lamport_for_tx": "Vous n'avez pas assez de sol pour couvrir la transaction et ses frais de transaction. Veuillez ajouter plus de Sol à votre portefeuille ou réduire la quantité de Sol que vous envoyez.", "insufficient_lamports": "Vous n'avez pas assez de sol pour couvrir la transaction et ses frais de transaction. Vous avez besoin d'au moins ${solValueNeeded} sol. Veuillez ajouter plus de Sol à votre portefeuille ou réduire la quantité de sol que vous envoyez", "insufficientFundsForRentError": "Vous n'avez pas assez de SOL pour couvrir les frais de transaction et le loyer pour le compte. Veuillez ajouter plus de Sol à votre portefeuille ou réduire la quantité de sol que vous envoyez", @@ -480,6 +482,7 @@ "outdated_electrum_wallet_receive_warning": "Si ce portefeuille (wallet) a une phrase secrète (seed) de 12 mots et a été créé dans Cake, NE PAS y déposer de Bitcoin. Tous les BTC transférés vers ce portefeuille seront perdus. Créez un nouveau portefeuille avec phrase secrète de 24 mots (appuyez sur le menu en haut à droite, sélectionnez Portefeuilles puis Créer un Nouveau Portefeuille et enfin Bitcoin) et transférez y IMMÉDIATEMENT vos BTC. Les nouveaux portefeuilles BTC Cake (avec phrase secrète de 24 mots) sont sécurisés", "outgoing": "Sortantes", "outputs": "Les sorties", + "overshot": "Surnommer", "overwrite_amount": "Remplacer le montant", "pairingInvalidEvent": "Événement de couplage non valide", "passphrase": "Phrase de passe (facultative)", @@ -828,6 +831,7 @@ "trade_state_underpaid": "Sous payé", "trade_state_unpaid": "Non payé", "trades": "Échanges", + "transaction_cost": "Coût de la transaction", "transaction_details_amount": "Montant", "transaction_details_copied": "${title} copié vers le presse-papier", "transaction_details_date": "Date", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 4efffb5795..d95f87bbff 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "Tambayoyin da ake yawan yi", "frozen": "Daskararre", "full_balance": "DUKAN KUDI", + "gas_exceeds_allowance": "Gas da ake buƙata ta hanyar ma'amala ya wuce izini.", "generate_name": "Ƙirƙirar Suna", "generating_gift_card": "Samar da Katin Kyauta", "get_a": "Samu a", @@ -360,6 +361,7 @@ "incoming": "Mai shigowa", "incorrect_seed": "rubutun da aka shigar ba shi da inganci.", "inputs": "Abubuwan da ke ciki", + "insufficient_funds_for_tx": "Rashin isasshen kuɗi don aiwatar da ma'amala.", "insufficient_lamport_for_tx": "Ba ku da isasshen sool don rufe ma'amala da kuɗin ma'amala. Da unara ƙara ƙarin sool a cikin walat ɗinku ko rage adadin Sol ɗin da kuke aikawa.", "insufficient_lamports": "Ba ku da isasshen sool don rufe ma'amala da kuɗin ma'amala. Kuna buƙatar aƙalla ${solValueNeeded} Sol. Da kyau ƙara ƙarin sool zuwa walat ɗinku ko rage adadin Sol ɗin da kuke aikawa", "insufficientFundsForRentError": "Ba ku da isasshen Sol don rufe kuɗin ma'amala da haya don asusun. Da kyau ƙara ƙarin sool zuwa walat ɗinku ko rage adadin Sol ɗin da kuke aikawa", @@ -482,6 +484,7 @@ "outdated_electrum_wallet_receive_warning": "Idan wannan walat ɗin yana da nau'in kalma 12 kuma an ƙirƙira shi a cikin Cake, KAR KA saka Bitcoin cikin wannan jakar. Duk wani BTC da aka canjawa wuri zuwa wannan walat na iya ɓacewa. Ƙirƙiri sabon walat mai kalmomi 24 (matsa menu a saman dama, zaɓi Wallets, zaɓi Ƙirƙiri Sabon Wallet, sannan zaɓi Bitcoin) kuma NAN nan take matsar da BTC ɗin ku a can. Sabbin (kalmomi 24) BTC wallets daga Cake suna da tsaro", "outgoing": "Mai fita", "outputs": "Abubuwan fashewa", + "overshot": "Oveshot", "overwrite_amount": "Rubuta adadin", "pairingInvalidEvent": "Haɗa Lamarin mara inganci", "passphrase": "Passphrase (Zabi)", @@ -830,6 +833,7 @@ "trade_state_underpaid": "ba a biya gaba ɗaya ba", "trade_state_unpaid": "ba a biya ba", "trades": "Cinikai", + "transaction_cost": "Kudin kasuwanci", "transaction_details_amount": "Adadin", "transaction_details_copied": "${title} an kwafa zuwa cikin kwafin", "transaction_details_date": "Kwanan wata", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 4659b45eb0..6f655fe732 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "अक्सर पूछे जाने वाले प्रश्न", "frozen": "जमा हुआ", "full_balance": "पूर्ण संतुलन", + "gas_exceeds_allowance": "लेनदेन द्वारा आवश्यक गैस भत्ता से अधिक है।", "generate_name": "नाम जनरेट करें", "generating_gift_card": "गिफ्ट कार्ड जनरेट कर रहा है", "get_a": "एक प्राप्त करें", @@ -360,6 +361,7 @@ "incoming": "आने वाली", "incorrect_seed": "दर्ज किया गया पाठ मान्य नहीं है।", "inputs": "इनपुट", + "insufficient_funds_for_tx": "लेनदेन को सफलतापूर्वक निष्पादित करने के लिए अपर्याप्त धन।", "insufficient_lamport_for_tx": "आपके पास लेनदेन और इसके लेनदेन शुल्क को कवर करने के लिए पर्याप्त सोल नहीं है। कृपया अपने बटुए में अधिक सोल जोड़ें या आपके द्वारा भेजे जा रहे सोल राशि को कम करें।", "insufficient_lamports": "आपके पास लेनदेन और इसके लेनदेन शुल्क को कवर करने के लिए पर्याप्त सोल नहीं है। आपको कम से कम ${solValueNeeded} सोल की आवश्यकता है। कृपया अपने बटुए में अधिक सोल जोड़ें या सोल राशि को कम करें जिसे आप भेज रहे हैं", "insufficientFundsForRentError": "आपके पास लेन -देन शुल्क और खाते के लिए किराए को कवर करने के लिए पर्याप्त सोल नहीं है। कृपया अपने बटुए में अधिक सोल जोड़ें या सोल राशि को कम करें जिसे आप भेज रहे हैं", @@ -480,6 +482,7 @@ "outdated_electrum_wallet_receive_warning": "अगर इस वॉलेट में 12 शब्दों का बीज है और इसे केक में बनाया गया है, तो इस वॉलेट में बिटकॉइन जमा न करें। इस वॉलेट में स्थानांतरित किया गया कोई भी बीटीसी खो सकता है। एक नया 24-शब्द वॉलेट बनाएं (ऊपर दाईं ओर स्थित मेनू पर टैप करें, वॉलेट चुनें, नया वॉलेट बनाएं चुनें, फिर बिटकॉइन चुनें) और तुरंत अपना बीटीसी वहां ले जाएं। केक से नए (24-शब्द) बीटीसी वॉलेट सुरक्षित हैं", "outgoing": "निवर्तमान", "outputs": "आउटपुट", + "overshot": "कम पड़ गया", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "अमान्य ईवेंट युग्मित करना", "passphrase": "पासफ्रेज़ (वैकल्पिक)", @@ -830,6 +833,7 @@ "trade_state_underpaid": "के तहत भुगतान किया", "trade_state_unpaid": "अवैतनिक", "trades": "ट्रेडों", + "transaction_cost": "लेन -देन लागत", "transaction_details_amount": "रकम", "transaction_details_copied": "${title} क्लिपबोर्ड पर नकल", "transaction_details_date": "तारीख", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index d7f9293db1..67a41ab2a8 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "Često postavljana pitanja", "frozen": "Smrznuto", "full_balance": "Pun iznos", + "gas_exceeds_allowance": "Plin potreban transakcijom premašuje dodatak.", "generate_name": "Generiraj ime", "generating_gift_card": "Generiranje darovne kartice", "get_a": "Nabavite ", @@ -360,6 +361,7 @@ "incoming": "Dolazno", "incorrect_seed": "Uneseni tekst nije valjan.", "inputs": "Unosi", + "insufficient_funds_for_tx": "Nedovoljna sredstva za uspješno izvršavanje transakcije.", "insufficient_lamport_for_tx": "Nemate dovoljno SOL -a da pokriva transakciju i njegovu transakcijsku naknadu. Ljubazno dodajte više sol u svoj novčanik ili smanjite količinu SOL -a koju šaljete.", "insufficient_lamports": "Nemate dovoljno SOL -a da pokriva transakciju i njegovu transakcijsku naknadu. Trebate najmanje ${solValueNeeded} sol. Ljubazno dodajte više sol u svoj novčanik ili smanjite količinu SOL -a koju šaljete", "insufficientFundsForRentError": "Nemate dovoljno SOL -a za pokrivanje naknade za transakciju i najamninu za račun. Ljubazno dodajte više sol u svoj novčanik ili smanjite količinu SOL -a koju šaljete", @@ -480,6 +482,7 @@ "outdated_electrum_wallet_receive_warning": "Ako ovaj novčanik sadrži sjeme od 12 riječi i stvoren je u Torti, NEMOJTE polagati Bitcoin u ovaj novčanik. Bilo koji BTC prebačen u ovaj novčanik može se izgubiti. Stvorite novi novčanik od 24 riječi (taknite izbornik u gornjem desnom dijelu, odaberite Novčanici, odaberite Stvori novi novčanik, a zatim odaberite Bitcoin) i ODMAH premjestite svoj BTC tamo. Novi BTC novčanici (s 24 riječi) tvrtke Cake sigurni su", "outgoing": "Odlazno", "outputs": "Izlazi", + "overshot": "Zalijepiti", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Nevažeći događaj uparivanja", "passphrase": "Prolaznica (neobavezno)", @@ -828,6 +831,7 @@ "trade_state_underpaid": "Nedovoljno plaćen", "trade_state_unpaid": "Neplaćen", "trades": "Razmjene", + "transaction_cost": "Trošak transakcije", "transaction_details_amount": "Iznos", "transaction_details_copied": "${title} kopiran u međuspremnik", "transaction_details_date": "Datum", diff --git a/res/values/strings_hy.arb b/res/values/strings_hy.arb index d323844da9..c6e5b2d137 100644 --- a/res/values/strings_hy.arb +++ b/res/values/strings_hy.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "Հաճախ տրվող հարցեր", "frozen": "Կասեցված", "full_balance": "Լրիվ մնացորդ", + "gas_exceeds_allowance": "Գործարքով պահանջվող գազը գերազանցում է նպաստը:", "generate_name": "Գեներացնել անուն", "generating_gift_card": "Գեներացնում է նվեր քարտ", "get_a": "Ստանալ ", @@ -360,6 +361,7 @@ "incoming": "Մուտքային", "incorrect_seed": "Տեքստը սխալ է", "inputs": "Մուտքեր", + "insufficient_funds_for_tx": "Անբավարար միջոցներ `գործարքը հաջողությամբ կատարելու համար:", "insufficient_lamport_for_tx": "Դուք չունեք բավարար SOL՝ գործարքն և գործարքի վարձը ծածկելու համար։ Խնդրում ենք ավելացնել ավելի շատ SOL ձեր դրամապանակում կամ նվազեցնել ուղարկվող SOL-ի քանակը։", "insufficient_lamports": "Դուք չունեք բավարար SOL՝ գործարքն և գործարքի վարձը ծածկելու համար։ Ձեզ անհրաժեշտ է առնվազն ${solValueNeeded} SOL։ Խնդրում ենք ավելացնել ավելի շատ SOL ձեր դրամապանակում կամ նվազեցնել ուղարկվող SOL-ի քանակը։", "insufficientFundsForRentError": "Ձեր մնացորդը բավարար չէ վարձակալության համար: Խնդրում ենք ավելացնել մնացորդը կամ նվազեցնել ուղարկվող գումարը", @@ -480,6 +482,7 @@ "outdated_electrum_wallet_receive_warning": "Եթե այս դրամապանակը 12 բառանոց սերմ ունի և ստեղծվել է Cake-ում, Bitcoin մուծել այս դրամապանակ մի տեղափոխեք։ Որեւէ Bitcoin այս դրամապանակ տեղափոխվել կարող է կորած լինել։ Ստեղծեք նոր 24-բառանոց Bitcoin դրամապանակ (սեղմեք վերևի աջ մենյուն, ընտրեք Դրամապանակներ, ընտրեք Նոր Դրամապանակ, ապա ընտրեք Bitcoin) և տեղափոխեք ձեր ԲԻՏԿ-ն այնտեղ", "outgoing": "Ելքային", "outputs": "Ելքեր", + "overshot": "Ցանց", "overwrite_amount": "Գրեք գումարը", "pairingInvalidEvent": "Սխալ միացում", "passphrase": "Պարող արտահայտություն (Ոչ պարտադիր)", @@ -828,6 +831,7 @@ "trade_state_underpaid": "Վճարված է, բայց ոչ ամբողջությամբ", "trade_state_unpaid": "Վճարված չէ", "trades": "Գործարքներ", + "transaction_cost": "Գործարքի արժեքը", "transaction_details_amount": "Գումար", "transaction_details_copied": "${title} պատճենված է գրանցամատյան", "transaction_details_date": "Ամսաթիվ", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index bde875a495..2ffe0b9558 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "Pertanyaan yang sering diajukan", "frozen": "Dibekukan", "full_balance": "Saldo Penuh", + "gas_exceeds_allowance": "Gas yang dibutuhkan oleh transaksi melebihi tunjangan.", "generate_name": "Hasilkan Nama", "generating_gift_card": "Membuat Kartu Hadiah", "get_a": "Dapatkan ", @@ -360,6 +361,7 @@ "incoming": "Masuk", "incorrect_seed": "Teks yang dimasukkan tidak valid.", "inputs": "Input", + "insufficient_funds_for_tx": "Dana yang tidak mencukupi untuk berhasil menjalankan transaksi.", "insufficient_lamport_for_tx": "Anda tidak memiliki cukup SOL untuk menutupi transaksi dan biaya transaksinya. Mohon tambahkan lebih banyak sol ke dompet Anda atau kurangi jumlah sol yang Anda kirim.", "insufficient_lamports": "Anda tidak memiliki cukup SOL untuk menutupi transaksi dan biaya transaksinya. Anda membutuhkan setidaknya ${solValueNeeded} sol. Mohon tambahkan lebih banyak sol ke dompet Anda atau kurangi jumlah sol yang Anda kirim", "insufficientFundsForRentError": "Anda tidak memiliki cukup SOL untuk menutupi biaya transaksi dan menyewa untuk akun tersebut. Mohon tambahkan lebih banyak sol ke dompet Anda atau kurangi jumlah sol yang Anda kirim", @@ -482,6 +484,7 @@ "outdated_electrum_wallet_receive_warning": "Jika dompet ini memiliki biji semai 12 kata dan dibuat di Cake, JANGAN deposit Bitcoin ke dalam dompet ini. BTC apapun yang ditransfer ke dompet ini mungkin hilang. Buat dompet 24 kata baru (ketuk menu di pojok kanan atas, pilih Dompet, pilih Buat Dompet Baru, lalu pilih Bitcoin) dan SEGERA pindahkan BTC Anda ke sana. Dompet BTC (24 kata) baru dari Cake aman", "outgoing": "Keluar", "outputs": "Output", + "overshot": "Overshot", "overwrite_amount": "Timpa jumlah", "pairingInvalidEvent": "Menyandingkan Acara Tidak Valid", "passphrase": "Frasa sandi (opsional)", @@ -831,6 +834,7 @@ "trade_state_underpaid": "Kurang bayar", "trade_state_unpaid": "Belum dibayar", "trades": "Perdagangan", + "transaction_cost": "Biaya transaksi", "transaction_details_amount": "Jumlah", "transaction_details_copied": "${title} disalin ke Clipboard", "transaction_details_date": "Tanggal", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 5b719d4eca..4dc5662a89 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -327,6 +327,7 @@ "frequently_asked_questions": "Domande frequenti", "frozen": "Congelato", "full_balance": "Saldo Completo", + "gas_exceeds_allowance": "Il gas richiesto dalla transazione supera l'indennità.", "generate_name": "Genera nome", "generating_gift_card": "Generazione carta regalo", "get_a": "Prendi un ", @@ -361,6 +362,7 @@ "incoming": "In arrivo", "incorrect_seed": "Il testo inserito non è valido.", "inputs": "Input", + "insufficient_funds_for_tx": "Fondi insufficienti per eseguire correttamente la transazione.", "insufficient_lamport_for_tx": "Non hai abbastanza SOL per coprire la transazione e la sua quota di transazione. Si prega di aggiungere più SOL al tuo portafoglio o ridurre l'importo SOL che stai inviando.", "insufficient_lamports": "Non hai abbastanza SOL per coprire la transazione e la sua quota di transazione. Hai bisogno di almeno ${solValueNeeded} sol. Si prega di aggiungere più SOL al tuo portafoglio o ridurre l'importo SOL che stai inviando", "insufficientFundsForRentError": "Non hai abbastanza SOL per coprire la tassa di transazione e l'affitto per il conto. Si prega di aggiungere più SOL al tuo portafoglio o ridurre l'importo SOL che stai inviando", @@ -482,6 +484,7 @@ "outdated_electrum_wallet_receive_warning": "Se questo portafoglio ha un seme di 12 parole ed è stato creato in Cake, NON depositare Bitcoin in questo portafoglio. Qualsiasi BTC trasferito su questo portafoglio potrebbe andare perso. Crea un nuovo portafoglio di 24 parole (tocca il menu in alto a destra, seleziona Portafogli, scegli Crea nuovo portafoglio, quindi seleziona Bitcoin) e sposta IMMEDIATAMENTE lì il tuo BTC. I nuovi portafogli BTC (24 parole) di Cake sono sicuri", "outgoing": "In uscita", "outputs": "Output", + "overshot": "Overs -shot", "overwrite_amount": "Sovrascrivi quantità", "pairingInvalidEvent": "Associazione evento non valido", "passphrase": "Passphrase (opzionale)", @@ -830,6 +833,7 @@ "trade_state_underpaid": "Sottopagato", "trade_state_unpaid": "Non pagato", "trades": "Scambi", + "transaction_cost": "Costo delle transazioni", "transaction_details_amount": "Ammontare", "transaction_details_copied": "${title} copiati negli Appunti", "transaction_details_date": "Data", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 631af702ce..59fbb7adf4 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "よくある質問", "frozen": "凍った", "full_balance": "フルバランス", + "gas_exceeds_allowance": "取引に必要なガスは、手当を超えています。", "generate_name": "名前の生成", "generated_gift_card": "ギフトカードの生成", "generating_gift_card": "ギフトカードの生成", @@ -361,6 +362,7 @@ "incoming": "着信", "incorrect_seed": "入力されたテキストは無効です。", "inputs": "入力", + "insufficient_funds_for_tx": "トランザクションを正常に実行するための資金が不十分です。", "insufficient_lamport_for_tx": "トランザクションとその取引手数料をカバーするのに十分なSOLがありません。財布にソルを追加するか、送信するソル量を減らしてください。", "insufficient_lamports": "トランザクションとその取引手数料をカバーするのに十分なSOLがありません。少なくとも${solValueNeeded} solが必要です。財布にソルを追加するか、送信するソル量を減らしてください", "insufficientFundsForRentError": "アカウントの取引料金とレンタルをカバーするのに十分なソルがありません。財布にソルを追加するか、送信するソル量を減らしてください", @@ -481,6 +483,7 @@ "outdated_electrum_wallet_receive_warning": "このウォレットに 12 ワードのシードがあり、Cake で作成された場合、このウォレットにビットコインを入金しないでください。 このウォレットに転送された BTC は失われる可能性があります。 新しい 24 ワードのウォレットを作成し (右上のメニューをタップし、[ウォレット]、[新しいウォレットの作成]、[ビットコイン] の順に選択)、すぐに BTC をそこに移動します。 Cake の新しい (24 ワード) BTC ウォレットは安全です", "outgoing": "発信", "outputs": "出力", + "overshot": "オーバーショット", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "ペアリング無効イベント", "passphrase": "パスフレーズ(オプション)", @@ -829,6 +832,7 @@ "trade_state_underpaid": "支払不足", "trade_state_unpaid": "未払い", "trades": "取引", + "transaction_cost": "取引コスト", "transaction_details_amount": "量", "transaction_details_copied": "${title} クリップボードにコピーしました", "transaction_details_date": "日付", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 74b4d4b31a..2e7793edb8 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "자주 묻는 질문", "frozen": "겨울 왕국", "full_balance": "풀 밸런스", + "gas_exceeds_allowance": "거래에 필요한 가스는 수당을 초과합니다.", "generate_name": "이름 생성", "generating_gift_card": "기프트 카드 생성 중", "get_a": "가져오기", @@ -360,6 +361,7 @@ "incoming": "들어오는", "incorrect_seed": "입력하신 텍스트가 유효하지 않습니다.", "inputs": "입력", + "insufficient_funds_for_tx": "거래를 성공적으로 실행하기위한 자금이 충분하지 않습니다.", "insufficient_lamport_for_tx": "거래 및 거래 수수료를 충당하기에 충분한 SOL이 없습니다. 지갑에 더 많은 솔을 추가하거나 보내는 솔을 줄입니다.", "insufficient_lamports": "거래 및 거래 수수료를 충당하기에 충분한 SOL이 없습니다. 최소 ${solValueNeeded} sol이 필요합니다. 지갑에 더 많은 솔을 추가하거나 보내는 솔을 줄이십시오.", "insufficientFundsForRentError": "거래 수수료와 계좌 임대료를 충당하기에 충분한 SOL이 없습니다. 지갑에 더 많은 솔을 추가하거나 보내는 솔을 줄이십시오.", @@ -480,6 +482,7 @@ "outdated_electrum_wallet_receive_warning": "이 지갑에 12 단어 시드가 있고 Cake에서 생성 된 경우이 지갑에 비트 코인을 입금하지 마십시오. 이 지갑으로 전송 된 모든 BTC는 손실 될 수 있습니다. 새로운 24 단어 지갑을 생성하고 (오른쪽 상단의 메뉴를 탭하고 지갑을 선택한 다음 새 지갑 생성을 선택한 다음 비트 코인을 선택하십시오) 즉시 BTC를 그곳으로 이동하십시오. Cake의 새로운 (24 단어) BTC 지갑은 안전합니다", "outgoing": "나가는", "outputs": "출력", + "overshot": "오버 샷", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "잘못된 이벤트 페어링", "passphrase": "암호화 (선택 사항)", @@ -829,6 +832,7 @@ "trade_state_underpaid": "미지급", "trade_state_unpaid": "미지급", "trades": "거래", + "transaction_cost": "거래 비용", "transaction_details_amount": "양", "transaction_details_copied": "${title} 클립 보드에 복사", "transaction_details_date": "날짜", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index 88719b1ba4..f86beb0f7a 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "မေးလေ့ရှိသောမေးခွန်းများ", "frozen": "ဖြူဖြူ", "full_balance": "Balance အပြည့်", + "gas_exceeds_allowance": "ငွေပေးငွေယူမှလိုအပ်သောဓာတ်ငွေ့ထောက်ပံ့ကြေးကျော်လွန်။", "generate_name": "အမည်ဖန်တီးပါ။", "generating_gift_card": "လက်ဆောင်ကတ်ထုတ်ပေးခြင်း။", "get_a": "တစ်ခုရယူပါ။", @@ -360,6 +361,7 @@ "incoming": "ဝင်လာ", "incorrect_seed": "ထည့်သွင်းထားသော စာသားသည် မမှန်ကန်ပါ။", "inputs": "သွင်းငေှ", + "insufficient_funds_for_tx": "ငွေပေးငွေယူအောင်မြင်စွာလုပ်ဆောင်ရန်ရန်ပုံငွေမလုံလောက်ပါ။", "insufficient_lamport_for_tx": "သငျသညျငွေပေးငွေယူနှင့်၎င်း၏ငွေပေးငွေယူကြေးကိုဖုံးလွှမ်းရန် sol ရှိသည်မဟုတ်ကြဘူး။ ကြင်နာစွာသင်၏ပိုက်ဆံအိတ်သို့ပိုမို sol ကိုထပ်ထည့်ပါသို့မဟုတ်သင်ပို့လွှတ်ခြင်း sol ပမာဏကိုလျှော့ချပါ။", "insufficient_lamports": "သငျသညျငွေပေးငွေယူနှင့်၎င်း၏ငွေပေးငွေယူကြေးကိုဖုံးလွှမ်းရန် sol ရှိသည်မဟုတ်ကြဘူး။ သင်အနည်းဆုံး ${solValueNeeded} s ကိုလိုအပ်ပါတယ်။ ကြင်နာစွာသင်၏ပိုက်ဆံအိတ်သို့ပိုမို sol ကိုထပ်ထည့်ပါသို့မဟုတ်သင်ပို့နေသော sol ပမာဏကိုလျှော့ချပါ", "insufficientFundsForRentError": "သင်ငွေပေးချေမှုအခကြေးငွေကိုဖုံးအုပ်ရန်နှင့်အကောင့်ငှားရန်လုံလောက်သော sol ရှိသည်မဟုတ်ကြဘူး။ ကြင်နာစွာသင်၏ပိုက်ဆံအိတ်သို့ပိုမို sol ကိုပိုမိုထည့်ပါသို့မဟုတ်သင်ပို့ခြင်း sol ပမာဏကိုလျှော့ချပါ", @@ -480,6 +482,7 @@ "outdated_electrum_wallet_receive_warning": "ဤပိုက်ဆံအိတ်တွင် စာလုံး 12 လုံးပါပြီး ကိတ်မုန့်တွင် ဖန်တီးပါက၊ Bitcoin ကို ဤပိုက်ဆံအိတ်ထဲသို့ မထည့်ပါနှင့်။ ဤပိုက်ဆံအိတ်သို့ လွှဲပြောင်းပေးသည့် မည်သည့် BTC မဆို ဆုံးရှုံးနိုင်သည်။ 24 စကားလုံးပိုက်ဆံအိတ်အသစ်တစ်ခုဖန်တီးပါ (ညာဘက်အပေါ်ထောင့်ရှိမီနူးကိုနှိပ်ပါ၊ Wallets ကိုရွေးချယ်ပါ၊ ပိုက်ဆံအိတ်အသစ်ဖန်တီးရန်ကိုရွေးချယ်ပါ၊ ထို့နောက် Bitcoin ကိုရွေးချယ်ပါ) နှင့်သင်၏ BTC ကိုထိုနေရာသို့ချက်ချင်းရွှေ့ပါ။ Cake မှ (24 စာလုံး) BTC ပိုက်ဆံအိတ်အသစ်များသည် လုံခြုံပါသည်။", "outgoing": "အထွက်", "outputs": "ထုတ်လုပ်မှု", + "overshot": "အလွန်အကျွံအိုး", "overwrite_amount": "ပမာဏကို ထပ်ရေးပါ။", "pairingInvalidEvent": "မမှန်ကန်သောဖြစ်ရပ်ကို တွဲချိတ်ခြင်း။", "passphrase": "passphrase (optional)", @@ -828,6 +831,7 @@ "trade_state_underpaid": "ပေးချေမှုနည်းပါးသည်။", "trade_state_unpaid": "အခကြေးငွေမယူရသေး", "trades": "ကုန်သွယ်မှုများ", + "transaction_cost": "ငွေပေးငွေယူကုန်ကျစရိတ်", "transaction_details_amount": "ပမာဏ", "transaction_details_copied": "${title} ကို Clipboard သို့ ကူးယူထားသည်။", "transaction_details_date": "ရက်စွဲ", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 59d8c05eef..7433972a48 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "Veelgestelde vragen", "frozen": "Bevroren", "full_balance": "Volledig saldo", + "gas_exceeds_allowance": "Gas vereist door transactie overschrijdt de vergoeding.", "generate_name": "Naam genereren", "generating_gift_card": "Cadeaubon genereren", "get_a": "Krijg een ", @@ -360,6 +361,7 @@ "incoming": "inkomend", "incorrect_seed": "De ingevoerde tekst is niet geldig.", "inputs": "Invoer", + "insufficient_funds_for_tx": "Onvoldoende fondsen om de transactie met succes uit te voeren.", "insufficient_lamport_for_tx": "U hebt niet genoeg SOL om de transactie en de transactiekosten te dekken. Voeg vriendelijk meer SOL toe aan uw portemonnee of verminder de SOL -hoeveelheid die u verzendt.", "insufficient_lamports": "U hebt niet genoeg SOL om de transactie en de transactiekosten te dekken. Je hebt minstens ${solValueNeeded} sol nodig. Voeg vriendelijk meer Sol toe aan uw portemonnee of verminder de SOL -hoeveelheid die u verzendt", "insufficientFundsForRentError": "U hebt niet genoeg SOL om de transactiekosten en huur voor de rekening te dekken. Voeg vriendelijk meer SOL toe aan uw portemonnee of verminder de SOL -hoeveelheid die u verzendt", @@ -480,6 +482,7 @@ "outdated_electrum_wallet_receive_warning": "Als deze portemonnee een seed van 12 woorden heeft en is gemaakt in Cake, stort dan GEEN Bitcoin in deze portemonnee. Elke BTC die naar deze portemonnee is overgebracht, kan verloren gaan. Maak een nieuwe portemonnee van 24 woorden (tik op het menu rechtsboven, selecteer Portefeuilles, kies Nieuwe portemonnee maken en selecteer vervolgens Bitcoin) en verplaats je BTC ONMIDDELLIJK daar. Nieuwe (24-woorden) BTC-portefeuilles van Cake zijn veilig", "outgoing": "Uitgaande", "outputs": "Uitgangen", + "overshot": "Overschrijden", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Koppelen Ongeldige gebeurtenis", "passphrase": "PassaspHRASE (optioneel)", @@ -828,6 +831,7 @@ "trade_state_underpaid": "Slecht betaald", "trade_state_unpaid": "Onbetaald", "trades": "Trades", + "transaction_cost": "Transactiekosten", "transaction_details_amount": "Bedrag", "transaction_details_copied": "${title} gekopieerd naar het klembord", "transaction_details_date": "Datum", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index a2793fccfc..a2cd617133 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "Często zadawane pytania", "frozen": "Zamrożone", "full_balance": "Pełne saldo", + "gas_exceeds_allowance": "Gaz wymagany przez transakcję przekracza dodatek.", "generate_name": "Wygeneruj nazwę", "generating_gift_card": "Generowanie karty podarunkowej", "get_a": "Zdobądź ", @@ -360,6 +361,7 @@ "incoming": "Przychodzące", "incorrect_seed": "Wprowadzony seed jest nieprawidłowy.", "inputs": "Wejścia", + "insufficient_funds_for_tx": "Niewystarczające fundusze na skuteczne wykonanie transakcji.", "insufficient_lamport_for_tx": "Nie masz wystarczającej ilości SOL, aby pokryć transakcję i opłatę za transakcję. Uprzejmie dodaj więcej sol do portfela lub zmniejsz wysyłaną kwotę SOL.", "insufficient_lamports": "Nie masz wystarczającej ilości SOL, aby pokryć transakcję i opłatę za transakcję. Potrzebujesz przynajmniej ${solValueNeeded} sol. Uprzejmie dodaj więcej sol do portfela lub zmniejsz wysyłaną kwotę SOL, którą wysyłasz", "insufficientFundsForRentError": "Nie masz wystarczającej ilości SOL, aby pokryć opłatę za transakcję i czynsz za konto. Uprzejmie dodaj więcej sol do portfela lub zmniejsz solę, którą wysyłasz", @@ -480,6 +482,7 @@ "outdated_electrum_wallet_receive_warning": "Jeśli ten portfel ma 12-wyrazowy seed i został utworzony w Cake, NIE Wpłacaj Bitcoina do tego portfela. Wszelkie BTC przeniesione do tego portfela mogą zostać utracone. Utwórz nowy portfel z 24 słowami (dotknij menu w prawym górnym rogu, wybierz Portfele, wybierz Utwórz nowy portfel, a następnie Bitcoin) i NATYCHMIAST przenieś tam swoje BTC. Nowe (24 słowa) portfele BTC Cake Wallet są bezpieczne", "outgoing": "Wychodzące", "outputs": "Wyjścia", + "overshot": "Przesadzanie", "overwrite_amount": "Nadpisz ilość", "pairingInvalidEvent": "Nieprawidłowe zdarzenie parowania", "passphrase": "PassPhraza (opcjonalnie)", @@ -828,6 +831,7 @@ "trade_state_underpaid": "Niedopłacone", "trade_state_unpaid": "Nie opłacona", "trades": "Transakcje", + "transaction_cost": "Koszt transakcji", "transaction_details_amount": "Ilość", "transaction_details_copied": "${title} skopiowane do schowka", "transaction_details_date": "Data", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 46309f90a9..04d39d57b6 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "Perguntas frequentes", "frozen": "Congeladas", "full_balance": "Saldo total", + "gas_exceeds_allowance": "O gás exigido pela transação excede o subsídio.", "generate_name": "Gerar nome", "generating_gift_card": "Gerando Cartão Presente", "get_a": "Obter um ", @@ -360,6 +361,7 @@ "incoming": "Recebidas", "incorrect_seed": "O texto digitado não é válido.", "inputs": "Entradas", + "insufficient_funds_for_tx": "Fundos insuficientes para executar com sucesso a transação.", "insufficient_lamport_for_tx": "Você não tem Sol suficiente para cobrir a transação e sua taxa de transação. Por favor, adicione mais sol à sua carteira ou reduza a quantidade de sol que você envia.", "insufficient_lamports": "Você não tem Sol suficiente para cobrir a transação e sua taxa de transação. Você precisa de pelo menos ${solValueNeeded} sol. Por favor, adicione mais sol à sua carteira ou reduza a quantidade de sol que você está enviando", "insufficientFundsForRentError": "Você não tem Sol suficiente para cobrir a taxa de transação e o aluguel da conta. Por favor, adicione mais sol à sua carteira ou reduza a quantidade de sol que você envia", @@ -482,6 +484,7 @@ "outdated_electrum_wallet_receive_warning": "Se esta carteira tiver uma semente de 12 palavras e foi criada no Cake, NÃO deposite Bitcoin nesta carteira. Qualquer BTC transferido para esta carteira pode ser perdido. Crie uma nova carteira de 24 palavras (toque no menu no canto superior direito, selecione Carteiras, escolha Criar Nova Carteira e selecione Bitcoin) e mova IMEDIATAMENTE seu BTC para lá. As novas carteiras BTC (24 palavras) da Cake são seguras", "outgoing": "Enviadas", "outputs": "Saídas", + "overshot": "Ultrapassado", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Emparelhamento de evento inválido", "passphrase": "Senha (opcional)", @@ -830,6 +833,7 @@ "trade_state_underpaid": "Parcialmente paga", "trade_state_unpaid": "Não paga", "trades": "Trocas", + "transaction_cost": "Custo da transação", "transaction_details_amount": "Quantia", "transaction_details_copied": "${title} copiados para a área de transferência", "transaction_details_date": "Data", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 8492f60531..1bb0a9ce3b 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "Часто задаваемые вопросы", "frozen": "Заморожено", "full_balance": "Весь баланс", + "gas_exceeds_allowance": "Газ, требуемый в результате транзакции, превышает пособие.", "generate_name": "Создать имя", "generating_gift_card": "Создание подарочной карты", "get_a": "Получить ", @@ -360,6 +361,7 @@ "incoming": "Входящие", "incorrect_seed": "Введённый текст некорректный.", "inputs": "Входы", + "insufficient_funds_for_tx": "Недостаточно средств для успешного выполнения транзакции.", "insufficient_lamport_for_tx": "У вас недостаточно Sol, чтобы покрыть транзакцию и плату за транзакцию. Пожалуйста, добавьте больше Sol в свой кошелек или уменьшите сумму Sol, которую вы отправляете.", "insufficient_lamports": "У вас недостаточно Sol, чтобы покрыть транзакцию и плату за транзакцию. Вам нужен как минимум ${solValueNeeded} sol. Пожалуйста, добавьте больше Sol в свой кошелек или уменьшите сумму Sol, которую вы отправляете", "insufficientFundsForRentError": "У вас недостаточно Sol, чтобы покрыть плату за транзакцию и аренду для счета. Пожалуйста, добавьте больше Sol в свой кошелек или уменьшите сумму Sol, которую вы отправляете", @@ -481,6 +483,7 @@ "outdated_electrum_wallet_receive_warning": "Если этот кошелек имеет мнемоническую фразу из 12 слов и был создан в Cake, НЕ переводите биткойны на этот кошелек. Любые BTC, переведенные на этот кошелек, могут быть потеряны. Создайте новый кошелек с мнемоническои фразы из 24 слов (коснитесь меню в правом верхнем углу, выберите «Кошельки», выберите «Создать новый кошелек», затем выберите «Bitcoin») и НЕМЕДЛЕННО переведите туда свои BTC. Новые (24 слова) кошельки BTC от Cake безопасны", "outgoing": "Исходящие", "outputs": "Выходы", + "overshot": "Перевернуть", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Недействительное событие сопряжения", "passphrase": "Passfrase (необязательно)", @@ -829,6 +832,7 @@ "trade_state_underpaid": "Недоплаченная", "trade_state_unpaid": "Неоплаченная", "trades": "Сделки", + "transaction_cost": "Транзакционная стоимость", "transaction_details_amount": "Сумма", "transaction_details_copied": "${title} скопировано в буфер обмена", "transaction_details_date": "Дата", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index bf45b67472..aeeaf6b5f0 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "คำถามที่พบบ่อย", "frozen": "ถูกดักจับ", "full_balance": "ยอดคงเหลือทั้งหมด", + "gas_exceeds_allowance": "ก๊าซที่ต้องการโดยการทำธุรกรรมเกินค่าเผื่อ", "generate_name": "สร้างชื่อ", "generating_gift_card": "กำลังสร้างบัตรของขวัญ", "get_a": "รับ ", @@ -360,6 +361,7 @@ "incoming": "ขาเข้า", "incorrect_seed": "ข้อความที่ป้อนไม่ถูกต้อง", "inputs": "อินพุต", + "insufficient_funds_for_tx": "เงินทุนไม่เพียงพอที่จะดำเนินการทำธุรกรรมได้สำเร็จ", "insufficient_lamport_for_tx": "คุณไม่มีโซลเพียงพอที่จะครอบคลุมการทำธุรกรรมและค่าธรรมเนียมการทำธุรกรรม กรุณาเพิ่มโซลให้มากขึ้นลงในกระเป๋าเงินของคุณหรือลดจำนวนโซลที่คุณส่งมา", "insufficient_lamports": "คุณไม่มีโซลเพียงพอที่จะครอบคลุมการทำธุรกรรมและค่าธรรมเนียมการทำธุรกรรม คุณต้องการอย่างน้อย ${solValueNeeded} SOL กรุณาเพิ่มโซลให้มากขึ้นลงในกระเป๋าเงินของคุณหรือลดจำนวนโซลที่คุณกำลังส่ง", "insufficientFundsForRentError": "คุณไม่มีโซลเพียงพอที่จะครอบคลุมค่าธรรมเนียมการทำธุรกรรมและค่าเช่าสำหรับบัญชี กรุณาเพิ่มโซลให้มากขึ้นลงในกระเป๋าเงินของคุณหรือลดจำนวนโซลที่คุณส่งมา", @@ -480,6 +482,7 @@ "outdated_electrum_wallet_receive_warning": "หากกระเป๋านี้มีซีดีที่มี 12 คำและถูกสร้างขึ้นใน Cake อย่าโอน Bitcoin เข้ากระเป๋านี้ ทุกจำนวน BTC ที่โอนเข้ากระเป๋านี้อาจสูญหาย สร้างกระเป๋าใหม่ที่มีซีดีที่มี 24 คำ (กดที่เมนูที่มุมขวาบนแล้วเลือก Wallets และเลือก Create New Wallet จากนั้นเลือก Bitcoin) และย้าย BTC ไปที่นั้นทันที กระเป๋า BTC ที่มีซีดีที่มี 24 คำของ Cake ปลอดภัย", "outgoing": "ขาออก", "outputs": "เอาต์พุต", + "overshot": "โอเวอร์คล็อต", "overwrite_amount": "เขียนทับจำนวน", "pairingInvalidEvent": "การจับคู่เหตุการณ์ที่ไม่ถูกต้อง", "passphrase": "ข้อความรหัสผ่าน (ไม่บังคับ)", @@ -828,6 +831,7 @@ "trade_state_underpaid": "จ่ายไม่ครบ", "trade_state_unpaid": "ยังไม่ได้จ่าย", "trades": "การซื้อขาย", + "transaction_cost": "ต้นทุนการทำธุรกรรม", "transaction_details_amount": "จำนวน", "transaction_details_copied": "${title} ถูกคัดลอกไปยังคลิปบอร์ด", "transaction_details_date": "วันที่", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index cb868028c7..e0ae3f471e 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "Mga madalas itanong", "frozen": "Frozen", "full_balance": "Buong Balanse", + "gas_exceeds_allowance": "Ang gas na kinakailangan ng transaksyon ay lumampas sa allowance.", "generate_name": "Bumuo ng pangalan", "generating_gift_card": "Bumubuo ng Gift Card", "get_a": "Kumuha ng ", @@ -360,6 +361,7 @@ "incoming": "Papasok", "incorrect_seed": "Ang text na ipinasok ay hindi wasto.", "inputs": "Mga input", + "insufficient_funds_for_tx": "Hindi sapat na pondo upang matagumpay na magsagawa ng transaksyon.", "insufficient_lamport_for_tx": "Wala kang sapat na SOL upang masakop ang transaksyon at ang bayad sa transaksyon nito. Mabuting magdagdag ng higit pa sa iyong pitaka o bawasan ang sol na halaga na iyong ipinapadala.", "insufficient_lamports": "Wala kang sapat na SOL upang masakop ang transaksyon at ang bayad sa transaksyon nito. Kailangan mo ng hindi bababa sa ${solValueNeeded} sol. Mabait na magdagdag ng higit pang sol sa iyong pitaka o bawasan ang dami ng iyong ipinapadala", "insufficientFundsForRentError": "Wala kang sapat na SOL upang masakop ang fee sa transaksyon at upa para sa account. Mabait na magdagdag ng higit pa sa iyong wallet o bawasan ang halaga ng SOL na iyong ipinapadala", @@ -480,6 +482,7 @@ "outdated_electrum_wallet_receive_warning": "Kung ang wallet na ito ay may 12-word seed na ginawa sa Cake, huwag magdeposito ng Bitcoin sa wallet na ito. Anumang BTC na inilipat sa wallet na ito ay maaaring mawala. Lumikha ng bagong 24 na salita na wallet (i-tap ang menu sa kanang taas, piliin ang Mga Wallets, piliin ang Lumikha ng Bagong Wallet, pagkatapos ay piliin ang Bitcoin) at agad na ilipat ang iyong BTC doon. Bagong (24 na salita) BTC wallet mula sa Cake ay ligtas", "outgoing": "Palabas", "outputs": "Mga output", + "overshot": "Overshot", "overwrite_amount": "I-overwrite ang halaga", "pairingInvalidEvent": "Pairing Invalid Event", "passphrase": "Passphrase (opsyonal)", @@ -828,6 +831,7 @@ "trade_state_underpaid": "Kulang sa bayad", "trade_state_unpaid": "Hindi nabayaran", "trades": "Pangangalakal", + "transaction_cost": "Gastos sa transaksyon", "transaction_details_amount": "Halaga", "transaction_details_copied": "${title} kinopya sa clipboard", "transaction_details_date": "Petsa", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index a564784746..b38cc21afc 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "Sıkça sorulan sorular", "frozen": "Dondurulmuş", "full_balance": "Tüm bakiye", + "gas_exceeds_allowance": "İşlemin gerektirdiği gaz ödeneği aşar.", "generate_name": "İsim Oluştur", "generating_gift_card": "Hediye Kartı Oluşturuluyor", "get_a": "Bir ", @@ -360,6 +361,7 @@ "incoming": "Gelen", "incorrect_seed": "Girilen metin geçerli değil.", "inputs": "Girişler", + "insufficient_funds_for_tx": "İşlemi başarıyla yürütmek için yeterli fon.", "insufficient_lamport_for_tx": "İşlemi ve işlem ücretini karşılamak için yeterli SOL'unuz yok. Lütfen cüzdanınıza daha fazla SOL ekleyin veya gönderdiğiniz sol miktarını azaltın.", "insufficient_lamports": "İşlemi ve işlem ücretini karşılamak için yeterli SOL'unuz yok. En az ${solValueNeeded} Sol'a ihtiyacınız var. Lütfen cüzdanınıza daha fazla sol ekleyin veya gönderdiğiniz sol miktarını azaltın", "insufficientFundsForRentError": "İşlem ücretini karşılamak ve hesap için kiralamak için yeterli SOL'nuz yok. Lütfen cüzdanınıza daha fazla sol ekleyin veya gönderdiğiniz sol miktarını azaltın", @@ -480,6 +482,7 @@ "outdated_electrum_wallet_receive_warning": "Bu cüzdanın 12 kelimelik bir tohumu varsa ve Cake'te oluşturulduysa, bu cüzdana Bitcoin YATIRMAYIN. Bu cüzdana aktarılan tüm BTC'ler kaybolabilir. 24 kelimelik yeni bir cüzdan oluşturun (sağ üstteki menüye dokunun, Cüzdanlar'ı seçin, Yeni Cüzdan Oluştur'u seçin, ardından Bitcoin'i seçin) ve BTC'nizi HEMEN oraya taşıyın. Cake'in yeni (24 kelimelik) BTC cüzdanları güvenlidir", "outgoing": "Giden", "outputs": "çıktılar", + "overshot": "Aşmak", "overwrite_amount": "Miktarın üzerine yaz", "pairingInvalidEvent": "Geçersiz Etkinliği Eşleştirme", "passphrase": "Passfrase (isteğe bağlı)", @@ -828,6 +831,7 @@ "trade_state_underpaid": "Eksik ödendi", "trade_state_unpaid": "Ödenmedi", "trades": "Takaslar", + "transaction_cost": "İşlem maliyeti", "transaction_details_amount": "Miktar", "transaction_details_copied": "${title} panoya kopyalandı", "transaction_details_date": "Tarih", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index 7e2213a0a8..b0384b2c47 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "Часті запитання", "frozen": "Заморожено", "full_balance": "Весь баланс", + "gas_exceeds_allowance": "Газ, необхідний транзакціям, перевищує надбавку.", "generate_name": "Згенерувати назву", "generating_gift_card": "Створення подарункової картки", "get_a": "Отримати ", @@ -360,6 +361,7 @@ "incoming": "Вхідні", "incorrect_seed": "Введений текст невірний.", "inputs": "Вхoди", + "insufficient_funds_for_tx": "Недостатні кошти для успішного виконання транзакції.", "insufficient_lamport_for_tx": "У вас недостатньо SOL, щоб покрити транзакцію та її плату за трансакцію. Будь ласка, додайте до свого гаманця більше SOL або зменшіть суму, яку ви надсилаєте.", "insufficient_lamports": "У вас недостатньо SOL, щоб покрити транзакцію та її плату за трансакцію. Вам потрібно щонайменше ${solValueNeeded} sol. Будь ласка, додайте до свого гаманця більше SOL або зменшіть суму Sol, яку ви надсилаєте", "insufficientFundsForRentError": "У вас недостатньо SOL, щоб покрити плату за транзакцію та оренду на рахунок. Будь ласка, додайте до свого гаманця більше SOL або зменшіть суму, яку ви надсилаєте", @@ -480,6 +482,7 @@ "outdated_electrum_wallet_receive_warning": "Якщо цей гаманець має мнемонічну фразу з 12 слів і був створений у Cake, НЕ переводьте біткойни на цей гаманець. Будь-які BTC, переведений на цей гаманець, можуть бути втраченими. Створіть новий гаманець з мнемонічною фразою з 24 слів (торкніться меню у верхньому правому куті, виберіть Гаманці, виберіть Створити новий гаманець, потім виберіть Bitcoin) і НЕГАЙНО переведіть туди свії BTC. Нові (з мнемонічною фразою з 24 слів) гаманці BTC від Cake надійно захищені", "outgoing": "Вихідні", "outputs": "Виходи", + "overshot": "Затьмарювати", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "Недійсна подія сполучення", "passphrase": "Пасофрази (необов’язково)", @@ -829,6 +832,7 @@ "trade_state_underpaid": "Недоплачена", "trade_state_unpaid": "Неоплачена", "trades": "Торгові операції", + "transaction_cost": "Вартість транзакції", "transaction_details_amount": "Сума", "transaction_details_copied": "${title} скопійовано в буфер обміну", "transaction_details_date": "Дата", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 9dd5ab2826..bc9defdfd6 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "اکثر پوچھے گئے سوالات", "frozen": "منجمد", "full_balance": "مکمل بیلنس", + "gas_exceeds_allowance": "لین دین کے ذریعہ درکار گیس الاؤنس سے زیادہ ہے۔", "generate_name": "نام پیدا کریں۔", "generating_gift_card": "گفٹ کارڈ تیار کرنا", "get_a": "حاصل", @@ -360,6 +361,7 @@ "incoming": "آنے والا", "incorrect_seed": "درج کردہ متن درست نہیں ہے۔", "inputs": "آدانوں", + "insufficient_funds_for_tx": "لین دین کو کامیابی کے ساتھ انجام دینے کے لئے ناکافی فنڈز۔", "insufficient_lamport_for_tx": "آپ کے پاس ٹرانزیکشن اور اس کے لین دین کی فیس کا احاطہ کرنے کے لئے کافی SOL نہیں ہے۔ برائے مہربانی اپنے بٹوے میں مزید سول شامل کریں یا آپ کو بھیجنے والی سول رقم کو کم کریں۔", "insufficient_lamports": "آپ کے پاس ٹرانزیکشن اور اس کے لین دین کی فیس کا احاطہ کرنے کے لئے کافی SOL نہیں ہے۔ آپ کو کم از کم ${solValueNeeded} sol کی ضرورت ہے۔ برائے مہربانی اپنے بٹوے میں مزید SOL شامل کریں یا آپ جس SOL رقم کو بھیج رہے ہو اسے کم کریں", "insufficientFundsForRentError": "آپ کے پاس ٹرانزیکشن فیس اور اکاؤنٹ کے لئے کرایہ لینے کے ل enough اتنا SOL نہیں ہے۔ برائے مہربانی اپنے بٹوے میں مزید سول شامل کریں یا آپ کو بھیجنے والی سول رقم کو کم کریں", @@ -482,6 +484,7 @@ "outdated_electrum_wallet_receive_warning": "اگر اس پرس میں 12 الفاظ کا بیج ہے اور اسے Cake میں بنایا گیا ہے، تو اس بٹوے میں Bitcoin جمع نہ کریں۔ اس بٹوے میں منتقل کیا گیا کوئی بھی BTC ضائع ہو سکتا ہے۔ ایک نیا 24 الفاظ والا والیٹ بنائیں (اوپر دائیں جانب مینو کو تھپتھپائیں، Wallets کو منتخب کریں، نیا والیٹ بنائیں، پھر Bitcoin کو منتخب کریں) اور فوری طور پر اپنے BTC کو وہاں منتقل کریں۔ Cake کے نئے (24-لفظوں) BTC بٹوے محفوظ ہیں۔", "outgoing": "سبکدوش ہونے والے", "outputs": "نتائج", + "overshot": "اوورشوٹ", "overwrite_amount": "رقم کو اوور رائٹ کریں۔", "pairingInvalidEvent": "ﭧﻧﻮﯾﺍ ﻂﻠﻏ ﺎﻧﺎﻨﺑ ﺍﮌﻮﺟ", "passphrase": "پاسفریز (اختیاری)", @@ -830,6 +833,7 @@ "trade_state_underpaid": "کم معاوضہ", "trade_state_unpaid": "بلا معاوضہ", "trades": "تجارت", + "transaction_cost": "لین دین کی لاگت", "transaction_details_amount": "رقم", "transaction_details_copied": "${title} کو کلپ بورڈ پر کاپی کیا گیا۔", "transaction_details_date": "تاریخ", diff --git a/res/values/strings_vi.arb b/res/values/strings_vi.arb index b26420feaf..85a6547c5d 100644 --- a/res/values/strings_vi.arb +++ b/res/values/strings_vi.arb @@ -325,6 +325,7 @@ "frequently_asked_questions": "Các câu hỏi thường gặp", "frozen": "Đã đóng băng", "full_balance": "Số dư đầy đủ", + "gas_exceeds_allowance": "Gas theo yêu cầu của giao dịch vượt quá trợ cấp.", "generate_name": "Tạo tên", "generating_gift_card": "Đang tạo thẻ quà tặng", "get_a": "Nhận một ", @@ -359,6 +360,7 @@ "incoming": "Đang nhận", "incorrect_seed": "Văn bản nhập không hợp lệ.", "inputs": "Đầu vào", + "insufficient_funds_for_tx": "Không đủ tiền để thực hiện thành công giao dịch.", "insufficient_lamport_for_tx": "Bạn không có đủ SOL để thanh toán giao dịch và phí giao dịch. Vui lòng thêm SOL vào ví của bạn hoặc giảm số lượng SOL bạn đang gửi.", "insufficient_lamports": "Bạn không có đủ SOL để thanh toán giao dịch và phí giao dịch. Bạn cần ít nhất ${solValueNeeded} SOL. Vui lòng thêm SOL vào ví của bạn hoặc giảm số lượng SOL bạn đang gửi", "insufficientFundsForRentError": "Bạn không có đủ SOL để thanh toán phí giao dịch và phí thuê cho tài khoản. Vui lòng thêm SOL vào ví của bạn hoặc giảm số lượng SOL bạn đang gửi", @@ -479,6 +481,7 @@ "outdated_electrum_wallet_receive_warning": "Nếu ví này có hạt giống 12 từ và được tạo trong Cake, ĐỪNG gửi Bitcoin vào ví này. Bất kỳ BTC nào chuyển vào ví này có thể bị mất. Tạo ví 24 từ mới (nhấn menu ở góc trên bên phải, chọn Ví, chọn Tạo Ví Mới, sau đó chọn Bitcoin) và NGAY LẬP TỨC chuyển BTC của bạn vào đó. Ví BTC mới (24 từ) từ Cake là an toàn", "outgoing": "Đang gửi", "outputs": "Đầu ra", + "overshot": "Quá sức", "overwrite_amount": "Ghi đè số tiền", "pairingInvalidEvent": "Sự kiện ghép nối không hợp lệ", "passphrase": "Cụm từ bảo mật (Tùy chọn)", @@ -827,6 +830,7 @@ "trade_state_underpaid": "Thanh toán chưa đủ", "trade_state_unpaid": "Chưa thanh toán", "trades": "Giao dịch", + "transaction_cost": "Chi phí giao dịch", "transaction_details_amount": "Số tiền", "transaction_details_copied": "${title} đã được sao chép vào clipboard", "transaction_details_date": "Ngày", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index eb446e9841..1a548438de 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -327,6 +327,7 @@ "frequently_asked_questions": "Àwọn ìbéèrè la máa ń béèrè", "frozen": "Ó l'a tì pa", "full_balance": "Ìyókù owó kíkún", + "gas_exceeds_allowance": "Gaasi ti a beere nipasẹ idunadura ju lọ.", "generate_name": "Ṣẹda Orukọ", "generating_gift_card": "À ń dá káàdì ìrajà t'á lò nínú irú kan ìtajà", "get_a": "Gba ", @@ -361,6 +362,7 @@ "incoming": "Wọ́n tó ń bọ̀", "incorrect_seed": "Ọ̀rọ̀ tí a tẹ̀ kì í ṣe èyí.", "inputs": "Igbewọle", + "insufficient_funds_for_tx": "Awọn owo ti ko to lati ṣe idunadura ni ifijišẹ.", "insufficient_lamport_for_tx": "O ko ni sosi to lati bo idunadura ati idiyele iṣowo rẹ. Fi agbara kun Sol diẹ sii si apamọwọ rẹ tabi dinku sodo naa ti o \\ 'tun n firanṣẹ.", "insufficient_lamports": "O ko ni sosi to lati bo idunadura ati idiyele iṣowo rẹ. O nilo o kere ju ${solValueNeeded}. Fi agbara kun Sol diẹ sii si apamọwọ rẹ tabi dinku soso ti o n firanṣẹ", "insufficientFundsForRentError": "O ko ni Sol kan lati bo owo isanwo naa ki o yalo fun iroyin naa. Fi agbara kun Sol diẹ sii si apamọwọ rẹ tabi dinku soso naa ti o \\ 'tun n firanṣẹ", @@ -481,6 +483,7 @@ "outdated_electrum_wallet_receive_warning": "Ẹ KÒ FI BITCOIN SÍ ÀPAMỌ́WỌ́ YÌÍ t'á ti dá a nínú Cake Wallet àti àpamọ́wọ́ yìí ni hóró ti ọ̀rọ̀ méjìlá. A lè pàdánù BTC t'á ránṣẹ́ sí àpamọ́wọ́ yìí. Ẹ dá àpamọ́wọ́ títun tó ni hóró tó ni ọ̀rọ̀ mẹ́rinlélógún (Ẹ tẹ àkọsílẹ̀ tó wa l’ókè l'ọ́tún nígbàna, ẹ sì yan àwọn àpamọ́wọ́ nígbàna, ẹ sì yan Dá Àpamọ́wọ́ Títun nígbàna, ẹ sì yan Bitcoin) àti sún Bitcoin yín síbẹ̀ ní sinsìn yẹn. Àwọn àpamọ́wọ́ títun (hóró ni ọ̀rọ̀ mẹ́rinlélógún) láti Cake Wallet wa láìléwu.", "outgoing": "Wọ́n tó ń jáde", "outputs": "Awọn iṣan", + "overshot": "Overshot", "overwrite_amount": "Pààrọ̀ iye owó", "pairingInvalidEvent": "Pipọpọ Iṣẹlẹ Ti ko tọ", "passphrase": "Ọrọ kukuru (iyan)", @@ -829,6 +832,7 @@ "trade_state_underpaid": "Ti san iye tó kéré jù", "trade_state_unpaid": "Kò tíì san", "trades": "Àwọn pàṣípààrọ̀", + "transaction_cost": "Oniruuru idiyele", "transaction_details_amount": "Iye owó", "transaction_details_copied": "A ṣeda ${title} sí àkọsílẹ̀", "transaction_details_date": "Ìgbà", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 0d3187dc8a..df1ab5b1cd 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -326,6 +326,7 @@ "frequently_asked_questions": "常见问题", "frozen": "凍結的", "full_balance": "全部余额", + "gas_exceeds_allowance": "交易要求的气体超出了津贴。", "generate_name": "生成名称", "generating_gift_card": "生成礼品卡", "get_a": "得到一个", @@ -360,6 +361,7 @@ "incoming": "收到", "incorrect_seed": "输入的文字无效。", "inputs": "输入", + "insufficient_funds_for_tx": "资金不足无法成功执行交易。", "insufficient_lamport_for_tx": "您没有足够的溶胶来支付交易及其交易费用。请在您的钱包中添加更多溶胶或减少您发送的溶胶量。", "insufficient_lamports": "您没有足够的溶胶来支付交易及其交易费用。您至少需要${solValueNeeded} sol。请在您的钱包中添加更多溶胶或减少您发送的溶胶量", "insufficientFundsForRentError": "您没有足够的溶胶来支付该帐户的交易费和租金。请在钱包中添加更多溶胶或减少您发送的溶胶量", @@ -480,6 +482,7 @@ "outdated_electrum_wallet_receive_warning": "如果这个钱包有一个 12 字的种子并且是在 Cake 中创建的,不要将比特币存入这个钱包。 任何转移到此钱包的 BTC 都可能丢失。 创建一个新的 24 字钱包(点击右上角的菜单,选择钱包,选择创建新钱包,然后选择比特币)并立即将您的 BTC 移到那里。 Cake 的新(24 字)BTC 钱包是安全的", "outgoing": "发送", "outputs": "输出", + "overshot": "超越", "overwrite_amount": "Overwrite amount", "pairingInvalidEvent": "配对无效事件", "passphrase": "密码(可选)", @@ -828,6 +831,7 @@ "trade_state_underpaid": "支付不足", "trade_state_unpaid": "未付", "trades": "交易", + "transaction_cost": "交易成本", "transaction_details_amount": "金额", "transaction_details_copied": "${title} 复制到剪切板", "transaction_details_date": "日期", diff --git a/tool/utils/secret_key.dart b/tool/utils/secret_key.dart index d67ab7605a..e17a509d7e 100644 --- a/tool/utils/secret_key.dart +++ b/tool/utils/secret_key.dart @@ -81,6 +81,7 @@ class SecretKey { SecretKey('etherScanApiKey', () => ''), SecretKey('polygonScanApiKey', () => ''), SecretKey('moralisApiKey', () => ''), + SecretKey('nowNodesApiKey ', () => ''), ]; static final solanaSecrets = [ From 82bad3a951f25f6be16d63c0a1a402445efd41b8 Mon Sep 17 00:00:00 2001 From: OmarHatem Date: Wed, 11 Dec 2024 19:30:56 +0200 Subject: [PATCH 02/10] fix regex for xrp and wow --- lib/core/address_validator.dart | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index c122a872b7..387b91dccc 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -80,7 +80,7 @@ class AddressValidator extends TextValidator { case CryptoCurrency.shib: pattern = '0x[0-9a-zA-Z]+'; case CryptoCurrency.xrp: - pattern = '[0-9a-zA-Z]{34}|X[0-9a-zA-Z]{46}'; + pattern = '[0-9a-zA-Z]{34}|[0-9a-zA-Z]{33}|X[0-9a-zA-Z]{46}'; case CryptoCurrency.xhv: pattern = 'hvx|hvi|hvs[0-9a-zA-Z]+'; case CryptoCurrency.xag: @@ -282,10 +282,14 @@ class AddressValidator extends TextValidator { 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})'; + case CryptoCurrency.wow: + pattern = '(W[0-9a-zA-Z]{94})' + '|(W[0-9a-zA-Z]{94})' + '|(W[0-9a-zA-Z]{96})' + '|([0-9a-zA-Z]{106})'; case CryptoCurrency.btc: pattern = '${P2pkhAddress.regex.pattern}|${P2shAddress.regex.pattern}|${P2wpkhAddress.regex.pattern}|${P2trAddress.regex.pattern}|${P2wshAddress.regex.pattern}|${SilentPaymentAddress.regex.pattern}'; From 6e8cc9c39e938e318950b64ce42b3bcb3cfd3726 Mon Sep 17 00:00:00 2001 From: David Adegoke <64401859+Blazebrain@users.noreply.github.com> Date: Wed, 11 Dec 2024 19:51:09 +0100 Subject: [PATCH 03/10] CW-854 Monero Wallet Group Fix (#1865) * Fix: Tentative fix to wrong wallet groupings, specifically monero or non bip39 wallet types * fix: Modify logic to filter out single wallets and multi group wallets --------- Co-authored-by: Omar Hatem --- .../wallet_list/wallet_list_view_model.dart | 56 ++++++++++++++++--- 1 file changed, 48 insertions(+), 8 deletions(-) diff --git a/lib/view_model/wallet_list/wallet_list_view_model.dart b/lib/view_model/wallet_list/wallet_list_view_model.dart index c903b535f4..407dce55ac 100644 --- a/lib/view_model/wallet_list/wallet_list_view_model.dart +++ b/lib/view_model/wallet_list/wallet_list_view_model.dart @@ -2,6 +2,7 @@ import 'package:cake_wallet/core/wallet_loading_service.dart'; import 'package:cake_wallet/entities/wallet_group.dart'; import 'package:cake_wallet/entities/wallet_list_order_types.dart'; import 'package:cake_wallet/entities/wallet_manager.dart'; +import 'package:cake_wallet/reactions/bip39_wallet_utils.dart'; import 'package:hive/hive.dart'; import 'package:mobx/mobx.dart'; import 'package:cake_wallet/store/app_store.dart'; @@ -90,20 +91,59 @@ abstract class WalletListViewModelBase with Store { multiWalletGroups.clear(); singleWalletsList.clear(); - wallets.addAll( - _walletInfoSource.values - .map((info) => convertWalletInfoToWalletListItem(info)), - ); + for (var info in _walletInfoSource.values) { + wallets.add(convertWalletInfoToWalletListItem(info)); + } //========== Split into shared seed groups and single wallets list _walletManager.updateWalletGroups(); - for (var group in _walletManager.walletGroups) { + final walletGroupsFromManager = _walletManager.walletGroups; + + for (var group in walletGroupsFromManager) { if (group.wallets.length == 1) { - singleWalletsList - .add(convertWalletInfoToWalletListItem(group.wallets.first)); - } else { + singleWalletsList.add(convertWalletInfoToWalletListItem(group.wallets.first)); + continue; + } + + // Identify wallets that should be moved to singleWalletsList using the filters: the type/derivation + final excludedWallets = []; + + for (var wallet in group.wallets) { + // Check for non-BIP39 wallet types + final isNonBIP39 = !isBIP39Wallet(wallet.type); + + // Check for nano derivation type + final isNanoDerivation = wallet.type == WalletType.nano && + wallet.derivationInfo?.derivationType == DerivationType.nano; + + // Check for electrum derivation type + final isElectrumDerivation = + (wallet.type == WalletType.bitcoin || wallet.type == WalletType.litecoin) && + wallet.derivationInfo?.derivationType == DerivationType.electrum; + + if (isNonBIP39 || isNanoDerivation || isElectrumDerivation) { + excludedWallets.add(wallet); + } + } + + // Add excluded wallets to singleWalletsList + for (var excludedWallet in excludedWallets) { + singleWalletsList.add(convertWalletInfoToWalletListItem(excludedWallet)); + } + + // Remove excluded wallets from the group's wallets to avoid duplication + group.wallets.removeWhere((wallet) { + return excludedWallets.any((excluded) => excluded.address == wallet.address); + }); + + // Check if the group has more than one wallet after the excluded wallets are removed. + if (group.wallets.length > 1) { + //Add the entire group to the multi wallet group list since its still a multi wallet multiWalletGroups.add(group); + } else if (group.wallets.length == 1) { + // Add the group to the wallet left to the single wallets list + singleWalletsList.add(convertWalletInfoToWalletListItem(group.wallets.first)); } } } From 699f591113a2e0abffd584e89a45202eb70358e0 Mon Sep 17 00:00:00 2001 From: David Adegoke <64401859+Blazebrain@users.noreply.github.com> Date: Wed, 11 Dec 2024 20:26:13 +0100 Subject: [PATCH 04/10] fix: Tentative fix for transaction history items overlap across wallet types (#1864) --- cw_bitcoin/lib/electrum_transaction_history.dart | 5 ++++- cw_evm/lib/evm_chain_transaction_history.dart | 6 +++++- cw_nano/lib/nano_transaction_history.dart | 5 ++++- cw_solana/lib/solana_transaction_history.dart | 5 ++++- cw_tron/lib/tron_transaction_history.dart | 5 ++++- 5 files changed, 21 insertions(+), 5 deletions(-) diff --git a/cw_bitcoin/lib/electrum_transaction_history.dart b/cw_bitcoin/lib/electrum_transaction_history.dart index 658f83f8ad..d096d0e7b4 100644 --- a/cw_bitcoin/lib/electrum_transaction_history.dart +++ b/cw_bitcoin/lib/electrum_transaction_history.dart @@ -31,7 +31,10 @@ abstract class ElectrumTransactionHistoryBase String _password; int _height; - Future init() async => await _load(); + Future init() async { + clear(); + await _load(); + } @override void addOne(ElectrumTransactionInfo transaction) => transactions[transaction.id] = transaction; diff --git a/cw_evm/lib/evm_chain_transaction_history.dart b/cw_evm/lib/evm_chain_transaction_history.dart index c4d91783fd..4a05746da0 100644 --- a/cw_evm/lib/evm_chain_transaction_history.dart +++ b/cw_evm/lib/evm_chain_transaction_history.dart @@ -34,7 +34,10 @@ abstract class EVMChainTransactionHistoryBase //! Common methods across all child classes - Future init() async => await _load(); + Future init() async { + clear(); + await _load(); + } @override Future save() async { @@ -81,6 +84,7 @@ abstract class EVMChainTransactionHistoryBase _update(tx); } } + print('doneee'); } catch (e) { log(e.toString()); } diff --git a/cw_nano/lib/nano_transaction_history.dart b/cw_nano/lib/nano_transaction_history.dart index 7b4c5bc128..2b551ffa67 100644 --- a/cw_nano/lib/nano_transaction_history.dart +++ b/cw_nano/lib/nano_transaction_history.dart @@ -28,7 +28,10 @@ abstract class NanoTransactionHistoryBase extends TransactionHistoryBase init() async => await _load(); + Future init() async { + clear(); + await _load(); + } @override Future save() async { diff --git a/cw_solana/lib/solana_transaction_history.dart b/cw_solana/lib/solana_transaction_history.dart index 761753f06a..62b9db8f74 100644 --- a/cw_solana/lib/solana_transaction_history.dart +++ b/cw_solana/lib/solana_transaction_history.dart @@ -26,7 +26,10 @@ abstract class SolanaTransactionHistoryBase extends TransactionHistoryBase init() async => await _load(); + Future init() async { + clear(); + await _load(); + } @override Future save() async { diff --git a/cw_tron/lib/tron_transaction_history.dart b/cw_tron/lib/tron_transaction_history.dart index 9d226c09cf..c940c7708d 100644 --- a/cw_tron/lib/tron_transaction_history.dart +++ b/cw_tron/lib/tron_transaction_history.dart @@ -25,7 +25,10 @@ abstract class TronTransactionHistoryBase extends TransactionHistoryBase init() async => await _load(); + Future init() async { + clear(); + await _load(); + } @override Future save() async { From 329a1fd6de7637f8afec6e7ab7859730aaac36f7 Mon Sep 17 00:00:00 2001 From: David Adegoke <64401859+Blazebrain@users.noreply.github.com> Date: Wed, 11 Dec 2024 21:19:52 +0100 Subject: [PATCH 05/10] CW-703: Better Seed UI/UX (#1868) * feat: Switch UI for seeds display * feat: Add localization for disclaimer text * fix: Modify color for warning on seeds screen * Fix: Adjust UI styling for seed page * chore: Revert podfile.lock * Fix column colors * Fix more colors --------- Co-authored-by: tuxpizza --- lib/src/screens/seed/wallet_seed_page.dart | 266 +++++++++++++-------- lib/view_model/wallet_seed_view_model.dart | 4 + res/values/strings_ar.arb | 1 + res/values/strings_bg.arb | 1 + res/values/strings_cs.arb | 1 + res/values/strings_de.arb | 1 + res/values/strings_en.arb | 1 + res/values/strings_es.arb | 1 + res/values/strings_fr.arb | 1 + res/values/strings_ha.arb | 1 + res/values/strings_hi.arb | 1 + res/values/strings_hr.arb | 1 + res/values/strings_hy.arb | 1 + res/values/strings_id.arb | 1 + res/values/strings_it.arb | 1 + res/values/strings_ja.arb | 1 + res/values/strings_ko.arb | 1 + res/values/strings_my.arb | 1 + res/values/strings_nl.arb | 1 + res/values/strings_pl.arb | 1 + res/values/strings_pt.arb | 1 + res/values/strings_ru.arb | 1 + res/values/strings_th.arb | 1 + res/values/strings_tl.arb | 1 + res/values/strings_tr.arb | 1 + res/values/strings_uk.arb | 1 + res/values/strings_ur.arb | 1 + res/values/strings_vi.arb | 1 + res/values/strings_yo.arb | 1 + res/values/strings_zh.arb | 1 + 30 files changed, 196 insertions(+), 102 deletions(-) diff --git a/lib/src/screens/seed/wallet_seed_page.dart b/lib/src/screens/seed/wallet_seed_page.dart index 10160839cd..05a44281aa 100644 --- a/lib/src/screens/seed/wallet_seed_page.dart +++ b/lib/src/screens/seed/wallet_seed_page.dart @@ -1,5 +1,5 @@ -import 'package:cake_wallet/palette.dart'; import 'package:cake_wallet/themes/extensions/cake_text_theme.dart'; +import 'package:cake_wallet/themes/extensions/dashboard_page_theme.dart'; import 'package:cake_wallet/themes/extensions/pin_code_theme.dart'; import 'package:cake_wallet/themes/theme_base.dart'; import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart'; @@ -15,7 +15,8 @@ import 'package:cake_wallet/generated/i18n.dart'; import 'package:cake_wallet/src/widgets/primary_button.dart'; import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/view_model/wallet_seed_view_model.dart'; -import 'package:cake_wallet/themes/extensions/transaction_trade_theme.dart'; + +import '../../../themes/extensions/menu_theme.dart'; class WalletSeedPage extends BasePage { WalletSeedPage(this.walletSeedViewModel, {required this.isNewWalletCreated}); @@ -92,118 +93,179 @@ class WalletSeedPage extends BasePage { @override Widget body(BuildContext context) { - final image = currentTheme.type == ThemeType.dark ? imageDark : imageLight; - return WillPopScope( - onWillPop: () async => false, - child: Container( - padding: EdgeInsets.all(24), - alignment: Alignment.center, - child: ConstrainedBox( - constraints: - BoxConstraints(maxWidth: ResponsiveLayoutUtilBase.kDesktopMaxWidthConstraint), - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - ConstrainedBox( - constraints: BoxConstraints(maxHeight: MediaQuery.of(context).size.height * 0.3), - child: AspectRatio(aspectRatio: 1, child: image), - ), - Observer(builder: (_) { - return Column( - crossAxisAlignment: CrossAxisAlignment.center, - children: [ - Text( - key: ValueKey('wallet_seed_page_wallet_name_text_key'), - walletSeedViewModel.name, - style: TextStyle( + onWillPop: () async => false, + child: Container( + padding: EdgeInsets.symmetric(horizontal: 24, vertical: 8), + alignment: Alignment.center, + child: ConstrainedBox( + constraints: + BoxConstraints(maxWidth: ResponsiveLayoutUtilBase.kDesktopMaxWidthConstraint), + child: Column( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Observer( + builder: (_) { + return Expanded( + child: Column( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + Container( + padding: EdgeInsets.symmetric(horizontal: 12, vertical: 8), + decoration: BoxDecoration( + color: currentTheme.type == ThemeType.dark + ? Color.fromRGBO(126, 116, 59, 1) + : Color.fromRGBO(189, 169, 90, 1), + borderRadius: BorderRadius.all(Radius.circular(12)), + border: Border.all( + color: currentTheme.type == ThemeType.dark + ? Color.fromRGBO(171, 171, 41, 1) + : Color.fromRGBO(125, 122, 15, 1), + width: 2.0, + )), + child: Row( + children: [ + Icon( + Icons.warning_amber_rounded, + size: 64, + color: Colors.white.withOpacity(0.75), + ), + SizedBox(width: 8), + Expanded( + child: Text( + S.current.cake_seeds_save_disclaimer, + textAlign: TextAlign.center, + style: TextStyle( + fontSize: 12, + fontWeight: FontWeight.w800, + color: currentTheme.type == ThemeType.dark + ? Colors.white.withOpacity(0.75) + : Colors.white.withOpacity(0.85), + ), + ), + ), + ], + ), + ), + SizedBox(height: 32), + Text( + key: ValueKey('wallet_seed_page_wallet_name_text_key'), + walletSeedViewModel.name, + style: TextStyle( fontSize: 20, fontWeight: FontWeight.w600, - color: Theme.of(context).extension()!.titleColor), - ), - Padding( - padding: EdgeInsets.only(top: 20, left: 16, right: 16), - child: Text( - key: ValueKey('wallet_seed_page_wallet_seed_text_key'), - walletSeedViewModel.seed, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 14, - fontWeight: FontWeight.normal, - color: - Theme.of(context).extension()!.secondaryTextColor), + color: Theme.of(context).extension()!.titleColor, + ), ), - ) - ], - ); - }), - Column( - children: [ - isNewWalletCreated - ? Padding( - padding: EdgeInsets.only(bottom: 43, left: 43, right: 43), - child: Text( - key: ValueKey( - 'wallet_seed_page_wallet_seed_reminder_text_key', - ), - S.of(context).seed_reminder, - textAlign: TextAlign.center, - style: TextStyle( - fontSize: 12, - fontWeight: FontWeight.normal, - color: Theme.of(context) - .extension()! - .detailsTitlesColor, - ), + SizedBox(height: 24), + Expanded( + child: GridView.builder( + padding: const EdgeInsets.symmetric(horizontal: 4), + itemCount: walletSeedViewModel.seedSplit.length, + gridDelegate: SliverGridDelegateWithFixedCrossAxisCount( + crossAxisCount: walletSeedViewModel.columnCount, + childAspectRatio: 3.6, + mainAxisSpacing: 8.0, + crossAxisSpacing: 8.0, ), - ) - : Offstage(), - Row( - mainAxisSize: MainAxisSize.max, - children: [ - Flexible( - child: Container( - padding: EdgeInsets.only(right: 8.0), - child: PrimaryButton( - key: ValueKey('wallet_seed_page_save_seeds_button_key'), + itemBuilder: (context, index) { + final item = walletSeedViewModel.seedSplit[index]; + final numberCount = index + 1; + + return Container( + padding: const EdgeInsets.symmetric(horizontal: 4), + alignment: Alignment.center, + decoration: BoxDecoration( + borderRadius: BorderRadius.circular(8), + color: Theme.of(context).cardColor, + ), + child: Row( + crossAxisAlignment: CrossAxisAlignment.center, + children: [ + SizedBox( + width: 20, + child: Text( + numberCount.toString(), + textAlign: TextAlign.right, + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w700, + color: Theme.of(context).extension()!.buttonTextColor.withOpacity(0.5) + ), + ), + ), + const SizedBox(width: 8), + Text( + '${item[0].toUpperCase()}${item.substring(1)}', + style: TextStyle( + fontSize: 14, + fontWeight: FontWeight.w700, + color: Theme.of(context).extension()!.buttonTextColor + ), + ), + ], + ), + ); + }, + ), + ), + ], + ), + ); + }, + ), + Column( + children: [ + Row( + mainAxisSize: MainAxisSize.max, + children: [ + Flexible( + child: Container( + padding: EdgeInsets.only(right: 8.0), + child: PrimaryButton( + key: ValueKey('wallet_seed_page_save_seeds_button_key'), + onPressed: () { + ShareUtil.share( + text: walletSeedViewModel.seed, + context: context, + ); + }, + text: S.of(context).save, + color: Theme.of(context).cardColor, + textColor: currentTheme.type == ThemeType.dark + ? Theme.of(context).extension()!.textColor + : Theme.of(context).extension()!.buttonTextColor, + ), + ), + ), + Flexible( + child: Container( + padding: EdgeInsets.only(left: 8.0), + child: Builder( + builder: (context) => PrimaryButton( + key: ValueKey('wallet_seed_page_copy_seeds_button_key'), onPressed: () { - ShareUtil.share( - text: walletSeedViewModel.seed, - context: context, + ClipboardUtil.setSensitiveDataToClipboard( + ClipboardData(text: walletSeedViewModel.seed), ); + showBar(context, S.of(context).copied_to_clipboard); }, - text: S.of(context).save, - color: Colors.green, + text: S.of(context).copy, + color: Theme.of(context).primaryColor, textColor: Colors.white, ), ), ), - Flexible( - child: Container( - padding: EdgeInsets.only(left: 8.0), - child: Builder( - builder: (context) => PrimaryButton( - key: ValueKey('wallet_seed_page_copy_seeds_button_key'), - onPressed: () { - ClipboardUtil.setSensitiveDataToClipboard( - ClipboardData(text: walletSeedViewModel.seed), - ); - showBar(context, S.of(context).copied_to_clipboard); - }, - text: S.of(context).copy, - color: Theme.of(context).extension()!.indicatorsColor, - textColor: Colors.white, - ), - ), - ), - ) - ], - ) - ], - ) - ], - ), + ) + ], + ), + SizedBox(height: 24), + ], + ) + ], ), - )); + ), + ), + ); } } diff --git a/lib/view_model/wallet_seed_view_model.dart b/lib/view_model/wallet_seed_view_model.dart index 8923a99da1..c13dba716f 100644 --- a/lib/view_model/wallet_seed_view_model.dart +++ b/lib/view_model/wallet_seed_view_model.dart @@ -15,4 +15,8 @@ abstract class WalletSeedViewModelBase with Store { @observable String seed; + + List get seedSplit => seed.split(' '); + + int get columnCount => seedSplit.length <= 16 ? 2 : 3; } diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index 1b1f37e1ee..b8e476e4c8 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "شراء بطاقات مسبقة الدفع وبطاقات الهدايا في جميع أنحاء العالم", "cake_pay_web_cards_subtitle": "اشتري بطاقات مدفوعة مسبقا وبطاقات هدايا في جميع أنحاء العالم", "cake_pay_web_cards_title": "بطاقات Cake Pay Web", + "cake_seeds_save_disclaimer": "يرجى حفظ هذه الكلمات في مكان آمن! إذا فقدت الوصول إلى محفظتك ، فإن دعم محفظة الكيك لا يمكن أن يساعدك", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "آسف ، بطاقة الهدايا هذه غير متوفرة على iOS. يمكنك شرائه على Android أو من خلال موقعنا بدلاً من ذلك.", "cakepay_prepaid_card": "بطاقة ائتمان CakePay مسبقة الدفع", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 36ecd4b5dd..91a718f911 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Купете предплатени карти и карти за подаръци в световен мащаб", "cake_pay_web_cards_subtitle": "Купете световно признати предплатени и гифт карти", "cake_pay_web_cards_title": "Cake Pay Онлайн Карти", + "cake_seeds_save_disclaimer": "Моля, запазете тези думи на сигурно място! Ако загубите достъп до портфейла си, поддръжката на портфейла за торти не може да ви помогне", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "За съжаление тази карта за подарък не се предлага в iOS. Можете да го закупите на Android или чрез нашия уебсайт вместо това.", "cakepay_prepaid_card": "CakePay предплатена дебитна карта", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index af91ea6430..d2ca2def54 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Kupte si celosvětové předplacené karty a dárkové karty", "cake_pay_web_cards_subtitle": "Kupte si celosvětové předplacené a dárkové karty", "cake_pay_web_cards_title": "Cake Pay webové karty", + "cake_seeds_save_disclaimer": "Uložte tato slova na bezpečném místě! Pokud ztratíte přístup k vaší peněžence, podpora peněženky dortu vám nemůže pomoci", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Je nám líto, tato dárková karta není k dispozici na iOS. Místo toho si jej můžete zakoupit na Androidu nebo prostřednictvím našeho webu.", "cakepay_prepaid_card": "CakePay předplacená debetní karta", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index f09b8c7149..f5e2a38797 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Kaufen Sie weltweite Prepaid-Karten und Geschenkkarten", "cake_pay_web_cards_subtitle": "Kaufen Sie weltweit Prepaid-Karten und Geschenkkarten", "cake_pay_web_cards_title": "Cake Pay-Webkarten", + "cake_seeds_save_disclaimer": "Bitte speichern Sie diese Wörter an einem sicheren Ort! Wenn Sie den Zugang zu Ihrer Brieftasche verlieren, kann Ihnen die Stütze der Kuchenbrieftasche nicht helfen", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Entschuldigung, diese Geschenkkarte ist auf iOS nicht erhältlich. Sie können es stattdessen auf Android oder über unsere Website kaufen.", "cakepay_prepaid_card": "CakePay-Prepaid-Debitkarte", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 86d807d8f1..0168f79515 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Buy worldwide prepaid cards and gift cards", "cake_pay_web_cards_subtitle": "Buy worldwide prepaid cards and gift cards", "cake_pay_web_cards_title": "Cake Pay Web Cards", + "cake_seeds_save_disclaimer": "Please save these words in a secure place! If you lose access to your wallet, Cake Wallet support CANNOT help you", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Sorry, this gift card is not available on iOS. You can purchase it on Android or through our website instead.", "cakepay_prepaid_card": "CakePay Prepaid Debit Card", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 4c0d16b98f..12ea9bbf3b 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Compra tarjetas prepagadas y tarjetas de regalo en todo el mundo", "cake_pay_web_cards_subtitle": "Compra tarjetas de prepago y tarjetas de regalo en todo el mundo", "cake_pay_web_cards_title": "Tarjetas Web Cake Pay", + "cake_seeds_save_disclaimer": "¡Guarde estas palabras en un lugar seguro! Si pierde acceso a su billetera, el soporte de la billetera de pastel no puede ayudarlo", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Lo siento, esta tarjeta de regalo no está disponible en iOS. Puede comprarlo en Android o a través de nuestro sitio web.", "cakepay_prepaid_card": "Tarjeta de Débito Prepago CakePay", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index c15366f5ad..a8b1fc48b5 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Achetez des cartes et des cartes-cadeaux prépayées mondiales", "cake_pay_web_cards_subtitle": "Achetez des cartes prépayées et des cartes-cadeaux dans le monde entier", "cake_pay_web_cards_title": "Cartes Web Cake Pay", + "cake_seeds_save_disclaimer": "Veuillez enregistrer ces mots dans un endroit sécurisé! Si vous perdez accès à votre portefeuille, le support de portefeuille à gâteau ne peut pas vous aider", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Désolé, cette carte-cadeau n'est pas disponible sur iOS. Vous pouvez l'acheter sur Android ou via notre site Web à la place.", "cakepay_prepaid_card": "Carte de débit prépayée Cake Pay", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index d95f87bbff..24330f3480 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Sayi katunan shirye-shiryen duniya da katunan kyauta", "cake_pay_web_cards_subtitle": "Sayi katunan da aka riga aka biya na duniya da katunan kyauta", "cake_pay_web_cards_title": "Cake Pay Web Cards", + "cake_seeds_save_disclaimer": "Da fatan za a ceci waɗannan kalmomin a cikin amintaccen wuri! Idan ka rasa damar zuwa Wallet, Tallafin Wall Wallet ba zai iya taimaka maka ba", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Yi haƙuri, wannan katin kyautar ba a samuwa akan iOS. Kuna iya sayan shi a kan Android ko ta yanar gizo a maimakon.", "cakepay_prepaid_card": "Katin zare kudi na CakePay", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 6f655fe732..5d226dfb68 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "दुनिया भर में प्रीपेड कार्ड और उपहार कार्ड खरीदें", "cake_pay_web_cards_subtitle": "दुनिया भर में प्रीपेड कार्ड और गिफ्ट कार्ड खरीदें", "cake_pay_web_cards_title": "केक भुगतान वेब कार्ड", + "cake_seeds_save_disclaimer": "कृपया इन शब्दों को सुरक्षित स्थान पर सहेजें! यदि आप अपने बटुए तक पहुंच खो देते हैं, तो केक वॉलेट समर्थन आपकी मदद नहीं कर सकता है", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "क्षमा करें, यह उपहार कार्ड iOS पर उपलब्ध नहीं है। आप इसे Android पर या हमारी वेबसाइट के बजाय खरीद सकते हैं।", "cakepay_prepaid_card": "केकपे प्रीपेड डेबिट कार्ड", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index 67a41ab2a8..ed60e6ee6a 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Kupite svjetske unaprijed plaćene kartice i poklon kartice", "cake_pay_web_cards_subtitle": "Kupujte prepaid kartice i poklon kartice diljem svijeta", "cake_pay_web_cards_title": "Cake Pay Web kartice", + "cake_seeds_save_disclaimer": "Molimo spremite ove riječi na sigurno mjesto! Ako izgubite pristup vašem novčaniku, podrška za novčanik za kolače ne može vam pomoći", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Oprostite, ova poklon kartica nije dostupna na iOS -u. Umjesto toga, možete ga kupiti na Androidu ili putem naše web stranice.", "cakepay_prepaid_card": "CakePay unaprijed plaćena debitna kartica", diff --git a/res/values/strings_hy.arb b/res/values/strings_hy.arb index c6e5b2d137..41b18f59e4 100644 --- a/res/values/strings_hy.arb +++ b/res/values/strings_hy.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Գնեք համաշխարհային նախավճարային քարտեր և նվեր քարտեր", "cake_pay_web_cards_subtitle": "Գնեք համաշխարհային նախավճարային քարտեր և նվեր քարտեր", "cake_pay_web_cards_title": "Cake Pay Վեբ Քարտեր", + "cake_seeds_save_disclaimer": "Խնդրում ենք պահպանել այս բառերը անվտանգ տեղում: Եթե ​​ձեր դրամապանակը կորցնեք մուտքը, տորթի դրամապանակի աջակցությունը չի կարող օգնել ձեզ", "cake_wallet": "Cake Գաղտնապահոց", "cakepay_ios_not_available": "Ներեցեք, այս նվեր քարտը հասանելի չէ iOS- ում: Փոխարենը կարող եք այն գնել Android- ում կամ մեր կայքում:", "cakepay_prepaid_card": "CakePay Նախավճարային Դեբետային Քարտ", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index 2ffe0b9558..ef64b7044a 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Beli kartu prabayar di seluruh dunia dan kartu hadiah", "cake_pay_web_cards_subtitle": "Beli kartu prabayar dan kartu hadiah secara global", "cake_pay_web_cards_title": "Kartu Web Cake Pay", + "cake_seeds_save_disclaimer": "Harap simpan kata -kata ini di tempat yang aman! Jika Anda kehilangan akses ke dompet Anda, dukungan dompet kue tidak dapat membantu Anda", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Maaf, kartu hadiah ini tidak tersedia di iOS. Anda dapat membelinya di Android atau melalui situs web kami sebagai gantinya.", "cakepay_prepaid_card": "Kartu Debit Prabayar CakePay", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 4dc5662a89..6a508822aa 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Acquista carte prepagate in tutto il mondo e carte regalo", "cake_pay_web_cards_subtitle": "Acquista carte prepagate e carte regalo in tutto il mondo", "cake_pay_web_cards_title": "Carte Web Cake Pay", + "cake_seeds_save_disclaimer": "Si prega di salvare queste parole in un posto sicuro! Se perdi l'accesso al tuo portafoglio, il supporto per il portafoglio della torta non può aiutarti", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Mi dispiace, questa carta regalo non è disponibile su iOS. Puoi acquistarlo su Android o tramite il nostro sito Web.", "cakepay_prepaid_card": "Carta di debito prepagata CakePay", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 59fbb7adf4..177171a50e 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "世界中のプリペイドカードとギフトカードを購入します", "cake_pay_web_cards_subtitle": "世界中のプリペイド カードとギフト カードを購入する", "cake_pay_web_cards_title": "Cake Pay ウェブカード", + "cake_seeds_save_disclaimer": "これらの言葉を安全な場所に保存してください!財布へのアクセスを失った場合、ケーキウォレットのサポートはあなたを助けることができません", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "申し訳ありませんが、このギフトカードはiOSでは利用できません。代わりにAndroidまたは当社のWebサイトから購入できます。", "cakepay_prepaid_card": "CakePayプリペイドデビットカード", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index 2e7793edb8..fd66d00100 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "전세계 선불 카드와 기프트 카드를 구입하십시오", "cake_pay_web_cards_subtitle": "전 세계 선불 카드 및 기프트 카드 구매", "cake_pay_web_cards_title": "케이크페이 웹카드", + "cake_seeds_save_disclaimer": "이 단어를 안전한 장소에 저장하십시오! 지갑에 대한 접근이 손실되면 케이크 지갑 지지대가 도움이되지 않습니다.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "죄송합니다.이 기프트 카드는 iOS에서 사용할 수 없습니다. Android 또는 웹 사이트를 통해 구매할 수 있습니다.", "cakepay_prepaid_card": "CakePay 선불 직불 카드", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index f86beb0f7a..ae007e4878 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Worldwide ကြိုတင်ငွေဖြည့်ကဒ်များနှင့်လက်ဆောင်ကဒ်များကို 0 ယ်ပါ", "cake_pay_web_cards_subtitle": "ကမ္ဘာတစ်ဝှမ်း ကြိုတင်ငွေပေးကတ်များနှင့် လက်ဆောင်ကတ်များကို ဝယ်ယူပါ။", "cake_pay_web_cards_title": "Cake Pay ဝဘ်ကတ်များ", + "cake_seeds_save_disclaimer": "ကျေးဇူးပြုပြီးဒီစကားလုံးတွေကိုလုံခြုံတဲ့နေရာမှာသိမ်းထားပါ။ သင်၏ပိုက်ဆံအိတ်ကိုသင်လက်လှမ်းမမီပါကကိတ်မုန့်ပိုက်ဆံအိတ်အထောက်အပံ့သည်သင့်ကိုမကူညီနိုင်ပါ", "cake_wallet": "Cake ပိုက်ဆံအိတ်", "cakepay_ios_not_available": "တောင်းပန်ပါတယ်, ဒီလက်ဆောင်ကဒ်ကို iOS မှာမရနိုင်ပါ။ ၎င်းကို Android တွင်သို့မဟုတ်ကျွန်ုပ်တို့၏ဝက်ဘ်ဆိုက်တွင် 0 ယ်နိုင်သည်။", "cakepay_prepaid_card": "CakePay ကြိုတင်ငွေဖြည့်ဒက်ဘစ်ကတ်", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 7433972a48..6343f4dd09 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Koop wereldwijde prepaid -kaarten en cadeaubonnen", "cake_pay_web_cards_subtitle": "Koop wereldwijd prepaidkaarten en cadeaubonnen", "cake_pay_web_cards_title": "Cake Pay-webkaarten", + "cake_seeds_save_disclaimer": "Bewaar deze woorden op een veilige plek! Als u de toegang tot uw portemonnee verliest, kan ondersteuning voor cake -portemonnee u niet helpen", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Sorry, deze cadeaubon is niet beschikbaar op iOS. U kunt het in plaats daarvan kopen op Android of via onze website.", "cakepay_prepaid_card": "CakePay Prepaid Debetkaart", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index a2cd617133..6afe3b9321 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Kup na całym świecie karty przedpłacone i karty podarunkowe", "cake_pay_web_cards_subtitle": "Kupuj na całym świecie karty przedpłacone i karty podarunkowe", "cake_pay_web_cards_title": "Cake Pay Web Cards", + "cake_seeds_save_disclaimer": "Zapisz te słowa w bezpiecznym miejscu! Jeśli stracisz dostęp do portfela, wsparcie portfela ciasta nie może ci pomóc", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Przepraszam, ta karta podarunkowa nie jest dostępna na iOS. Zamiast tego możesz go kupić na Android lub za pośrednictwem naszej strony internetowej.", "cakepay_prepaid_card": "Przedpłacona karta debetowa CakePay", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 04d39d57b6..85fafc590b 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Compre cartões pré -pagos em todo o mundo e cartões -presente", "cake_pay_web_cards_subtitle": "Compre cartões pré-pagos e cartões-presente em todo o mundo", "cake_pay_web_cards_title": "Cartões Cake Pay Web", + "cake_seeds_save_disclaimer": "Por favor, salve estas palavras em um local seguro! Se você perder o acesso à sua carteira, o suporte da carteira de bolo não poderá ajudá -lo", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Desculpe, este cartão -presente não está disponível no iOS. Você pode comprá -lo no Android ou através do nosso site.", "cakepay_prepaid_card": "Cartão de débito pré-pago CakePay", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 1bb0a9ce3b..07d8f39cea 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Купить карты с предоплатой и подарочными картами по всему миру", "cake_pay_web_cards_subtitle": "Покупайте карты предоплаты и подарочные карты по всему миру", "cake_pay_web_cards_title": "Веб-карты Cake Pay", + "cake_seeds_save_disclaimer": "Пожалуйста, сохраните эти слова в безопасном месте! Если вы теряете доступ к своему кошельку, поддержка кошелька для торта не может вам помочь", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Извините, эта подарочная карта недоступна на iOS. Вместо этого вы можете приобрести его на Android или через наш веб -сайт.", "cakepay_prepaid_card": "Предоплаченная дебетовая карта CakePay", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index aeeaf6b5f0..f938576dd4 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "ซื้อบัตรเติมเงินและบัตรของขวัญทั่วโลก", "cake_pay_web_cards_subtitle": "ซื้อบัตรพร้อมเงินระดับโลกและบัตรของขวัญ", "cake_pay_web_cards_title": "Cake Pay Web Cards", + "cake_seeds_save_disclaimer": "โปรดบันทึกคำเหล่านี้ในสถานที่ที่ปลอดภัย! หากคุณสูญเสียการเข้าถึงกระเป๋าเงินของคุณการสนับสนุนกระเป๋าเงินเค้กไม่สามารถช่วยคุณได้", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "ขออภัยบัตรของขวัญนี้ไม่มีใน iOS คุณสามารถซื้อได้บน Android หรือผ่านเว็บไซต์ของเราแทน", "cakepay_prepaid_card": "บัตรเดบิตเติมเงินของ CakePay", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index e0ae3f471e..2234d02b1a 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Bumili ng mga pandaigdigang prepaid card at gift card", "cake_pay_web_cards_subtitle": "Bumili ng mga pandaigdigang prepaid card at gift card", "cake_pay_web_cards_title": "Cake Pay Web Cards", + "cake_seeds_save_disclaimer": "Mangyaring i -save ang mga salitang ito sa isang ligtas na lugar! Kung nawalan ka ng pag -access sa iyong pitaka, hindi makakatulong sa iyo ang suporta ng wallet ng cake", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Paumanhin, ang gift card na ito ay hindi magagamit sa iOS. Maaari mo itong bilhin sa Android o sa pamamagitan ng aming website sa halip.", "cakepay_prepaid_card": "CakePay Prepaid Debit Card", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index b38cc21afc..83f423b59a 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Dünya çapında ön ödemeli kartlar ve hediye kartları satın alın", "cake_pay_web_cards_subtitle": "Dünya çapında ön ödemeli kartlar ve hediye kartları satın alın", "cake_pay_web_cards_title": "Cake Pay Web Kartları", + "cake_seeds_save_disclaimer": "Lütfen bu kelimeleri güvenli bir yerde kaydedin! Cüzdanınıza erişimi kaybederseniz, kek cüzdan desteği size yardımcı olamaz", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Üzgünüm, bu hediye kartı iOS'ta mevcut değil. Bunun yerine Android'de veya web sitemizden satın alabilirsiniz.", "cakepay_prepaid_card": "CakePay Ön Ödemeli Kart", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index b0384b2c47..b70f58c887 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Купіть у всьому світі передплачені картки та подарункові картки", "cake_pay_web_cards_subtitle": "Купуйте передоплачені та подарункові картки по всьому світу", "cake_pay_web_cards_title": "Веб-картки Cake Pay", + "cake_seeds_save_disclaimer": "Збережіть ці слова в безпечному місці! Якщо ви втрачаєте доступ до свого гаманця, підтримка гаманця тортів не може вам допомогти", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Вибачте, ця подарункова карта недоступна на iOS. Ви можете придбати його на Android або через наш веб -сайт.", "cakepay_prepaid_card": "Передплачена дебетова картка CakePay", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index bc9defdfd6..78443c8030 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "دنیا بھر میں پری پیڈ کارڈز اور گفٹ کارڈ خریدیں", "cake_pay_web_cards_subtitle": "دنیا بھر میں پری پیڈ کارڈز اور گفٹ کارڈز خریدیں۔", "cake_pay_web_cards_title": "Cake پے ویب کارڈز", + "cake_seeds_save_disclaimer": "براہ کرم ان الفاظ کو ایک محفوظ جگہ پر محفوظ کریں! اگر آپ اپنے بٹوے تک رسائی کھو دیتے ہیں تو ، کیک پرس کی مدد آپ کی مدد نہیں کرسکتی ہے", "cake_wallet": "Cake والیٹ", "cakepay_ios_not_available": "معذرت ، یہ گفٹ کارڈ iOS پر دستیاب نہیں ہے۔ اس کے بجائے آپ اسے اینڈروئیڈ پر یا ہماری ویب سائٹ کے ذریعے خرید سکتے ہیں۔", "cakepay_prepaid_card": "Cake پے پری پیڈ ڈیبٹ کارڈ", diff --git a/res/values/strings_vi.arb b/res/values/strings_vi.arb index 85a6547c5d..7491263b4d 100644 --- a/res/values/strings_vi.arb +++ b/res/values/strings_vi.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Mua thẻ trả trước toàn cầu và thẻ quà tặng", "cake_pay_web_cards_subtitle": "Mua thẻ trả trước toàn cầu và thẻ quà tặng", "cake_pay_web_cards_title": "Thẻ Cake Pay Web", + "cake_seeds_save_disclaimer": "Vui lòng lưu những từ này ở một nơi an toàn! Nếu bạn mất quyền truy cập vào ví của mình, hỗ trợ ví tiền không thể giúp bạn", "cake_wallet": "Ví Cake", "cakepay_ios_not_available": "Xin lỗi, thẻ quà tặng này không có sẵn trên iOS. Thay vào đó, bạn có thể mua nó trên Android hoặc thông qua trang web của chúng tôi.", "cakepay_prepaid_card": "Thẻ Ghi Nợ Trả Trước CakePay", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index 1a548438de..f51c83e1c9 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "Ra awọn kaadi ti a san ni agbaye ati awọn kaadi ẹbun", "cake_pay_web_cards_subtitle": "Ra àwọn káàdì ìrajà t'á lò nínú ìtajà kan àti àwọn káàdì náà t'á lè lò níbikíbi", "cake_pay_web_cards_title": "Àwọn káàdì wẹ́ẹ̀bù ti Cake Pay", + "cake_seeds_save_disclaimer": "Jọwọ fi awọn ọrọ wọnyi pamọ ni aaye aabo! Ti o ba padanu wiwọle si apamọwọ rẹ, atilẹyin apamọwọ oyinbo ti a ko le ran ọ lọwọ", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Ma binu, kaadi ẹbun yii ko wa lori iOS. O le ra lori Android tabi nipasẹ oju opo wẹẹbu wa dipo.", "cakepay_prepaid_card": "Káàdì ìrajà ti CakePay", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index df1ab5b1cd..7e36289efc 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -101,6 +101,7 @@ "cake_pay_subtitle": "购买全球预付费卡和礼品卡", "cake_pay_web_cards_subtitle": "购买全球预付卡和礼品卡", "cake_pay_web_cards_title": "蛋糕支付网络卡", + "cake_seeds_save_disclaimer": "请在安全的地方保存这些单词!如果您无法使用钱包,蛋糕钱包的支撑就无法帮助您", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "抱歉,这张礼品卡在iOS上不可用。您可以在Android或通过我们的网站上购买它。", "cakepay_prepaid_card": "CakePay 预付借记卡", From e2a1d865afe2380cc9e814270ea98bfdf5456519 Mon Sep 17 00:00:00 2001 From: cyan Date: Wed, 11 Dec 2024 15:31:01 -0500 Subject: [PATCH 06/10] CW-673: Save Haven seeds to show it to the user after Haven removal (#1518) * haven: backup seeds * haven backup fixes * ci fix * reorder build script * disable haven * properly call cw_haven code * [skip ci] update PR * Update evm_chain_transaction_history.dart remove print --------- Co-authored-by: Omar Hatem --- cw_core/lib/hive_type_ids.dart | 3 +- cw_evm/lib/evm_chain_transaction_history.dart | 1 - lib/entities/default_settings_migration.dart | 32 +++++++++++++------ lib/entities/haven_seed_store.dart | 19 +++++++++++ lib/haven/cw_haven.dart | 17 ++++++++++ lib/main.dart | 18 +++++++++-- tool/configure.dart | 11 ++++++- 7 files changed, 87 insertions(+), 14 deletions(-) create mode 100644 lib/entities/haven_seed_store.dart diff --git a/cw_core/lib/hive_type_ids.dart b/cw_core/lib/hive_type_ids.dart index 6432c484bd..0899ac665e 100644 --- a/cw_core/lib/hive_type_ids.dart +++ b/cw_core/lib/hive_type_ids.dart @@ -18,4 +18,5 @@ const SPL_TOKEN_TYPE_ID = 16; const DERIVATION_INFO_TYPE_ID = 17; const TRON_TOKEN_TYPE_ID = 18; const HARDWARE_WALLET_TYPE_TYPE_ID = 19; -const MWEB_UTXO_TYPE_ID = 20; \ No newline at end of file +const MWEB_UTXO_TYPE_ID = 20; +const HAVEN_SEED_STORE_TYPE_ID = 21; \ No newline at end of file diff --git a/cw_evm/lib/evm_chain_transaction_history.dart b/cw_evm/lib/evm_chain_transaction_history.dart index 4a05746da0..7c46ebecc6 100644 --- a/cw_evm/lib/evm_chain_transaction_history.dart +++ b/cw_evm/lib/evm_chain_transaction_history.dart @@ -84,7 +84,6 @@ abstract class EVMChainTransactionHistoryBase _update(tx); } } - print('doneee'); } catch (e) { log(e.toString()); } diff --git a/lib/entities/default_settings_migration.dart b/lib/entities/default_settings_migration.dart index d91ad64422..92cb752cd5 100644 --- a/lib/entities/default_settings_migration.dart +++ b/lib/entities/default_settings_migration.dart @@ -1,9 +1,13 @@ import 'dart:convert'; import 'dart:io' show Directory, File, Platform; import 'package:cake_wallet/bitcoin/bitcoin.dart'; +import 'package:cake_wallet/core/key_service.dart'; import 'package:cake_wallet/core/secure_storage.dart'; import 'package:cake_wallet/entities/exchange_api_mode.dart'; import 'package:cake_wallet/entities/fiat_api_mode.dart'; +import 'package:cake_wallet/entities/haven_seed_store.dart'; +import 'package:cake_wallet/haven/haven.dart'; +import 'package:cw_core/cake_hive.dart'; import 'package:cw_core/pathForWallet.dart'; import 'package:cake_wallet/entities/secret_store_key.dart'; import 'package:cw_core/root_dir.dart'; @@ -52,7 +56,8 @@ Future defaultSettingsMigration( required Box powNodes, required Box walletInfoSource, required Box tradeSource, - required Box contactSource}) async { + required Box contactSource, + required Box havenSeedStore}) async { if (Platform.isIOS) { await ios_migrate_v1(walletInfoSource, tradeSource, contactSource); } @@ -290,20 +295,22 @@ Future defaultSettingsMigration( ); break; case 45: - await updateWalletTypeNodesWithNewNode( + await _backupHavenSeeds(havenSeedStore); + + updateWalletTypeNodesWithNewNode( newNodeUri: 'matic.nownodes.io', sharedPreferences: sharedPreferences, nodes: nodes, type: WalletType.polygon, useSSL: true, ); - await updateWalletTypeNodesWithNewNode( - newNodeUri: 'eth.nownodes.io', - sharedPreferences: sharedPreferences, - nodes: nodes, - type: WalletType.ethereum, - useSSL: true, - ); + updateWalletTypeNodesWithNewNode( + newNodeUri: 'eth.nownodes.io', + sharedPreferences: sharedPreferences, + nodes: nodes, + type: WalletType.ethereum, + useSSL: true, + ); default: break; } @@ -318,6 +325,13 @@ Future defaultSettingsMigration( await sharedPreferences.setInt(PreferencesKey.currentDefaultSettingsMigrationVersion, version); } +Future _backupHavenSeeds(Box havenSeedStore) async { + final future = haven?.backupHavenSeeds(havenSeedStore); + if (future != null) { + await future; + } + return; +} /// generic function for changing any wallet default node /// instead of making a new function for each change Future _changeDefaultNode({ diff --git a/lib/entities/haven_seed_store.dart b/lib/entities/haven_seed_store.dart new file mode 100644 index 0000000000..f899799d84 --- /dev/null +++ b/lib/entities/haven_seed_store.dart @@ -0,0 +1,19 @@ +import 'package:cw_core/hive_type_ids.dart'; +import 'package:hive/hive.dart'; + +part 'haven_seed_store.g.dart'; + +@HiveType(typeId: HavenSeedStore.typeId) +class HavenSeedStore extends HiveObject { + HavenSeedStore({required this.id, this.seed}); + + static const typeId = HAVEN_SEED_STORE_TYPE_ID; + static const boxName = 'HavenSeedStore'; + static const boxKey = 'havenSeedStoreKey'; + + @HiveField(0, defaultValue: '') + String id; + + @HiveField(2) + String? seed; +} diff --git a/lib/haven/cw_haven.dart b/lib/haven/cw_haven.dart index 57c4e49c32..c54e47eb42 100644 --- a/lib/haven/cw_haven.dart +++ b/lib/haven/cw_haven.dart @@ -307,6 +307,23 @@ class CWHaven extends Haven { return havenTransactionInfo.accountIndex; } + @override + Future backupHavenSeeds(Box havenSeedStore) async { + final walletInfoSource = await CakeHive.openBox(WalletInfo.boxName); + final wallets = walletInfoSource.values + .where((element) => element.type == WalletType.haven); + for (var w in wallets) { + final walletService = HavenWalletService(walletInfoSource); + final flutterSecureStorage = secureStorageShared; + final keyService = KeyService(flutterSecureStorage); + final password = await keyService.getWalletPassword(walletName: w.name); + final wallet = await walletService.openWallet(w.name, password); + await havenSeedStore.add(HavenSeedStore(id: wallet.id, seed: wallet.seed)); + wallet.close(); + } + await havenSeedStore.flush(); + } + @override WalletService createHavenWalletService(Box walletInfoSource) { return HavenWalletService(walletInfoSource); diff --git a/lib/main.dart b/lib/main.dart index 00d76800d0..5107051055 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -9,6 +9,7 @@ import 'package:cake_wallet/entities/contact.dart'; import 'package:cake_wallet/entities/default_settings_migration.dart'; import 'package:cake_wallet/entities/get_encryption_key.dart'; import 'package:cake_wallet/core/secure_storage.dart'; +import 'package:cake_wallet/entities/haven_seed_store.dart'; import 'package:cake_wallet/entities/language_service.dart'; import 'package:cake_wallet/entities/template.dart'; import 'package:cake_wallet/entities/transaction_description.dart'; @@ -164,6 +165,10 @@ Future initializeAppConfigs() async { CakeHive.registerAdapter(AnonpayInvoiceInfoAdapter()); } + if (!CakeHive.isAdapterRegistered(HavenSeedStore.typeId)) { + CakeHive.registerAdapter(HavenSeedStoreAdapter()); + } + if (!CakeHive.isAdapterRegistered(MwebUtxo.typeId)) { CakeHive.registerAdapter(MwebUtxoAdapter()); } @@ -188,6 +193,12 @@ Future initializeAppConfigs() async { final anonpayInvoiceInfo = await CakeHive.openBox(AnonpayInvoiceInfo.boxName); final unspentCoinsInfoSource = await CakeHive.openBox(UnspentCoinsInfo.boxName); + final havenSeedStoreBoxKey = + await getEncryptionKey(secureStorage: secureStorage, forKey: HavenSeedStore.boxKey); + final havenSeedStore = await CakeHive.openBox( + HavenSeedStore.boxName, + encryptionKey: havenSeedStoreBoxKey); + await initialSetup( sharedPreferences: await SharedPreferences.getInstance(), nodes: nodes, @@ -203,6 +214,7 @@ Future initializeAppConfigs() async { transactionDescriptions: transactionDescriptions, secureStorage: secureStorage, anonpayInvoiceInfo: anonpayInvoiceInfo, + havenSeedStore: havenSeedStore, initialMigrationVersion: 45, ); } @@ -222,7 +234,8 @@ Future initialSetup( required SecureStorage secureStorage, required Box anonpayInvoiceInfo, required Box unspentCoinsInfoSource, - int initialMigrationVersion = 15}) async { + required Box havenSeedStore, + int initialMigrationVersion = 15, }) async { LanguageService.loadLocaleList(); await defaultSettingsMigration( secureStorage: secureStorage, @@ -232,7 +245,8 @@ Future initialSetup( contactSource: contactSource, tradeSource: tradesSource, nodes: nodes, - powNodes: powNodes); + powNodes: powNodes, + havenSeedStore: havenSeedStore); await setup( walletInfoSource: walletInfoSource, nodeSource: nodes, diff --git a/tool/configure.dart b/tool/configure.dart index d9d5c66675..6abd73d9e4 100644 --- a/tool/configure.dart +++ b/tool/configure.dart @@ -656,7 +656,14 @@ import 'package:cw_core/output_info.dart'; import 'package:cake_wallet/view_model/send/output.dart'; import 'package:cw_core/wallet_service.dart'; import 'package:hive/hive.dart'; -import 'package:cw_core/crypto_currency.dart';"""; +import 'package:cw_core/crypto_currency.dart'; +import 'package:cake_wallet/core/key_service.dart'; +import 'package:cake_wallet/core/secure_storage.dart'; +import 'package:cake_wallet/entities/haven_seed_store.dart'; +import 'package:cw_core/cake_hive.dart'; +import 'package:cw_core/wallet_info.dart'; +import 'package:cw_core/wallet_type.dart'; +"""; const havenCWHeaders = """ import 'package:cw_core/get_height_by_date.dart'; import 'package:cw_core/monero_amount_format.dart'; @@ -679,6 +686,7 @@ import 'package:cw_haven/mnemonics/french.dart'; import 'package:cw_haven/mnemonics/italian.dart'; import 'package:cw_haven/haven_transaction_creation_credentials.dart'; import 'package:cw_haven/api/balance_list.dart'; +import 'package:cw_haven/haven_wallet_service.dart'; """; const havenCwPart = "part 'cw_haven.dart';"; const havenContent = """ @@ -779,6 +787,7 @@ abstract class Haven { void onStartup(); int getTransactionInfoAccountId(TransactionInfo tx); WalletService createHavenWalletService(Box walletInfoSource); + Future backupHavenSeeds(Box havenSeedStore); CryptoCurrency assetOfTransaction(TransactionInfo tx); List getAssetRate(); } From 1320b3ea3c927176b756d93d6f6ff5207c9c94cc Mon Sep 17 00:00:00 2001 From: Serhii Date: Wed, 11 Dec 2024 22:39:59 +0200 Subject: [PATCH 07/10] Update address_validator.dart (#1805) --- lib/core/address_validator.dart | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/lib/core/address_validator.dart b/lib/core/address_validator.dart index 387b91dccc..dbb6f95413 100644 --- a/lib/core/address_validator.dart +++ b/lib/core/address_validator.dart @@ -106,9 +106,8 @@ class AddressValidator extends TextValidator { case CryptoCurrency.wow: pattern = '[0-9a-zA-Z]+'; case CryptoCurrency.bch: - pattern = '^(bitcoincash:)?(q|p)[0-9a-zA-Z]{41,42}'; - case CryptoCurrency.bnb: - pattern = '[0-9a-zA-Z]+'; + pattern = '(?:bitcoincash:)?(q|p)[0-9a-zA-Z]{41}' + '|[13][a-km-zA-HJ-NP-Z1-9]{25,34}'; case CryptoCurrency.hbar: pattern = '[0-9a-zA-Z.]+'; case CryptoCurrency.zaddr: @@ -203,7 +202,7 @@ class AddressValidator extends TextValidator { case CryptoCurrency.avaxc: return [42]; case CryptoCurrency.bch: - return [42, 43, 44, 54, 55]; + return [42, 54, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35]; case CryptoCurrency.bnb: return [42]; case CryptoCurrency.nano: From fd6801cafb6d3c61b4738e06ca7985a64d48ab35 Mon Sep 17 00:00:00 2001 From: cyan Date: Wed, 11 Dec 2024 16:03:34 -0500 Subject: [PATCH 08/10] CW-834 Empty error when spending in wownero (#1870) * CW-834 Empty error when spending in wownero * monero -> wownero --- cw_wownero/lib/api/transaction_history.dart | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/cw_wownero/lib/api/transaction_history.dart b/cw_wownero/lib/api/transaction_history.dart index ce93df7d18..3cebdd8112 100644 --- a/cw_wownero/lib/api/transaction_history.dart +++ b/cw_wownero/lib/api/transaction_history.dart @@ -181,13 +181,23 @@ void commitTransaction({required wownero.PendingTransaction transactionPointer}) final txCommit = wownero.PendingTransaction_commit(transactionPointer, filename: '', overwrite: false); - final String? error = (() { + String? error = (() { final status = wownero.PendingTransaction_status(transactionPointer.cast()); if (status == 0) { return null; } - return wownero.Wallet_errorString(wptr!); + return wownero.PendingTransaction_errorString(transactionPointer.cast()); })(); + if (error == null) { + error = (() { + final status = wownero.Wallet_status(wptr!); + if (status == 0) { + return null; + } + return wownero.Wallet_errorString(wptr!); + })(); + + } if (error != null) { throw CreationTransactionException(message: error); From 5abd524af35b4df06c6250f9a83a28819f118822 Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Thu, 12 Dec 2024 02:49:17 -0500 Subject: [PATCH 09/10] Update seed page strings and colors (#1871) --- lib/src/screens/seed/wallet_seed_page.dart | 6 +++--- res/values/strings_ar.arb | 2 +- res/values/strings_bg.arb | 2 +- res/values/strings_cs.arb | 2 +- res/values/strings_de.arb | 2 +- res/values/strings_en.arb | 2 +- res/values/strings_es.arb | 2 +- res/values/strings_fr.arb | 2 +- res/values/strings_ha.arb | 2 +- res/values/strings_hi.arb | 2 +- res/values/strings_hr.arb | 2 +- res/values/strings_hy.arb | 2 +- res/values/strings_id.arb | 2 +- res/values/strings_it.arb | 2 +- res/values/strings_ja.arb | 2 +- res/values/strings_ko.arb | 2 +- res/values/strings_my.arb | 2 +- res/values/strings_nl.arb | 2 +- res/values/strings_pl.arb | 2 +- res/values/strings_pt.arb | 2 +- res/values/strings_ru.arb | 2 +- res/values/strings_th.arb | 2 +- res/values/strings_tl.arb | 2 +- res/values/strings_tr.arb | 2 +- res/values/strings_uk.arb | 2 +- res/values/strings_ur.arb | 2 +- res/values/strings_vi.arb | 2 +- res/values/strings_yo.arb | 2 +- res/values/strings_zh.arb | 2 +- 29 files changed, 31 insertions(+), 31 deletions(-) diff --git a/lib/src/screens/seed/wallet_seed_page.dart b/lib/src/screens/seed/wallet_seed_page.dart index 05a44281aa..fe532e7fbb 100644 --- a/lib/src/screens/seed/wallet_seed_page.dart +++ b/lib/src/screens/seed/wallet_seed_page.dart @@ -114,12 +114,12 @@ class WalletSeedPage extends BasePage { padding: EdgeInsets.symmetric(horizontal: 12, vertical: 8), decoration: BoxDecoration( color: currentTheme.type == ThemeType.dark - ? Color.fromRGBO(126, 116, 59, 1) - : Color.fromRGBO(189, 169, 90, 1), + ? Color.fromRGBO(132, 110, 64, 1) + : Color.fromRGBO(194, 165, 94, 1), borderRadius: BorderRadius.all(Radius.circular(12)), border: Border.all( color: currentTheme.type == ThemeType.dark - ? Color.fromRGBO(171, 171, 41, 1) + ? Color.fromRGBO(177, 147, 41, 1) : Color.fromRGBO(125, 122, 15, 1), width: 2.0, )), diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb index b8e476e4c8..bd7fa47d77 100644 --- a/res/values/strings_ar.arb +++ b/res/values/strings_ar.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "شراء بطاقات مسبقة الدفع وبطاقات الهدايا في جميع أنحاء العالم", "cake_pay_web_cards_subtitle": "اشتري بطاقات مدفوعة مسبقا وبطاقات هدايا في جميع أنحاء العالم", "cake_pay_web_cards_title": "بطاقات Cake Pay Web", - "cake_seeds_save_disclaimer": "يرجى حفظ هذه الكلمات في مكان آمن! إذا فقدت الوصول إلى محفظتك ، فإن دعم محفظة الكيك لا يمكن أن يساعدك", + "cake_seeds_save_disclaimer": "يرجى حفظ هذه الكلمات في مكان آمن! ستحتاج إلى هذه الكلمات لاستعادة محفظتك على جهاز جديد.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "آسف ، بطاقة الهدايا هذه غير متوفرة على iOS. يمكنك شرائه على Android أو من خلال موقعنا بدلاً من ذلك.", "cakepay_prepaid_card": "بطاقة ائتمان CakePay مسبقة الدفع", diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb index 91a718f911..bff37e95c2 100644 --- a/res/values/strings_bg.arb +++ b/res/values/strings_bg.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Купете предплатени карти и карти за подаръци в световен мащаб", "cake_pay_web_cards_subtitle": "Купете световно признати предплатени и гифт карти", "cake_pay_web_cards_title": "Cake Pay Онлайн Карти", - "cake_seeds_save_disclaimer": "Моля, запазете тези думи на сигурно място! Ако загубите достъп до портфейла си, поддръжката на портфейла за торти не може да ви помогне", + "cake_seeds_save_disclaimer": "Моля, запазете тези думи на сигурно място! Ще ви трябват тези думи, за да възстановите портфейла си на ново устройство.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "За съжаление тази карта за подарък не се предлага в iOS. Можете да го закупите на Android или чрез нашия уебсайт вместо това.", "cakepay_prepaid_card": "CakePay предплатена дебитна карта", diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb index d2ca2def54..d8025678f8 100644 --- a/res/values/strings_cs.arb +++ b/res/values/strings_cs.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Kupte si celosvětové předplacené karty a dárkové karty", "cake_pay_web_cards_subtitle": "Kupte si celosvětové předplacené a dárkové karty", "cake_pay_web_cards_title": "Cake Pay webové karty", - "cake_seeds_save_disclaimer": "Uložte tato slova na bezpečném místě! Pokud ztratíte přístup k vaší peněžence, podpora peněženky dortu vám nemůže pomoci", + "cake_seeds_save_disclaimer": "Uložte tato slova na bezpečném místě! Tato slova budete potřebovat k obnovení peněženky na novém zařízení.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Je nám líto, tato dárková karta není k dispozici na iOS. Místo toho si jej můžete zakoupit na Androidu nebo prostřednictvím našeho webu.", "cakepay_prepaid_card": "CakePay předplacená debetní karta", diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb index f5e2a38797..b3aad50b06 100644 --- a/res/values/strings_de.arb +++ b/res/values/strings_de.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Kaufen Sie weltweite Prepaid-Karten und Geschenkkarten", "cake_pay_web_cards_subtitle": "Kaufen Sie weltweit Prepaid-Karten und Geschenkkarten", "cake_pay_web_cards_title": "Cake Pay-Webkarten", - "cake_seeds_save_disclaimer": "Bitte speichern Sie diese Wörter an einem sicheren Ort! Wenn Sie den Zugang zu Ihrer Brieftasche verlieren, kann Ihnen die Stütze der Kuchenbrieftasche nicht helfen", + "cake_seeds_save_disclaimer": "Bitte speichern Sie diese Wörter an einem sicheren Ort! Sie benötigen diese Wörter, um Ihre Brieftasche auf einem neuen Gerät wiederherzustellen.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Entschuldigung, diese Geschenkkarte ist auf iOS nicht erhältlich. Sie können es stattdessen auf Android oder über unsere Website kaufen.", "cakepay_prepaid_card": "CakePay-Prepaid-Debitkarte", diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb index 0168f79515..bd483adb1f 100644 --- a/res/values/strings_en.arb +++ b/res/values/strings_en.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Buy worldwide prepaid cards and gift cards", "cake_pay_web_cards_subtitle": "Buy worldwide prepaid cards and gift cards", "cake_pay_web_cards_title": "Cake Pay Web Cards", - "cake_seeds_save_disclaimer": "Please save these words in a secure place! If you lose access to your wallet, Cake Wallet support CANNOT help you", + "cake_seeds_save_disclaimer": "Please save these words in a secure place! You will need these words to restore your wallet on a new device.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Sorry, this gift card is not available on iOS. You can purchase it on Android or through our website instead.", "cakepay_prepaid_card": "CakePay Prepaid Debit Card", diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb index 12ea9bbf3b..45b1d279b4 100644 --- a/res/values/strings_es.arb +++ b/res/values/strings_es.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Compra tarjetas prepagadas y tarjetas de regalo en todo el mundo", "cake_pay_web_cards_subtitle": "Compra tarjetas de prepago y tarjetas de regalo en todo el mundo", "cake_pay_web_cards_title": "Tarjetas Web Cake Pay", - "cake_seeds_save_disclaimer": "¡Guarde estas palabras en un lugar seguro! Si pierde acceso a su billetera, el soporte de la billetera de pastel no puede ayudarlo", + "cake_seeds_save_disclaimer": "¡Guarde estas palabras en un lugar seguro! Necesitará estas palabras para restaurar su billetera en un nuevo dispositivo.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Lo siento, esta tarjeta de regalo no está disponible en iOS. Puede comprarlo en Android o a través de nuestro sitio web.", "cakepay_prepaid_card": "Tarjeta de Débito Prepago CakePay", diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb index a8b1fc48b5..a359e3630f 100644 --- a/res/values/strings_fr.arb +++ b/res/values/strings_fr.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Achetez des cartes et des cartes-cadeaux prépayées mondiales", "cake_pay_web_cards_subtitle": "Achetez des cartes prépayées et des cartes-cadeaux dans le monde entier", "cake_pay_web_cards_title": "Cartes Web Cake Pay", - "cake_seeds_save_disclaimer": "Veuillez enregistrer ces mots dans un endroit sécurisé! Si vous perdez accès à votre portefeuille, le support de portefeuille à gâteau ne peut pas vous aider", + "cake_seeds_save_disclaimer": "Veuillez enregistrer ces mots dans un endroit sécurisé! Vous aurez besoin de ces mots pour restaurer votre portefeuille sur un nouvel appareil.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Désolé, cette carte-cadeau n'est pas disponible sur iOS. Vous pouvez l'acheter sur Android ou via notre site Web à la place.", "cakepay_prepaid_card": "Carte de débit prépayée Cake Pay", diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb index 24330f3480..48ede7b7c3 100644 --- a/res/values/strings_ha.arb +++ b/res/values/strings_ha.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Sayi katunan shirye-shiryen duniya da katunan kyauta", "cake_pay_web_cards_subtitle": "Sayi katunan da aka riga aka biya na duniya da katunan kyauta", "cake_pay_web_cards_title": "Cake Pay Web Cards", - "cake_seeds_save_disclaimer": "Da fatan za a ceci waɗannan kalmomin a cikin amintaccen wuri! Idan ka rasa damar zuwa Wallet, Tallafin Wall Wallet ba zai iya taimaka maka ba", + "cake_seeds_save_disclaimer": "Da fatan za a ceci waɗannan kalmomin a cikin amintaccen wuri! Kuna buƙatar waɗannan kalmomin don dawo da walat ɗinku a kan sabon na'ura.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Yi haƙuri, wannan katin kyautar ba a samuwa akan iOS. Kuna iya sayan shi a kan Android ko ta yanar gizo a maimakon.", "cakepay_prepaid_card": "Katin zare kudi na CakePay", diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb index 5d226dfb68..c2feea9395 100644 --- a/res/values/strings_hi.arb +++ b/res/values/strings_hi.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "दुनिया भर में प्रीपेड कार्ड और उपहार कार्ड खरीदें", "cake_pay_web_cards_subtitle": "दुनिया भर में प्रीपेड कार्ड और गिफ्ट कार्ड खरीदें", "cake_pay_web_cards_title": "केक भुगतान वेब कार्ड", - "cake_seeds_save_disclaimer": "कृपया इन शब्दों को सुरक्षित स्थान पर सहेजें! यदि आप अपने बटुए तक पहुंच खो देते हैं, तो केक वॉलेट समर्थन आपकी मदद नहीं कर सकता है", + "cake_seeds_save_disclaimer": "कृपया इन शब्दों को सुरक्षित स्थान पर सहेजें! एक नए डिवाइस पर अपने बटुए को पुनर्स्थापित करने के लिए आपको इन शब्दों की आवश्यकता होगी।", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "क्षमा करें, यह उपहार कार्ड iOS पर उपलब्ध नहीं है। आप इसे Android पर या हमारी वेबसाइट के बजाय खरीद सकते हैं।", "cakepay_prepaid_card": "केकपे प्रीपेड डेबिट कार्ड", diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb index ed60e6ee6a..c82e2a5f89 100644 --- a/res/values/strings_hr.arb +++ b/res/values/strings_hr.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Kupite svjetske unaprijed plaćene kartice i poklon kartice", "cake_pay_web_cards_subtitle": "Kupujte prepaid kartice i poklon kartice diljem svijeta", "cake_pay_web_cards_title": "Cake Pay Web kartice", - "cake_seeds_save_disclaimer": "Molimo spremite ove riječi na sigurno mjesto! Ako izgubite pristup vašem novčaniku, podrška za novčanik za kolače ne može vam pomoći", + "cake_seeds_save_disclaimer": "Molimo spremite ove riječi na sigurno mjesto! Trebat će vam ove riječi da biste vratili novčanik na novi uređaj.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Oprostite, ova poklon kartica nije dostupna na iOS -u. Umjesto toga, možete ga kupiti na Androidu ili putem naše web stranice.", "cakepay_prepaid_card": "CakePay unaprijed plaćena debitna kartica", diff --git a/res/values/strings_hy.arb b/res/values/strings_hy.arb index 41b18f59e4..d83bc2a3aa 100644 --- a/res/values/strings_hy.arb +++ b/res/values/strings_hy.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Գնեք համաշխարհային նախավճարային քարտեր և նվեր քարտեր", "cake_pay_web_cards_subtitle": "Գնեք համաշխարհային նախավճարային քարտեր և նվեր քարտեր", "cake_pay_web_cards_title": "Cake Pay Վեբ Քարտեր", - "cake_seeds_save_disclaimer": "Խնդրում ենք պահպանել այս բառերը անվտանգ տեղում: Եթե ​​ձեր դրամապանակը կորցնեք մուտքը, տորթի դրամապանակի աջակցությունը չի կարող օգնել ձեզ", + "cake_seeds_save_disclaimer": "Խնդրում ենք պահպանել այս բառերը անվտանգ տեղում: Ձեզ հարկավոր կլինի այս բառերը `ձեր դրամապանակը նոր սարքում վերականգնելու համար:", "cake_wallet": "Cake Գաղտնապահոց", "cakepay_ios_not_available": "Ներեցեք, այս նվեր քարտը հասանելի չէ iOS- ում: Փոխարենը կարող եք այն գնել Android- ում կամ մեր կայքում:", "cakepay_prepaid_card": "CakePay Նախավճարային Դեբետային Քարտ", diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb index ef64b7044a..ca140e63e1 100644 --- a/res/values/strings_id.arb +++ b/res/values/strings_id.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Beli kartu prabayar di seluruh dunia dan kartu hadiah", "cake_pay_web_cards_subtitle": "Beli kartu prabayar dan kartu hadiah secara global", "cake_pay_web_cards_title": "Kartu Web Cake Pay", - "cake_seeds_save_disclaimer": "Harap simpan kata -kata ini di tempat yang aman! Jika Anda kehilangan akses ke dompet Anda, dukungan dompet kue tidak dapat membantu Anda", + "cake_seeds_save_disclaimer": "Harap simpan kata -kata ini di tempat yang aman! Anda akan membutuhkan kata -kata ini untuk mengembalikan dompet Anda pada perangkat baru.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Maaf, kartu hadiah ini tidak tersedia di iOS. Anda dapat membelinya di Android atau melalui situs web kami sebagai gantinya.", "cakepay_prepaid_card": "Kartu Debit Prabayar CakePay", diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb index 6a508822aa..f5dbc1c5ab 100644 --- a/res/values/strings_it.arb +++ b/res/values/strings_it.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Acquista carte prepagate in tutto il mondo e carte regalo", "cake_pay_web_cards_subtitle": "Acquista carte prepagate e carte regalo in tutto il mondo", "cake_pay_web_cards_title": "Carte Web Cake Pay", - "cake_seeds_save_disclaimer": "Si prega di salvare queste parole in un posto sicuro! Se perdi l'accesso al tuo portafoglio, il supporto per il portafoglio della torta non può aiutarti", + "cake_seeds_save_disclaimer": "Si prega di salvare queste parole in un posto sicuro! Avrai bisogno di queste parole per ripristinare il portafoglio su un nuovo dispositivo.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Mi dispiace, questa carta regalo non è disponibile su iOS. Puoi acquistarlo su Android o tramite il nostro sito Web.", "cakepay_prepaid_card": "Carta di debito prepagata CakePay", diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb index 177171a50e..182133e68e 100644 --- a/res/values/strings_ja.arb +++ b/res/values/strings_ja.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "世界中のプリペイドカードとギフトカードを購入します", "cake_pay_web_cards_subtitle": "世界中のプリペイド カードとギフト カードを購入する", "cake_pay_web_cards_title": "Cake Pay ウェブカード", - "cake_seeds_save_disclaimer": "これらの言葉を安全な場所に保存してください!財布へのアクセスを失った場合、ケーキウォレットのサポートはあなたを助けることができません", + "cake_seeds_save_disclaimer": "これらの言葉を安全な場所に保存してください!新しいデバイスで財布を復元するには、これらの単語が必要です。", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "申し訳ありませんが、このギフトカードはiOSでは利用できません。代わりにAndroidまたは当社のWebサイトから購入できます。", "cakepay_prepaid_card": "CakePayプリペイドデビットカード", diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb index fd66d00100..747c316d69 100644 --- a/res/values/strings_ko.arb +++ b/res/values/strings_ko.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "전세계 선불 카드와 기프트 카드를 구입하십시오", "cake_pay_web_cards_subtitle": "전 세계 선불 카드 및 기프트 카드 구매", "cake_pay_web_cards_title": "케이크페이 웹카드", - "cake_seeds_save_disclaimer": "이 단어를 안전한 장소에 저장하십시오! 지갑에 대한 접근이 손실되면 케이크 지갑 지지대가 도움이되지 않습니다.", + "cake_seeds_save_disclaimer": "이 단어를 안전한 장소에 저장하십시오! 새 장치에서 지갑을 복원하려면이 단어가 필요합니다.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "죄송합니다.이 기프트 카드는 iOS에서 사용할 수 없습니다. Android 또는 웹 사이트를 통해 구매할 수 있습니다.", "cakepay_prepaid_card": "CakePay 선불 직불 카드", diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb index ae007e4878..8fe87b34ca 100644 --- a/res/values/strings_my.arb +++ b/res/values/strings_my.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Worldwide ကြိုတင်ငွေဖြည့်ကဒ်များနှင့်လက်ဆောင်ကဒ်များကို 0 ယ်ပါ", "cake_pay_web_cards_subtitle": "ကမ္ဘာတစ်ဝှမ်း ကြိုတင်ငွေပေးကတ်များနှင့် လက်ဆောင်ကတ်များကို ဝယ်ယူပါ။", "cake_pay_web_cards_title": "Cake Pay ဝဘ်ကတ်များ", - "cake_seeds_save_disclaimer": "ကျေးဇူးပြုပြီးဒီစကားလုံးတွေကိုလုံခြုံတဲ့နေရာမှာသိမ်းထားပါ။ သင်၏ပိုက်ဆံအိတ်ကိုသင်လက်လှမ်းမမီပါကကိတ်မုန့်ပိုက်ဆံအိတ်အထောက်အပံ့သည်သင့်ကိုမကူညီနိုင်ပါ", + "cake_seeds_save_disclaimer": "ကျေးဇူးပြုပြီးဒီစကားလုံးတွေကိုလုံခြုံတဲ့နေရာမှာသိမ်းထားပါ။ သင်၏ပိုက်ဆံအိတ်ကိုကိရိယာအသစ်တစ်ခုတွင်သင်၏ပိုက်ဆံအိတ်ကိုပြန်လည်ရယူရန်ဤစကားလုံးများကိုသင်လိုအပ်လိမ့်မည်။", "cake_wallet": "Cake ပိုက်ဆံအိတ်", "cakepay_ios_not_available": "တောင်းပန်ပါတယ်, ဒီလက်ဆောင်ကဒ်ကို iOS မှာမရနိုင်ပါ။ ၎င်းကို Android တွင်သို့မဟုတ်ကျွန်ုပ်တို့၏ဝက်ဘ်ဆိုက်တွင် 0 ယ်နိုင်သည်။", "cakepay_prepaid_card": "CakePay ကြိုတင်ငွေဖြည့်ဒက်ဘစ်ကတ်", diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb index 6343f4dd09..ca7052b0ec 100644 --- a/res/values/strings_nl.arb +++ b/res/values/strings_nl.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Koop wereldwijde prepaid -kaarten en cadeaubonnen", "cake_pay_web_cards_subtitle": "Koop wereldwijd prepaidkaarten en cadeaubonnen", "cake_pay_web_cards_title": "Cake Pay-webkaarten", - "cake_seeds_save_disclaimer": "Bewaar deze woorden op een veilige plek! Als u de toegang tot uw portemonnee verliest, kan ondersteuning voor cake -portemonnee u niet helpen", + "cake_seeds_save_disclaimer": "Bewaar deze woorden op een veilige plek! U hebt deze woorden nodig om uw portemonnee op een nieuw apparaat te herstellen.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Sorry, deze cadeaubon is niet beschikbaar op iOS. U kunt het in plaats daarvan kopen op Android of via onze website.", "cakepay_prepaid_card": "CakePay Prepaid Debetkaart", diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb index 6afe3b9321..fad2bb0269 100644 --- a/res/values/strings_pl.arb +++ b/res/values/strings_pl.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Kup na całym świecie karty przedpłacone i karty podarunkowe", "cake_pay_web_cards_subtitle": "Kupuj na całym świecie karty przedpłacone i karty podarunkowe", "cake_pay_web_cards_title": "Cake Pay Web Cards", - "cake_seeds_save_disclaimer": "Zapisz te słowa w bezpiecznym miejscu! Jeśli stracisz dostęp do portfela, wsparcie portfela ciasta nie może ci pomóc", + "cake_seeds_save_disclaimer": "Zapisz te słowa w bezpiecznym miejscu! Będziesz potrzebować tych słów, aby przywrócić portfel na nowym urządzeniu.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Przepraszam, ta karta podarunkowa nie jest dostępna na iOS. Zamiast tego możesz go kupić na Android lub za pośrednictwem naszej strony internetowej.", "cakepay_prepaid_card": "Przedpłacona karta debetowa CakePay", diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb index 85fafc590b..c59afec65f 100644 --- a/res/values/strings_pt.arb +++ b/res/values/strings_pt.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Compre cartões pré -pagos em todo o mundo e cartões -presente", "cake_pay_web_cards_subtitle": "Compre cartões pré-pagos e cartões-presente em todo o mundo", "cake_pay_web_cards_title": "Cartões Cake Pay Web", - "cake_seeds_save_disclaimer": "Por favor, salve estas palavras em um local seguro! Se você perder o acesso à sua carteira, o suporte da carteira de bolo não poderá ajudá -lo", + "cake_seeds_save_disclaimer": "Por favor, salve estas palavras em um local seguro! Você precisará dessas palavras para restaurar sua carteira em um novo dispositivo.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Desculpe, este cartão -presente não está disponível no iOS. Você pode comprá -lo no Android ou através do nosso site.", "cakepay_prepaid_card": "Cartão de débito pré-pago CakePay", diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb index 07d8f39cea..94b1c7010f 100644 --- a/res/values/strings_ru.arb +++ b/res/values/strings_ru.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Купить карты с предоплатой и подарочными картами по всему миру", "cake_pay_web_cards_subtitle": "Покупайте карты предоплаты и подарочные карты по всему миру", "cake_pay_web_cards_title": "Веб-карты Cake Pay", - "cake_seeds_save_disclaimer": "Пожалуйста, сохраните эти слова в безопасном месте! Если вы теряете доступ к своему кошельку, поддержка кошелька для торта не может вам помочь", + "cake_seeds_save_disclaimer": "Пожалуйста, сохраните эти слова в безопасном месте! Вам понадобятся эти слова, чтобы восстановить свой кошелек на новом устройстве.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Извините, эта подарочная карта недоступна на iOS. Вместо этого вы можете приобрести его на Android или через наш веб -сайт.", "cakepay_prepaid_card": "Предоплаченная дебетовая карта CakePay", diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb index f938576dd4..f35187cd45 100644 --- a/res/values/strings_th.arb +++ b/res/values/strings_th.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "ซื้อบัตรเติมเงินและบัตรของขวัญทั่วโลก", "cake_pay_web_cards_subtitle": "ซื้อบัตรพร้อมเงินระดับโลกและบัตรของขวัญ", "cake_pay_web_cards_title": "Cake Pay Web Cards", - "cake_seeds_save_disclaimer": "โปรดบันทึกคำเหล่านี้ในสถานที่ที่ปลอดภัย! หากคุณสูญเสียการเข้าถึงกระเป๋าเงินของคุณการสนับสนุนกระเป๋าเงินเค้กไม่สามารถช่วยคุณได้", + "cake_seeds_save_disclaimer": "โปรดบันทึกคำเหล่านี้ในสถานที่ที่ปลอดภัย! คุณจะต้องใช้คำเหล่านี้เพื่อกู้คืนกระเป๋าเงินของคุณในอุปกรณ์ใหม่", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "ขออภัยบัตรของขวัญนี้ไม่มีใน iOS คุณสามารถซื้อได้บน Android หรือผ่านเว็บไซต์ของเราแทน", "cakepay_prepaid_card": "บัตรเดบิตเติมเงินของ CakePay", diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb index 2234d02b1a..290fcf4bfc 100644 --- a/res/values/strings_tl.arb +++ b/res/values/strings_tl.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Bumili ng mga pandaigdigang prepaid card at gift card", "cake_pay_web_cards_subtitle": "Bumili ng mga pandaigdigang prepaid card at gift card", "cake_pay_web_cards_title": "Cake Pay Web Cards", - "cake_seeds_save_disclaimer": "Mangyaring i -save ang mga salitang ito sa isang ligtas na lugar! Kung nawalan ka ng pag -access sa iyong pitaka, hindi makakatulong sa iyo ang suporta ng wallet ng cake", + "cake_seeds_save_disclaimer": "Mangyaring i -save ang mga salitang ito sa isang ligtas na lugar! Kakailanganin mo ang mga salitang ito upang maibalik ang iyong pitaka sa isang bagong aparato.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Paumanhin, ang gift card na ito ay hindi magagamit sa iOS. Maaari mo itong bilhin sa Android o sa pamamagitan ng aming website sa halip.", "cakepay_prepaid_card": "CakePay Prepaid Debit Card", diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb index 83f423b59a..912cd52e45 100644 --- a/res/values/strings_tr.arb +++ b/res/values/strings_tr.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Dünya çapında ön ödemeli kartlar ve hediye kartları satın alın", "cake_pay_web_cards_subtitle": "Dünya çapında ön ödemeli kartlar ve hediye kartları satın alın", "cake_pay_web_cards_title": "Cake Pay Web Kartları", - "cake_seeds_save_disclaimer": "Lütfen bu kelimeleri güvenli bir yerde kaydedin! Cüzdanınıza erişimi kaybederseniz, kek cüzdan desteği size yardımcı olamaz", + "cake_seeds_save_disclaimer": "Lütfen bu kelimeleri güvenli bir yerde kaydedin! Cüzdanınızı yeni bir cihazda geri yüklemek için bu kelimelere ihtiyacınız olacak.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Üzgünüm, bu hediye kartı iOS'ta mevcut değil. Bunun yerine Android'de veya web sitemizden satın alabilirsiniz.", "cakepay_prepaid_card": "CakePay Ön Ödemeli Kart", diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb index b70f58c887..fd03f437e4 100644 --- a/res/values/strings_uk.arb +++ b/res/values/strings_uk.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Купіть у всьому світі передплачені картки та подарункові картки", "cake_pay_web_cards_subtitle": "Купуйте передоплачені та подарункові картки по всьому світу", "cake_pay_web_cards_title": "Веб-картки Cake Pay", - "cake_seeds_save_disclaimer": "Збережіть ці слова в безпечному місці! Якщо ви втрачаєте доступ до свого гаманця, підтримка гаманця тортів не може вам допомогти", + "cake_seeds_save_disclaimer": "Збережіть ці слова в безпечному місці! Вам знадобляться ці слова, щоб відновити гаманець на новому пристрої.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Вибачте, ця подарункова карта недоступна на iOS. Ви можете придбати його на Android або через наш веб -сайт.", "cakepay_prepaid_card": "Передплачена дебетова картка CakePay", diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb index 78443c8030..03140020a3 100644 --- a/res/values/strings_ur.arb +++ b/res/values/strings_ur.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "دنیا بھر میں پری پیڈ کارڈز اور گفٹ کارڈ خریدیں", "cake_pay_web_cards_subtitle": "دنیا بھر میں پری پیڈ کارڈز اور گفٹ کارڈز خریدیں۔", "cake_pay_web_cards_title": "Cake پے ویب کارڈز", - "cake_seeds_save_disclaimer": "براہ کرم ان الفاظ کو ایک محفوظ جگہ پر محفوظ کریں! اگر آپ اپنے بٹوے تک رسائی کھو دیتے ہیں تو ، کیک پرس کی مدد آپ کی مدد نہیں کرسکتی ہے", + "cake_seeds_save_disclaimer": "براہ کرم ان الفاظ کو ایک محفوظ جگہ پر محفوظ کریں! اپنے بٹوے کو کسی نئے آلے پر بحال کرنے کے ل You آپ کو ان الفاظ کی ضرورت ہوگی۔", "cake_wallet": "Cake والیٹ", "cakepay_ios_not_available": "معذرت ، یہ گفٹ کارڈ iOS پر دستیاب نہیں ہے۔ اس کے بجائے آپ اسے اینڈروئیڈ پر یا ہماری ویب سائٹ کے ذریعے خرید سکتے ہیں۔", "cakepay_prepaid_card": "Cake پے پری پیڈ ڈیبٹ کارڈ", diff --git a/res/values/strings_vi.arb b/res/values/strings_vi.arb index 7491263b4d..e40edf458c 100644 --- a/res/values/strings_vi.arb +++ b/res/values/strings_vi.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Mua thẻ trả trước toàn cầu và thẻ quà tặng", "cake_pay_web_cards_subtitle": "Mua thẻ trả trước toàn cầu và thẻ quà tặng", "cake_pay_web_cards_title": "Thẻ Cake Pay Web", - "cake_seeds_save_disclaimer": "Vui lòng lưu những từ này ở một nơi an toàn! Nếu bạn mất quyền truy cập vào ví của mình, hỗ trợ ví tiền không thể giúp bạn", + "cake_seeds_save_disclaimer": "Vui lòng lưu những từ này ở một nơi an toàn! Bạn sẽ cần những từ này để khôi phục ví của bạn trên một thiết bị mới.", "cake_wallet": "Ví Cake", "cakepay_ios_not_available": "Xin lỗi, thẻ quà tặng này không có sẵn trên iOS. Thay vào đó, bạn có thể mua nó trên Android hoặc thông qua trang web của chúng tôi.", "cakepay_prepaid_card": "Thẻ Ghi Nợ Trả Trước CakePay", diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb index f51c83e1c9..8b3cdc3587 100644 --- a/res/values/strings_yo.arb +++ b/res/values/strings_yo.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "Ra awọn kaadi ti a san ni agbaye ati awọn kaadi ẹbun", "cake_pay_web_cards_subtitle": "Ra àwọn káàdì ìrajà t'á lò nínú ìtajà kan àti àwọn káàdì náà t'á lè lò níbikíbi", "cake_pay_web_cards_title": "Àwọn káàdì wẹ́ẹ̀bù ti Cake Pay", - "cake_seeds_save_disclaimer": "Jọwọ fi awọn ọrọ wọnyi pamọ ni aaye aabo! Ti o ba padanu wiwọle si apamọwọ rẹ, atilẹyin apamọwọ oyinbo ti a ko le ran ọ lọwọ", + "cake_seeds_save_disclaimer": "Jọwọ fi awọn ọrọ wọnyi pamọ ni aaye aabo! Iwọ yoo nilo awọn ọrọ wọnyi lati mu pada apamọwọ rẹ sori ẹrọ tuntun.", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "Ma binu, kaadi ẹbun yii ko wa lori iOS. O le ra lori Android tabi nipasẹ oju opo wẹẹbu wa dipo.", "cakepay_prepaid_card": "Káàdì ìrajà ti CakePay", diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb index 7e36289efc..63e92a67d3 100644 --- a/res/values/strings_zh.arb +++ b/res/values/strings_zh.arb @@ -101,7 +101,7 @@ "cake_pay_subtitle": "购买全球预付费卡和礼品卡", "cake_pay_web_cards_subtitle": "购买全球预付卡和礼品卡", "cake_pay_web_cards_title": "蛋糕支付网络卡", - "cake_seeds_save_disclaimer": "请在安全的地方保存这些单词!如果您无法使用钱包,蛋糕钱包的支撑就无法帮助您", + "cake_seeds_save_disclaimer": "请在安全的地方保存这些单词!您将需要这些单词来恢复新设备上的钱包。", "cake_wallet": "Cake Wallet", "cakepay_ios_not_available": "抱歉,这张礼品卡在iOS上不可用。您可以在Android或通过我们的网站上购买它。", "cakepay_prepaid_card": "CakePay 预付借记卡", From ad34caa5be322dcfe81aebc2eefb405322cc347b Mon Sep 17 00:00:00 2001 From: tuxsudo Date: Thu, 12 Dec 2024 03:24:45 -0500 Subject: [PATCH 10/10] UI Enhancements (#1824) * Fix button color * Unify search icon * Update select button colors * Modify tap to hide for balance card * Modify tap to hide constants * Modify hidden balance behaviour * Add tap to hide to second value * Make tap to hide persistent * Change to switchBalanceValue function * Fix MWEB card spacing [skip ci] * Swap buttons on wallets screen [skip ci] --- .../cake_pay/cards/cake_pay_cards_page.dart | 19 ++-- .../screens/dashboard/pages/balance_page.dart | 91 ++++++++++--------- .../screens/new_wallet/new_wallet_page.dart | 2 +- .../new_wallet/widgets/select_button.dart | 2 +- .../screens/receive/widgets/header_tile.dart | 2 +- .../screens/wallet_list/wallet_list_page.dart | 40 ++++---- lib/src/widgets/search_bar_widget.dart | 4 +- .../dashboard/balance_view_model.dart | 11 ++- 8 files changed, 91 insertions(+), 80 deletions(-) diff --git a/lib/src/screens/cake_pay/cards/cake_pay_cards_page.dart b/lib/src/screens/cake_pay/cards/cake_pay_cards_page.dart index f2958ee314..450fa52818 100644 --- a/lib/src/screens/cake_pay/cards/cake_pay_cards_page.dart +++ b/lib/src/screens/cake_pay/cards/cake_pay_cards_page.dart @@ -116,7 +116,7 @@ class CakePayCardsPage extends BasePage { }, child: Container( width: 32, - padding: EdgeInsets.all(8), + padding: EdgeInsets.only(top: 7, bottom: 7), decoration: BoxDecoration( color: Theme.of(context).extension()!.syncedBackgroundColor, border: Border.all( @@ -125,7 +125,7 @@ class CakePayCardsPage extends BasePage { borderRadius: BorderRadius.circular(10), ), child: Image.asset( - 'assets/images/filter.png', + 'assets/images/filter_icon.png', color: Theme.of(context).extension()!.iconColor, ))), ); @@ -141,14 +141,14 @@ class CakePayCardsPage extends BasePage { } }, child: Container( - padding: EdgeInsets.symmetric(horizontal: 6), + padding: EdgeInsets.symmetric(horizontal: 8), decoration: BoxDecoration( color: Theme.of(context).extension()!.syncedBackgroundColor, border: Border.all(color: Colors.transparent), borderRadius: BorderRadius.circular(10), ), child: Container( - margin: EdgeInsets.symmetric(vertical: 2), + margin: EdgeInsets.symmetric(vertical: 4), child: Row( children: [ Image.asset( @@ -363,13 +363,10 @@ class _SearchWidget extends StatelessWidget { @override Widget build(BuildContext context) { final searchIcon = ExcludeSemantics( - child: Padding( - padding: EdgeInsets.all(8), - child: Image.asset( - 'assets/images/mini_search_icon.png', + child: Icon( Icons.search, color: Theme.of(context).extension()!.iconColor, + //size: 24 ), - ), ); return TextField( @@ -379,8 +376,8 @@ class _SearchWidget extends StatelessWidget { decoration: InputDecoration( filled: true, contentPadding: EdgeInsets.only( - top: 10, - left: 10, + top: 8, + left: 8, ), fillColor: Theme.of(context).extension()!.syncedBackgroundColor, hintText: S.of(context).search, diff --git a/lib/src/screens/dashboard/pages/balance_page.dart b/lib/src/screens/dashboard/pages/balance_page.dart index b16a7b090b..46c01254a7 100644 --- a/lib/src/screens/dashboard/pages/balance_page.dart +++ b/lib/src/screens/dashboard/pages/balance_page.dart @@ -118,12 +118,7 @@ class CryptoBalanceWidget extends StatelessWidget { @override Widget build(BuildContext context) { - return GestureDetector( - onLongPress: () => dashboardViewModel.balanceViewModel.isReversing = - !dashboardViewModel.balanceViewModel.isReversing, - onLongPressUp: () => dashboardViewModel.balanceViewModel.isReversing = - !dashboardViewModel.balanceViewModel.isReversing, - child: SingleChildScrollView( + return SingleChildScrollView( child: Column( crossAxisAlignment: CrossAxisAlignment.center, children: [ @@ -459,7 +454,6 @@ class CryptoBalanceWidget extends StatelessWidget { }), ], ), - ), ); } @@ -597,44 +591,47 @@ class BalanceRowWidget extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Row( + GestureDetector( + onTap: () => dashboardViewModel.balanceViewModel.switchBalanceValue(), + child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, crossAxisAlignment: CrossAxisAlignment.center, children: [ - GestureDetector( - behavior: HitTestBehavior.opaque, - onTap: hasAdditionalBalance - ? () => _showBalanceDescription( - context, S.of(context).available_balance_description) - : null, - child: Column( + Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ - Row( - children: [ - Semantics( - hint: 'Double tap to see more information', - container: true, - child: Text('${availableBalanceLabel}', - style: TextStyle( - fontSize: 12, - fontFamily: 'Lato', - fontWeight: FontWeight.w400, - color: Theme.of(context) - .extension()! - .labelTextColor, - height: 1)), + GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: hasAdditionalBalance + ? () => _showBalanceDescription( + context, S.of(context).available_balance_description) + : null, + child: Row( + children: [ + Semantics( + hint: 'Double tap to see more information', + container: true, + child: Text('${availableBalanceLabel}', + style: TextStyle( + fontSize: 12, + fontFamily: 'Lato', + fontWeight: FontWeight.w400, + color: Theme.of(context) + .extension()! + .labelTextColor, + height: 1)), + ), + if (hasAdditionalBalance) + Padding( + padding: const EdgeInsets.symmetric(horizontal: 4), + child: Icon(Icons.help_outline, + size: 16, + color: Theme.of(context) + .extension()! + .labelTextColor), + ), + ], ), - if (hasAdditionalBalance) - Padding( - padding: const EdgeInsets.symmetric(horizontal: 4), - child: Icon(Icons.help_outline, - size: 16, - color: Theme.of(context) - .extension()! - .labelTextColor), - ), - ], ), SizedBox(height: 6), AutoSizeText(availableBalance, @@ -667,9 +664,10 @@ class BalanceRowWidget extends StatelessWidget { fontWeight: FontWeight.w500, color: Theme.of(context).extension()!.textColor, height: 1)), + ], ), - ), + SizedBox( width: min(MediaQuery.of(context).size.width * 0.2, 100), child: Center( @@ -712,6 +710,7 @@ class BalanceRowWidget extends StatelessWidget { ), ], ), + ), if (frozenBalance.isNotEmpty) GestureDetector( behavior: HitTestBehavior.opaque, @@ -778,7 +777,9 @@ class BalanceRowWidget extends StatelessWidget { ), ), if (hasAdditionalBalance) - Column( + GestureDetector( + onTap: () => dashboardViewModel.balanceViewModel.switchBalanceValue(), + child: Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ SizedBox(height: 24), @@ -821,12 +822,13 @@ class BalanceRowWidget extends StatelessWidget { ), ], ), + ), ], ), ), ), if (hasSecondAdditionalBalance || hasSecondAvailableBalance) ...[ - SizedBox(height: 16), + SizedBox(height: 10), Container( margin: const EdgeInsets.only(left: 16, right: 16), decoration: BoxDecoration( @@ -881,7 +883,9 @@ class BalanceRowWidget extends StatelessWidget { ], ), if (hasSecondAvailableBalance) - Row( + GestureDetector( + onTap: () => dashboardViewModel.balanceViewModel.switchBalanceValue(), + child: Row( children: [ Column( crossAxisAlignment: CrossAxisAlignment.start, @@ -953,6 +957,7 @@ class BalanceRowWidget extends StatelessWidget { ), ], ), + ), ], ), ), diff --git a/lib/src/screens/new_wallet/new_wallet_page.dart b/lib/src/screens/new_wallet/new_wallet_page.dart index 387904df0d..e63a01f61c 100644 --- a/lib/src/screens/new_wallet/new_wallet_page.dart +++ b/lib/src/screens/new_wallet/new_wallet_page.dart @@ -347,7 +347,7 @@ class _WalletNameFormState extends State { key: ValueKey('new_wallet_page_confirm_button_key'), onPressed: _confirmForm, text: S.of(context).seed_language_next, - color: Colors.green, + color: Theme.of(context).primaryColor, textColor: Colors.white, isLoading: _walletNewVM.state is IsExecutingState, isDisabled: _walletNewVM.name.isEmpty, diff --git a/lib/src/screens/new_wallet/widgets/select_button.dart b/lib/src/screens/new_wallet/widgets/select_button.dart index 87015b89e9..6cca53cf5b 100644 --- a/lib/src/screens/new_wallet/widgets/select_button.dart +++ b/lib/src/screens/new_wallet/widgets/select_button.dart @@ -40,7 +40,7 @@ class SelectButton extends StatelessWidget { @override Widget build(BuildContext context) { - final backgroundColor = color ?? (isSelected ? Colors.green : Theme.of(context).cardColor); + final backgroundColor = color ?? (isSelected ? Theme.of(context).primaryColor : Theme.of(context).cardColor); final effectiveTextColor = textColor ?? (isSelected ? Theme.of(context).extension()!.restoreWalletButtonTextColor diff --git a/lib/src/screens/receive/widgets/header_tile.dart b/lib/src/screens/receive/widgets/header_tile.dart index dc48db89de..68148bbee2 100644 --- a/lib/src/screens/receive/widgets/header_tile.dart +++ b/lib/src/screens/receive/widgets/header_tile.dart @@ -31,7 +31,7 @@ class _HeaderTileState extends State { @override Widget build(BuildContext context) { - final searchIcon = Image.asset("assets/images/search_icon.png", + final searchIcon = Icon( Icons.search, color: Theme.of(context).extension()!.iconsColor); return Container( diff --git a/lib/src/screens/wallet_list/wallet_list_page.dart b/lib/src/screens/wallet_list/wallet_list_page.dart index f7e6515de4..63f28d285c 100644 --- a/lib/src/screens/wallet_list/wallet_list_page.dart +++ b/lib/src/screens/wallet_list/wallet_list_page.dart @@ -334,6 +334,26 @@ class WalletListBodyState extends State { padding: const EdgeInsets.all(24), child: Column( children: [ + PrimaryImageButton( + key: ValueKey('wallet_list_page_restore_wallet_button_key'), + onPressed: () { + if (widget.walletListViewModel.shouldRequireTOTP2FAForCreatingNewWallets) { + widget.authService.authenticateAction( + context, + route: Routes.restoreOptions, + arguments: false, + conditionToDetermineIfToUse2FA: widget.walletListViewModel.shouldRequireTOTP2FAForCreatingNewWallets, + ); + } else { + Navigator.of(context).pushNamed(Routes.restoreOptions, arguments: false); + } + }, + image: restoreWalletImage, + text: S.of(context).wallet_list_restore_wallet, + color: Theme.of(context).cardColor, + textColor: Theme.of(context).extension()!.buttonTextColor, + ), + SizedBox(height: 10.0), PrimaryImageButton( key: ValueKey('wallet_list_page_create_new_wallet_button_key'), onPressed: () { @@ -373,26 +393,6 @@ class WalletListBodyState extends State { color: Theme.of(context).primaryColor, textColor: Colors.white, ), - SizedBox(height: 10.0), - PrimaryImageButton( - key: ValueKey('wallet_list_page_restore_wallet_button_key'), - onPressed: () { - if (widget.walletListViewModel.shouldRequireTOTP2FAForCreatingNewWallets) { - widget.authService.authenticateAction( - context, - route: Routes.restoreOptions, - arguments: false, - conditionToDetermineIfToUse2FA: widget.walletListViewModel.shouldRequireTOTP2FAForCreatingNewWallets, - ); - } else { - Navigator.of(context).pushNamed(Routes.restoreOptions, arguments: false); - } - }, - image: restoreWalletImage, - text: S.of(context).wallet_list_restore_wallet, - color: Theme.of(context).cardColor, - textColor: Theme.of(context).extension()!.buttonTextColor, - ) ], ), ), diff --git a/lib/src/widgets/search_bar_widget.dart b/lib/src/widgets/search_bar_widget.dart index 6c7c14db28..e67c793ccb 100644 --- a/lib/src/widgets/search_bar_widget.dart +++ b/lib/src/widgets/search_bar_widget.dart @@ -22,8 +22,8 @@ class SearchBarWidget extends StatelessWidget { decoration: InputDecoration( hintText: hintText ?? S.of(context).search, hintStyle: TextStyle(color: Theme.of(context).extension()!.searchHintColor), - prefixIcon: Image.asset("assets/images/search_icon.png", - color: Theme.of(context).extension()!.searchIconColor), + prefixIcon: Icon( Icons.search, + color: Theme.of(context).primaryColor), filled: true, fillColor: Theme.of(context).extension()!.searchBackgroundFillColor, alignLabelWithHint: false, diff --git a/lib/view_model/dashboard/balance_view_model.dart b/lib/view_model/dashboard/balance_view_model.dart index 20dca292c6..075cf6b75e 100644 --- a/lib/view_model/dashboard/balance_view_model.dart +++ b/lib/view_model/dashboard/balance_view_model.dart @@ -287,7 +287,7 @@ abstract class BalanceViewModelBase with Store { BalanceRecord( availableBalance: '---', additionalBalance: '---', - frozenBalance: '---', + frozenBalance: '', secondAvailableBalance: '---', secondAdditionalBalance: '---', fiatAdditionalBalance: isFiatDisabled ? '' : '---', @@ -488,6 +488,15 @@ abstract class BalanceViewModelBase with Store { isShowCard = cardDisplayStatus; } + @action + void switchBalanceValue() { + if (settingsStore.balanceDisplayMode == BalanceDisplayMode.displayableBalance) { + settingsStore.balanceDisplayMode = BalanceDisplayMode.hiddenBalance; + } else { + settingsStore.balanceDisplayMode = BalanceDisplayMode.displayableBalance; + } + } + String _getFiatBalance({required double price, String? cryptoAmount}) { if (cryptoAmount == null || cryptoAmount.isEmpty || double.tryParse(cryptoAmount) == null) { return '0.00';