CW-1238-Solana-Fixes (#2620)
What changed, and why it matters
This commit is a routine bug-fix and performance-improvement patch for Solana (SPL token) handling in Cake Wallet. It batches token balance and transaction fetching, fills in missing token metadata via a new Moralis API, improves error messages, and fixes a wallet-connect compatibility check. There is no direct evidence in the commit of a security vulnerability being fixed; it reads as a stability/usability improvement.
Treat as a normal functional patch. Reviewers may optionally verify that the Moralis API key is scoped only to token metadata, that HTTPS and certificate pinning are used for the new solana-gateway.moralis.io calls, and that the batch concurrency limits do not trigger rate-limiting or race conditions. No urgent security action is indicated by the diff alone.
Security signals we found
New third-party API dependency (Moralis) introduced for Solana token metadata
API key added to CI secrets injection
Error-handling improvements for Solana associated token accounts
WalletConnect compatibility check broadened from EVM-only to wallet-connect-compatible chains
Evidence from the diff
The patch refactors cw_solana to fetch SPL token balances and transactions in batches of five, adds a Moralis API-backed token metadata lookup with a fallback to on-chain Metaplex metadata, introduces new localized error strings for invalid associated token accounts, and changes LinkViewModel to use isWalletConnectCompatibleChain instead of isEVMCompatibleChain. CI workflows are updated to inject the new MORALIS_API_KEY secret and to clean stale reown_flutter artifacts on Linux builds. No cryptographic, authorization, or input-validation flaws are visible in the diff.
Changed components
cw_solana/lib/solana_client.dartcw_solana/lib/solana_wallet.dartlib/view_model/link_view_model.dartlib/view_model/send/send_view_model.dart.github/workflows/automated_integration_test.yml.github/workflows/pr_test_build_android.yml.github/workflows/pr_test_build_linux.ymltool/utils/secret_key.dartInspect captured patch +190 / −88
diff --git a/.github/workflows/automated_integration_test.yml b/.github/workflows/automated_integration_test.yml
index 8ff5c137..95a3197d 100644
--- a/.github/workflows/automated_integration_test.yml
+++ b/.github/workflows/automated_integration_test.yml
@@ -140,6 +140,7 @@ jobs:
echo "const polygonScanApiKey = '${{ secrets.POLYGON_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart
echo "const ankrApiKey = '${{ secrets.ANKR_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart
echo "const chainStackApiKey = '${{ secrets.CHAIN_STACK_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart
+ echo "const moralisApiKey = '${{ secrets.MORALIS_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
echo "const authorization = '${{ secrets.CAKE_PAY_AUTHORIZATION }}';" >> lib/.secrets.g.dart
diff --git a/.github/workflows/pr_test_build_android.yml b/.github/workflows/pr_test_build_android.yml
index 3442111a..05753d8d 100644
--- a/.github/workflows/pr_test_build_android.yml
+++ b/.github/workflows/pr_test_build_android.yml
@@ -134,6 +134,7 @@ jobs:
echo "const polygonScanApiKey = '${{ secrets.POLYGON_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart
echo "const ankrApiKey = '${{ secrets.ANKR_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart
echo "const chainStackApiKey = '${{ secrets.CHAIN_STACK_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart
+ echo "const moralisApiKey = '${{ secrets.MORALIS_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
echo "const authorization = '${{ secrets.CAKE_PAY_AUTHORIZATION }}';" >> lib/.secrets.g.dart
diff --git a/.github/workflows/pr_test_build_linux.yml b/.github/workflows/pr_test_build_linux.yml
index 903f77a7..92eae19d 100644
--- a/.github/workflows/pr_test_build_linux.yml
+++ b/.github/workflows/pr_test_build_linux.yml
@@ -127,6 +127,7 @@ jobs:
echo "const polygonScanApiKey = '${{ secrets.POLYGON_SCAN_API_KEY }}';" >> cw_evm/lib/.secrets.g.dart
echo "const ankrApiKey = '${{ secrets.ANKR_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart
echo "const chainStackApiKey = '${{ secrets.CHAIN_STACK_API_KEY }}';" >> cw_solana/lib/.secrets.g.dart
+ echo "const moralisApiKey = '${{ secrets.MORALIS_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
echo "const authorization = '${{ secrets.CAKE_PAY_AUTHORIZATION }}';" >> lib/.secrets.g.dart
@@ -196,6 +197,9 @@ jobs:
run: |
set -x -e
pushd scripts
+ # cleaning
+ rm -rf reown_flutter
+ rm -f reown_flutter.tar.gz
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
mkdir reown_flutter
pushd reown_flutter
diff --git a/cw_solana/lib/solana_client.dart b/cw_solana/lib/solana_client.dart
index 00578952..4360086d 100644
--- a/cw_solana/lib/solana_client.dart
+++ b/cw_solana/lib/solana_client.dart
@@ -16,7 +16,6 @@ import 'package:cw_core/spl_token.dart';
import 'package:on_chain/solana/solana.dart';
import 'package:on_chain/solana/src/instructions/associated_token_account/constant.dart';
import 'package:on_chain/solana/src/models/pda/pda.dart';
-import 'package:blockchain_utils/blockchain_utils.dart';
import 'package:on_chain/solana/src/rpc/models/models/confirmed_transaction_meta.dart';
import '.secrets.g.dart' as secrets;
@@ -24,6 +23,7 @@ class SolanaWalletClient {
// Minimum amount in SOL to consider a transaction valid (to filter spam)
static const double minValidAmount = 0.00000003;
final httpClient = ProxyWrapper().getHttpClient();
+ late final client = ProxyWrapper().getHttpIOClient();
SolanaRPC? _provider;
bool connect(Node node) {
@@ -90,8 +90,8 @@ class SolanaWalletClient {
}
}
- Future<SolanaBalance?> getSplTokenBalance(
- String mintAddress, String walletAddress, {bool throwOnError = false}) async {
+ Future<SolanaBalance?> getSplTokenBalance(String mintAddress, String walletAddress,
+ {bool throwOnError = false}) async {
try {
// Fetch the token accounts (a token can have multiple accounts for various uses)
final tokenAccounts = await getSPLTokenAccounts(mintAddress, walletAddress);
@@ -134,16 +134,14 @@ class SolanaWalletClient {
),
);
- final fee =
- (feeForMessage?.toDouble() ?? 0.0) / SolanaUtils.lamportsPerSol;
+ final fee = (feeForMessage?.toDouble() ?? 0.0) / SolanaUtils.lamportsPerSol;
return fee;
} catch (_) {
return 0.0;
}
}
- Future<double> getEstimatedFee(
- SolanaPublicKey publicKey, Commitment commitment) async {
+ Future<double> getEstimatedFee(SolanaPublicKey publicKey, Commitment commitment) async {
final message = await _getMessageForNativeTransaction(
publicKey: publicKey,
destinationAddress: publicKey.toAddress().address,
@@ -182,7 +180,6 @@ class SolanaWalletClient {
? ""
: Base58Encoder.encode(txResponse.transaction!.signatures.first);
-
for (final instruction in instructions) {
final programId = message.accountKeys[instruction.programIdIndex];
@@ -443,20 +440,17 @@ class SolanaWalletClient {
}
}));
- final versionedBatchResponses =
- batchResponses.whereType<VersionedTransactionResponse>();
+ final versionedBatchResponses = batchResponses.whereType<VersionedTransactionResponse>();
- final parsedTransactionsFutures =
- versionedBatchResponses.map((tx) => parseTransaction(
- txResponse: tx,
- splTokenSymbol: splTokenSymbol,
- walletAddress: walletAddress?.address ?? address.address,
- ));
+ final parsedTransactionsFutures = versionedBatchResponses.map((tx) => parseTransaction(
+ txResponse: tx,
+ splTokenSymbol: splTokenSymbol,
+ walletAddress: walletAddress?.address ?? address.address,
+ ));
final parsedTransactions = await Future.wait(parsedTransactionsFutures);
- transactions.addAll(
- parsedTransactions.whereType<SolanaTransactionModel>().toList());
+ transactions.addAll(parsedTransactions.whereType<SolanaTransactionModel>().toList());
// Only update UI if we have new valid transactions
if (parsedTransactions.isNotEmpty) {
@@ -525,39 +519,76 @@ class SolanaWalletClient {
}
Future<SPLToken?> fetchSPLTokenInfo(String mintAddress) async {
- final programAddress = MetaplexTokenMetaDataProgramUtils.findMetadataPda(
- mint: SolAddress(mintAddress));
+ try {
+ final uri = Uri.https(
+ 'solana-gateway.moralis.io',
+ '/token/mainnet/$mintAddress/metadata',
+ );
- final token = await _provider!.request(
- SolanaRPCGetMetadataAccount(
- account: programAddress.address,
- commitment: Commitment.confirmed,
- ),
- );
+ final response = await client.get(
+ uri,
+ headers: {
+ "Accept": "application/json",
+ "X-API-Key": secrets.moralisApiKey,
+ },
+ );
- if (token == null) {
- return null;
- }
+ final decodedResponse = jsonDecode(response.body) as Map<String, dynamic>;
- final metadata = token.data;
+ final symbol = (decodedResponse['symbol'] ?? '') as String;
- String? iconPath;
- //TODO(Further explore fetching images)
- // try {
- // iconPath = await _client.getIconImageFromTokenUri(metadata.uri);
- // } catch (_) {}
+ final name = decodedResponse['name'] ?? '';
+ final decimal = decodedResponse['decimals'] ?? '0';
+ final iconPath = decodedResponse['logo'] ?? '';
- String filteredTokenSymbol = metadata.symbol
- .replaceFirst(RegExp('^\\\$'), '')
- .replaceAll('\u0000', '');
+ String filteredTokenSymbol =
+ symbol.replaceFirst(RegExp('^\\\$'), '').replaceAll('\u0000', '');
- return SPLToken.fromMetadata(
- name: metadata.name,
- mint: metadata.symbol,
- symbol: filteredTokenSymbol,
- mintAddress: token.mint.address,
- iconPath: iconPath,
- );
+ return SPLToken(
+ name: name,
+ mint: symbol,
+ symbol: filteredTokenSymbol,
+ mintAddress: mintAddress,
+ iconPath: iconPath,
+ decimal: int.tryParse(decimal) ?? 0,
+ );
+ } catch (e, s) {
+ printV('Error fetching token info: $e \n $s');
+ try {
+ final programAddress =
+ MetaplexTokenMetaDataProgramUtils.findMetadataPda(mint: SolAddress(mintAddress));
+
+ final token = await _provider!.request(
+ SolanaRPCGetMetadataAccount(
+ account: programAddress.address,
+ commitment: Commitment.confirmed,
+ ),
+ );
+
+ if (token == null) return null;
+
+ final metadata = token.data;
+
+ String? iconPath;
+ //TODO(Further explore fetching images)
+ // try {
+ // iconPath = await _client.getIconImageFromTokenUri(metadata.uri);
+ // } catch (_) {}
+
+ String filteredTokenSymbol =
+ metadata.symbol.replaceFirst(RegExp('^\\\$'), '').replaceAll('\u0000', '');
+
+ return SPLToken.fromMetadata(
+ name: metadata.name,
+ mint: metadata.symbol,
+ symbol: filteredTokenSymbol,
+ mintAddress: token.mint.address,
+ iconPath: iconPath,
+ );
+ } catch (_) {}
+
+ return null;
+ }
}
void stop() {}
@@ -665,8 +696,7 @@ class SolanaWalletClient {
return message;
}
- Future<double> _getFeeFromCompiledMessage(
- Message message, Commitment commitment) async {
+ Future<double> _getFeeFromCompiledMessage(Message message, Commitment commitment) async {
final base64Message = base64Encode(message.serialize());
final fee = await getFeeForMessage(base64Message, commitment);
@@ -805,8 +835,7 @@ class SolanaWalletClient {
required SolAddress mintAddress,
required bool shouldCreateATA,
}) async {
- final associatedTokenAccount =
- AssociatedTokenAccountProgramUtils.associatedTokenAccount(
+ final associatedTokenAccount = AssociatedTokenAccountProgramUtils.associatedTokenAccount(
mint: mintAddress,
owner: ownerAddress,
);
@@ -877,8 +906,7 @@ class SolanaWalletClient {
final amount = (inputAmount * math.pow(10, tokenDecimals)).toInt();
ProgramDerivedAddress? associatedSenderAccount;
try {
- associatedSenderAccount =
- AssociatedTokenAccountProgramUtils.associatedTokenAccount(
+ associatedSenderAccount = AssociatedTokenAccountProgramUtils.associatedTokenAccount(
mint: mintAddress,
owner: ownerPrivateKey.publicKey().toAddress(),
);
diff --git a/cw_solana/lib/solana_wallet.dart b/cw_solana/lib/solana_wallet.dart
index 245f1e72..49af6dec 100644
--- a/cw_solana/lib/solana_wallet.dart
+++ b/cw_solana/lib/solana_wallet.dart
@@ -315,27 +315,36 @@ abstract class SolanaWalletBase
/// Fetches the SPL Tokens transactions linked to the token account Public Key
Future<void> _updateSPLTokenTransactions() async {
- // List<SolanaTransactionModel> splTokenTransactions = [];
-
- // Make a copy of keys to avoid concurrent modification
- var tokenKeys = List<CryptoCurrency>.from(balance.keys);
-
- for (var token in tokenKeys) {
- if (token is SPLToken) {
- final tokenTxs = await _client.getSPLTokenTransfers(
- mintAddress: token.mintAddress,
- splTokenSymbol: token.symbol,
- splTokenDecimal: token.decimal,
- privateKey: _solanaPrivateKey,
- onUpdate: updateTransactions,
- );
-
- // splTokenTransactions.addAll(tokenTxs);
- await _addTransactionsToTransactionHistory(tokenTxs);
+ final tokens = balance.keys.whereType<SPLToken>().toList(growable: false);
+ if (tokens.isEmpty) return;
+
+ const int batchSize = 5;
+
+ for (var i = 0; i < tokens.length; i += batchSize) {
+ final batch = tokens.sublist(
+ i,
+ i + batchSize > tokens.length ? tokens.length : i + batchSize,
+ );
+ final results = await Future.wait(
+ batch.map((token) async {
+ try {
+ return await _client.getSPLTokenTransfers(
+ mintAddress: token.mintAddress,
+ splTokenSymbol: token.symbol,
+ splTokenDecimal: token.decimal,
+ privateKey: _solanaPrivateKey,
+ onUpdate: updateTransactions,
+ );
+ } catch (_) {
+ return <SolanaTransactionModel>[];
+ }
+ }),
+ );
+
+ for (final list in results) {
+ await _addTransactionsToTransactionHistory(list);
}
}
-
- // await _addTransactionsToTransactionHistory(splTokenTransactions);
}
Future<void> _addTransactionsToTransactionHistory(
@@ -477,18 +486,37 @@ abstract class SolanaWalletBase
}
Future<void> _fetchSPLTokensBalances() async {
- for (var token in splTokensBox.values) {
- if (token.enabled) {
+ // Remove disabled tokens first to keep state clean
+ for (var token in splTokensBox.values.where((t) => !t.enabled)) {
+ balance.remove(token);
+ }
+
+ final enabledTokens = splTokensBox.values.where((t) => t.enabled).toList(growable: false);
+ if (enabledTokens.isEmpty) return;
+
+ const int batchSize = 5;
+
+ for (var i = 0; i < enabledTokens.length; i += batchSize) {
+ final batch = enabledTokens.sublist(
+ i,
+ i + batchSize > enabledTokens.length ? enabledTokens.length : i + batchSize,
+ );
+
+ final results = await Future.wait(batch.map((token) async {
try {
- final tokenBalance = await _client.getSplTokenBalance(token.mintAddress, solanaAddress) ??
- balance[token] ??
- SolanaBalance(0.0);
- balance[token] = tokenBalance;
+ final fetched = await _client.getSplTokenBalance(token.mintAddress, solanaAddress);
+ return MapEntry(token, fetched);
} catch (e) {
printV('Error fetching spl token (${token.symbol}) balance ${e.toString()}');
+ return MapEntry<SPLToken, SolanaBalance?>(token, null);
}
- } else {
- balance.remove(token);
+ }));
+
+ for (final entry in results) {
+ final token = entry.key;
+ final fetchedBalance = entry.value;
+ final currentBalance = balance[token] ?? SolanaBalance(0.0);
+ balance[token] = fetchedBalance ?? currentBalance;
}
}
}
@@ -501,11 +529,11 @@ abstract class SolanaWalletBase
try {
// Check native balance
await _client.getBalance(solanaAddress, throwOnError: true);
-
+
// Check USDC token balance
const usdcMintAddress = "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v";
await _client.getSplTokenBalance(usdcMintAddress, solanaAddress, throwOnError: true);
-
+
return true;
} catch (e) {
return false;
@@ -520,9 +548,11 @@ abstract class SolanaWalletBase
for (var token in initialSPLTokens) {
if (!splTokensBox.containsKey(token.mintAddress)) {
splTokensBox.put(token.mintAddress, token);
- } else { // update existing token
+ } else {
+ // update existing token
final existingToken = splTokensBox.get(token.mintAddress);
- splTokensBox.put(token.mintAddress, SPLToken.copyWith(token, enabled: existingToken!.enabled));
+ splTokensBox.put(
+ token.mintAddress, SPLToken.copyWith(token, enabled: existingToken!.enabled));
}
}
}
diff --git a/lib/view_model/link_view_model.dart b/lib/view_model/link_view_model.dart
index 1a89943d..fdffb982 100644
--- a/lib/view_model/link_view_model.dart
+++ b/lib/view_model/link_view_model.dart
@@ -28,7 +28,7 @@ class LinkViewModel {
String? getRouteToGo() {
if (isWalletConnectLink) {
- if (!isEVMCompatibleChain(appStore.wallet!.type)) {
+ if (!isWalletConnectCompatibleChain(appStore.wallet!.type)) {
_errorToast(S.current.switchToEVMCompatibleWallet);
return null;
}
diff --git a/lib/view_model/send/send_view_model.dart b/lib/view_model/send/send_view_model.dart
index 5a1f44ca..1b446e02 100644
--- a/lib/view_model/send/send_view_model.dart
+++ b/lib/view_model/send/send_view_model.dart
@@ -1022,7 +1022,7 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
}
if (error is CreateAssociatedTokenAccountException) {
- return "${S.current.solana_create_associated_token_account_exception} ${S.current.added_message_for_ata_error}\n\n${error.errorMessage}";
+ return "${S.current.solana_create_associated_token_account_exception} ${S.current.added_message_for_ata_error}";
}
if (error is SignSPLTokenTransactionRentException) {
@@ -1033,6 +1033,10 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
return S.current.solana_no_associated_token_account_exception;
}
+ if (errorMessage.contains('found no record of a prior credit')) {
+ return S.current.insufficient_funds_for_tx;
+ }
+
if (errorMessage.contains('insufficient funds for rent') &&
errorMessage.contains('Transaction simulation failed') &&
errorMessage.contains('account_index')) {
@@ -1044,6 +1048,10 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
}
}
+ if (errorMessage.contains('invalid account data')) {
+ return S.current.solana_invalid_data_message;
+ }
+
return errorMessage;
}
if (walletType == WalletType.ethereum ||
diff --git a/res/values/strings_ar.arb b/res/values/strings_ar.arb
index e0d6b6da..66867ef9 100644
--- a/res/values/strings_ar.arb
+++ b/res/values/strings_ar.arb
@@ -895,6 +895,7 @@
"single_seed_wallets_group": "محافظ بذرة واحدة",
"slidable": "قابل للانزلاق",
"solana_create_associated_token_account_exception": "خطأ في إنشاء حساب رمز المرتبط بعنوان المستلم.",
+ "solana_invalid_data_message": "حدث خطأ أثناء تحليل حساب الرمز المميز المرتبط بالرمز المميز. يرجى تأكيد عنوان الاستلام والمحاولة مرة أخرى.",
"solana_no_associated_token_account_exception": "لا يوجد حساب مميز مرتبط بهذا العنوان.",
"solana_sign_native_transaction_rent_exception": "لا يمكن إكمال المعاملة. غادر SOL غير كاف للإيجار بعد المعاملة. يرجى أن تصل إلى رصيد SOL أو تقليل كمية SOL التي ترسلها.",
"solana_sign_spl_token_transaction_rent_exception": "لا يمكن إكمال المعاملة. غادر SOL غير كاف للإيجار بعد المعاملة. يرجى أن تصل إلى توازن سولك.",
diff --git a/res/values/strings_bg.arb b/res/values/strings_bg.arb
index 482a2406..e5af0b22 100644
--- a/res/values/strings_bg.arb
+++ b/res/values/strings_bg.arb
@@ -895,6 +895,7 @@
"single_seed_wallets_group": "Портфейли с единични семена",
"slidable": "Плъзгащ се",
"solana_create_associated_token_account_exception": "Грешка Създаване на свързана сметка за жетони за адреса на получател.",
+ "solana_invalid_data_message": "Грешка при синтактичния анализ на свързания токен акаунт за токен. Моля, потвърдете адреса за получаване и опитайте отново.",
"solana_no_associated_token_account_exception": "Няма свързана сметка за този адрес.",
"solana_sign_native_transaction_rent_exception": "Транзакцията не може да бъде завършена. Недостатъчен сол оставен под наем след транзакция. Любезно допълнете баланса си на SOL или намалете количеството SOL, което изпращате.",
"solana_sign_spl_token_transaction_rent_exception": "Транзакцията не може да бъде завършена. Недостатъчен сол оставен под наем след транзакция. Любезно допълнете баланса си на SOL.",
diff --git a/res/values/strings_cs.arb b/res/values/strings_cs.arb
index 79331c22..96c8b972 100644
--- a/res/values/strings_cs.arb
+++ b/res/values/strings_cs.arb
@@ -895,6 +895,7 @@
"single_seed_wallets_group": "Jednorázové peněženky",
"slidable": "Posuvné",
"solana_create_associated_token_account_exception": "Vytvoření chyby přidruženého účtu tokenů pro adresu příjmu.",
+ "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.",
"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.",
diff --git a/res/values/strings_de.arb b/res/values/strings_de.arb
index 49b4e259..cd7efdb9 100644
--- a/res/values/strings_de.arb
+++ b/res/values/strings_de.arb
@@ -896,6 +896,7 @@
"single_seed_wallets_group": "Einzelne Wallets",
"slidable": "Verschiebbar",
"solana_create_associated_token_account_exception": "Fehler beim Erstellen des zugehörigen Token-Kontos für die Empfängeradresse.",
+ "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.",
"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. 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.",
"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",
diff --git a/res/values/strings_en.arb b/res/values/strings_en.arb
index c2769ead..74be3be6 100644
--- a/res/values/strings_en.arb
+++ b/res/values/strings_en.arb
@@ -896,6 +896,7 @@
"single_seed_wallets_group": "Single Seed Wallets",
"slidable": "Slidable",
"solana_create_associated_token_account_exception": "Error creating associated token account for receipient address.",
+ "solana_invalid_data_message": "Error parsing associated token account for token. Kindly confirm receive address and try again.",
"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.",
@@ -1155,4 +1156,4 @@
"youCanGoBackToYourDapp": "You can go back to your dApp now",
"your": "Your",
"yy": "YY"
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_es.arb b/res/values/strings_es.arb
index f4b62918..0b16b19c 100644
--- a/res/values/strings_es.arb
+++ b/res/values/strings_es.arb
@@ -896,6 +896,7 @@
"single_seed_wallets_group": "Carteras de semilla única",
"slidable": "Deslizable",
"solana_create_associated_token_account_exception": "Error al crear la cuenta de token asociada para la dirección del destinatario.",
+ "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.",
"solana_no_associated_token_account_exception": "No hay una cuenta de token asociada a esta dirección.",
"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.",
"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 @@
"youCanGoBackToYourDapp": "Ahora puedes volver a tu dApp",
"your": "Tu",
"yy": "YY"
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_fr.arb b/res/values/strings_fr.arb
index 42d64b3a..ff653795 100644
--- a/res/values/strings_fr.arb
+++ b/res/values/strings_fr.arb
@@ -895,6 +895,7 @@
"single_seed_wallets_group": "Portefeuilles de mots-clés (seed) simples",
"slidable": "Glissable",
"solana_create_associated_token_account_exception": "Création d'erreur Création de jetons associés pour l'adresse détenue.",
+ "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.",
"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": "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.",
"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.",
diff --git a/res/values/strings_gn.arb b/res/values/strings_gn.arb
index a8efa1d8..583ce01f 100644
--- a/res/values/strings_gn.arb
+++ b/res/values/strings_gn.arb
@@ -688,6 +688,7 @@
"silent_payments_scanning": "Reescanea hepyme’ẽ kirirĩme",
"silent_payments_settings": "Ñemohenda hepyme’ẽ kirirĩme rehegua",
"slidable": "Ikatúva osyry",
+ "solana_invalid_data_message": "Error Parsing Asociado Cuenta de Token para Token. Amablemente emoañete recibir dirección ha eñeha'ã jey.",
"sort_by": "Ñemohenda pe",
"spend_key_private": "Papapy (ñemigua)",
"spend_key_public": "Papapy (ojeikuaáva)",
@@ -899,4 +900,4 @@
"you_will_get": "Oñemoambue haguã",
"you_will_send": "Oñemoambue pe",
"yy": "Ha"
-}
+}
\ No newline at end of file
diff --git a/res/values/strings_ha.arb b/res/values/strings_ha.arb
index ad20900c..d6366aa2 100644
--- a/res/values/strings_ha.arb
+++ b/res/values/strings_ha.arb
@@ -897,6 +897,7 @@
"single_seed_wallets_group": "Guaro",
"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_invalid_data_message": "Kuskuren hade da asusun ajiyar banki don alama. Da fatan za a tabbatar da adireshin da sake gwadawa.",
"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.",
diff --git a/res/values/strings_hi.arb b/res/values/strings_hi.arb
index 967b2fe7..fdecedd6 100644
--- a/res/values/strings_hi.arb
+++ b/res/values/strings_hi.arb
@@ -611,8 +611,8 @@
"payjoin_unavailable_sheet_title": "Payjoin अनुपलब्ध क्यों है?",
"payment_id": "भुगतान ID: ",
"payment_made_easy": "भुगतान आसान किया गया",
- "Payment_was_received": "आपका भुगतान प्राप्त हो गया था।",
"payment_was_received": "आपका भुगतान प्राप्त हुआ था।",
+ "Payment_was_received": "आपका भुगतान प्राप्त हो गया था।",
"payments": "भुगतान",
"pending": " (अपूर्ण)",
"percentageOf": "${amount} का",
@@ -897,6 +897,7 @@
"single_seed_wallets_group": "एकल बीज बटुए",
"slidable": "फिसलने लायक",
"solana_create_associated_token_account_exception": "रसीद पते के लिए संबद्ध टोकन खाता बनाने में त्रुटि।",
+ "solana_invalid_data_message": "टोकन के लिए संबद्ध टोकन खाते को पार्स करने में त्रुटि। कृपया प्राप्त पते की पुष्टि करें और पुनः प्रयास करें।",
"solana_no_associated_token_account_exception": "इस पते के लिए कोई जुड़ा हुआ टोकन खाता नहीं है।",
"solana_sign_native_transaction_rent_exception": "लेन -देन पूरा नहीं किया जा सकता है। अपर्याप्त सोल लेनदेन के बाद किराए के लिए छोड़ दिया। कृपया अपने सोल बैलेंस को टॉप करें या आपके द्वारा भेजे जा रहे सोल की मात्रा को कम करें।",
"solana_sign_spl_token_transaction_rent_exception": "लेन -देन पूरा नहीं किया जा सकता है। अपर्याप्त सोल लेनदेन के बाद किराए के लिए छोड़ दिया। कृपया अपने सोल बैलेंस को ऊपर रखें।",
diff --git a/res/values/strings_hr.arb b/res/values/strings_hr.arb
index 70a6c2db..fe3e387f 100644
--- a/res/values/strings_hr.arb
+++ b/res/values/strings_hr.arb
@@ -895,6 +895,7 @@
"single_seed_wallets_group": "Jednostruki novčanici",
"slidable": "Klizna",
"solana_create_associated_token_account_exception": "Pogreška u stvaranju povezanog token računa za adresu primanja.",
+ "solana_invalid_data_message": "Pogreška pri raščlanjivanju povezanog računa tokena za token. Molimo potvrdite adresu primanja i pokušajte ponovo.",
"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.",
diff --git a/res/values/strings_hy.arb b/res/values/strings_hy.arb
index 13726243..630efeea 100644
--- a/res/values/strings_hy.arb
+++ b/res/values/strings_hy.arb
@@ -893,6 +893,7 @@
"single_seed_wallets_group": "Մեկ սերմերի դրամապանակներ",
"slidable": "Սահելի",
"solana_create_associated_token_account_exception": "Recesient Advent- ի համար հարակից նշանների հաշիվ ստեղծելու սխալ:",
+ "solana_invalid_data_message": "Չհաջողվեց վերլուծել համապատասխան նշանային հաշիվը նշանի համար: Խնդրում ենք հաստատել ստացման հասցեն և նորից փորձել:",
"solana_no_associated_token_account_exception": "Այս հասցեի համար կապված նշանների հաշիվ չկա:",
"solana_sign_native_transaction_rent_exception": "Գործարքը հնարավոր չէ լրացնել: Անբավարար սոլը գործարքից հետո վարձով է մնացել: Սիրով վերացրեք ձեր SOL հավասարակշռությունը կամ նվազեցրեք ձեր ուղարկած սոլի քանակը:",
"solana_sign_spl_token_transaction_rent_exception": "Գործարքը հնարավոր չէ լրացնել: Անբավարար սոլը գործարքից հետո վարձով է մնացել: Սիրով վերացրեք ձեր SOL հավասարակշռությունը:",
diff --git a/res/values/strings_id.arb b/res/values/strings_id.arb
index 0fd485ab..a9f4ad92 100644
--- a/res/values/strings_id.arb
+++ b/res/values/strings_id.arb
@@ -898,6 +898,7 @@
"single_seed_wallets_group": "Dompet biji tunggal",
"slidable": "Dapat digeser",
"solana_create_associated_token_account_exception": "Kesalahan Membuat Akun Token Terkait untuk Alamat Penerima.",
+ "solana_invalid_data_message": "Terjadi kesalahan saat mengurai akun token terkait untuk token. Mohon konfirmasi alamat penerimaan dan coba lagi.",
"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.",
diff --git a/res/values/strings_it.arb b/res/values/strings_it.arb
index 5880b7ee..55ae9a10 100644
--- a/res/values/strings_it.arb
+++ b/res/values/strings_it.arb
@@ -896,6 +896,7 @@
"single_seed_wallets_group": "Portafogli singoli",
"slidable": "Scorrevole",
"solana_create_associated_token_account_exception": "Errore nella creazione di un account token associato per l'indirizzo destinatario.",
+ "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.",
"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 insufficienti per l'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 insufficienti per l'affitto dopo la transazione. Si prega di ricaricare il tuo saldo SOL.",
diff --git a/res/values/strings_ja.arb b/res/values/strings_ja.arb
index 9fa6303d..108f229c 100644
--- a/res/values/strings_ja.arb
+++ b/res/values/strings_ja.arb
@@ -896,6 +896,7 @@
"single_seed_wallets_group": "シングルシードウォレット",
"slidable": "スライド可能",
"solana_create_associated_token_account_exception": "関連するトークンの作成エラー受信アドレスのアカウント。",
+ "solana_invalid_data_message": "トークンに関連付けられたトークン アカウントの解析中にエラーが発生しました。受信アドレスを確認して、もう一度お試しください。",
"solana_no_associated_token_account_exception": "このアドレスに関連付けられたトークンアカウントはありません。",
"solana_sign_native_transaction_rent_exception": "トランザクションは完了できません。取引後にレンタルのために残された不十分なソル。ソルバランスを補充するか、送信するソルの量を減らしてください。",
"solana_sign_spl_token_transaction_rent_exception": "トランザクションは完了できません。取引後にレンタルのために残された不十分なソル。ソルバランスを補充してください。",
diff --git a/res/values/strings_ko.arb b/res/values/strings_ko.arb
index a0445aad..0a87c2c4 100644
--- a/res/values/strings_ko.arb
+++ b/res/values/strings_ko.arb
@@ -896,6 +896,7 @@
"single_seed_wallets_group": "단일 시드 지갑",
"slidable": "슬라이드 가능",
"solana_create_associated_token_account_exception": "수신자 주소에 대한 연관 토큰 계정 생성 오류.",
+ "solana_invalid_data_message": "토큰에 연결된 토큰 계정을 구문 분석하는 중에 오류가 발생했습니다. 수신 주소를 확인하신 후 다시 시도해 주세요.",
"solana_no_associated_token_account_exception": "이 주소에 대한 연관 토큰 계정이 없습니다.",
"solana_sign_native_transaction_rent_exception": "트랜잭션을 완료할 수 없습니다. 트랜잭션 후 렌트에 필요한 SOL이 부족합니다. SOL 잔액을 충전하거나 보내는 SOL 금액을 줄이세요.",
"solana_sign_spl_token_transaction_rent_exception": "트랜잭션을 완료할 수 없습니다. 트랜잭션 후 렌트에 필요한 SOL이 부족합니다. SOL 잔액을 충전하세요.",
diff --git a/res/values/strings_my.arb b/res/values/strings_my.arb
index 6f98ae80..54fef16c 100644
--- a/res/values/strings_my.arb
+++ b/res/values/strings_my.arb
@@ -895,6 +895,7 @@
"single_seed_wallets_group": "တစ်ခုတည်းမျိုးစေ့ပိုက်ဆံအိတ်",
"slidable": "လျှောချနိုင်သည်။",
"solana_create_associated_token_account_exception": "Encipient Token အကောင့်ကိုလက်ခံသည့်လိပ်စာအတွက်အကောင့်များဖန်တီးခြင်းအတွက်အမှားအယွင်းများဖန်တီးခြင်း။",
+ "solana_invalid_data_message": "Token အတွက် Associated Token အကောင့်ကိုခွဲခြမ်းစိတ်ဖြာခြင်းအမှား။ ကြင်နာစွာလိပ်စာလက်ခံရရှိပြီးထပ်ကြိုးစားပါ။",
"solana_no_associated_token_account_exception": "ဒီလိပ်စာအတွက်မပေါင်းသင်းတဲ့လက်ခဏာသက်သေအကောင့်မရှိဘူး။",
"solana_sign_native_transaction_rent_exception": "ငွေပေးငွေယူကိုမပြီးစီးနိုင်ပါ။ ငွေပေးငွေယူပြီးနောက်ငှားရန် Sol မလုံလောက်ပါ။ ကြင်နာစွာသင်၏ SOR ချိန်ခွင်လျှာကိုငွေဖြည့်ပါသို့မဟုတ်သင်ပို့နေသည့်ပမာဏကိုလျှော့ချပါ။",
"solana_sign_spl_token_transaction_rent_exception": "ငွေပေးငွေယူကိုမပြီးစီးနိုင်ပါ။ ငွေပေးငွေယူပြီးနောက်ငှားရန် Sol မလုံလောက်ပါ။ ကြင်နာစွာသင်၏ s ကိုချိန်ခွင်လျှာကိုတက်ပါ။",
diff --git a/res/values/strings_nl.arb b/res/values/strings_nl.arb
index 4777ba9d..2f64bfde 100644
--- a/res/values/strings_nl.arb
+++ b/res/values/strings_nl.arb
@@ -895,6 +895,7 @@
"single_seed_wallets_group": "Enkele zaadportefeuilles",
"slidable": "Verschuifbaar",
"solana_create_associated_token_account_exception": "Fout bij het maken van een geassocieerd tokenaccount voor ontvangingsadres.",
+ "solana_invalid_data_message": "Fout bij het parseren van gekoppeld tokenaccount voor token. Bevestig het ontvangstadres en probeer het opnieuw.",
"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.",
diff --git a/res/values/strings_pl.arb b/res/values/strings_pl.arb
index 6b0246a5..e9cfe081 100644
--- a/res/values/strings_pl.arb
+++ b/res/values/strings_pl.arb
@@ -895,6 +895,7 @@
"single_seed_wallets_group": "Portfele z pojedynczym seedem",
"slidable": "Przesuwalne",
"solana_create_associated_token_account_exception": "Błąd tworzenia powiązanego konta tokena dla adresu odbiorcy.",
+ "solana_invalid_data_message": "Błąd podczas analizowania powiązanego konta tokenu dla tokena. Prosimy o potwierdzenie adresu odbioru i spróbuj ponownie.",
"solana_no_associated_token_account_exception": "Nie ma powiązanego konta tokenowego dla tego adresu.",
"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.",
"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.",
diff --git a/res/values/strings_pt.arb b/res/values/strings_pt.arb
index 334c3325..b47c65cf 100644
--- a/res/values/strings_pt.arb
+++ b/res/values/strings_pt.arb
@@ -897,6 +897,7 @@
"single_seed_wallets_group": "Carteiras de sementes únicas",
"slidable": "Deslizável",
"solana_create_associated_token_account_exception": "Erro a criação de um token associado Conta do endereço de recebimento.",
+ "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.",
"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.",
diff --git a/res/values/strings_ru.arb b/res/values/strings_ru.arb
index 5e382570..a6871939 100644
--- a/res/values/strings_ru.arb
+++ b/res/values/strings_ru.arb
@@ -896,6 +896,7 @@
"single_seed_wallets_group": "Одиночные кошельки",
"slidable": "Скользящий",
"solana_create_associated_token_account_exception": "Ошибка создания ассоциированной учетной записи для адреса для адреса.",
+ "solana_invalid_data_message": "Ошибка анализа связанной учетной записи токена. Пожалуйста, подтвердите адрес получения и повторите попытку.",
"solana_no_associated_token_account_exception": "Для этого адреса нет связанной учетной записи токена.",
"solana_sign_native_transaction_rent_exception": "Сделка не может быть завершена. Недостаточный соль ушел в аренду после транзакции. Пожалуйста, поместите свой баланс Sol или уменьшите количество Sol, которое вы отправляете.",
"solana_sign_spl_token_transaction_rent_exception": "Сделка не может быть завершена. Недостаточный соль ушел в аренду после транзакции. Пожалуйста, пополните свой баланс Sol.",
diff --git a/res/values/strings_th.arb b/res/values/strings_th.arb
index 4c353932..268f30c7 100644
--- a/res/values/strings_th.arb
+++ b/res/values/strings_th.arb
@@ -895,6 +895,7 @@
"single_seed_wallets_group": "กระเป๋าเงินเดียว",
"slidable": "เลื่อนได้",
"solana_create_associated_token_account_exception": "ข้อผิดพลาดในการสร้างบัญชีโทเค็นที่เกี่ยวข้องสำหรับที่อยู่รับ",
+ "solana_invalid_data_message": "เกิดข้อผิดพลาดในการแยกวิเคราะห์บัญชีโทเค็นที่เกี่ยวข้องสำหรับโทเค็น กรุณายืนยันที่อยู่ที่ได้รับแล้วลองอีกครั้ง",
"solana_no_associated_token_account_exception": "ไม่มีบัญชีโทเค็นที่เกี่ยวข้องสำหรับที่อยู่นี้",
"solana_sign_native_transaction_rent_exception": "การทำธุรกรรมไม่สามารถเสร็จสิ้นได้ SOL ไม่เพียงพอเหลือให้เช่าหลังการทำธุรกรรม กรุณาเติมยอดคงเหลือโซลของคุณหรือลดจำนวนโซลที่คุณกำลังส่ง",
"solana_sign_spl_token_transaction_rent_exception": "การทำธุรกรรมไม่สามารถเสร็จสิ้นได้ SOL ไม่เพียงพอเหลือให้เช่าหลังการทำธุรกรรม กรุณาเติมยอดสมดุลโซลของคุณ",
diff --git a/res/values/strings_tl.arb b/res/values/strings_tl.arb
index 9719ae9c..b5c6df98 100644
--- a/res/values/strings_tl.arb
+++ b/res/values/strings_tl.arb
@@ -895,6 +895,7 @@
"single_seed_wallets_group": "Solong mga pitaka ng binhi",
"slidable": "Slidable",
"solana_create_associated_token_account_exception": "Error sa paglikha ng nauugnay na token account para sa resibo address.",
+ "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.",
"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.",
diff --git a/res/values/strings_tr.arb b/res/values/strings_tr.arb
index 9b10fecc..a00bb770 100644
--- a/res/values/strings_tr.arb
+++ b/res/values/strings_tr.arb
@@ -895,6 +895,7 @@
"single_seed_wallets_group": "Tek tohum cüzdanları",
"slidable": "kaydırılabilir",
"solana_create_associated_token_account_exception": "ALIPITIENT ADRESİ İÇİN BAŞLANGIÇ HESABI oluşturma Hata.",
+ "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.",
"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.",
diff --git a/res/values/strings_uk.arb b/res/values/strings_uk.arb
index 42c4dfb4..8c6cd57b 100644
--- a/res/values/strings_uk.arb
+++ b/res/values/strings_uk.arb
@@ -896,6 +896,7 @@
"single_seed_wallets_group": "Поодинокі насінні гаманці",
"slidable": "Розсувний",
"solana_create_associated_token_account_exception": "Помилка створення пов’язаного облікового запису Token для адреси приймання.",
+ "solana_invalid_data_message": "Помилка аналізу пов’язаного облікового запису маркера для маркера. Будь ласка, підтвердьте адресу отримання та повторіть спробу.",
"solana_no_associated_token_account_exception": "Для цієї адреси немає пов’язаного облікового запису маркера.",
"solana_sign_native_transaction_rent_exception": "Транзакція не може бути завершена. Недостатня SOL залишила оренду після транзакції. Будь ласка, поповніть свій баланс SOL або зменшіть кількість SOL, який ви надсилаєте.",
"solana_sign_spl_token_transaction_rent_exception": "Транзакція не може бути завершена. Недостатня SOL залишила оренду після транзакції. Будь ласка, наповніть свій баланс SOL.",
diff --git a/res/values/strings_ur.arb b/res/values/strings_ur.arb
index 94189af3..b0e1be26 100644
--- a/res/values/strings_ur.arb
+++ b/res/values/strings_ur.arb
@@ -897,6 +897,7 @@
"single_seed_wallets_group": "سنگل بیج کے بٹوے",
"slidable": "سلائیڈ ایبل",
"solana_create_associated_token_account_exception": "وصول کنندہ ایڈریس کے لئے وابستہ ٹوکن اکاؤنٹ بنانے میں غلطی۔",
+ "solana_invalid_data_message": "ٹوکن سے وابستہ ٹوکن سے وابستہ غلطی کی تجزیہ۔ برائے مہربانی تصدیق کریں ایڈریس وصول کریں اور دوبارہ کوشش کریں۔",
"solana_no_associated_token_account_exception": "اس پتے کے لئے کوئی وابستہ ٹوکن اکاؤنٹ نہیں ہے۔",
"solana_sign_native_transaction_rent_exception": "لین دین مکمل نہیں کیا جاسکتا۔ ٹرانزیکشن کے بعد کرایہ کے لئے ناکافی SOL چھوڑ دیا گیا ہے۔ برائے مہربانی اپنے سول توازن کو اوپر کریں یا آپ بھیج رہے ہیں اس کی مقدار کو کم کریں۔",
"solana_sign_spl_token_transaction_rent_exception": "لین دین مکمل نہیں کیا جاسکتا۔ ٹرانزیکشن کے بعد کرایہ کے لئے ناکافی SOL چھوڑ دیا گیا ہے۔ برائے مہربانی اپنے سول توازن کو اوپر رکھیں۔",
diff --git a/res/values/strings_vi.arb b/res/values/strings_vi.arb
index 08665778..234c42dc 100644
--- a/res/values/strings_vi.arb
+++ b/res/values/strings_vi.arb
@@ -892,6 +892,7 @@
"single_seed_wallets_group": "Ví hạt đơn",
"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_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.",
"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.",
diff --git a/res/values/strings_yo.arb b/res/values/strings_yo.arb
index ae90c358..223609be 100644
--- a/res/values/strings_yo.arb
+++ b/res/values/strings_yo.arb
@@ -896,6 +896,7 @@
"single_seed_wallets_group": "Awọn Wowei Awọn gige",
"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_invalid_data_message": "Aṣoju aṣiṣe ipari si iroyin token fun àmi. Jowo fire gba aṣẹ ati gbiyanju lẹẹkansi.",
"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ẹ.",
diff --git a/res/values/strings_zh.arb b/res/values/strings_zh.arb
index 824f9949..a642c48a 100644
--- a/res/values/strings_zh.arb
+++ b/res/values/strings_zh.arb
@@ -895,6 +895,7 @@
"single_seed_wallets_group": "单个种子钱包",
"slidable": "可滑动",
"solana_create_associated_token_account_exception": "错误创建有关接收地址的关联令牌帐户。",
+ "solana_invalid_data_message": "解析令牌的关联令牌帐户时出错。请确认接收地址并重试。",
"solana_no_associated_token_account_exception": "该地址没有关联的令牌帐户。",
"solana_sign_native_transaction_rent_exception": "交易无法完成。交易后剩下的溶胶不足。请增强您的溶胶余额或减少您发送的SOL的量。",
"solana_sign_spl_token_transaction_rent_exception": "交易无法完成。交易后剩下的溶胶不足。请增强您的溶液余额。",
diff --git a/tool/utils/secret_key.dart b/tool/utils/secret_key.dart
index c02c5917..61ccea60 100644
--- a/tool/utils/secret_key.dart
+++ b/tool/utils/secret_key.dart
@@ -98,6 +98,7 @@ class SecretKey {
SecretKey('ankrApiKey', () => ''),
SecretKey('nowNodesApiKey', () => ''),
SecretKey('chainStackApiKey', () => ''),
+ SecretKey('moralisApiKey', () => ''),
];
static final nanoSecrets = [
Why this scored 24/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.