CW-829 Solana Enhancements (#1858)

* feat: Solana enhancements with rent handling for accounts

* fix: Add exception classes with handled error messages to ensure proper error handling process

---------

Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
This commit is contained in:
David Adegoke 2024-12-14 00:31:10 +01:00 committed by GitHub
parent 9a60b0146f
commit c620d7f486
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
32 changed files with 206 additions and 18 deletions

View file

@ -1,12 +1,13 @@
import 'dart:async'; import 'dart:async';
import 'dart:convert'; import 'dart:convert';
import 'dart:math'; import 'dart:math' as math;
import 'package:cw_core/crypto_currency.dart'; import 'package:cw_core/crypto_currency.dart';
import 'package:cw_core/node.dart'; import 'package:cw_core/node.dart';
import 'package:cw_core/utils/print_verbose.dart'; import 'package:cw_core/utils/print_verbose.dart';
import 'package:cw_solana/pending_solana_transaction.dart'; import 'package:cw_solana/pending_solana_transaction.dart';
import 'package:cw_solana/solana_balance.dart'; import 'package:cw_solana/solana_balance.dart';
import 'package:cw_solana/solana_exceptions.dart';
import 'package:cw_solana/solana_transaction_model.dart'; import 'package:cw_solana/solana_transaction_model.dart';
import 'package:http/http.dart' as http; import 'package:http/http.dart' as http;
import 'package:solana/dto.dart'; import 'package:solana/dto.dart';
@ -180,7 +181,7 @@ class SolanaWalletClient {
bool isOutgoingTx = transfer.source == publicKey.toBase58(); bool isOutgoingTx = transfer.source == publicKey.toBase58();
double amount = (double.tryParse(transfer.amount) ?? 0.0) / double amount = (double.tryParse(transfer.amount) ?? 0.0) /
pow(10, splTokenDecimal ?? 9); math.pow(10, splTokenDecimal ?? 9);
transactions.add( transactions.add(
SolanaTransactionModel( SolanaTransactionModel(
@ -276,6 +277,7 @@ class SolanaWalletClient {
required String destinationAddress, required String destinationAddress,
required Ed25519HDKeyPair ownerKeypair, required Ed25519HDKeyPair ownerKeypair,
required bool isSendAll, required bool isSendAll,
required double solBalance,
String? tokenMint, String? tokenMint,
List<String> references = const [], List<String> references = const [],
}) async { }) async {
@ -290,6 +292,7 @@ class SolanaWalletClient {
ownerKeypair: ownerKeypair, ownerKeypair: ownerKeypair,
commitment: commitment, commitment: commitment,
isSendAll: isSendAll, isSendAll: isSendAll,
solBalance: solBalance,
); );
return pendingNativeTokenTransaction; return pendingNativeTokenTransaction;
} else { } else {
@ -301,6 +304,7 @@ class SolanaWalletClient {
destinationAddress: destinationAddress, destinationAddress: destinationAddress,
ownerKeypair: ownerKeypair, ownerKeypair: ownerKeypair,
commitment: commitment, commitment: commitment,
solBalance: solBalance,
); );
return pendingSPLTokenTransaction; return pendingSPLTokenTransaction;
} }
@ -353,6 +357,23 @@ class SolanaWalletClient {
return fee; return fee;
} }
Future<bool> hasSufficientFundsLeftForRent({
required double inputAmount,
required double solBalance,
required double fee,
}) async {
final rent =
await _client!.getMinimumBalanceForMintRentExemption(commitment: Commitment.confirmed);
final rentInSol = (rent / lamportsPerSol).toDouble();
final remnant = solBalance - (inputAmount + fee);
if (remnant > rentInSol) return true;
return false;
}
Future<PendingSolanaTransaction> _signNativeTokenTransaction({ Future<PendingSolanaTransaction> _signNativeTokenTransaction({
required String tokenTitle, required String tokenTitle,
required int tokenDecimals, required int tokenDecimals,
@ -361,6 +382,7 @@ class SolanaWalletClient {
required Ed25519HDKeyPair ownerKeypair, required Ed25519HDKeyPair ownerKeypair,
required Commitment commitment, required Commitment commitment,
required bool isSendAll, required bool isSendAll,
required double solBalance,
}) async { }) async {
// Convert SOL to lamport // Convert SOL to lamport
int lamports = (inputAmount * lamportsPerSol).toInt(); int lamports = (inputAmount * lamportsPerSol).toInt();
@ -378,6 +400,16 @@ class SolanaWalletClient {
commitment, commitment,
); );
bool hasSufficientFundsLeft = await hasSufficientFundsLeftForRent(
inputAmount: inputAmount,
fee: fee,
solBalance: solBalance,
);
if (!hasSufficientFundsLeft) {
throw SolanaSignNativeTokenTransactionRentException();
}
SignedTx signedTx; SignedTx signedTx;
if (isSendAll) { if (isSendAll) {
final feeInLamports = (fee * lamportsPerSol).toInt(); final feeInLamports = (fee * lamportsPerSol).toInt();
@ -425,6 +457,7 @@ class SolanaWalletClient {
required String destinationAddress, required String destinationAddress,
required Ed25519HDKeyPair ownerKeypair, required Ed25519HDKeyPair ownerKeypair,
required Commitment commitment, required Commitment commitment,
required double solBalance,
}) async { }) async {
final destinationOwner = Ed25519HDPublicKey.fromBase58(destinationAddress); final destinationOwner = Ed25519HDPublicKey.fromBase58(destinationAddress);
final mint = Ed25519HDPublicKey.fromBase58(tokenMint); final mint = Ed25519HDPublicKey.fromBase58(tokenMint);
@ -447,7 +480,7 @@ class SolanaWalletClient {
// Throw an appropriate exception if the sender has no associated // Throw an appropriate exception if the sender has no associated
// token account // token account
if (associatedSenderAccount == null) { if (associatedSenderAccount == null) {
throw NoAssociatedTokenAccountException(ownerKeypair.address, mint.toBase58()); throw SolanaNoAssociatedTokenAccountException(ownerKeypair.address, mint.toBase58());
} }
try { try {
@ -457,11 +490,11 @@ class SolanaWalletClient {
funder: ownerKeypair, funder: ownerKeypair,
); );
} catch (e) { } catch (e) {
throw Exception('Insufficient SOL balance to complete this transaction: ${e.toString()}'); throw SolanaCreateAssociatedTokenAccountException(e.toString());
} }
// Input by the user // Input by the user
final amount = (inputAmount * pow(10, tokenDecimals)).toInt(); final amount = (inputAmount * math.pow(10, tokenDecimals)).toInt();
final instruction = TokenInstruction.transfer( final instruction = TokenInstruction.transfer(
source: Ed25519HDPublicKey.fromBase58(associatedSenderAccount.pubkey), source: Ed25519HDPublicKey.fromBase58(associatedSenderAccount.pubkey),
@ -483,6 +516,16 @@ class SolanaWalletClient {
commitment, commitment,
); );
bool hasSufficientFundsLeft = await hasSufficientFundsLeftForRent(
inputAmount: inputAmount,
fee: fee,
solBalance: solBalance,
);
if (!hasSufficientFundsLeft) {
throw SolanaSignSPLTokenTransactionRentException();
}
final signedTx = await _signTransactionInternal( final signedTx = await _signTransactionInternal(
message: message, message: message,
signers: signers, signers: signers,

View file

@ -19,3 +19,20 @@ class SolanaTransactionWrongBalanceException implements Exception {
@override @override
String toString() => exceptionMessage; String toString() => exceptionMessage;
} }
class SolanaSignNativeTokenTransactionRentException implements Exception {}
class SolanaCreateAssociatedTokenAccountException implements Exception {
final String exceptionMessage;
SolanaCreateAssociatedTokenAccountException(this.exceptionMessage);
}
class SolanaSignSPLTokenTransactionRentException implements Exception {}
class SolanaNoAssociatedTokenAccountException implements Exception {
const SolanaNoAssociatedTokenAccountException(this.account, this.mint);
final String account;
final String mint;
}

View file

@ -228,6 +228,8 @@ abstract class SolanaWalletBase
final walletBalanceForCurrency = balance[transactionCurrency]!.balance; final walletBalanceForCurrency = balance[transactionCurrency]!.balance;
final solBalance = balance[CryptoCurrency.sol]!.balance;
double totalAmount = 0.0; double totalAmount = 0.0;
bool isSendAll = false; bool isSendAll = false;
@ -279,6 +281,7 @@ abstract class SolanaWalletBase
? solCredentials.outputs.first.extractedAddress! ? solCredentials.outputs.first.extractedAddress!
: solCredentials.outputs.first.address, : solCredentials.outputs.first.address,
isSendAll: isSendAll, isSendAll: isSendAll,
solBalance: solBalance,
); );
return pendingSolanaTransaction; return pendingSolanaTransaction;

View file

@ -1,4 +1,3 @@
import 'package:cake_wallet/di.dart';
import 'package:cake_wallet/entities/contact.dart'; import 'package:cake_wallet/entities/contact.dart';
import 'package:cake_wallet/entities/evm_transaction_error_fees_handler.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/priority_for_wallet_type.dart';
@ -14,7 +13,6 @@ import 'package:cake_wallet/polygon/polygon.dart';
import 'package:cake_wallet/reactions/wallet_connect.dart'; import 'package:cake_wallet/reactions/wallet_connect.dart';
import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/solana/solana.dart'; import 'package:cake_wallet/solana/solana.dart';
import 'package:cake_wallet/src/screens/ur/animated_ur_page.dart';
import 'package:cake_wallet/store/app_store.dart'; import 'package:cake_wallet/store/app_store.dart';
import 'package:cake_wallet/tron/tron.dart'; import 'package:cake_wallet/tron/tron.dart';
import 'package:cake_wallet/view_model/contact_list/contact_list_view_model.dart'; import 'package:cake_wallet/view_model/contact_list/contact_list_view_model.dart';
@ -29,6 +27,7 @@ import 'package:cw_core/unspent_coin_type.dart';
import 'package:cake_wallet/view_model/send/output.dart'; import 'package:cake_wallet/view_model/send/output.dart';
import 'package:cake_wallet/view_model/send/send_template_view_model.dart'; import 'package:cake_wallet/view_model/send/send_template_view_model.dart';
import 'package:cw_core/utils/print_verbose.dart'; import 'package:cw_core/utils/print_verbose.dart';
import 'package:cw_solana/solana_exceptions.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:hive/hive.dart'; import 'package:hive/hive.dart';
import 'package:mobx/mobx.dart'; import 'package:mobx/mobx.dart';
@ -427,7 +426,7 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
// //
// state = FailureState(errorMsg); // state = FailureState(errorMsg);
// } else { // } else {
state = FailureState(translateErrorMessage(e, wallet.type, wallet.currency)); state = FailureState(translateErrorMessage(e, wallet.type, wallet.currency));
// } // }
} }
return null; return null;
@ -490,7 +489,8 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
if (pendingTransaction!.shouldCommitUR()) { if (pendingTransaction!.shouldCommitUR()) {
final urstr = await pendingTransaction!.commitUR(); final urstr = await pendingTransaction!.commitUR();
final result = await Navigator.of(context).pushNamed(Routes.urqrAnimatedPage, arguments: urstr); final result =
await Navigator.of(context).pushNamed(Routes.urqrAnimatedPage, arguments: urstr);
if (result == null) { if (result == null) {
state = FailureState("Canceled by user"); state = FailureState("Canceled by user");
return; return;
@ -507,12 +507,9 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
final descriptionKey = '${pendingTransaction!.id}_${wallet.walletAddresses.primaryAddress}'; final descriptionKey = '${pendingTransaction!.id}_${wallet.walletAddresses.primaryAddress}';
_settingsStore.shouldSaveRecipientAddress _settingsStore.shouldSaveRecipientAddress
? await transactionDescriptionBox.add(TransactionDescription( ? await transactionDescriptionBox.add(TransactionDescription(
id: descriptionKey, id: descriptionKey, recipientAddress: address, transactionNote: note))
recipientAddress: address, : await transactionDescriptionBox
transactionNote: note)) .add(TransactionDescription(id: descriptionKey, transactionNote: note));
: await transactionDescriptionBox.add(TransactionDescription(
id: descriptionKey,
transactionNote: note));
} }
state = TransactionCommitted(); state = TransactionCommitted();
@ -674,10 +671,26 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
lamportsNeeded != null ? ((lamportsNeeded + 5000) / lamportsPerSol) : 0.0; lamportsNeeded != null ? ((lamportsNeeded + 5000) / lamportsPerSol) : 0.0;
return S.current.insufficient_lamports(solValueNeeded.toString()); return S.current.insufficient_lamports(solValueNeeded.toString());
} else { } else {
printV("No match found.");
return S.current.insufficient_lamport_for_tx; return S.current.insufficient_lamport_for_tx;
} }
} }
if (error is SolanaSignNativeTokenTransactionRentException) {
return S.current.solana_sign_native_transaction_rent_exception;
}
if (error is SolanaCreateAssociatedTokenAccountException) {
return S.current.solana_create_associated_token_account_exception;
}
if (error is SolanaSignSPLTokenTransactionRentException) {
return S.current.solana_sign_spl_token_transaction_rent_exception;
}
if (error is SolanaNoAssociatedTokenAccountException) {
return S.current.solana_no_associated_token_account_exception;
}
if (errorMessage.contains('insufficient funds for rent')) { if (errorMessage.contains('insufficient funds for rent')) {
return S.current.insufficientFundsForRentError; return S.current.insufficientFundsForRentError;
} }

