CW-1238-Solana-Fixes (#2620)

* refactor: optimize SPL token transaction and balance fetching with batch processing * fix: SPL tokens not populating all fields * fix:Solana Fixes - Optimize SPL token transactions and balance fetching - Auto Populate all fields when fetching SPL tokens - Gracefully handle errors when sending Solana tokens * fix: update wallet compatibility check in LinkViewModel * feat: add Moralis API key to secrets * Update * feat: Add error handling for invalid associated token accounts in Solana transactions * fix: Add cleaning for reown to linux ci * refactor: Update transactions after eveey batch fetch * fix: make error messages more readable --------- Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>

David Adegoke committed Nov 11, 2025 at 20:49 UTC edcf6ffe6c370305ec7fd90d5ce1c04ca6125553
37 files changed +190 -88
.github/workflows/automated_integration_test.yml
+1
@@ -140,6 +140,7 @@ jobs:
140 echo "const polygonScanApiKey = '${{ secrets.POLYGON_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart
141 echo "const ankrApiKey = '${{ secrets.ANKR_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart
142 echo "const chainStackApiKey = '${{ secrets.CHAIN_STACK_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart
143 + echo "const moralisApiKey = '${{ secrets.MORALIS_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart
144 echo "const testCakePayApiKey = '${{ secrets.TEST_CAKE_PAY_API_KEY }}';" >> lib/.secrets.g.dart
145 echo "const cakePayApiKey = '${{ secrets.CAKE_PAY_API_KEY }}';" >> lib/.secrets.g.dart
146 echo "const authorization = '${{ secrets.CAKE_PAY_AUTHORIZATION }}';" >> lib/.secrets.g.dart
.github/workflows/pr_test_build_android.yml
+1
@@ -134,6 +134,7 @@ jobs:
134 echo "const polygonScanApiKey = '${{ secrets.POLYGON_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart
135 echo "const ankrApiKey = '${{ secrets.ANKR_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart
136 echo "const chainStackApiKey = '${{ secrets.CHAIN_STACK_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart
137 + echo "const moralisApiKey = '${{ secrets.MORALIS_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart
138 echo "const testCakePayApiKey = '${{ secrets.TEST_CAKE_PAY_API_KEY }}';" >> lib/.secrets.g.dart
139 echo "const cakePayApiKey = '${{ secrets.CAKE_PAY_API_KEY }}';" >> lib/.secrets.g.dart
140 echo "const authorization = '${{ secrets.CAKE_PAY_AUTHORIZATION }}';" >> lib/.secrets.g.dart
.github/workflows/pr_test_build_linux.yml
+4
@@ -127,6 +127,7 @@ jobs:
127 echo "const polygonScanApiKey = '${{ secrets.POLYGON_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart
128 echo "const ankrApiKey = '${{ secrets.ANKR_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart
129 echo "const chainStackApiKey = '${{ secrets.CHAIN_STACK_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart
130 + echo "const moralisApiKey = '${{ secrets.MORALIS_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart
131 echo "const testCakePayApiKey = '${{ secrets.TEST_CAKE_PAY_API_KEY }}';" >> lib/.secrets.g.dart
132 echo "const cakePayApiKey = '${{ secrets.CAKE_PAY_API_KEY }}';" >> lib/.secrets.g.dart
133 echo "const authorization = '${{ secrets.CAKE_PAY_AUTHORIZATION }}';" >> lib/.secrets.g.dart
@@ -196,6 +197,9 @@ jobs:
197 run: |
198 set -x -e
199 pushd scripts
200 + # cleaning
201 + rm -rf reown_flutter
202 + rm -f reown_flutter.tar.gz
203 wget https://github.com/cake-tech/reown_flutter/releases/download/v0.0.4/reown_flutter-v0.0.4.tar.gz -O reown_flutter.tar.gz
204 mkdir reown_flutter
205 pushd reown_flutter
cw_solana/lib/solana_client.dart
+79 -51
@@ -16,7 +16,6 @@ import 'package:cw_core/spl_token.dart';
16 import 'package:on_chain/solana/solana.dart';
17 import 'package:on_chain/solana/src/instructions/associated_token_account/constant.dart';
18 import 'package:on_chain/solana/src/models/pda/pda.dart';
19 -import 'package:blockchain_utils/blockchain_utils.dart';
19 import 'package:on_chain/solana/src/rpc/models/models/confirmed_transaction_meta.dart';
20 import '.secrets.g.dart' as secrets;
21
@@ -24,6 +23,7 @@ class SolanaWalletClient {
23 // Minimum amount in SOL to consider a transaction valid (to filter spam)
24 static const double minValidAmount = 0.00000003;
25 final httpClient = ProxyWrapper().getHttpClient();
26 + late final client = ProxyWrapper().getHttpIOClient();
27 SolanaRPC? _provider;
28
29 bool connect(Node node) {
@@ -90,8 +90,8 @@ class SolanaWalletClient {
90 }
91 }
92
93 - Future<SolanaBalance?> getSplTokenBalance(
94 - String mintAddress, String walletAddress, {bool throwOnError = false}) async {
93 + Future<SolanaBalance?> getSplTokenBalance(String mintAddress, String walletAddress,
94 + {bool throwOnError = false}) async {
95 try {
96 // Fetch the token accounts (a token can have multiple accounts for various uses)
97 final tokenAccounts = await getSPLTokenAccounts(mintAddress, walletAddress);
@@ -134,16 +134,14 @@ class SolanaWalletClient {
134 ),
135 );
136
137 - final fee =
138 - (feeForMessage?.toDouble() ?? 0.0) / SolanaUtils.lamportsPerSol;
137 + final fee = (feeForMessage?.toDouble() ?? 0.0) / SolanaUtils.lamportsPerSol;
138 return fee;
139 } catch (_) {
140 return 0.0;
141 }
142 }
143
145 - Future<double> getEstimatedFee(
146 - SolanaPublicKey publicKey, Commitment commitment) async {
144 + Future<double> getEstimatedFee(SolanaPublicKey publicKey, Commitment commitment) async {
145 final message = await _getMessageForNativeTransaction(
146 publicKey: publicKey,
147 destinationAddress: publicKey.toAddress().address,
@@ -182,7 +180,6 @@ class SolanaWalletClient {
180 ? ""
181 : Base58Encoder.encode(txResponse.transaction!.signatures.first);
182
185 -
183 for (final instruction in instructions) {
184 final programId = message.accountKeys[instruction.programIdIndex];
185
@@ -443,20 +440,17 @@ class SolanaWalletClient {
440 }
441 }));
442
446 - final versionedBatchResponses =
447 - batchResponses.whereType<VersionedTransactionResponse>();
443 + final versionedBatchResponses = batchResponses.whereType<VersionedTransactionResponse>();
444
449 - final parsedTransactionsFutures =
450 - versionedBatchResponses.map((tx) => parseTransaction(
451 - txResponse: tx,
452 - splTokenSymbol: splTokenSymbol,
453 - walletAddress: walletAddress?.address ?? address.address,
454 - ));
445 + final parsedTransactionsFutures = versionedBatchResponses.map((tx) => parseTransaction(
446 + txResponse: tx,
447 + splTokenSymbol: splTokenSymbol,
448 + walletAddress: walletAddress?.address ?? address.address,
449 + ));
450
451 final parsedTransactions = await Future.wait(parsedTransactionsFutures);
452
458 - transactions.addAll(
459 - parsedTransactions.whereType<SolanaTransactionModel>().toList());
453 + transactions.addAll(parsedTransactions.whereType<SolanaTransactionModel>().toList());
454
455 // Only update UI if we have new valid transactions
456 if (parsedTransactions.isNotEmpty) {
@@ -525,39 +519,76 @@ class SolanaWalletClient {
519 }
520
521 Future<SPLToken?> fetchSPLTokenInfo(String mintAddress) async {
528 - final programAddress = MetaplexTokenMetaDataProgramUtils.findMetadataPda(
529 - mint: SolAddress(mintAddress));
522 + try {
523 + final uri = Uri.https(
524 + 'solana-gateway.moralis.io',
525 + '/token/mainnet/$mintAddress/metadata',
526 + );
527
531 - final token = await _provider!.request(
532 - SolanaRPCGetMetadataAccount(
533 - account: programAddress.address,
534 - commitment: Commitment.confirmed,
535 - ),
536 - );
528 + final response = await client.get(
529 + uri,
530 + headers: {
531 + "Accept": "application/json",
532 + "X-API-Key": secrets.moralisApiKey,
533 + },
534 + );
535
538 - if (token == null) {
539 - return null;
540 - }
536 + final decodedResponse = jsonDecode(response.body) as Map<String, dynamic>;
537
542 - final metadata = token.data;
538 + final symbol = (decodedResponse['symbol'] ?? '') as String;
539
544 - String? iconPath;
545 - //TODO(Further explore fetching images)
546 - // try {
547 - // iconPath = await _client.getIconImageFromTokenUri(metadata.uri);
548 - // } catch (_) {}
540 + final name = decodedResponse['name'] ?? '';
541 + final decimal = decodedResponse['decimals'] ?? '0';
542 + final iconPath = decodedResponse['logo'] ?? '';
543
550 - String filteredTokenSymbol = metadata.symbol
551 - .replaceFirst(RegExp('^\\\$'), '')
552 - .replaceAll('\u0000', '');
544 + String filteredTokenSymbol =
545 + symbol.replaceFirst(RegExp('^\\\$'), '').replaceAll('\u0000', '');
546
554 - return SPLToken.fromMetadata(
555 - name: metadata.name,
556 - mint: metadata.symbol,
557 - symbol: filteredTokenSymbol,
558 - mintAddress: token.mint.address,
559 - iconPath: iconPath,
560 - );
547 + return SPLToken(
548 + name: name,
549 + mint: symbol,
550 + symbol: filteredTokenSymbol,
551 + mintAddress: mintAddress,
552 + iconPath: iconPath,
553 + decimal: int.tryParse(decimal) ?? 0,
554 + );
555 + } catch (e, s) {
556 + printV('Error fetching token info: $e \n $s');
557 + try {
558 + final programAddress =
559 + MetaplexTokenMetaDataProgramUtils.findMetadataPda(mint: SolAddress(mintAddress));
560 +
561 + final token = await _provider!.request(
562 + SolanaRPCGetMetadataAccount(
563 + account: programAddress.address,
564 + commitment: Commitment.confirmed,
565 + ),
566 + );
567 +
568 + if (token == null) return null;
569 +
570 + final metadata = token.data;
571 +
572 + String? iconPath;
573 + //TODO(Further explore fetching images)
574 + // try {
575 + // iconPath = await _client.getIconImageFromTokenUri(metadata.uri);
576 + // } catch (_) {}
577 +
578 + String filteredTokenSymbol =
579 + metadata.symbol.replaceFirst(RegExp('^\\\$'), '').replaceAll('\u0000', '');
580 +
581 + return SPLToken.fromMetadata(
582 + name: metadata.name,
583 + mint: metadata.symbol,
584 + symbol: filteredTokenSymbol,
585 + mintAddress: token.mint.address,
586 + iconPath: iconPath,
587 + );
588 + } catch (_) {}
589 +
590 + return null;
591 + }
592 }
593
594 void stop() {}
@@ -665,8 +696,7 @@ class SolanaWalletClient {
696 return message;
697 }
698
668 - Future<double> _getFeeFromCompiledMessage(
669 - Message message, Commitment commitment) async {
699 + Future<double> _getFeeFromCompiledMessage(Message message, Commitment commitment) async {
700 final base64Message = base64Encode(message.serialize());
701
702 final fee = await getFeeForMessage(base64Message, commitment);
@@ -805,8 +835,7 @@ class SolanaWalletClient {
835 required SolAddress mintAddress,
836 required bool shouldCreateATA,
837 }) async {
808 - final associatedTokenAccount =
809 - AssociatedTokenAccountProgramUtils.associatedTokenAccount(
838 + final associatedTokenAccount = AssociatedTokenAccountProgramUtils.associatedTokenAccount(
839 mint: mintAddress,
840 owner: ownerAddress,
841 );
@@ -877,8 +906,7 @@ class SolanaWalletClient {
906 final amount = (inputAmount * math.pow(10, tokenDecimals)).toInt();
907 ProgramDerivedAddress? associatedSenderAccount;
908 try {
880 - associatedSenderAccount =
881 - AssociatedTokenAccountProgramUtils.associatedTokenAccount(
909 + associatedSenderAccount = AssociatedTokenAccountProgramUtils.associatedTokenAccount(
910 mint: mintAddress,
911 owner: ownerPrivateKey.publicKey().toAddress(),
912 );
cw_solana/lib/solana_wallet.dart
+61 -31
@@ -315,27 +315,36 @@ abstract class SolanaWalletBase
315
316 /// Fetches the SPL Tokens transactions linked to the token account Public Key
317 Future<void> _updateSPLTokenTransactions() async {
318 - // List<SolanaTransactionModel> splTokenTransactions = [];
319 -
320 - // Make a copy of keys to avoid concurrent modification
321 - var tokenKeys = List<CryptoCurrency>.from(balance.keys);
322 -
323 - for (var token in tokenKeys) {
324 - if (token is SPLToken) {
325 - final tokenTxs = await _client.getSPLTokenTransfers(
326 - mintAddress: token.mintAddress,
327 - splTokenSymbol: token.symbol,
328 - splTokenDecimal: token.decimal,
329 - privateKey: _solanaPrivateKey,
330 - onUpdate: updateTransactions,
331 - );
332 -
333 - // splTokenTransactions.addAll(tokenTxs);
334 - await _addTransactionsToTransactionHistory(tokenTxs);
318 + final tokens = balance.keys.whereType<SPLToken>().toList(growable: false);
319 + if (tokens.isEmpty) return;
320 +
321 + const int batchSize = 5;
322 +
323 + for (var i = 0; i < tokens.length; i += batchSize) {
324 + final batch = tokens.sublist(
325 + i,
326 + i + batchSize > tokens.length ? tokens.length : i + batchSize,
327 + );
328 + final results = await Future.wait(
329 + batch.map((token) async {
330 + try {
331 + return await _client.getSPLTokenTransfers(
332 + mintAddress: token.mintAddress,
333 + splTokenSymbol: token.symbol,
334 + splTokenDecimal: token.decimal,
335 + privateKey: _solanaPrivateKey,
336 + onUpdate: updateTransactions,
337 + );
338 + } catch (_) {
339 + return <SolanaTransactionModel>[];
340 + }
341 + }),
342 + );
343 +
344 + for (final list in results) {
345 + await _addTransactionsToTransactionHistory(list);
346 }
347 }
337 -
338 - // await _addTransactionsToTransactionHistory(splTokenTransactions);
348 }
349
350 Future<void> _addTransactionsToTransactionHistory(
@@ -477,18 +486,37 @@ abstract class SolanaWalletBase
486 }
487
488 Future<void> _fetchSPLTokensBalances() async {
480 - for (var token in splTokensBox.values) {
481 - if (token.enabled) {
489 + // Remove disabled tokens first to keep state clean
490 + for (var token in splTokensBox.values.where((t) => !t.enabled)) {
491 + balance.remove(token);
492 + }
493 +
494 + final enabledTokens = splTokensBox.values.where((t) => t.enabled).toList(growable: false);
495 + if (enabledTokens.isEmpty) return;
496 +
497 + const int batchSize = 5;
498 +
499 + for (var i = 0; i < enabledTokens.length; i += batchSize) {
500 + final batch = enabledTokens.sublist(
501 + i,
502 + i + batchSize > enabledTokens.length ? enabledTokens.length : i + batchSize,
503 + );
504 +
505 + final results = await Future.wait(batch.map((token) async {
506 try {
483 - final tokenBalance = await _client.getSplTokenBalance(token.mintAddress, solanaAddress) ??
484 - balance[token] ??
485 - SolanaBalance(0.0);
486 - balance[token] = tokenBalance;
507 + final fetched = await _client.getSplTokenBalance(token.mintAddress, solanaAddress);
508 + return MapEntry(token, fetched);
509 } catch (e) {
510 printV('Error fetching spl token (${token.symbol}) balance ${e.toString()}');
511 + return MapEntry<SPLToken, SolanaBalance?>(token, null);
512 }
490 - } else {
491 - balance.remove(token);
513 + }));
514 +
515 + for (final entry in results) {
516 + final token = entry.key;
517 + final fetchedBalance = entry.value;
518 + final currentBalance = balance[token] ?? SolanaBalance(0.0);
519 + balance[token] = fetchedBalance ?? currentBalance;
520 }
521 }
522 }
@@ -501,11 +529,11 @@ abstract class SolanaWalletBase
529 try {
530 // Check native balance
531 await _client.getBalance(solanaAddress, throwOnError: true);
504 -
532 +
533 // Check USDC token balance
534 const usdcMintAddress = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v";
535 await _client.getSplTokenBalance(usdcMintAddress, solanaAddress, throwOnError: true);
508 -
536 +
537 return true;
538 } catch (e) {
539 return false;
@@ -520,9 +548,11 @@ abstract class SolanaWalletBase
548 for (var token in initialSPLTokens) {
549 if (!splTokensBox.containsKey(token.mintAddress)) {
550 splTokensBox.put(token.mintAddress, token);
523 - } else { // update existing token
551 + } else {
552 + // update existing token
553 final existingToken = splTokensBox.get(token.mintAddress);
525 - splTokensBox.put(token.mintAddress, SPLToken.copyWith(token, enabled: existingToken!.enabled));
554 + splTokensBox.put(
555 + token.mintAddress, SPLToken.copyWith(token, enabled: existingToken!.enabled));
556 }
557 }
558 }
lib/view_model/link_view_model.dart
+1 -1
@@ -28,7 +28,7 @@ class LinkViewModel {
28
29 String? getRouteToGo() {
30 if (isWalletConnectLink) {
31 - if (!isEVMCompatibleChain(appStore.wallet!.type)) {
31 + if (!isWalletConnectCompatibleChain(appStore.wallet!.type)) {
32 _errorToast(S.current.switchToEVMCompatibleWallet);
33 return null;
34 }
lib/view_model/send/send_view_model.dart
+9 -1
@@ -1022,7 +1022,7 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
1022 }
1023
1024 if (error is CreateAssociatedTokenAccountException) {
1025 - return "${S.current.solana_create_associated_token_account_exception} ${S.current.added_message_for_ata_error}\n\n${error.errorMessage}";
1025 + return "${S.current.solana_create_associated_token_account_exception} ${S.current.added_message_for_ata_error}";
1026 }
1027
1028 if (error is SignSPLTokenTransactionRentException) {
@@ -1033,6 +1033,10 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
1033 return S.current.solana_no_associated_token_account_exception;
1034 }
1035
1036 + if (errorMessage.contains('found no record of a prior credit')) {
1037 + return S.current.insufficient_funds_for_tx;
1038 + }
1039 +
1040 if (errorMessage.contains('insufficient funds for rent') &&
1041 errorMessage.contains('Transaction simulation failed') &&
1042 errorMessage.contains('account_index')) {
@@ -1044,6 +1048,10 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
1048 }
1049 }
1050
1051 + if (errorMessage.contains('invalid account data')) {
1052 + return S.current.solana_invalid_data_message;
1053 + }
1054 +
1055 return errorMessage;
1056 }
1057 if (walletType == WalletType.ethereum ||
res/values/strings_ar.arb
+1
@@ -895,6 +895,7 @@
895 "single_seed_wallets_group": "محافظ بذرة واحدة",
896 "slidable": "قابل للانزلاق",
897 "solana_create_associated_token_account_exception": "خطأ في إنشاء حساب رمز المرتبط بعنوان المستلم.",
898 + "solana_invalid_data_message": "حدث خطأ أثناء تحليل حساب الرمز المميز المرتبط بالرمز المميز. يرجى تأكيد عنوان الاستلام والمحاولة مرة أخرى.",
899 "solana_no_associated_token_account_exception": "لا يوجد حساب مميز مرتبط بهذا العنوان.",
900 "solana_sign_native_transaction_rent_exception": "لا يمكن إكمال المعاملة. غادر SOL غير كاف للإيجار بعد المعاملة. يرجى أن تصل إلى رصيد SOL أو تقليل كمية SOL التي ترسلها.",
901 "solana_sign_spl_token_transaction_rent_exception": "لا يمكن إكمال المعاملة. غادر SOL غير كاف للإيجار بعد المعاملة. يرجى أن تصل إلى توازن سولك.",
res/values/strings_bg.arb
+1
@@ -895,6 +895,7 @@
895 "single_seed_wallets_group": "Портфейли с единични семена",
896 "slidable": "Плъзгащ се",
897 "solana_create_associated_token_account_exception": "Грешка Създаване на свързана сметка за жетони за адреса на получател.",
898 + "solana_invalid_data_message": "Грешка при синтактичния анализ на свързания токен акаунт за токен. Моля, потвърдете адреса за получаване и опитайте отново.",
899 "solana_no_associated_token_account_exception": "Няма свързана сметка за този адрес.",
900 "solana_sign_native_transaction_rent_exception": "Транзакцията не може да бъде завършена. Недостатъчен сол оставен под наем след транзакция. Любезно допълнете баланса си на SOL или намалете количеството SOL, което изпращате.",
901 "solana_sign_spl_token_transaction_rent_exception": "Транзакцията не може да бъде завършена. Недостатъчен сол оставен под наем след транзакция. Любезно допълнете баланса си на SOL.",
res/values/strings_cs.arb
+1
@@ -895,6 +895,7 @@
895 "single_seed_wallets_group": "Jednorázové peněženky",
896 "slidable": "Posuvné",
897 "solana_create_associated_token_account_exception": "Vytvoření chyby přidruženého účtu tokenů pro adresu příjmu.",
898 + "solana_invalid_data_message": "Chyba při analýze přidruženého účtu tokenu pro token. Prosím potvrďte přijímací adresu a zkuste to znovu.",
899 "solana_no_associated_token_account_exception": "Pro tuto adresu není přidružen žádný přidružený token.",
900 "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.",
901 "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.",
res/values/strings_de.arb
+1
@@ -896,6 +896,7 @@
896 "single_seed_wallets_group": "Einzelne Wallets",
897 "slidable": "Verschiebbar",
898 "solana_create_associated_token_account_exception": "Fehler beim Erstellen des zugehörigen Token-Kontos für die Empfängeradresse.",
899 + "solana_invalid_data_message": "Fehler beim Parsen des zugeordneten Token-Kontos für Token. Bitte bestätigen Sie die Empfangsadresse und versuchen Sie es erneut.",
900 "solana_no_associated_token_account_exception": "Für diese Adresse ist kein Token-Konto zugeordnet.",
901 "solana_sign_native_transaction_rent_exception": "Transaktion kann nicht abgeschlossen werden. Nach der Transaktion ist nicht genug Sol für die Miete übrig. Bitte stocken Sie Ihr SOL-Guthaben auf oder reduzieren Sie die Menge an SOL, die Sie senden.",
902 "solana_sign_spl_token_transaction_rent_exception": "Transaktion kann nicht abgeschlossen werden. Nach der Transaktion ist nicht genug Sol für die Miete übrig. Bitte stocken Sie Ihr SOL-Guthaben auf",
res/values/strings_en.arb
+2 -1
@@ -896,6 +896,7 @@
896 "single_seed_wallets_group": "Single Seed Wallets",
897 "slidable": "Slidable",
898 "solana_create_associated_token_account_exception": "Error creating associated token account for receipient address.",
899 + "solana_invalid_data_message": "Error parsing associated token account for token. Kindly confirm receive address and try again.",
900 "solana_no_associated_token_account_exception": "There is no associated token account for this address.",
901 "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.",
902 "solana_sign_spl_token_transaction_rent_exception": "Transaction cannot be completed. Insufficient SOL left for rent after transaction. Kindly top up your SOL balance.",
@@ -1155,4 +1156,4 @@
1156 "youCanGoBackToYourDapp": "You can go back to your dApp now",
1157 "your": "Your",
1158 "yy": "YY"
1158 -}
1159 +}
\ No newline at end of file
res/values/strings_es.arb
+2 -1
@@ -896,6 +896,7 @@
896 "single_seed_wallets_group": "Carteras de semilla única",
897 "slidable": "Deslizable",
898 "solana_create_associated_token_account_exception": "Error al crear la cuenta de token asociada para la dirección del destinatario.",
899 + "solana_invalid_data_message": "Error al analizar la cuenta de token asociada para el token. Por favor confirme la dirección de recepción e inténtelo nuevamente.",
900 "solana_no_associated_token_account_exception": "No hay una cuenta de token asociada a esta dirección.",
901 "solana_sign_native_transaction_rent_exception": "La transacción no se puede completar. SOL insuficiente para la renta después de la transacción. Por favor, recarga tu saldo de SOL o reduce la cantidad de SOL que estás enviando.",
902 "solana_sign_spl_token_transaction_rent_exception": "La transacción no se puede completar. SOL insuficiente para la renta después de la transacción. Por favor, recarga tu saldo de SOL.",
@@ -1156,4 +1157,4 @@
1157 "youCanGoBackToYourDapp": "Ahora puedes volver a tu dApp",
1158 "your": "Tu",
1159 "yy": "YY"
1159 -}
1160 +}
\ No newline at end of file
res/values/strings_fr.arb
+1
@@ -895,6 +895,7 @@
895 "single_seed_wallets_group": "Portefeuilles de mots-clés (seed) simples",
896 "slidable": "Glissable",
897 "solana_create_associated_token_account_exception": "Création d'erreur Création de jetons associés pour l'adresse détenue.",
898 + "solana_invalid_data_message": "Erreur lors de l'analyse du compte de jeton associé pour le jeton. Veuillez confirmer l'adresse de réception et réessayer.",
899 "solana_no_associated_token_account_exception": "Il n'y a pas de compte de jeton associé pour cette adresse.",
900 "solana_sign_native_transaction_rent_exception": "Transaction impossible. Il ne restera pas suffisamment de SOL pour la location après la transaction. Veuillez recharger votre solde SOL ou réduire la quantité de SOL envoyée.",
901 "solana_sign_spl_token_transaction_rent_exception": "Transaction impossible. Il ne restera pas suffisamment de SOL pour la location après la transaction. Veuillez recharger votre solde SOL.",
res/values/strings_gn.arb
+2 -1
@@ -688,6 +688,7 @@
688 "silent_payments_scanning": "Reescanea hepyme’ẽ kirirĩme",
689 "silent_payments_settings": "Ñemohenda hepyme’ẽ kirirĩme rehegua",
690 "slidable": "Ikatúva osyry",
691 + "solana_invalid_data_message": "Error Parsing Asociado Cuenta de Token para Token. Amablemente emoañete recibir dirección ha eñeha'ã jey.",
692 "sort_by": "Ñemohenda pe",
693 "spend_key_private": "Papapy (ñemigua)",
694 "spend_key_public": "Papapy (ojeikuaáva)",
@@ -899,4 +900,4 @@
900 "you_will_get": "Oñemoambue haguã",
901 "you_will_send": "Oñemoambue pe",
902 "yy": "Ha"
902 -}
903 +}
\ No newline at end of file
res/values/strings_ha.arb
+1
@@ -897,6 +897,7 @@
897 "single_seed_wallets_group": "Guaro",
898 "slidable": "Mai iya zamewa",
899 "solana_create_associated_token_account_exception": "Kuskuren ƙirƙirar asusun Asusun da aka danganta don Adireshin karɓar karɓa.",
900 + "solana_invalid_data_message": "Kuskuren hade da asusun ajiyar banki don alama. Da fatan za a tabbatar da adireshin da sake gwadawa.",
901 "solana_no_associated_token_account_exception": "Babu wani haɗin yanar gizo mai alaƙa don wannan adireshin.",
902 "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.",
903 "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.",
res/values/strings_hi.arb
+2 -1
@@ -611,8 +611,8 @@
611 "payjoin_unavailable_sheet_title": "Payjoin अनुपलब्ध क्यों है?",
612 "payment_id": "भुगतान ID: ",
613 "payment_made_easy": "भुगतान आसान किया गया",
614 - "Payment_was_received": "आपका भुगतान प्राप्त हो गया था।",
614 "payment_was_received": "आपका भुगतान प्राप्त हुआ था।",
615 + "Payment_was_received": "आपका भुगतान प्राप्त हो गया था।",
616 "payments": "भुगतान",
617 "pending": " (अपूर्ण)",
618 "percentageOf": "${amount} का",
@@ -897,6 +897,7 @@
897 "single_seed_wallets_group": "एकल बीज बटुए",
898 "slidable": "फिसलने लायक",
899 "solana_create_associated_token_account_exception": "रसीद पते के लिए संबद्ध टोकन खाता बनाने में त्रुटि।",
900 + "solana_invalid_data_message": "टोकन के लिए संबद्ध टोकन खाते को पार्स करने में त्रुटि। कृपया प्राप्त पते की पुष्टि करें और पुनः प्रयास करें।",
901 "solana_no_associated_token_account_exception": "इस पते के लिए कोई जुड़ा हुआ टोकन खाता नहीं है।",
902 "solana_sign_native_transaction_rent_exception": "लेन -देन पूरा नहीं किया जा सकता है। अपर्याप्त सोल लेनदेन के बाद किराए के लिए छोड़ दिया। कृपया अपने सोल बैलेंस को टॉप करें या आपके द्वारा भेजे जा रहे सोल की मात्रा को कम करें।",
903 "solana_sign_spl_token_transaction_rent_exception": "लेन -देन पूरा नहीं किया जा सकता है। अपर्याप्त सोल लेनदेन के बाद किराए के लिए छोड़ दिया। कृपया अपने सोल बैलेंस को ऊपर रखें।",
res/values/strings_hr.arb
+1
@@ -895,6 +895,7 @@
895 "single_seed_wallets_group": "Jednostruki novčanici",
896 "slidable": "Klizna",
897 "solana_create_associated_token_account_exception": "Pogreška u stvaranju povezanog token računa za adresu primanja.",
898 + "solana_invalid_data_message": "Pogreška pri raščlanjivanju povezanog računa tokena za token. Molimo potvrdite adresu primanja i pokušajte ponovo.",
899 "solana_no_associated_token_account_exception": "Za ovu adresu ne postoji povezani token račun.",
900 "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.",
901 "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.",
res/values/strings_hy.arb
+1
@@ -893,6 +893,7 @@
893 "single_seed_wallets_group": "Մեկ սերմերի դրամապանակներ",
894 "slidable": "Սահելի",
895 "solana_create_associated_token_account_exception": "Recesient Advent- ի համար հարակից նշանների հաշիվ ստեղծելու սխալ:",
896 + "solana_invalid_data_message": "Չհաջողվեց վերլուծել համապատասխան նշանային հաշիվը նշանի համար: Խնդրում ենք հաստատել ստացման հասցեն և նորից փորձել:",
897 "solana_no_associated_token_account_exception": "Այս հասցեի համար կապված նշանների հաշիվ չկա:",
898 "solana_sign_native_transaction_rent_exception": "Գործարքը հնարավոր չէ լրացնել: Անբավարար սոլը գործարքից հետո վարձով է մնացել: Սիրով վերացրեք ձեր SOL հավասարակշռությունը կամ նվազեցրեք ձեր ուղարկած սոլի քանակը:",
899 "solana_sign_spl_token_transaction_rent_exception": "Գործարքը հնարավոր չէ լրացնել: Անբավարար սոլը գործարքից հետո վարձով է մնացել: Սիրով վերացրեք ձեր SOL հավասարակշռությունը:",
res/values/strings_id.arb
+1
@@ -898,6 +898,7 @@
898 "single_seed_wallets_group": "Dompet biji tunggal",
899 "slidable": "Dapat digeser",
900 "solana_create_associated_token_account_exception": "Kesalahan Membuat Akun Token Terkait untuk Alamat Penerima.",
901 + "solana_invalid_data_message": "Terjadi kesalahan saat mengurai akun token terkait untuk token. Mohon konfirmasi alamat penerimaan dan coba lagi.",
902 "solana_no_associated_token_account_exception": "Tidak ada akun token terkait untuk alamat ini.",
903 "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.",
904 "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.",
res/values/strings_it.arb
+1
@@ -896,6 +896,7 @@
896 "single_seed_wallets_group": "Portafogli singoli",
897 "slidable": "Scorrevole",
898 "solana_create_associated_token_account_exception": "Errore nella creazione di un account token associato per l'indirizzo destinatario.",
899 + "solana_invalid_data_message": "Errore durante l'analisi dell'account token associato per il token. Si prega di confermare la ricezione dell'indirizzo e riprovare.",
900 "solana_no_associated_token_account_exception": "Non esiste un account token associato per questo indirizzo.",
901 "solana_sign_native_transaction_rent_exception": "La transazione non può essere completata. SOL insufficienti per l'affitto dopo la transazione. Si prega di ricaricare il saldo SOL, o ridurre la quantità di SOL che stai inviando.",
902 "solana_sign_spl_token_transaction_rent_exception": "La transazione non può essere completata. SOL insufficienti per l'affitto dopo la transazione. Si prega di ricaricare il tuo saldo SOL.",
res/values/strings_ja.arb
+1
@@ -896,6 +896,7 @@
896 "single_seed_wallets_group": "シングルシードウォレット",
897 "slidable": "スライド可能",
898 "solana_create_associated_token_account_exception": "関連するトークンの作成エラー受信アドレスのアカウント。",
899 + "solana_invalid_data_message": "トークンに関連付けられたトークン アカウントの解析中にエラーが発生しました。受信アドレスを確認して、もう一度お試しください。",
900 "solana_no_associated_token_account_exception": "このアドレスに関連付けられたトークンアカウントはありません。",
901 "solana_sign_native_transaction_rent_exception": "トランザクションは完了できません。取引後にレンタルのために残された不十分なソル。ソルバランスを補充するか、送信するソルの量を減らしてください。",
902 "solana_sign_spl_token_transaction_rent_exception": "トランザクションは完了できません。取引後にレンタルのために残された不十分なソル。ソルバランスを補充してください。",
res/values/strings_ko.arb
+1
@@ -896,6 +896,7 @@
896 "single_seed_wallets_group": "단일 시드 지갑",
897 "slidable": "슬라이드 가능",
898 "solana_create_associated_token_account_exception": "수신자 주소에 대한 연관 토큰 계정 생성 오류.",
899 + "solana_invalid_data_message": "토큰에 연결된 토큰 계정을 구문 분석하는 중에 오류가 발생했습니다. 수신 주소를 확인하신 후 다시 시도해 주세요.",
900 "solana_no_associated_token_account_exception": "이 주소에 대한 연관 토큰 계정이 없습니다.",
901 "solana_sign_native_transaction_rent_exception": "트랜잭션을 완료할 수 없습니다. 트랜잭션 후 렌트에 필요한 SOL이 부족합니다. SOL 잔액을 충전하거나 보내는 SOL 금액을 줄이세요.",
902 "solana_sign_spl_token_transaction_rent_exception": "트랜잭션을 완료할 수 없습니다. 트랜잭션 후 렌트에 필요한 SOL이 부족합니다. SOL 잔액을 충전하세요.",
res/values/strings_my.arb
+1
@@ -895,6 +895,7 @@
895 "single_seed_wallets_group": "တစ်ခုတည်းမျိုးစေ့ပိုက်ဆံအိတ်",
896 "slidable": "လျှောချနိုင်သည်။",
897 "solana_create_associated_token_account_exception": "Encipient Token အကောင့်ကိုလက်ခံသည့်လိပ်စာအတွက်အကောင့်များဖန်တီးခြင်းအတွက်အမှားအယွင်းများဖန်တီးခြင်း။",
898 + "solana_invalid_data_message": "Token အတွက် Associated Token အကောင့်ကိုခွဲခြမ်းစိတ်ဖြာခြင်းအမှား။ ကြင်နာစွာလိပ်စာလက်ခံရရှိပြီးထပ်ကြိုးစားပါ။",
899 "solana_no_associated_token_account_exception": "ဒီလိပ်စာအတွက်မပေါင်းသင်းတဲ့လက်ခဏာသက်သေအကောင့်မရှိဘူး။",
900 "solana_sign_native_transaction_rent_exception": "ငွေပေးငွေယူကိုမပြီးစီးနိုင်ပါ။ ငွေပေးငွေယူပြီးနောက်ငှားရန် Sol မလုံလောက်ပါ။ ကြင်နာစွာသင်၏ SOR ချိန်ခွင်လျှာကိုငွေဖြည့်ပါသို့မဟုတ်သင်ပို့နေသည့်ပမာဏကိုလျှော့ချပါ။",
901 "solana_sign_spl_token_transaction_rent_exception": "ငွေပေးငွေယူကိုမပြီးစီးနိုင်ပါ။ ငွေပေးငွေယူပြီးနောက်ငှားရန် Sol မလုံလောက်ပါ။ ကြင်နာစွာသင်၏ s ကိုချိန်ခွင်လျှာကိုတက်ပါ။",
res/values/strings_nl.arb
+1
@@ -895,6 +895,7 @@
895 "single_seed_wallets_group": "Enkele zaadportefeuilles",
896 "slidable": "Verschuifbaar",
897 "solana_create_associated_token_account_exception": "Fout bij het maken van een geassocieerd tokenaccount voor ontvangingsadres.",
898 + "solana_invalid_data_message": "Fout bij het parseren van gekoppeld tokenaccount voor token. Bevestig het ontvangstadres en probeer het opnieuw.",
899 "solana_no_associated_token_account_exception": "Er is geen bijbehorende tokenaccount voor dit adres.",
900 "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.",
901 "solana_sign_spl_token_transaction_rent_exception": "Transactie kan niet worden voltooid. Onvoldoende Sol vertrok naar huur na transactie. Vul uw SOL -balans op.",
res/values/strings_pl.arb
+1
@@ -895,6 +895,7 @@
895 "single_seed_wallets_group": "Portfele z pojedynczym seedem",
896 "slidable": "Przesuwalne",
897 "solana_create_associated_token_account_exception": "Błąd tworzenia powiązanego konta tokena dla adresu odbiorcy.",
898 + "solana_invalid_data_message": "Błąd podczas analizowania powiązanego konta tokenu dla tokena. Prosimy o potwierdzenie adresu odbioru i spróbuj ponownie.",
899 "solana_no_associated_token_account_exception": "Nie ma powiązanego konta tokenowego dla tego adresu.",
900 "solana_sign_native_transaction_rent_exception": "Transakcja nie może zostać zakończona. Po transakcji brakuje SOL na opłatę czynszu. Uprzejmie uzupełnij saldo SOL lub zmniejsz ilość wysyłanego SOL.",
901 "solana_sign_spl_token_transaction_rent_exception": "Transakcja nie może zostać zakończona. Po transakcji brakuje SOL na opłatę za wynajem. Proszę uzupełnić saldo SOL.",
res/values/strings_pt.arb
+1
@@ -897,6 +897,7 @@
897 "single_seed_wallets_group": "Carteiras de sementes únicas",
898 "slidable": "Deslizável",
899 "solana_create_associated_token_account_exception": "Erro a criação de um token associado Conta do endereço de recebimento.",
900 + "solana_invalid_data_message": "Erro ao analisar a conta de token associada para token. Por favor, confirme o endereço de recebimento e tente novamente.",
901 "solana_no_associated_token_account_exception": "Não existe uma conta de token associada para este endereço.",
902 "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.",
903 "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.",
res/values/strings_ru.arb
+1
@@ -896,6 +896,7 @@
896 "single_seed_wallets_group": "Одиночные кошельки",
897 "slidable": "Скользящий",
898 "solana_create_associated_token_account_exception": "Ошибка создания ассоциированной учетной записи для адреса для адреса.",
899 + "solana_invalid_data_message": "Ошибка анализа связанной учетной записи токена. Пожалуйста, подтвердите адрес получения и повторите попытку.",
900 "solana_no_associated_token_account_exception": "Для этого адреса нет связанной учетной записи токена.",
901 "solana_sign_native_transaction_rent_exception": "Сделка не может быть завершена. Недостаточный соль ушел в аренду после транзакции. Пожалуйста, поместите свой баланс Sol или уменьшите количество Sol, которое вы отправляете.",
902 "solana_sign_spl_token_transaction_rent_exception": "Сделка не может быть завершена. Недостаточный соль ушел в аренду после транзакции. Пожалуйста, пополните свой баланс Sol.",
res/values/strings_th.arb
+1
@@ -895,6 +895,7 @@
895 "single_seed_wallets_group": "กระเป๋าเงินเดียว",
896 "slidable": "เลื่อนได้",
897 "solana_create_associated_token_account_exception": "ข้อผิดพลาดในการสร้างบัญชีโทเค็นที่เกี่ยวข้องสำหรับที่อยู่รับ",
898 + "solana_invalid_data_message": "เกิดข้อผิดพลาดในการแยกวิเคราะห์บัญชีโทเค็นที่เกี่ยวข้องสำหรับโทเค็น กรุณายืนยันที่อยู่ที่ได้รับแล้วลองอีกครั้ง",
899 "solana_no_associated_token_account_exception": "ไม่มีบัญชีโทเค็นที่เกี่ยวข้องสำหรับที่อยู่นี้",
900 "solana_sign_native_transaction_rent_exception": "การทำธุรกรรมไม่สามารถเสร็จสิ้นได้ SOL ไม่เพียงพอเหลือให้เช่าหลังการทำธุรกรรม กรุณาเติมยอดคงเหลือโซลของคุณหรือลดจำนวนโซลที่คุณกำลังส่ง",
901 "solana_sign_spl_token_transaction_rent_exception": "การทำธุรกรรมไม่สามารถเสร็จสิ้นได้ SOL ไม่เพียงพอเหลือให้เช่าหลังการทำธุรกรรม กรุณาเติมยอดสมดุลโซลของคุณ",
res/values/strings_tl.arb
+1
@@ -895,6 +895,7 @@
895 "single_seed_wallets_group": "Solong mga pitaka ng binhi",
896 "slidable": "Slidable",
897 "solana_create_associated_token_account_exception": "Error sa paglikha ng nauugnay na token account para sa resibo address.",
898 + "solana_invalid_data_message": "Error sa pag -parse na nauugnay sa token account para sa token. Mabuting kumpirmahin ang makatanggap ng address at subukang muli.",
899 "solana_no_associated_token_account_exception": "Walang nauugnay na token account para sa address na ito.",
900 "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.",
901 "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.",
res/values/strings_tr.arb
+1
@@ -895,6 +895,7 @@
895 "single_seed_wallets_group": "Tek tohum cüzdanları",
896 "slidable": "kaydırılabilir",
897 "solana_create_associated_token_account_exception": "ALIPITIENT ADRESİ İÇİN BAŞLANGIÇ HESABI oluşturma Hata.",
898 + "solana_invalid_data_message": "Belirteç için ilişkili belirteç hesabı ayrıştırılırken hata oluştu. Lütfen aldığınız adresi onaylayın ve tekrar deneyin.",
899 "solana_no_associated_token_account_exception": "Bu adres için ilişkili belirteç hesabı yoktur.",
900 "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.",
901 "solana_sign_spl_token_transaction_rent_exception": "İşlem tamamlanamaz. Yetersiz Sol işlemden sonra kira için kaldı. Lütfen sol bakiyenizi doldurun.",
res/values/strings_uk.arb
+1
@@ -896,6 +896,7 @@
896 "single_seed_wallets_group": "Поодинокі насінні гаманці",
897 "slidable": "Розсувний",
898 "solana_create_associated_token_account_exception": "Помилка створення пов’язаного облікового запису Token для адреси приймання.",
899 + "solana_invalid_data_message": "Помилка аналізу пов’язаного облікового запису маркера для маркера. Будь ласка, підтвердьте адресу отримання та повторіть спробу.",
900 "solana_no_associated_token_account_exception": "Для цієї адреси немає пов’язаного облікового запису маркера.",
901 "solana_sign_native_transaction_rent_exception": "Транзакція не може бути завершена. Недостатня SOL залишила оренду після транзакції. Будь ласка, поповніть свій баланс SOL або зменшіть кількість SOL, який ви надсилаєте.",
902 "solana_sign_spl_token_transaction_rent_exception": "Транзакція не може бути завершена. Недостатня SOL залишила оренду після транзакції. Будь ласка, наповніть свій баланс SOL.",
res/values/strings_ur.arb
+1
@@ -897,6 +897,7 @@
897 "single_seed_wallets_group": "سنگل بیج کے بٹوے",
898 "slidable": "سلائیڈ ایبل",
899 "solana_create_associated_token_account_exception": "وصول کنندہ ایڈریس کے لئے وابستہ ٹوکن اکاؤنٹ بنانے میں غلطی۔",
900 + "solana_invalid_data_message": "ٹوکن سے وابستہ ٹوکن سے وابستہ غلطی کی تجزیہ۔ برائے مہربانی تصدیق کریں ایڈریس وصول کریں اور دوبارہ کوشش کریں۔",
901 "solana_no_associated_token_account_exception": "اس پتے کے لئے کوئی وابستہ ٹوکن اکاؤنٹ نہیں ہے۔",
902 "solana_sign_native_transaction_rent_exception": "لین دین مکمل نہیں کیا جاسکتا۔ ٹرانزیکشن کے بعد کرایہ کے لئے ناکافی SOL چھوڑ دیا گیا ہے۔ برائے مہربانی اپنے سول توازن کو اوپر کریں یا آپ بھیج رہے ہیں اس کی مقدار کو کم کریں۔",
903 "solana_sign_spl_token_transaction_rent_exception": "لین دین مکمل نہیں کیا جاسکتا۔ ٹرانزیکشن کے بعد کرایہ کے لئے ناکافی SOL چھوڑ دیا گیا ہے۔ برائے مہربانی اپنے سول توازن کو اوپر رکھیں۔",
res/values/strings_vi.arb
+1
@@ -892,6 +892,7 @@
892 "single_seed_wallets_group": "Ví hạt đơn",
893 "slidable": "Có thể kéo",
894 "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.",
895 + "solana_invalid_data_message": "Lỗi phân tích cú pháp tài khoản mã thông báo được liên kết cho mã thông báo. Vui lòng xác nhận địa chỉ nhận và thử lại.",
896 "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.",
897 "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.",
898 "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.",
res/values/strings_yo.arb
+1
@@ -896,6 +896,7 @@
896 "single_seed_wallets_group": "Awọn Wowei Awọn gige",
897 "slidable": "Slidable",
898 "solana_create_associated_token_account_exception": "Aṣiṣe ṣiṣẹda akọọlẹ token ti o ni ibatan fun adirẹsi gbigba.",
899 + "solana_invalid_data_message": "Aṣoju aṣiṣe ipari si iroyin token fun àmi. Jowo fire gba aṣẹ ati gbiyanju lẹẹkansi.",
900 "solana_no_associated_token_account_exception": "Ko si iroyin token ti o ni ibatan fun adirẹsi yii.",
901 "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ṣẹ.",
902 "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ẹ.",
res/values/strings_zh.arb
+1
@@ -895,6 +895,7 @@
895 "single_seed_wallets_group": "单个种子钱包",
896 "slidable": "可滑动",
897 "solana_create_associated_token_account_exception": "错误创建有关接收地址的关联令牌帐户。",
898 + "solana_invalid_data_message": "解析令牌的关联令牌帐户时出错。请确认接收地址并重试。",
899 "solana_no_associated_token_account_exception": "该地址没有关联的令牌帐户。",
900 "solana_sign_native_transaction_rent_exception": "交易无法完成。交易后剩下的溶胶不足。请增强您的溶胶余额或减少您发送的SOL的量。",
901 "solana_sign_spl_token_transaction_rent_exception": "交易无法完成。交易后剩下的溶胶不足。请增强您的溶液余额。",
tool/utils/secret_key.dart
+1
@@ -98,6 +98,7 @@ class SecretKey {
98 SecretKey('ankrApiKey', () => ''),
99 SecretKey('nowNodesApiKey', () => ''),
100 SecretKey('chainStackApiKey', () => ''),
101 + SecretKey('moralisApiKey', () => ''),
102 ];
103
104 static final nanoSecrets = [