View file

@ -741,6 +741,10 @@
"silent_payments_settings": "إعدادات المدفوعات الصامتة", "silent_payments_settings": "إعدادات المدفوعات الصامتة",
"single_seed_wallets_group": "محافظ بذرة واحدة", "single_seed_wallets_group": "محافظ بذرة واحدة",
"slidable": "قابل للانزلاق", "slidable": "قابل للانزلاق",
"solana_create_associated_token_account_exception": "خطأ في إنشاء حساب رمز المرتبط بعنوان المستلم.",
"solana_no_associated_token_account_exception": "لا يوجد حساب مميز مرتبط بهذا العنوان.",
"solana_sign_native_transaction_rent_exception": "لا يمكن إكمال المعاملة. غادر SOL غير كاف للإيجار بعد المعاملة. يرجى أن تصل إلى رصيد SOL أو تقليل كمية SOL التي ترسلها.",
"solana_sign_spl_token_transaction_rent_exception": "لا يمكن إكمال المعاملة. غادر SOL غير كاف للإيجار بعد المعاملة. يرجى أن تصل إلى توازن سولك.",
"sort_by": "ترتيب حسب", "sort_by": "ترتيب حسب",
"spend_key_private": "مفتاح الإنفاق (خاص)", "spend_key_private": "مفتاح الإنفاق (خاص)",
"spend_key_public": "مفتاح الإنفاق (عام)", "spend_key_public": "مفتاح الإنفاق (عام)",

View file

@ -741,6 +741,10 @@
"silent_payments_settings": "Настройки за безшумни плащания", "silent_payments_settings": "Настройки за безшумни плащания",
"single_seed_wallets_group": "Портфейли с единични семена", "single_seed_wallets_group": "Портфейли с единични семена",
"slidable": "Плъзгащ се", "slidable": "Плъзгащ се",
"solana_create_associated_token_account_exception": "Грешка Създаване на свързана сметка за жетони за адреса на получател.",
"solana_no_associated_token_account_exception": "Няма свързана сметка за този адрес.",
"solana_sign_native_transaction_rent_exception": "Транзакцията не може да бъде завършена. Недостатъчен сол оставен под наем след транзакция. Любезно допълнете баланса си на SOL или намалете количеството SOL, което изпращате.",
"solana_sign_spl_token_transaction_rent_exception": "Транзакцията не може да бъде завършена. Недостатъчен сол оставен под наем след транзакция. Любезно допълнете баланса си на SOL.",
"sort_by": "Сортирай по", "sort_by": "Сортирай по",
"spend_key_private": "Spend key (таен)", "spend_key_private": "Spend key (таен)",
"spend_key_public": "Spend key (публичен)", "spend_key_public": "Spend key (публичен)",

View file

@ -741,6 +741,10 @@
"silent_payments_settings": "Nastavení tichých plateb", "silent_payments_settings": "Nastavení tichých plateb",
"single_seed_wallets_group": "Jednorázové peněženky", "single_seed_wallets_group": "Jednorázové peněženky",
"slidable": "Posuvné", "slidable": "Posuvné",
"solana_create_associated_token_account_exception": "Vytvoření chyby přidruženého účtu tokenů pro adresu příjmu.",
"solana_no_associated_token_account_exception": "Pro tuto adresu není přidružen žádný přidružený token.",
"solana_sign_native_transaction_rent_exception": "Transakce nelze dokončit. Po transakci nedostatek Sol odešel k pronájmu. Laskavě doplňte rovnováhu SOL nebo snižte množství SOL, které odesíláte.",
"solana_sign_spl_token_transaction_rent_exception": "Transakce nelze dokončit. Po transakci nedostatek Sol odešel k pronájmu. Laskavě doplňte rovnováhu SOL.",
"sort_by": "Seřazeno podle", "sort_by": "Seřazeno podle",
"spend_key_private": "Klíč pro platby (soukromý)", "spend_key_private": "Klíč pro platby (soukromý)",
"spend_key_public": "Klíč pro platby (veřejný)", "spend_key_public": "Klíč pro platby (veřejný)",

View file

@ -502,8 +502,8 @@
"placeholder_transactions": "Ihre Transaktionen werden hier angezeigt", "placeholder_transactions": "Ihre Transaktionen werden hier angezeigt",
"please_fill_totp": "Bitte geben Sie den 8-stelligen Code ein, der auf Ihrem anderen Gerät vorhanden ist", "please_fill_totp": "Bitte geben Sie den 8-stelligen Code ein, der auf Ihrem anderen Gerät vorhanden ist",
"please_make_selection": "Bitte treffen Sie unten eine Auswahl zum Erstellen oder Wiederherstellen Ihrer Wallet.", "please_make_selection": "Bitte treffen Sie unten eine Auswahl zum Erstellen oder Wiederherstellen Ihrer Wallet.",
"Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.",
"please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.", "please_reference_document": "Bitte verweisen Sie auf die folgenden Dokumente, um weitere Informationen zu erhalten.",
"Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.",
"please_select": "Bitte auswählen:", "please_select": "Bitte auswählen:",
"please_select_backup_file": "Bitte wählen Sie die Sicherungsdatei und geben Sie das Sicherungskennwort ein.", "please_select_backup_file": "Bitte wählen Sie die Sicherungsdatei und geben Sie das Sicherungskennwort ein.",
"please_try_to_connect_to_another_node": "Bitte versuchen Sie, sich mit einem anderen Knoten zu verbinden", "please_try_to_connect_to_another_node": "Bitte versuchen Sie, sich mit einem anderen Knoten zu verbinden",
@ -742,6 +742,10 @@
"silent_payments_settings": "Einstellungen für stille Zahlungen", "silent_payments_settings": "Einstellungen für stille Zahlungen",
"single_seed_wallets_group": "Einzelne Wallets", "single_seed_wallets_group": "Einzelne Wallets",
"slidable": "Verschiebbar", "slidable": "Verschiebbar",
"solana_create_associated_token_account_exception": "Fehler beim Erstellen des zugehörigen Token -Kontos für die Empfängeradresse.",
"solana_no_associated_token_account_exception": "Für diese Adresse ist kein Token -Konto zugeordnet.",
"solana_sign_native_transaction_rent_exception": "Transaktion kann nicht abgeschlossen werden. Unzureichende Sol ließen nach der Transaktion zur Miete gelassen. Bitte geben Sie Ihre SOL -Balance auf oder reduzieren Sie die Menge an SOL, die Sie senden.",
"solana_sign_spl_token_transaction_rent_exception": "Transaktion kann nicht abgeschlossen werden. Unzureichende Sol ließen nach der Transaktion zur Miete gelassen. Bitte geben Sie Ihre SOL -Balance auf.",
"sort_by": "Sortiere nach", "sort_by": "Sortiere nach",
"spend_key_private": "Spend Key (geheim)", "spend_key_private": "Spend Key (geheim)",
"spend_key_public": "Spend Key (öffentlich)", "spend_key_public": "Spend Key (öffentlich)",

View file

@ -741,6 +741,10 @@
"silent_payments_settings": "Silent Payments settings", "silent_payments_settings": "Silent Payments settings",
"single_seed_wallets_group": "Single Seed Wallets", "single_seed_wallets_group": "Single Seed Wallets",
"slidable": "Slidable", "slidable": "Slidable",
"solana_create_associated_token_account_exception": "Error creating associated token account for receipient address.",
"solana_no_associated_token_account_exception": "There is no associated token account for this address.",
"solana_sign_native_transaction_rent_exception": "Transaction cannot be completed. Insufficient SOL left for rent after transaction. Kindly top up your SOL balance or reduce the amount of SOL you are sending.",
"solana_sign_spl_token_transaction_rent_exception": "Transaction cannot be completed. Insufficient SOL left for rent after transaction. Kindly top up your SOL balance.",
"sort_by": "Sort by", "sort_by": "Sort by",
"spend_key_private": "Spend key (private)", "spend_key_private": "Spend key (private)",
"spend_key_public": "Spend key (public)", "spend_key_public": "Spend key (public)",

View file

@ -742,6 +742,10 @@
"silent_payments_settings": "Configuración de pagos silenciosos", "silent_payments_settings": "Configuración de pagos silenciosos",
"single_seed_wallets_group": "Billeteras de semillas individuales", "single_seed_wallets_group": "Billeteras de semillas individuales",
"slidable": "deslizable", "slidable": "deslizable",
"solana_create_associated_token_account_exception": "Error a crear una cuenta de token asociada para la dirección recibida.",
"solana_no_associated_token_account_exception": "No hay una cuenta de token asociada para esta dirección.",
"solana_sign_native_transaction_rent_exception": "La transacción no se puede completar. Sol insuficiente que queda en alquiler después de la transacción. Por favor, supere su saldo de sol o reduzca la cantidad de sol que está enviando.",
"solana_sign_spl_token_transaction_rent_exception": "La transacción no se puede completar. Sol insuficiente que queda en alquiler después de la transacción. Por favor, supere su balance de sol.",
"sort_by": "Ordenar por", "sort_by": "Ordenar por",
"spend_key_private": "Llave de gasto (privada)", "spend_key_private": "Llave de gasto (privada)",
"spend_key_public": "Llave de gasto (pública)", "spend_key_public": "Llave de gasto (pública)",

View file

@ -741,6 +741,10 @@
"silent_payments_settings": "Paramètres de paiement silencieux", "silent_payments_settings": "Paramètres de paiement silencieux",
"single_seed_wallets_group": "Portefeuilles de semences simples", "single_seed_wallets_group": "Portefeuilles de semences simples",
"slidable": "Glissable", "slidable": "Glissable",
"solana_create_associated_token_account_exception": "Création d'erreur Création de jetons associés pour l'adresse détenue.",
"solana_no_associated_token_account_exception": "Il n'y a pas de compte de jeton associé pour cette adresse.",
"solana_sign_native_transaction_rent_exception": "La transaction ne peut pas être terminée. Sol insuffisant laissé à la location après la transaction. Veuillez compléter votre solde SOL ou réduire la quantité de Sol que vous envoyez.",
"solana_sign_spl_token_transaction_rent_exception": "La transaction ne peut pas être terminée. Sol insuffisant laissé à la location après la transaction. Veuillez compléter votre solde de Sol.",
"sort_by": "Trier par", "sort_by": "Trier par",
"spend_key_private": "Clef de dépense (spend key) (privée)", "spend_key_private": "Clef de dépense (spend key) (privée)",
"spend_key_public": "Clef de dépense (spend key) (publique)", "spend_key_public": "Clef de dépense (spend key) (publique)",

View file

@ -743,6 +743,10 @@
"silent_payments_settings": "Saitunan Silent", "silent_payments_settings": "Saitunan Silent",
"single_seed_wallets_group": "Guaro", "single_seed_wallets_group": "Guaro",
"slidable": "Mai iya zamewa", "slidable": "Mai iya zamewa",
"solana_create_associated_token_account_exception": "Kuskuren ƙirƙirar asusun Asusun da aka danganta don Adireshin karɓar karɓa.",
"solana_no_associated_token_account_exception": "Babu wani haɗin yanar gizo mai alaƙa don wannan adireshin.",
"solana_sign_native_transaction_rent_exception": "Ma'amala ba za a iya kammala ba. Rashin cancanta na Sol ya bar haya bayan ma'amala. Da kyau a saman ma'auni na Solku ko rage adadin Sol da kuke aikawa.",
"solana_sign_spl_token_transaction_rent_exception": "Ma'amala ba za a iya kammala ba. Rashin cancanta na Sol ya bar haya bayan ma'amala. Da kyau sama da ma'auni na Sol.",
"sort_by": "Kasa", "sort_by": "Kasa",
"spend_key_private": "makullin biya (maɓallin kalmar sirri)", "spend_key_private": "makullin biya (maɓallin kalmar sirri)",
"spend_key_public": "makullin biya (maɓallin jama'a)", "spend_key_public": "makullin biya (maɓallin jama'a)",

View file

@ -743,6 +743,10 @@
"silent_payments_settings": "मूक भुगतान सेटिंग्स", "silent_payments_settings": "मूक भुगतान सेटिंग्स",
"single_seed_wallets_group": "एकल बीज बटुए", "single_seed_wallets_group": "एकल बीज बटुए",
"slidable": "फिसलने लायक", "slidable": "फिसलने लायक",
"solana_create_associated_token_account_exception": "रसीद पते के लिए संबद्ध टोकन खाता बनाने में त्रुटि।",
"solana_no_associated_token_account_exception": "इस पते के लिए कोई जुड़ा हुआ टोकन खाता नहीं है।",
"solana_sign_native_transaction_rent_exception": "लेन -देन पूरा नहीं किया जा सकता है। अपर्याप्त सोल लेनदेन के बाद किराए के लिए छोड़ दिया। कृपया अपने सोल बैलेंस को टॉप करें या आपके द्वारा भेजे जा रहे सोल की मात्रा को कम करें।",
"solana_sign_spl_token_transaction_rent_exception": "लेन -देन पूरा नहीं किया जा सकता है। अपर्याप्त सोल लेनदेन के बाद किराए के लिए छोड़ दिया। कृपया अपने सोल बैलेंस को ऊपर रखें।",
"sort_by": "इसके अनुसार क्रमबद्ध करें", "sort_by": "इसके अनुसार क्रमबद्ध करें",
"spend_key_private": "खर्च करना (निजी)", "spend_key_private": "खर्च करना (निजी)",
"spend_key_public": "खर्च करना (जनता)", "spend_key_public": "खर्च करना (जनता)",

View file

@ -741,6 +741,10 @@
"silent_payments_settings": "Postavke tihih plaćanja", "silent_payments_settings": "Postavke tihih plaćanja",
"single_seed_wallets_group": "Jednostruki novčanici", "single_seed_wallets_group": "Jednostruki novčanici",
"slidable": "Klizna", "slidable": "Klizna",
"solana_create_associated_token_account_exception": "Pogreška u stvaranju povezanog token računa za adresu primanja.",
"solana_no_associated_token_account_exception": "Za ovu adresu ne postoji povezani token račun.",
"solana_sign_native_transaction_rent_exception": "Transakcija se ne može završiti. Nedovoljno sol ostao je za najam nakon transakcije. Ljubazno nadopunite svoj SOL saldo ili smanjite količinu SOL -a koju šaljete.",
"solana_sign_spl_token_transaction_rent_exception": "Transakcija se ne može završiti. Nedovoljno sol ostao je za najam nakon transakcije. Ljubazno nadopunite svoju sol ravnotežu.",
"sort_by": "Poredaj po", "sort_by": "Poredaj po",
"spend_key_private": "Spend key (privatni)", "spend_key_private": "Spend key (privatni)",
"spend_key_public": "Spend key (javni)", "spend_key_public": "Spend key (javni)",

View file

@ -741,6 +741,10 @@
"silent_payments_settings": "Լուռ Վճարումներ Կարգավորումներ", "silent_payments_settings": "Լուռ Վճարումներ Կարգավորումներ",
"single_seed_wallets_group": "Մեկ սերմերի դրամապանակներ", "single_seed_wallets_group": "Մեկ սերմերի դրամապանակներ",
"slidable": "Սահելի", "slidable": "Սահելի",
"solana_create_associated_token_account_exception": "Recesient Advent- ի համար հարակից նշանների հաշիվ ստեղծելու սխալ:",
"solana_no_associated_token_account_exception": "Այս հասցեի համար կապված նշանների հաշիվ չկա:",
"solana_sign_native_transaction_rent_exception": "Գործարքը հնարավոր չէ լրացնել: Անբավարար սոլը գործարքից հետո վարձով է մնացել: Սիրով վերացրեք ձեր SOL հավասարակշռությունը կամ նվազեցրեք ձեր ուղարկած սոլի քանակը:",
"solana_sign_spl_token_transaction_rent_exception": "Գործարքը հնարավոր չէ լրացնել: Անբավարար սոլը գործարքից հետո վարձով է մնացել: Սիրով վերացրեք ձեր SOL հավասարակշռությունը:",
"sort_by": "Դասավորել ըստ", "sort_by": "Դասավորել ըստ",
"spend_key_private": "Վճարման բանալի (գախտնի)", "spend_key_private": "Վճարման բանալի (գախտնի)",
"spend_key_public": "Վճարման բանալի (հանրային)", "spend_key_public": "Վճարման բանալի (հանրային)",

View file

@ -744,6 +744,10 @@
"silent_payments_settings": "Pengaturan pembayaran diam", "silent_payments_settings": "Pengaturan pembayaran diam",
"single_seed_wallets_group": "Dompet biji tunggal", "single_seed_wallets_group": "Dompet biji tunggal",
"slidable": "Dapat digeser", "slidable": "Dapat digeser",
"solana_create_associated_token_account_exception": "Kesalahan Membuat Akun Token Terkait untuk Alamat Penerima.",
"solana_no_associated_token_account_exception": "Tidak ada akun token terkait untuk alamat ini.",
"solana_sign_native_transaction_rent_exception": "Transaksi tidak dapat diselesaikan. SOL yang tidak mencukupi pergi untuk disewa setelah transaksi. Mohon tambah saldo SOL Anda atau kurangi jumlah SOL yang Anda kirim.",
"solana_sign_spl_token_transaction_rent_exception": "Transaksi tidak dapat diselesaikan. SOL yang tidak mencukupi pergi untuk disewa setelah transaksi. Mohon tambah saldo SOL Anda.",
"sort_by": "Sortir dengan", "sort_by": "Sortir dengan",
"spend_key_private": "Kunci pengeluaran (privat)", "spend_key_private": "Kunci pengeluaran (privat)",
"spend_key_public": "Kunci pengeluaran (publik)", "spend_key_public": "Kunci pengeluaran (publik)",

View file

@ -743,6 +743,10 @@
"silent_payments_settings": "Impostazioni di pagamenti silenziosi", "silent_payments_settings": "Impostazioni di pagamenti silenziosi",
"single_seed_wallets_group": "Portafogli singoli", "single_seed_wallets_group": "Portafogli singoli",
"slidable": "Scorrevole", "slidable": "Scorrevole",
"solana_create_associated_token_account_exception": "Errore Creazione di account token associato per l'indirizzo dei ricevimenti.",
"solana_no_associated_token_account_exception": "Non esiste un account token associato per questo indirizzo.",
"solana_sign_native_transaction_rent_exception": "La transazione non può essere completata. Sol insufficiente lasciato in affitto dopo la transazione. Si prega di ricaricare il saldo SOL o ridurre la quantità di sol che stai inviando.",
"solana_sign_spl_token_transaction_rent_exception": "La transazione non può essere completata. Sol insufficiente lasciato in affitto dopo la transazione. Si prega di ricaricare il tuo equilibrio sol.",
"sort_by": "Ordina per", "sort_by": "Ordina per",
"spend_key_private": "Chiave di spesa (privata)", "spend_key_private": "Chiave di spesa (privata)",
"spend_key_public": "Chiave di spesa (pubblica)", "spend_key_public": "Chiave di spesa (pubblica)",

View file

@ -742,6 +742,10 @@
"silent_payments_settings": "サイレントペイメント設定", "silent_payments_settings": "サイレントペイメント設定",
"single_seed_wallets_group": "シングルシードウォレット", "single_seed_wallets_group": "シングルシードウォレット",
"slidable": "スライド可能", "slidable": "スライド可能",
"solana_create_associated_token_account_exception": "関連するトークンの作成エラー受信アドレスのアカウント。",
"solana_no_associated_token_account_exception": "このアドレスに関連付けられたトークンアカウントはありません。",
"solana_sign_native_transaction_rent_exception": "トランザクションは完了できません。取引後にレンタルのために残された不十分なソル。ソルバランスを補充するか、送信するソルの量を減らしてください。",
"solana_sign_spl_token_transaction_rent_exception": "トランザクションは完了できません。取引後にレンタルのために残された不十分なソル。ソルバランスを補充してください。",
"sort_by": "並び替え", "sort_by": "並び替え",
"spend_key_private": "キーを使う (プライベート)", "spend_key_private": "キーを使う (プライベート)",
"spend_key_public": "キーを使う (パブリック)", "spend_key_public": "キーを使う (パブリック)",

View file

@ -742,6 +742,10 @@
"silent_payments_settings": "조용한 지불 설정", "silent_payments_settings": "조용한 지불 설정",
"single_seed_wallets_group": "단일 씨앗 지갑", "single_seed_wallets_group": "단일 씨앗 지갑",
"slidable": "슬라이딩 가능", "slidable": "슬라이딩 가능",
"solana_create_associated_token_account_exception": "오류 생성 관련 토큰 계정 수령자 주소에 대한 계정.",
"solana_no_associated_token_account_exception": "이 주소에는 관련 토큰 계정이 없습니다.",
"solana_sign_native_transaction_rent_exception": "거래는 완료 될 수 없습니다. 거래 후 SOL이 임대료로 남았습니다. SOL 밸런스를 친절하게 위로 올리거나 보내는 솔의 양을 줄입니다.",
"solana_sign_spl_token_transaction_rent_exception": "거래는 완료 될 수 없습니다. 거래 후 SOL이 임대료로 남았습니다. SOL 균형을 친절하게 위에 올리십시오.",
"sort_by": "정렬 기준", "sort_by": "정렬 기준",
"spend_key_private": "지출 키 (은밀한)", "spend_key_private": "지출 키 (은밀한)",
"spend_key_public": "지출 키 (공공의)", "spend_key_public": "지출 키 (공공의)",

View file

@ -741,6 +741,10 @@
"silent_payments_settings": "အသံတိတ်ငွေပေးချေမှုဆက်တင်များ", "silent_payments_settings": "အသံတိတ်ငွေပေးချေမှုဆက်တင်များ",
"single_seed_wallets_group": "တစ်ခုတည်းမျိုးစေ့ပိုက်ဆံအိတ်", "single_seed_wallets_group": "တစ်ခုတည်းမျိုးစေ့ပိုက်ဆံအိတ်",
"slidable": "လျှောချနိုင်သည်။", "slidable": "လျှောချနိုင်သည်။",
"solana_create_associated_token_account_exception": "Encipient Token အကောင့်ကိုလက်ခံသည့်လိပ်စာအတွက်အကောင့်များဖန်တီးခြင်းအတွက်အမှားအယွင်းများဖန်တီးခြင်း။",
"solana_no_associated_token_account_exception": "ဒီလိပ်စာအတွက်မပေါင်းသင်းတဲ့လက်ခဏာသက်သေအကောင့်မရှိဘူး။",
"solana_sign_native_transaction_rent_exception": "ငွေပေးငွေယူကိုမပြီးစီးနိုင်ပါ။ ငွေပေးငွေယူပြီးနောက်ငှားရန် Sol မလုံလောက်ပါ။ ကြင်နာစွာသင်၏ SOR ချိန်ခွင်လျှာကိုငွေဖြည့်ပါသို့မဟုတ်သင်ပို့နေသည့်ပမာဏကိုလျှော့ချပါ။",
"solana_sign_spl_token_transaction_rent_exception": "ငွေပေးငွေယူကိုမပြီးစီးနိုင်ပါ။ ငွေပေးငွေယူပြီးနောက်ငှားရန် Sol မလုံလောက်ပါ။ ကြင်နာစွာသင်၏ s ကိုချိန်ခွင်လျှာကိုတက်ပါ။",
"sort_by": "အလိုက်စဥ်သည်", "sort_by": "အလိုက်စဥ်သည်",
"spend_key_private": "သော့သုံးရန် (သီးသန့်)", "spend_key_private": "သော့သုံးရန် (သီးသန့်)",
"spend_key_public": "သုံးစွဲရန်သော့ (အများပြည်သူ)", "spend_key_public": "သုံးစွဲရန်သော့ (အများပြည်သူ)",

View file

@ -741,6 +741,10 @@
"silent_payments_settings": "Stille betalingsinstellingen", "silent_payments_settings": "Stille betalingsinstellingen",
"single_seed_wallets_group": "Enkele zaadportefeuilles", "single_seed_wallets_group": "Enkele zaadportefeuilles",
"slidable": "Verschuifbaar", "slidable": "Verschuifbaar",
"solana_create_associated_token_account_exception": "Fout bij het maken van een geassocieerd tokenaccount voor ontvangingsadres.",
"solana_no_associated_token_account_exception": "Er is geen bijbehorende tokenaccount voor dit adres.",
"solana_sign_native_transaction_rent_exception": "Transactie kan niet worden voltooid. Onvoldoende Sol vertrok naar huur na transactie. Vul uw SOL -balans aan of verminder de hoeveelheid SOL die u verzendt.",
"solana_sign_spl_token_transaction_rent_exception": "Transactie kan niet worden voltooid. Onvoldoende Sol vertrok naar huur na transactie. Vul uw SOL -balans op.",
"sort_by": "Sorteer op", "sort_by": "Sorteer op",
"spend_key_private": "Sleutel uitgeven (privaat)", "spend_key_private": "Sleutel uitgeven (privaat)",
"spend_key_public": "Sleutel uitgeven (openbaar)", "spend_key_public": "Sleutel uitgeven (openbaar)",

View file

@ -741,6 +741,10 @@
"silent_payments_settings": "Ustawienia o cichej płatności", "silent_payments_settings": "Ustawienia o cichej płatności",
"single_seed_wallets_group": "Pojedyncze portfele nasion", "single_seed_wallets_group": "Pojedyncze portfele nasion",
"slidable": "Przesuwne", "slidable": "Przesuwne",
"solana_create_associated_token_account_exception": "Błąd tworzenia powiązanego konta tokena dla adresu wpływającego.",
"solana_no_associated_token_account_exception": "Nie ma powiązanego konta tokena dla tego adresu.",
"solana_sign_native_transaction_rent_exception": "Transakcji nie można zakończyć. Niewystarczający SOL w lewo do czynszu po transakcji. Uprzejmie uzupełnij saldo Sol lub zmniejsz ilość wysyłanej przez Ciebie rozwiązania.",
"solana_sign_spl_token_transaction_rent_exception": "Transakcji nie można zakończyć. Niewystarczający SOL w lewo do czynszu po transakcji. Uprzejmie uzupełnij saldo Sol.",
"sort_by": "Sortuj według", "sort_by": "Sortuj według",
"spend_key_private": "Klucz prywatny", "spend_key_private": "Klucz prywatny",
"spend_key_public": "Klucz publiczny", "spend_key_public": "Klucz publiczny",

View file

@ -743,6 +743,10 @@
"silent_payments_settings": "Configurações de pagamentos silenciosos", "silent_payments_settings": "Configurações de pagamentos silenciosos",
"single_seed_wallets_group": "Carteiras de sementes únicas", "single_seed_wallets_group": "Carteiras de sementes únicas",
"slidable": "Deslizável", "slidable": "Deslizável",
"solana_create_associated_token_account_exception": "Erro a criação de um token associado Conta do endereço de recebimento.",
"solana_no_associated_token_account_exception": "Não existe uma conta de token associada para este endereço.",
"solana_sign_native_transaction_rent_exception": "A transação não pode ser concluída. Sol insuficiente deixou para alugar após a transação. Por favor, complete seu saldo sol ou reduza a quantidade de sol que você está enviando.",
"solana_sign_spl_token_transaction_rent_exception": "A transação não pode ser concluída. Sol insuficiente deixou para alugar após a transação. Por favor, complete seu equilíbrio sol.",
"sort_by": "Ordenar por", "sort_by": "Ordenar por",
"spend_key_private": "Chave de gastos (privada)", "spend_key_private": "Chave de gastos (privada)",
"spend_key_public": "Chave de gastos (pública)", "spend_key_public": "Chave de gastos (pública)",

View file

@ -742,6 +742,10 @@
"silent_payments_settings": "Silent Payments Settings", "silent_payments_settings": "Silent Payments Settings",
"single_seed_wallets_group": "Одиночные кошельки", "single_seed_wallets_group": "Одиночные кошельки",
"slidable": "Скользящий", "slidable": "Скользящий",
"solana_create_associated_token_account_exception": "Ошибка создания ассоциированной учетной записи для адреса для адреса.",
"solana_no_associated_token_account_exception": "Для этого адреса нет связанной учетной записи токена.",
"solana_sign_native_transaction_rent_exception": "Сделка не может быть завершена. Недостаточный соль ушел в аренду после транзакции. Пожалуйста, поместите свой баланс Sol или уменьшите количество Sol, которое вы отправляете.",
"solana_sign_spl_token_transaction_rent_exception": "Сделка не может быть завершена. Недостаточный соль ушел в аренду после транзакции. Пожалуйста, пополните свой баланс Sol.",
"sort_by": "Сортировать по", "sort_by": "Сортировать по",
"spend_key_private": "Приватный ключ траты", "spend_key_private": "Приватный ключ траты",
"spend_key_public": "Публичный ключ траты", "spend_key_public": "Публичный ключ траты",

View file

@ -741,6 +741,10 @@
"silent_payments_settings": "การตั้งค่าการชำระเงินแบบเงียบ", "silent_payments_settings": "การตั้งค่าการชำระเงินแบบเงียบ",
"single_seed_wallets_group": "กระเป๋าเงินเดียว", "single_seed_wallets_group": "กระเป๋าเงินเดียว",
"slidable": "เลื่อนได้", "slidable": "เลื่อนได้",
"solana_create_associated_token_account_exception": "ข้อผิดพลาดในการสร้างบัญชีโทเค็นที่เกี่ยวข้องสำหรับที่อยู่รับ",
"solana_no_associated_token_account_exception": "ไม่มีบัญชีโทเค็นที่เกี่ยวข้องสำหรับที่อยู่นี้",
"solana_sign_native_transaction_rent_exception": "การทำธุรกรรมไม่สามารถเสร็จสิ้นได้ SOL ไม่เพียงพอเหลือให้เช่าหลังการทำธุรกรรม กรุณาเติมยอดคงเหลือโซลของคุณหรือลดจำนวนโซลที่คุณกำลังส่ง",
"solana_sign_spl_token_transaction_rent_exception": "การทำธุรกรรมไม่สามารถเสร็จสิ้นได้ SOL ไม่เพียงพอเหลือให้เช่าหลังการทำธุรกรรม กรุณาเติมยอดสมดุลโซลของคุณ",
"sort_by": "เรียงตาม", "sort_by": "เรียงตาม",
"spend_key_private": "คีย์จ่าย (ส่วนตัว)", "spend_key_private": "คีย์จ่าย (ส่วนตัว)",
"spend_key_public": "คีย์จ่าย (สาธารณะ)", "spend_key_public": "คีย์จ่าย (สาธารณะ)",

View file

@ -741,6 +741,10 @@
"silent_payments_settings": "Mga setting ng tahimik na pagbabayad", "silent_payments_settings": "Mga setting ng tahimik na pagbabayad",
"single_seed_wallets_group": "Solong mga pitaka ng binhi", "single_seed_wallets_group": "Solong mga pitaka ng binhi",
"slidable": "Slidable", "slidable": "Slidable",
"solana_create_associated_token_account_exception": "Error sa paglikha ng nauugnay na token account para sa resibo address.",
"solana_no_associated_token_account_exception": "Walang nauugnay na token account para sa address na ito.",
"solana_sign_native_transaction_rent_exception": "Hindi makumpleto ang transaksyon. Hindi sapat na SOL na naiwan para sa upa pagkatapos ng transaksyon. Mabuting itaas ang iyong balanse sa sol o bawasan ang dami ng sol na iyong ipinapadala.",
"solana_sign_spl_token_transaction_rent_exception": "Hindi makumpleto ang transaksyon. Hindi sapat na SOL na naiwan para sa upa pagkatapos ng transaksyon. Mabuting itaas ang iyong balanse sa sol.",
"sort_by": "Pag-uri-uriin sa pamamagitan ng", "sort_by": "Pag-uri-uriin sa pamamagitan ng",
"spend_key_private": "Spend key (private)", "spend_key_private": "Spend key (private)",
"spend_key_public": "Spend key (public)", "spend_key_public": "Spend key (public)",

View file

@ -741,6 +741,10 @@
"silent_payments_settings": "Sessiz Ödeme Ayarları", "silent_payments_settings": "Sessiz Ödeme Ayarları",
"single_seed_wallets_group": "Tek tohum cüzdanları", "single_seed_wallets_group": "Tek tohum cüzdanları",
"slidable": "kaydırılabilir", "slidable": "kaydırılabilir",
"solana_create_associated_token_account_exception": "ALIPITIENT ADRESİ İÇİN BAŞLANGIÇ HESABI oluşturma Hata.",
"solana_no_associated_token_account_exception": "Bu adres için ilişkili belirteç hesabı yoktur.",
"solana_sign_native_transaction_rent_exception": "İşlem tamamlanamaz. Yetersiz Sol işlemden sonra kira için kaldı. Lütfen sol bakiyenizi doldurun veya gönderdiğiniz Sol miktarını azaltın.",
"solana_sign_spl_token_transaction_rent_exception": "İşlem tamamlanamaz. Yetersiz Sol işlemden sonra kira için kaldı. Lütfen sol bakiyenizi doldurun.",
"sort_by": "Göre sırala", "sort_by": "Göre sırala",
"spend_key_private": "Harcama anahtarı (özel)", "spend_key_private": "Harcama anahtarı (özel)",
"spend_key_public": "Harcama anahtarı (genel)", "spend_key_public": "Harcama anahtarı (genel)",

View file

@ -742,6 +742,10 @@
"silent_payments_settings": "Налаштування мовчазних платежів", "silent_payments_settings": "Налаштування мовчазних платежів",
"single_seed_wallets_group": "Поодинокі насінні гаманці", "single_seed_wallets_group": "Поодинокі насінні гаманці",
"slidable": "Розсувний", "slidable": "Розсувний",
"solana_create_associated_token_account_exception": "Помилка створення пов’язаного облікового запису Token для адреси приймання.",
"solana_no_associated_token_account_exception": "Для цієї адреси немає пов’язаного облікового запису маркера.",
"solana_sign_native_transaction_rent_exception": "Транзакція не може бути завершена. Недостатня SOL залишила оренду після транзакції. Будь ласка, поповніть свій баланс SOL або зменшіть кількість SOL, який ви надсилаєте.",
"solana_sign_spl_token_transaction_rent_exception": "Транзакція не може бути завершена. Недостатня SOL залишила оренду після транзакції. Будь ласка, наповніть свій баланс SOL.",
"sort_by": "Сортувати за", "sort_by": "Сортувати за",
"spend_key_private": "Приватний ключ витрати", "spend_key_private": "Приватний ключ витрати",
"spend_key_public": "Публічний ключ витрати", "spend_key_public": "Публічний ключ витрати",

View file

@ -743,6 +743,10 @@
"silent_payments_settings": "خاموش ادائیگی کی ترتیبات", "silent_payments_settings": "خاموش ادائیگی کی ترتیبات",
"single_seed_wallets_group": "سنگل بیج کے بٹوے", "single_seed_wallets_group": "سنگل بیج کے بٹوے",
"slidable": "سلائیڈ ایبل", "slidable": "سلائیڈ ایبل",
"solana_create_associated_token_account_exception": "وصول کنندہ ایڈریس کے لئے وابستہ ٹوکن اکاؤنٹ بنانے میں غلطی۔",
"solana_no_associated_token_account_exception": "اس پتے کے لئے کوئی وابستہ ٹوکن اکاؤنٹ نہیں ہے۔",
"solana_sign_native_transaction_rent_exception": "لین دین مکمل نہیں کیا جاسکتا۔ ٹرانزیکشن کے بعد کرایہ کے لئے ناکافی SOL چھوڑ دیا گیا ہے۔ برائے مہربانی اپنے سول توازن کو اوپر کریں یا آپ بھیج رہے ہیں اس کی مقدار کو کم کریں۔",
"solana_sign_spl_token_transaction_rent_exception": "لین دین مکمل نہیں کیا جاسکتا۔ ٹرانزیکشن کے بعد کرایہ کے لئے ناکافی SOL چھوڑ دیا گیا ہے۔ برائے مہربانی اپنے سول توازن کو اوپر رکھیں۔",
"sort_by": "ترتیب دیں", "sort_by": "ترتیب دیں",
"spend_key_private": "خرچ کی کلید (نجی)", "spend_key_private": "خرچ کی کلید (نجی)",
"spend_key_public": "خرچ کی کلید (عوامی)", "spend_key_public": "خرچ کی کلید (عوامی)",

View file

@ -740,6 +740,10 @@
"silent_payments_settings": "Cài đặt thanh toán im lặng", "silent_payments_settings": "Cài đặt thanh toán im lặng",
"single_seed_wallets_group": "Ví hạt đơn", "single_seed_wallets_group": "Ví hạt đơn",
"slidable": "Có thể kéo", "slidable": "Có thể kéo",
"solana_create_associated_token_account_exception": "Lỗi Tạo tài khoản mã thông báo liên quan cho địa chỉ biên lai.",
"solana_no_associated_token_account_exception": "Không có tài khoản mã thông báo liên quan cho địa chỉ này.",
"solana_sign_native_transaction_rent_exception": "Giao dịch không thể được hoàn thành. Không đủ Sol còn lại cho thuê sau khi giao dịch. Vui lòng tăng số dư Sol của bạn hoặc giảm số lượng sol bạn đang gửi.",
"solana_sign_spl_token_transaction_rent_exception": "Giao dịch không thể được hoàn thành. Không đủ Sol còn lại cho thuê sau khi giao dịch. Vui lòng lên cân bằng sol của bạn.",
"sort_by": "Sắp xếp theo", "sort_by": "Sắp xếp theo",
"spend_key_private": "Khóa chi tiêu (riêng tư)", "spend_key_private": "Khóa chi tiêu (riêng tư)",
"spend_key_public": "Khóa chi tiêu (công khai)", "spend_key_public": "Khóa chi tiêu (công khai)",

View file

@ -742,6 +742,10 @@
"silent_payments_settings": "Awọn eto isanwo ti o dakẹ", "silent_payments_settings": "Awọn eto isanwo ti o dakẹ",
"single_seed_wallets_group": "Awọn Wowei Awọn gige", "single_seed_wallets_group": "Awọn Wowei Awọn gige",
"slidable": "Slidable", "slidable": "Slidable",
"solana_create_associated_token_account_exception": "Aṣiṣe ṣiṣẹda akọọlẹ token ti o ni ibatan fun adirẹsi gbigba.",
"solana_no_associated_token_account_exception": "Ko si iroyin token ti o ni ibatan fun adirẹsi yii.",
"solana_sign_native_transaction_rent_exception": "Idunadura ko le pari. Solusi ti ko to ju fun iyalo lẹhin idunadura. Jowo oke iwọntunwọnsi rẹ tabi dinku iye sol ti o firanṣẹ.",
"solana_sign_spl_token_transaction_rent_exception": "Idunadura ko le pari. Solusi ti ko to ju fun iyalo lẹhin idunadura. Sanra si oke ni iwọntunwọnsi Sol rẹ.",
"sort_by": "Sa pelu", "sort_by": "Sa pelu",
"spend_key_private": "Kọ́kọ́rọ́ sísan (àdáni)", "spend_key_private": "Kọ́kọ́rọ́ sísan (àdáni)",
"spend_key_public": "Kọ́kọ́rọ́ sísan (kò àdáni)", "spend_key_public": "Kọ́kọ́rọ́ sísan (kò àdáni)",

View file

@ -741,6 +741,10 @@
"silent_payments_settings": "无声付款设置", "silent_payments_settings": "无声付款设置",
"single_seed_wallets_group": "单个种子钱包", "single_seed_wallets_group": "单个种子钱包",
"slidable": "可滑动", "slidable": "可滑动",
"solana_create_associated_token_account_exception": "错误创建有关接收地址的关联令牌帐户。",
"solana_no_associated_token_account_exception": "该地址没有关联的令牌帐户。",
"solana_sign_native_transaction_rent_exception": "交易无法完成。交易后剩下的溶胶不足。请增强您的溶胶余额或减少您发送的SOL的量。",
"solana_sign_spl_token_transaction_rent_exception": "交易无法完成。交易后剩下的溶胶不足。请增强您的溶液余额。",
"sort_by": "排序方式", "sort_by": "排序方式",
"spend_key_private": "Spend 密钥 (私钥)", "spend_key_private": "Spend 密钥 (私钥)",
"spend_key_public": "Spend 密钥 (公钥)", "spend_key_public": "Spend 密钥 (公钥)",