Refactor WalletConnect UI components and enhance transaction approval and signing flow (#3233)
* Refactor WalletConnect UI components and enhance transaction approval and signing flow * Refactor WalletConnect UI components and enhance transaction approval and signing flow * Remove unused ui components * Enhance pairing details page and remove unused ui components * adjust buttons on details page * Add warning banner for scam dApps on connection requests * General cleanup * Parse and display estimated network fee for WalletConnect approval requests * Revamp WalletConnect pair listing view * Remove unused action buttons and walletkit methods * update svg and sync with dev
David Adegoke committed
Jun 1, 2026 at 16:27 UTC
e13d997622e1a662741296fcae3dde80ae21cfb0
67 files changed
+2122
-1324
lib/entities/new_ui_entities/list_item/list_item_regular_row.dart
+5
-1
@@ -16,7 +16,9 @@ class ListItemRegularRow extends ListItem {
16
this.truncateTrailingText = false,
17
this.foregroundColor,
18
this.trailingIconSize,
19
- this.copyableText
19
+ this.copyableText,
20
+ this.leadingIconErrorWidget,
21
+ this.leadingIconSize,
22
});
23
24
final String? subtitle;
@@ -31,4 +33,6 @@ class ListItemRegularRow extends ListItem {
33
final bool truncateTrailingText;
34
final Color? foregroundColor;
35
final double? trailingIconSize;
36
+ final Widget? leadingIconErrorWidget;
37
+ final double? leadingIconSize;
38
}
lib/src/screens/wallet_connect/services/bottom_sheet_service.dart
-4
@@ -29,7 +29,6 @@ class BottomSheetServiceImpl implements BottomSheetService {
29
int closeAfter = 0,
30
bool isModalDismissible = false,
31
}) async {
32
- // Create the bottom sheet queue item
32
final completer = Completer<dynamic>();
33
final queueItem = BottomSheetQueueItemModel(
34
widget: widget,
@@ -38,15 +37,12 @@ class BottomSheetServiceImpl implements BottomSheetService {
37
isModalDismissible: isModalDismissible,
38
);
39
41
- // If the current sheet it null, set it to the queue item
40
if (currentSheet.value == null) {
41
currentSheet.value = queueItem;
42
} else {
45
- // Otherwise, add it to the queue
43
queue.add(queueItem);
44
}
45
49
- // Return the future
46
return await completer.future;
47
}
48
lib/src/screens/wallet_connect/services/chain_service/eth/evm_chain_service.dart
+71
-17
@@ -1,6 +1,10 @@
1
import 'dart:convert';
2
3
+import 'package:cake_wallet/di.dart';
4
+import 'package:cake_wallet/entities/calculate_fiat_amount.dart';
5
import 'package:cake_wallet/generated/i18n.dart';
6
+import 'package:cake_wallet/store/dashboard/fiat_conversion_store.dart';
7
+import 'package:cw_core/crypto_currency.dart';
8
import 'package:cw_core/utils/proxy_wrapper.dart';
9
import 'package:eth_sig_util/eth_sig_util.dart';
10
import 'package:eth_sig_util/util/utils.dart';
@@ -106,7 +110,6 @@ class EvmChainServiceImpl {
110
111
if (isApproved) {
112
try {
109
- // Load the private key
113
final keys = wcKeyService.getKeysForChain(appStore.wallet!);
114
final credentials = EthPrivateKey.fromHex(keys[0].privateKey);
115
@@ -155,7 +158,6 @@ class EvmChainServiceImpl {
158
159
if (isApproved) {
160
try {
158
- // Load the private key
161
final keys = wcKeyService.getKeysForChain(appStore.wallet!);
162
final credentials = EthPrivateKey.fromHex(keys[0].privateKey);
163
@@ -297,7 +299,6 @@ class EvmChainServiceImpl {
299
300
if (transaction is Transaction) {
301
try {
300
- // Load the private key
302
final keys = wcKeyService.getKeysForChain(appStore.wallet!);
303
final credentials = EthPrivateKey.fromHex(keys[0].privateKey);
304
@@ -309,7 +310,6 @@ class EvmChainServiceImpl {
310
chainId: int.parse(chainId),
311
);
312
312
- // Sign the transaction
313
final signedTx = bytesToHex(signature, include0x: true);
314
response = response.copyWith(result: signedTx);
315
} on RPCError catch (e) {
@@ -349,7 +349,6 @@ class EvmChainServiceImpl {
349
);
350
if (transaction is Transaction) {
351
try {
352
- // Load the private key
352
final keys = wcKeyService.getKeysForChain(appStore.wallet!);
353
final credentials = EthPrivateKey.fromHex(keys[0].privateKey);
354
final chainId = getChainId().split(':').last;
@@ -440,30 +439,26 @@ class EvmChainServiceImpl {
439
440
transaction = await _applyWCBufferedFees(transaction);
441
443
- final gweiGasPrice =
444
- (transaction.gasPrice?.getInWei ?? transaction.maxFeePerGas?.getInWei ?? BigInt.zero) /
445
- BigInt.from(1000000000);
442
+ final nativeCurrency = evm?.getChainInfoByChainId(reference.chainId ?? 1)?.currency;
443
+ final nativeSymbol = nativeCurrency?.title ?? 'ETH';
444
445
final amount = (transaction.value?.getInWei ?? BigInt.zero) / BigInt.from(1e18);
446
449
- final txMessageText = '${S.current.value}: ${amount.toStringAsFixed(9)} ETH\n'
447
+ final txMessageText = '${S.current.value}: ${amount.toStringAsFixed(9)} $nativeSymbol\n'
448
'${S.current.from}: ${transaction.from?.hex}\n'
449
'${S.current.to}: ${transaction.to?.hex}';
450
451
+ final feeRows = _buildFeeExtraModels(transaction, nativeCurrency, nativeSymbol);
452
+
453
if (await MethodsUtils.requestApproval(
454
txMessageText,
455
title: title,
456
method: method,
457
chainId: chainId,
458
- address: address,
458
+ address: address ?? transaction.from?.hex ?? '',
459
transportType: transportType,
460
verifyContext: verifyContext,
461
- extraModels: [
462
- WCConnectionModel(
463
- title: S.current.gas_price,
464
- elements: ['${gweiGasPrice.toStringAsFixed(2)} GWEI'],
465
- ),
466
- ],
461
+ extraModels: feeRows,
462
)) {
463
return transaction;
464
}
@@ -471,6 +466,66 @@ class EvmChainServiceImpl {
466
return JsonRpcError(code: 5002, message: S.current.user_rejected_method);
467
}
468
469
+ List<WCConnectionModel> _buildFeeExtraModels(
470
+ Transaction transaction,
471
+ CryptoCurrency? nativeCurrency,
472
+ String nativeSymbol,
473
+ ) {
474
+ final gasLimit = transaction.maxGas;
475
+ if (gasLimit == null || gasLimit <= 0) return const [];
476
+
477
+ final gasLimitBig = BigInt.from(gasLimit);
478
+ final isEip1559 = transaction.isEIP1559;
479
+ final perGasWei =
480
+ isEip1559 ? transaction.maxFeePerGas?.getInWei : transaction.gasPrice?.getInWei;
481
+ if (perGasWei == null || perGasWei <= BigInt.zero) return const [];
482
+
483
+ final feeWei = gasLimitBig * perGasWei;
484
+ final feeNative = feeWei.toDouble() / 1e18;
485
+
486
+ final label = isEip1559 ? S.current.wc_max_network_fee : S.current.wc_network_fee;
487
+
488
+ return [
489
+ WCConnectionModel(
490
+ title: label,
491
+ elements: [_formatFeeLine(feeNative, nativeSymbol, nativeCurrency)],
492
+ ),
493
+ ];
494
+ }
495
+
496
+ String _formatFeeLine(
497
+ double feeNative,
498
+ String nativeSymbol,
499
+ CryptoCurrency? nativeCurrency,
500
+ ) {
501
+ final cryptoPart = '${_formatNativeAmount(feeNative)} $nativeSymbol';
502
+
503
+ if (nativeCurrency == null) return cryptoPart;
504
+
505
+ try {
506
+ final fiatStore = getIt.get<FiatConversionStore>();
507
+ final price = fiatStore.prices[nativeCurrency];
508
+ if (price == null || price <= 0) return cryptoPart;
509
+
510
+ final fiatSymbol = appStore.settingsStore.fiatCurrency.title;
511
+ final fiatValue = calculateFiatAmount(
512
+ price: price,
513
+ cryptoAmount: feeNative.toString(),
514
+ );
515
+ if (fiatValue.isEmpty || fiatValue == '0.00') return cryptoPart;
516
+
517
+ return '$cryptoPart (~ $fiatValue $fiatSymbol)';
518
+ } catch (_) {
519
+ return cryptoPart;
520
+ }
521
+ }
522
+
523
+ String _formatNativeAmount(double value) {
524
+ if (value == 0) return '0';
525
+ if (value >= 0.0001) return value.toStringAsFixed(6);
526
+ return value.toStringAsExponential(4);
527
+ }
528
+
529
Future<Transaction> _ensureWCTransactionHasGasLimit(Transaction transaction) async {
530
final hasGasLimit = transaction.maxGas != null && transaction.maxGas! > 0;
531
if (hasGasLimit) return transaction;
@@ -637,7 +692,6 @@ $messageDetails''';
692
if (value == null) continue;
693
694
if (types.containsKey(fieldType)) {
640
- // Handle nested types
695
final nestedFields = types[fieldType] as List<dynamic>;
696
if (fieldType == 'Person') {
697
// Special formatting for Person type
lib/src/screens/wallet_connect/services/chain_service/solana/solana_chain_service.dart
-1
@@ -80,7 +80,6 @@ class SolanaChainService {
80
error: JsonRpcError(code: error.code, message: error.message),
81
);
82
}
83
- //
83
} catch (e) {
84
debugPrint('solanaSignMessage error $e');
85
final error = Errors.getSdkError(Errors.MALFORMED_REQUEST_PARAMS);
lib/src/screens/wallet_connect/services/key_service/wallet_connect_key_service.dart
-5
@@ -6,12 +6,7 @@ import 'package:cw_core/wallet_base.dart';
6
import 'package:cw_core/wallet_type.dart';
7
8
abstract class WalletConnectKeyService {
9
- /// Returns a list of all the keys.
9
List<ChainKeyModel> getKeys(WalletBase wallet);
11
-
12
- /// Returns a list of all the keys for a given chain id.
13
- /// If the chain is not found, returns an empty list.
14
- /// - [chain]: The chain to get the keys for.
10
List<ChainKeyModel> getKeysForChain(WalletBase wallet);
11
}
12
lib/src/screens/wallet_connect/services/walletkit_service.dart
+29
-52
@@ -20,10 +20,9 @@ import 'package:cake_wallet/src/screens/wallet_connect/services/key_service/chai
20
import 'package:cake_wallet/src/screens/wallet_connect/services/key_service/wallet_connect_key_service.dart';
21
import 'package:cake_wallet/src/screens/wallet_connect/utils/eth_utils.dart';
22
import 'package:cake_wallet/src/screens/wallet_connect/utils/method_utils.dart';
23
-import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_connection_request_widget.dart';
23
import 'package:cake_wallet/src/screens/wallet_connect/widgets/bottom_sheet/bottom_sheet_message_display_widget.dart';
25
-import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_request_widget.dart';
26
-import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_session_auth_request_widget.dart';
24
+import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_connection_request_sheet.dart';
25
+import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_signing_request_sheet.dart';
26
import 'package:cake_wallet/store/app_store.dart';
27
28
import 'bottom_sheet_service.dart';
@@ -56,8 +55,6 @@ abstract class WalletKitServiceBase with Store {
55
bool isInitialized;
56
57
/// The list of requests from the dapp
59
- /// Potential types include, but aren't limited to:
60
- /// [SessionProposalEvent], [SessionAuthRequest]
58
@observable
59
ObservableList<PairingInfo> pairings;
60
@@ -69,7 +66,6 @@ abstract class WalletKitServiceBase with Store {
66
67
@action
68
void create() {
72
- // Create the walletkit client
69
_walletKit = ReownWalletKit(
70
core: ReownCore(
71
projectId: secrets.walletConnectProjectId,
@@ -85,7 +81,6 @@ abstract class WalletKitServiceBase with Store {
81
82
_walletKit.core.addLogListener(_logListener);
83
88
- // Setup our listeners
84
log('Created instance of walletKit');
85
86
_walletKit.core.pairing.onPairingInvalid.subscribe(_onPairingInvalid);
@@ -288,16 +283,12 @@ abstract class WalletKitServiceBase with Store {
283
if (args != null) {
284
final proposer = args.params.proposer;
285
final result = (await _bottomSheetHandler.queueBottomSheet(
291
- widget: WCRequestWidget(
286
+ widget: WCConnectionRequestSheet(
287
+ proposalData: args.params,
288
+ requester: proposer,
289
verifyContext: args.verifyContext,
293
- child: WCConnectionRequestWidget(
294
- proposalData: args.params,
295
- verifyContext: args.verifyContext,
296
- requester: proposer,
297
- walletKeyService: walletKeyService,
298
- walletKit: walletKit,
299
- appStore: appStore,
300
- ),
290
+ walletKeyService: walletKeyService,
291
+ appStore: appStore,
292
),
293
)) ??
294
WCBottomSheetResult.reject;
@@ -400,10 +391,8 @@ abstract class WalletKitServiceBase with Store {
391
debugPrint('_onPairingCreate $args');
392
393
if (args != null && args.topic != null && args.topic!.isNotEmpty) {
403
- // Save the pairing topic when pairing is created
394
savePairingTopicToLocalStorage(args.topic!);
395
406
- // Refresh pairings to show the new pairing in the list
396
_refreshPairings();
397
}
398
}
@@ -440,16 +429,28 @@ abstract class WalletKitServiceBase with Store {
429
formattedMessages.add({iss: message});
430
}
431
432
+ final requesterMetadata = args.requester.metadata;
433
+ final requesterIcon = requesterMetadata.icons.isNotEmpty
434
+ ? requesterMetadata.icons.first
435
+ : null;
436
+ final chainKeysForAuth = walletKeyService.getKeysForChain(appStore.wallet!);
437
+ final addressForAuth =
438
+ chainKeysForAuth.isNotEmpty ? chainKeysForAuth.first.publicKey : '';
439
+ final combinedMessageBody =
440
+ formattedMessages.map((m) => m.values.first as String).join('\n\n');
441
+
442
final WCBottomSheetResult result = (await _bottomSheetHandler.queueBottomSheet(
444
- widget: WCSessionAuthRequestWidget(
445
- child: WCConnectionRequestWidget(
446
- sessionAuthPayload: newAuthPayload,
447
- verifyContext: args.verifyContext,
448
- requester: args.requester,
449
- walletKeyService: walletKeyService,
450
- walletKit: _walletKit,
451
- appStore: appStore,
452
- ),
443
+ widget: WCSigningRequestSheet(
444
+ title: S.current.wc_signing_request_title,
445
+ swipeLabel: S.current.wc_swipe_to_sign,
446
+ dappName: requesterMetadata.name,
447
+ dappIconUrl: requesterIcon,
448
+ dappSubtitle: requesterMetadata.url,
449
+ message: combinedMessageBody,
450
+ walletName: appStore.wallet?.name ?? '',
451
+ address: addressForAuth,
452
+ verifyContext: args.verifyContext,
453
+ signAllCount: formattedMessages.length,
454
),
455
) as WCBottomSheetResult?) ??
456
WCBottomSheetResult.reject;
@@ -458,10 +459,8 @@ abstract class WalletKitServiceBase with Store {
459
final chainKeys = walletKeyService.getKeysForChain(appStore.wallet!);
460
final privateKey = '0x${chainKeys.first.privateKey}';
461
final credentials = EthPrivateKey.fromHex(privateKey);
461
- //
462
final messageToSign = formattedMessages.length;
463
final count = (result == WCBottomSheetResult.one) ? 1 : messageToSign;
464
- //
464
final List<Cacao> cacaos = [];
465
for (var i = 0; i < count; i++) {
466
final iss = formattedMessages[i].keys.first;
@@ -572,19 +571,6 @@ abstract class WalletKitServiceBase with Store {
571
_refreshPairings();
572
}
573
575
- @action
576
- Future<void> updateSession({
577
- required String topic,
578
- required Map<String, Namespace> namespaces,
579
- }) async {
580
- await walletKit.updateSession(topic: topic, namespaces: namespaces);
581
- }
582
-
583
- @action
584
- Future<void> extendSession({required String topic}) async {
585
- await walletKit.extendSession(topic: topic);
586
- }
587
-
574
@action
575
Future<void> pairWithUri(Uri uri) async {
576
try {
@@ -633,7 +619,7 @@ abstract class WalletKitServiceBase with Store {
619
620
@action
621
List<SessionData> getSessionsForPairingInfo(PairingInfo pairing) {
636
- return sessions.where((element) => element.pairingTopic == pairing.topic).toList();
622
+ return sessions.where((element) => element.pairingTopic == pairing.topic).toList();
623
}
624
625
String getKeyForStoringTopicsForWallet() {
@@ -664,18 +650,14 @@ abstract class WalletKitServiceBase with Store {
650
}
651
652
List<String> getPairingTopicsForWallet(String key) {
667
- // Get the JSON-encoded string from shared preferences
653
final jsonString = sharedPreferences.getString(key);
654
670
- // If the string is null, return an empty list
655
if (jsonString == null) {
656
return [];
657
}
658
675
- // Decode the JSON string to a list of strings
659
final List<dynamic> jsonList = jsonDecode(jsonString) as List<dynamic>;
660
678
- // Cast each item to a string
661
return jsonList.map((item) => item as String).toList();
662
}
663
@@ -691,12 +673,10 @@ abstract class WalletKitServiceBase with Store {
673
}
674
675
Future<void> savePairingTopicToLocalStorage(String pairingTopic) async {
694
- // Get key specific to the current wallet
676
final key = getKeyForStoringTopicsForWallet();
677
678
if (key.isEmpty) return;
679
699
- // Get all pairing topics attached to this key
680
final pairingTopicsForWallet = getPairingTopicsForWallet(key);
681
682
bool isPairingTopicAlreadySaved = pairingTopicsForWallet.contains(pairingTopic);
@@ -704,13 +684,10 @@ abstract class WalletKitServiceBase with Store {
684
'Is Pairing Topic Saved: $isPairingTopicAlreadySaved, Key: $key, Topic: $pairingTopic');
685
686
if (!isPairingTopicAlreadySaved) {
707
- // Update the list with the most recent pairing topic
687
pairingTopicsForWallet.add(pairingTopic);
688
710
- // Convert the list of updated pairing topics to a JSON-encoded string
689
final jsonString = jsonEncode(pairingTopicsForWallet);
690
713
- // Save the encoded string to shared preferences
691
await sharedPreferences.setString(key, jsonString);
692
}
693
}
lib/src/screens/wallet_connect/utils/method_utils.dart
+56
-17
@@ -3,8 +3,9 @@ import 'package:cake_wallet/generated/i18n.dart';
3
import 'package:cake_wallet/src/screens/wallet_connect/services/bottom_sheet_service.dart';
4
import 'package:cake_wallet/src/screens/wallet_connect/models/wc_connection_model.dart';
5
import 'package:cake_wallet/src/screens/wallet_connect/services/walletkit_service.dart';
6
-import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_connection_widget.dart';
7
-import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_request_widget.dart';
6
+import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_message_card.dart';
7
+import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_signing_request_sheet.dart';
8
+import 'package:cake_wallet/store/app_store.dart';
9
import 'package:cake_wallet/themes/core/custom_theme_colors.dart';
10
import 'package:flutter/material.dart';
11
import 'package:reown_walletkit/reown_walletkit.dart';
@@ -12,6 +13,14 @@ import 'package:reown_walletkit/reown_walletkit.dart';
13
class MethodsUtils {
14
static final walletKit = getIt.get<WalletKitService>().walletKit;
15
static final bottomSheetService = getIt.get<BottomSheetService>();
16
+
17
+ static const _transactionMethods = {
18
+ 'eth_sendTransaction',
19
+ 'eth_signTransaction',
20
+ 'solana_signTransaction',
21
+ 'solana_signAllTransactions',
22
+ 'solana_signAndSendTransaction',
23
+ };
24
25
static Future<bool> requestApproval(
26
String text, {
@@ -23,23 +32,53 @@ class MethodsUtils {
32
List<WCConnectionModel> extraModels = const [],
33
VerifyContext? verifyContext,
34
}) async {
35
+ final appStore = getIt.get<AppStore>();
36
+ final pending = walletKit.pendingRequests.getAll();
37
+ final session = pending.isNotEmpty
38
+ ? walletKit.sessions.get(pending.last.topic)
39
+ : null;
40
+ final dAppMetadata = session?.peer.metadata;
41
+
42
+ final isTransaction = method != null && _transactionMethods.contains(method);
43
+ final resolvedTitle = title ??
44
+ (isTransaction
45
+ ? S.current.wc_approve_request_title
46
+ : S.current.wc_signing_request_title);
47
+ final swipeLabel =
48
+ isTransaction ? S.current.wc_swipe_to_approve : S.current.wc_swipe_to_sign;
49
+
50
+ final extraRows = <WCMessageRow>[];
51
+ if (method != null && method.isNotEmpty) {
52
+ extraRows.add(WCMessageRow(label: S.current.method, value: method));
53
+ }
54
+ if (chainId != null && chainId.isNotEmpty) {
55
+ extraRows.add(WCMessageRow(label: S.current.chain_id, value: chainId));
56
+ }
57
+ if (transportType.isNotEmpty) {
58
+ extraRows.add(WCMessageRow(
59
+ label: S.current.transport_type,
60
+ value: transportType.toUpperCase(),
61
+ ));
62
+ }
63
+ for (final model in extraModels) {
64
+ if (model.title == null) continue;
65
+ final value = model.elements?.join(', ') ?? model.text ?? '';
66
+ extraRows.add(WCMessageRow(label: model.title!, value: value));
67
+ }
68
+
69
final WCBottomSheetResult result = (await bottomSheetService.queueBottomSheet(
27
- widget: WCRequestWidget(
70
+ widget: WCSigningRequestSheet(
71
+ title: resolvedTitle,
72
+ swipeLabel: swipeLabel,
73
+ dappName: dAppMetadata?.name ?? '',
74
+ dappIconUrl:
75
+ (dAppMetadata?.icons.isNotEmpty ?? false) ? dAppMetadata!.icons.first : null,
76
+ dappSubtitle: method ?? dAppMetadata?.url ?? '',
77
+ message: text,
78
+ walletName: appStore.wallet?.name ?? '',
79
+ address: address ?? '',
80
verifyContext: verifyContext,
29
- child: WCConnectionWidget(
30
- title: title ?? S.current.approve_request,
31
- info: [
32
- WCConnectionModel(
33
- title: '${S.current.method}: $method\n'
34
- '${S.current.transport_type}: ${transportType.toUpperCase()}\n'
35
- '${S.current.chain_id}: $chainId\n'
36
- '${S.current.address}: $address\n\n'
37
- '${S.current.message}:',
38
- elements: [text],
39
- ),
40
- ...extraModels,
41
- ],
42
- ),
81
+ extraRows: extraRows,
82
),
83
) as WCBottomSheetResult?) ??
84
WCBottomSheetResult.reject;
lib/src/screens/wallet_connect/utils/namespace_model_builder.dart
deleted
-76
@@ -1,76 +0,0 @@
1
-import 'package:cake_wallet/generated/i18n.dart';
2
-import 'package:cake_wallet/src/screens/wallet_connect/models/wc_connection_model.dart';
3
-import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_connection_widget.dart';
4
-import 'package:flutter/material.dart';
5
-import 'package:reown_walletkit/reown_walletkit.dart';
6
-
7
-class ConnectionWidgetBuilder {
8
- static List<WCConnectionWidget> buildFromRequiredNamespaces(
9
- Map<String, Namespace> generatedNamespaces,
10
- ) {
11
- final List<WCConnectionWidget> views = [];
12
- for (final key in generatedNamespaces.keys) {
13
- final namespaces = generatedNamespaces[key]!;
14
- final chains = NamespaceUtils.getChainsFromAccounts(namespaces.accounts);
15
-
16
- final List<WCConnectionModel> models = [];
17
-
18
- // If the chains property is present, add the chain data to the models
19
- models.add(WCConnectionModel(title: S.current.chains, elements: chains));
20
- models.add(WCConnectionModel(title: S.current.methods, elements: namespaces.methods));
21
-
22
- if (namespaces.events.isNotEmpty) {
23
- models.add(WCConnectionModel(title: S.current.events, elements: namespaces.events));
24
- }
25
-
26
- views.add(WCConnectionWidget(title: key, info: models));
27
- }
28
-
29
- return views;
30
- }
31
-
32
- static List<WCConnectionWidget> buildFromNamespaces(
33
- String topic,
34
- Map<String, Namespace> namespaces,
35
- BuildContext context,
36
- ) {
37
- final List<WCConnectionWidget> views = [];
38
- for (final key in namespaces.keys) {
39
- final ns = namespaces[key]!;
40
- final List<WCConnectionModel> models = [];
41
-
42
- // If the chains property is present, add the chain data to the models
43
- models.add(WCConnectionModel(title: S.current.accounts, elements: ns.accounts));
44
- models.add(WCConnectionModel(title: S.current.methods, elements: ns.methods));
45
-
46
- if (ns.events.isNotEmpty) {
47
- models.add(WCConnectionModel(title: S.current.events, elements: ns.events));
48
- }
49
-
50
- views.add(WCConnectionWidget(title: key, info: models));
51
- }
52
-
53
- return views;
54
- }
55
-
56
- static Map<String, Namespace> updateNamespaces(
57
- Map<String, Namespace> currentNamespaces,
58
- String namespace,
59
- List<String> newChains,
60
- ) {
61
- final updatedNamespaces = Map<String, Namespace>.from(currentNamespaces);
62
-
63
- final accounts = currentNamespaces[namespace]!.accounts;
64
- final address = NamespaceUtils.getAccount(accounts.first);
65
- final newAccounts = newChains.map((c) => '$c:$address').toList();
66
-
67
- final newNamespaces = currentNamespaces[namespace]!.copyWith(
68
- chains: NamespaceUtils.getChainsFromAccounts(accounts)..addAll(newChains),
69
- accounts: List<String>.from(accounts)..addAll(newAccounts),
70
- );
71
-
72
- updatedNamespaces[namespace] = newNamespaces;
73
-
74
- return updatedNamespaces;
75
- }
76
-}
lib/src/screens/wallet_connect/utils/wc_permissions_mapper.dart
new
+80
@@ -0,0 +1,80 @@
1
+import 'package:cake_wallet/generated/i18n.dart';
2
+import 'package:reown_walletkit/reown_walletkit.dart';
3
+
4
+class WCPermission {
5
+ const WCPermission({required this.iconUrl, required this.label});
6
+
7
+ final String iconUrl;
8
+ final String label;
9
+}
10
+
11
+class WCPermissionsMapper {
12
+ static const _transactionMethods = {
13
+ 'eth_sendTransaction',
14
+ 'eth_signTransaction',
15
+ 'solana_signTransaction',
16
+ 'solana_signAllTransactions',
17
+ 'solana_signAndSendTransaction',
18
+ };
19
+
20
+ static const _messageSigningMethods = {
21
+ 'personal_sign',
22
+ 'eth_sign',
23
+ 'eth_signTypedData',
24
+ 'eth_signTypedData_v1',
25
+ 'eth_signTypedData_v3',
26
+ 'eth_signTypedData_v4',
27
+ 'solana_signMessage',
28
+ };
29
+
30
+ static const _chainAdminMethods = {
31
+ 'wallet_switchEthereumChain',
32
+ 'wallet_addEthereumChain',
33
+ };
34
+
35
+ static List<WCPermission> fromGeneratedNamespaces(Map<String, Namespace> generatedNamespaces) {
36
+ final methods = <String>{};
37
+ for (final ns in generatedNamespaces.values) {
38
+ methods.addAll(ns.methods);
39
+ }
40
+
41
+ final permissions = <WCPermission>[
42
+ WCPermission(iconUrl: "assets/new-ui/global_view.svg", label: S.current.wc_permission_view_balance),
43
+ ];
44
+
45
+ final wantsTransactionApproval = methods.any(_transactionMethods.contains);
46
+ if (wantsTransactionApproval) {
47
+ permissions.add(WCPermission(
48
+ iconUrl: "assets/new-ui/green_check.svg",
49
+ label: S.current.wc_permission_request_approval,
50
+ ));
51
+ }
52
+
53
+ final wantsMessageSigning = methods.any(_messageSigningMethods.contains);
54
+ if (wantsMessageSigning) {
55
+ permissions.add(WCPermission(
56
+ iconUrl: "assets/new-ui/pencil.svg",
57
+ label: S.current.wc_permission_sign_messages,
58
+ ));
59
+ }
60
+
61
+ final wantsChainAdmin = methods.any(_chainAdminMethods.contains);
62
+ if (wantsChainAdmin) {
63
+ permissions.add(WCPermission(
64
+ iconUrl: "assets/new-ui/exchange_providers.svg",
65
+ label: S.current.wc_permission_switch_chains,
66
+ ));
67
+ }
68
+
69
+ final known = {..._transactionMethods, ..._messageSigningMethods, ..._chainAdminMethods};
70
+ final unknown = methods.where((m) => !known.contains(m)).toList()..sort();
71
+ for (final method in unknown) {
72
+ permissions.add(WCPermission(
73
+ iconUrl: "assets/new-ui/help.svg",
74
+ label: S.current.wc_permission_other(method),
75
+ ));
76
+ }
77
+
78
+ return permissions;
79
+ }
80
+}
lib/src/screens/wallet_connect/wc_connections_listing_view.dart
+157
-149
@@ -1,122 +1,86 @@
1
+import 'package:cake_wallet/entities/new_ui_entities/list_item/list_item_regular_row.dart';
2
+import 'package:cake_wallet/entities/qr_scanner.dart';
3
import 'package:cake_wallet/generated/i18n.dart';
2
-import 'package:cake_wallet/src/screens/base_page.dart';
4
+import 'package:cake_wallet/new-ui/widgets/modern_button.dart';
5
+import 'package:cake_wallet/new-ui/widgets/new_primary_button.dart';
6
import 'package:cake_wallet/src/screens/wallet_connect/services/walletkit_service.dart';
7
import 'package:cake_wallet/src/screens/wallet_connect/widgets/enter_wallet_connect_uri_widget.dart';
8
+import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_hero_card.dart';
9
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
10
+import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
11
+import 'package:cake_wallet/src/widgets/new_list_row/new_list_section.dart';
12
import 'package:cake_wallet/utils/device_info.dart';
13
+import 'package:cake_wallet/utils/permission_handler.dart';
14
+import 'package:cake_wallet/utils/show_pop_up.dart';
15
import 'package:flutter/material.dart';
16
import 'package:flutter_mobx/flutter_mobx.dart';
17
import 'package:permission_handler/permission_handler.dart';
18
import 'package:reown_walletkit/reown_walletkit.dart';
11
-import 'package:cake_wallet/entities/qr_scanner.dart';
12
-import 'package:cake_wallet/src/widgets/primary_button.dart';
13
-import 'package:cake_wallet/utils/show_pop_up.dart';
14
-import 'package:cake_wallet/utils/permission_handler.dart';
15
-import 'package:url_launcher/url_launcher.dart';
19
17
-import 'widgets/wc_pairing_item_widget.dart';
20
import 'wc_pairing_detail_page.dart';
21
22
class WalletConnectConnectionsView extends StatelessWidget {
21
- final WalletKitService walletKitService;
22
-
23
- WalletConnectConnectionsView({required this.walletKitService, Uri? launchUri, Key? key})
24
- : super(key: key) {
23
+ WalletConnectConnectionsView({
24
+ required this.walletKitService,
25
+ Uri? launchUri,
26
+ Key? key,
27
+ }) : super(key: key) {
28
_triggerPairingFromDeeplink(launchUri);
29
}
30
31
+ final WalletKitService walletKitService;
32
+
33
void _triggerPairingFromDeeplink(Uri? launchUri) async {
34
if (launchUri == null) return;
35
31
- if(launchUri.scheme == "wc") {
36
+ if (launchUri.scheme == 'wc') {
37
await walletKitService.pairWithUri(launchUri);
38
return;
39
}
40
36
- final actualLinkList = launchUri.query.split("uri=");
37
-
41
+ final actualLinkList = launchUri.query.split('uri=');
42
if (actualLinkList.length <= 1) return;
43
40
- final query = actualLinkList[1];
41
-
42
- final decoded = Uri.decodeComponent(query).trim();
43
-
44
+ final decoded = Uri.decodeComponent(actualLinkList[1]).trim();
45
final sanitized = decoded.startsWith('@') ? decoded.substring(1) : decoded;
45
-
46
final uriData = Uri.tryParse(sanitized);
47
-
48
- if (uriData == null || (uriData.scheme.isEmpty)) return;
47
+ if (uriData == null || uriData.scheme.isEmpty) return;
48
49
await walletKitService.pairWithUri(uriData);
50
}
51
53
- @override
54
- Widget build(BuildContext context) {
55
- return WCPairingsWidget(walletKitService: walletKitService);
56
- }
57
-}
58
-
59
-class WCPairingsWidget extends BasePage {
60
- WCPairingsWidget({required this.walletKitService, Key? key})
61
- : walletKit = walletKitService.walletKit;
62
-
63
- final ReownWalletKit walletKit;
64
- final WalletKitService walletKitService;
65
-
66
- @override
67
- String get title => S.current.walletConnect;
68
-
69
- Future<void> _onScanQrCode(BuildContext context, ReownWalletKit web3Wallet) async {
70
- final String? uri;
71
-
72
- if (DeviceInfo.instance.isMobile) {
73
- bool isCameraPermissionGranted =
74
- await PermissionHandler.checkPermission(Permission.camera, context);
75
- if (!isCameraPermissionGranted) return;
76
- uri = await presentQRScanner(context);
77
- } else {
78
- uri = await _showEnterWalletConnectURIPopUp(context);
79
- }
52
+ Future<void> _onScanQrCode(BuildContext context) async {
53
+ final isCameraPermissionGranted =
54
+ await PermissionHandler.checkPermission(Permission.camera, context);
55
+ if (!isCameraPermissionGranted) return;
56
57
+ final uri = await presentQRScanner(context);
58
await _handleWalletConnectURI(uri, context);
59
}
60
84
- Future<String?> _showEnterWalletConnectURIPopUp(BuildContext context) async {
85
- final walletConnectURI = await showPopUp<String>(
61
+ Future<void> _onPasteLink(BuildContext context) async {
62
+ final uri = await showPopUp<String>(
63
context: context,
87
- builder: (BuildContext context) {
88
- return EnterWalletConnectURIWrapperWidget();
89
- },
64
+ builder: (BuildContext context) => EnterWalletConnectURIWrapperWidget(),
65
);
91
- return walletConnectURI;
66
+ await _handleWalletConnectURI(uri, context);
67
}
68
94
- Future<void> _handleWalletConnectURI(
95
- String? walletConnectURI,
96
- BuildContext context,
97
- ) async {
69
+ Future<void> _handleWalletConnectURI(String? walletConnectURI, BuildContext context) async {
70
if (walletConnectURI == null) return _invalidUriToast(context, S.current.nullURIError);
71
100
- log('_onFoundUri: $walletConnectURI');
101
- // Accept either a raw WC URI or a full URL containing `uri=` parameter
72
String input = walletConnectURI.trim();
103
-
73
if (input.contains('uri=')) {
74
final parts = input.split('uri=');
106
- if (parts.length > 1) {
107
- input = Uri.decodeComponent(parts.last);
108
- }
75
+ if (parts.length > 1) input = Uri.decodeComponent(parts.last);
76
}
77
+ if (input.startsWith('@')) input = input.substring(1);
78
111
- // Some scanners may prefix with '@', strip it
112
- if (input.startsWith('@')) {
113
- input = input.substring(1);
114
- }
115
- final Uri? uriData = Uri.tryParse(input);
116
- final bool hasValidScheme = uriData != null && uriData.scheme.isNotEmpty;
117
- if (!hasValidScheme) {
79
+ final uriData = Uri.tryParse(input);
80
+ if (uriData == null || uriData.scheme.isEmpty) {
81
return _invalidUriToast(context, S.current.invalid_input);
82
}
83
+
84
await walletKitService.pairWithUri(uriData);
85
}
86
@@ -135,88 +99,132 @@ class WCPairingsWidget extends BasePage {
99
);
100
}
101
102
+ void _openPairingDetails(BuildContext context, PairingInfo pairing) {
103
+ Navigator.of(context).push(
104
+ MaterialPageRoute(
105
+ builder: (_) => WalletConnectPairingDetailsPage(
106
+ pairing: pairing,
107
+ walletKitService: walletKitService,
108
+ ),
109
+ ),
110
+ );
111
+ }
112
+
113
@override
139
- Widget body(BuildContext context) {
140
- return Observer(
141
- builder: (context) {
142
- return Column(
143
- children: [
144
- Padding(
145
- padding: EdgeInsets.symmetric(horizontal: 24),
146
- child: Column(
147
- children: [
148
- SizedBox(height: 24),
149
- Text(
150
- S.current.connectWalletPrompt,
151
- style: Theme.of(context).textTheme.bodyMedium!.copyWith(
152
- fontSize: 16.0,
153
- fontWeight: FontWeight.normal,
154
- color: Theme.of(context).colorScheme.onSurface,
155
- ),
156
- ),
157
- SizedBox(height: 16),
158
- PrimaryButton(
159
- text: S.current.newConnection,
160
- color: Theme.of(context).colorScheme.primary,
161
- textColor: Theme.of(context).colorScheme.onPrimary,
162
- onPressed: () => _onScanQrCode(context, walletKit),
163
- ),
164
- SizedBox(height: 4),
165
- TextButton(
166
- onPressed: () async {
167
- final uri = await _showEnterWalletConnectURIPopUp(context);
168
- await _handleWalletConnectURI(uri, context);
169
- },
170
- child: Text(
171
- 'Click to paste WalletConnect Link',
172
- style: Theme.of(context).textTheme.bodyMedium,
173
- ),
174
- ),
175
- ],
114
+ Widget build(BuildContext context) {
115
+ final theme = Theme.of(context);
116
+ final colors = theme.colorScheme;
117
+ final isMobile = DeviceInfo.instance.isMobile;
118
+
119
+ return Scaffold(
120
+ backgroundColor: colors.surface,
121
+ body: SafeArea(
122
+ child: Padding(
123
+ padding: const EdgeInsets.symmetric(horizontal: 24),
124
+ child: Column(
125
+ crossAxisAlignment: CrossAxisAlignment.stretch,
126
+ children: [
127
+ const SizedBox(height: 8),
128
+ Align(
129
+ alignment: Alignment.centerLeft,
130
+ child: ModernButton(
131
+ size: 40,
132
+ onPressed: () => Navigator.of(context).maybePop(),
133
+ icon: Icon(Icons.arrow_back_ios_new, size: 16),
134
+ iconColor: Theme.of(context).colorScheme.onSurfaceVariant,
135
+ ),
136
),
177
- ),
178
- SizedBox(height: 16),
179
- Expanded(
180
- child: Visibility(
181
- visible: walletKitService.pairings.isEmpty,
182
- child: Center(
183
- child: Text(
184
- S.current.activeConnectionsPrompt,
185
- textAlign: TextAlign.center,
186
- style: Theme.of(context).textTheme.bodyMedium!.copyWith(
187
- fontSize: 16.0,
188
- fontWeight: FontWeight.normal,
189
- color: Theme.of(context).colorScheme.onSurface,
190
- ),
137
+ const SizedBox(height: 16),
138
+ Expanded(
139
+ child: SingleChildScrollView(
140
+ child: Column(
141
+ crossAxisAlignment: CrossAxisAlignment.stretch,
142
+ children: [
143
+ const WCHeroCard(),
144
+ const SizedBox(height: 24),
145
+ Observer(
146
+ builder: (_) {
147
+ if (walletKitService.pairings.isEmpty) {
148
+ return Padding(
149
+ padding: const EdgeInsets.symmetric(vertical: 32),
150
+ child: Center(
151
+ child: Text(
152
+ S.of(context).activeConnectionsPrompt,
153
+ textAlign: TextAlign.center,
154
+ style: theme.textTheme.bodyMedium?.copyWith(
155
+ color: colors.onSurfaceVariant,
156
+ ),
157
+ ),
158
+ ),
159
+ );
160
+ }
161
+
162
+ final items = <ListItemRegularRow>[];
163
+ for (final pairing in walletKitService.pairings) {
164
+ final metadata = pairing.peerMetadata;
165
+ if (metadata == null) continue;
166
+ items.add(
167
+ ListItemRegularRow(
168
+ keyValue: pairing.topic,
169
+ label: metadata.name,
170
+ subtitle: metadata.url,
171
+ iconPath: metadata.icons.isNotEmpty
172
+ ? metadata.icons.first
173
+ : 'assets/new-ui/walletconnect_icon.svg',
174
+ onTap: () => _openPairingDetails(context, pairing),
175
+ leadingIconSize: 36,
176
+ leadingIconErrorWidget: CakeImageWidget(
177
+ imageUrl: 'assets/new-ui/walletconnect_icon.svg',
178
+ width: 36,
179
+ height: 36,
180
+ ),
181
+ ),
182
+ );
183
+ }
184
+
185
+ if (items.isEmpty) {
186
+ return Padding(
187
+ padding: const EdgeInsets.symmetric(vertical: 32),
188
+ child: Center(
189
+ child: Text(
190
+ S.of(context).activeConnectionsPrompt,
191
+ textAlign: TextAlign.center,
192
+ style: theme.textTheme.bodyMedium?.copyWith(
193
+ color: colors.onSurfaceVariant,
194
+ ),
195
+ ),
196
+ ),
197
+ );
198
+ }
199
+
200
+ return NewListSections(sections: {'': items});
201
+ },
202
+ ),
203
+ ],
204
),
205
),
193
- replacement: ListView.builder(
194
- itemCount: walletKitService.pairings.length,
195
- itemBuilder: (BuildContext context, int index) {
196
- final pairing = walletKitService.pairings[index];
197
- return WCPairingItemWidget(
198
- key: ValueKey(pairing.topic),
199
- pairing: pairing,
200
- onTap: () {
201
- Navigator.push(
202
- context,
203
- MaterialPageRoute(
204
- builder: (context) => WalletConnectPairingDetailsPage(
205
- pairing: pairing,
206
- walletKitService: walletKitService,
207
- ),
208
- ),
209
- );
210
- },
211
- );
212
- },
213
- ),
206
),
215
- ),
216
- SizedBox(height: 48),
217
- ],
218
- );
219
- },
207
+ const SizedBox(height: 16),
208
+ NewPrimaryButton(
209
+ onPressed: () => _onPasteLink(context),
210
+ text: S.of(context).wc_paste_link,
211
+ color: colors.surfaceContainerHigh,
212
+ textColor: colors.primary,
213
+ ),
214
+ if (isMobile) ...[
215
+ const SizedBox(height: 12),
216
+ NewPrimaryButton(
217
+ onPressed: () => _onScanQrCode(context),
218
+ text: S.of(context).wc_scan_qr,
219
+ color: colors.primary,
220
+ textColor: colors.onPrimary,
221
+ ),
222
+ ],
223
+ const SizedBox(height: 16),
224
+ ],
225
+ ),
226
+ ),
227
+ ),
228
);
229
}
222
-}
230
+}
\ No newline at end of file
lib/src/screens/wallet_connect/wc_pairing_detail_page.dart
+106
-149
@@ -1,15 +1,18 @@
1
+import 'package:cake_wallet/di.dart';
2
import 'package:cake_wallet/generated/i18n.dart';
3
+import 'package:cake_wallet/new-ui/widgets/new_primary_button.dart';
4
import 'package:cake_wallet/src/screens/base_page.dart';
5
import 'package:cake_wallet/src/screens/wallet_connect/services/walletkit_service.dart';
6
+import 'package:cake_wallet/src/screens/wallet_connect/utils/wc_permissions_mapper.dart';
7
+import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_dapp_card.dart';
8
+import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_permissions_card.dart';
9
+import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_wallet_card.dart';
10
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
5
-import 'package:cake_wallet/src/widgets/primary_button.dart';
11
+import 'package:cake_wallet/store/app_store.dart';
12
import 'package:cake_wallet/utils/show_pop_up.dart';
7
-import 'package:cw_core/utils/proxy_wrapper.dart';
13
import 'package:flutter/material.dart';
14
import 'package:reown_walletkit/reown_walletkit.dart';
15
11
-import 'utils/namespace_model_builder.dart';
12
-
16
class WalletConnectPairingDetailsPage extends StatefulWidget {
17
final PairingInfo pairing;
18
final WalletKitService walletKitService;
@@ -25,180 +28,100 @@ class WalletConnectPairingDetailsPage extends StatefulWidget {
28
}
29
30
class WalletConnectPairingDetailsPageState extends State<WalletConnectPairingDetailsPage> {
28
- List<Widget> sessionWidgets = [];
31
late String expiryDate;
32
+ List<SessionData> sessions = const [];
33
+
34
@override
35
void initState() {
36
super.initState();
37
initDateTime();
38
WidgetsBinding.instance.addPostFrameCallback((_) {
35
- initSessions();
39
+ if (!mounted) return;
40
+ setState(() {
41
+ sessions = widget.walletKitService.getSessionsForPairingInfo(widget.pairing);
42
+ });
43
});
44
}
45
46
void initDateTime() {
40
- DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(widget.pairing.expiry * 1000);
41
- int year = dateTime.year;
42
- int month = dateTime.month;
43
- int day = dateTime.day;
44
-
45
- expiryDate = '$year-${month.toString().padLeft(2, '0')}-${day.toString().padLeft(2, '0')}';
46
- }
47
-
48
- void initSessions() {
49
- List<SessionData> sessions = widget.walletKitService.getSessionsForPairingInfo(widget.pairing);
50
-
51
- for (final SessionData session in sessions) {
52
- List<Widget> namespaceWidget = ConnectionWidgetBuilder.buildFromNamespaces(
53
- session.topic,
54
- session.namespaces,
55
- context,
56
- );
57
- // Loop through and add the namespace widgets, but put 20 pixels between each one
58
- for (int i = 0; i < namespaceWidget.length; i++) {
59
- sessionWidgets.add(namespaceWidget[i]);
60
- if (i != namespaceWidget.length - 1) {
61
- sessionWidgets.add(const SizedBox(height: 20.0));
62
- }
63
- }
64
-
65
- sessionWidgets.add(const SizedBox.square(dimension: 10.0));
66
- sessionWidgets.add(
67
- PrimaryButton(
68
- onPressed: () async {
69
- try {
70
- await widget.walletKitService.extendSession(
71
- topic: session.topic,
72
- );
73
- } catch (e) {
74
- debugPrint('${e.toString()}');
75
- }
76
- },
77
- text: S.current.extend_session,
78
- color: Theme.of(context).colorScheme.primary,
79
- textColor: Theme.of(context).colorScheme.onPrimary,
80
- ),
81
- );
82
- sessionWidgets.add(const SizedBox.square(dimension: 10.0));
83
- sessionWidgets.add(
84
- PrimaryButton(
85
- onPressed: () async {
86
- try {
87
- await widget.walletKitService.updateSession(
88
- topic: session.topic,
89
- namespaces: session.namespaces,
90
- );
91
- } catch (e) {
92
- debugPrint('${e.toString()}');
93
- }
94
- },
95
- text: S.current.update_session,
96
- color: Theme.of(context).colorScheme.primary,
97
- textColor: Theme.of(context).colorScheme.onPrimary,
98
- ),
99
- );
100
- sessionWidgets.add(const SizedBox.square(dimension: 10.0));
101
- sessionWidgets.add(
102
- PrimaryButton(
103
- onPressed: () async {
104
- try {
105
- await widget.walletKitService.disconnectSession(
106
- topic: session.topic,
107
- );
108
- } catch (e) {
109
- debugPrint('${e.toString()}');
110
- }
111
- },
112
- text: S.current.disconnect_session,
113
- color: Theme.of(context).colorScheme.primary,
114
- textColor: Theme.of(context).colorScheme.onPrimary,
115
- ),
116
- );
117
- }
47
+ final dateTime = DateTime.fromMillisecondsSinceEpoch(widget.pairing.expiry * 1000);
48
+ expiryDate = '${dateTime.year}-'
49
+ '${dateTime.month.toString().padLeft(2, '0')}-'
50
+ '${dateTime.day.toString().padLeft(2, '0')}';
51
}
52
53
@override
54
Widget build(BuildContext context) {
55
return WCCDetailsWidget(
123
- widget.pairing,
124
- expiryDate,
125
- sessionWidgets,
126
- widget.walletKitService,
56
+ pairing: widget.pairing,
57
+ expiryDate: expiryDate,
58
+ sessions: sessions,
59
+ walletKitService: widget.walletKitService,
60
);
61
}
62
}
63
64
class WCCDetailsWidget extends BasePage {
132
- WCCDetailsWidget(
133
- this.pairing,
134
- this.expiryDate,
135
- this.sessionWidgets,
136
- this.walletKitService,
137
- );
65
+ WCCDetailsWidget({
66
+ required this.pairing,
67
+ required this.expiryDate,
68
+ required this.sessions,
69
+ required this.walletKitService,
70
+ });
71
72
final PairingInfo pairing;
73
final String expiryDate;
141
- final List<Widget> sessionWidgets;
74
+ final List<SessionData> sessions;
75
final WalletKitService walletKitService;
76
77
@override
78
Widget body(BuildContext context) {
146
- return Scaffold(
147
- body: SingleChildScrollView(
148
- child: Container(
149
- padding: const EdgeInsets.all(8),
150
- child: Column(
151
- mainAxisSize: MainAxisSize.min,
152
- children: [
153
- Flexible(
154
- child: CircleAvatar(
155
- backgroundImage: (pairing.peerMetadata!.icons.isNotEmpty
156
- ? NetworkImage(pairing.peerMetadata!.icons[0])
157
- : AssetImage(
158
- CakeTor.instance!.enabled
159
- ? 'assets/images/tor_logo.svg'
160
- : 'assets/images/app_logo.png')) as ImageProvider<Object>,
161
- ),
162
- ),
163
- const SizedBox(height: 20.0),
164
- Text(
165
- pairing.peerMetadata!.name,
166
- style: Theme.of(context).textTheme.bodyMedium!.copyWith(
167
- fontSize: 16.0,
168
- fontWeight: FontWeight.w500,
169
- color: Theme.of(context).colorScheme.onSurfaceVariant,
170
- ),
171
- ),
172
- const SizedBox(height: 16.0),
173
- Text(
174
- pairing.peerMetadata!.url,
175
- style: Theme.of(context).textTheme.bodyMedium!.copyWith(
176
- color: Theme.of(context).colorScheme.onSurfaceVariant,
177
- ),
178
- ),
179
- const SizedBox(height: 8.0),
180
- Text(
181
- '${S.current.expiresOn}: $expiryDate',
182
- style: Theme.of(context).textTheme.bodyMedium!.copyWith(
183
- color: Theme.of(context).colorScheme.onSurfaceVariant,
184
- ),
185
- ),
186
- const SizedBox(height: 20.0),
187
- Column(
188
- mainAxisAlignment: MainAxisAlignment.start,
189
- crossAxisAlignment: CrossAxisAlignment.center,
190
- children: sessionWidgets,
191
- ),
192
- const SizedBox(height: 20.0),
193
- PrimaryButton(
194
- onPressed: () =>
195
- _onDeleteButtonPressed(context, pairing.peerMetadata!.name, walletKitService),
196
- text: S.current.delete,
197
- color: Theme.of(context).colorScheme.primary,
198
- textColor: Theme.of(context).colorScheme.onPrimary,
79
+ final colors = Theme.of(context).colorScheme;
80
+ final metadata = pairing.peerMetadata;
81
+ if (metadata == null) {
82
+ return const SizedBox.shrink();
83
+ }
84
+
85
+ final iconUrl = metadata.icons.isNotEmpty ? metadata.icons.first : null;
86
+ final walletName = getIt.get<AppStore>().wallet?.name ?? '';
87
+
88
+ return SafeArea(
89
+ child: SingleChildScrollView(
90
+ padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
91
+ child: Column(
92
+ crossAxisAlignment: CrossAxisAlignment.stretch,
93
+ children: [
94
+ WCDappCard(
95
+ name: metadata.name,
96
+ iconUrl: iconUrl,
97
+ subtitle: metadata.url,
98
+ action: WCDappCardAction.connected,
99
+ ),
100
+ const SizedBox(height: 12),
101
+ Text(
102
+ '${S.of(context).expiresOn}: $expiryDate',
103
+ textAlign: TextAlign.center,
104
+ style: Theme.of(context).textTheme.bodySmall!.copyWith(
105
+ color: colors.onSurfaceVariant,
106
+ ),
107
+ ),
108
+ const SizedBox(height: 24),
109
+ for (final session in sessions) ...[
110
+ _SessionSection(
111
+ session: session,
112
+ walletName: walletName,
113
),
114
+ const SizedBox(height: 24),
115
],
201
- ),
116
+ const SizedBox(height: 24),
117
+ NewPrimaryButton(
118
+ onPressed: () => _onDeleteButtonPressed(context, metadata.name, walletKitService),
119
+ text: S.current.delete,
120
+ color: colors.error,
121
+ textColor: colors.onError,
122
+ ),
123
+ const SizedBox(height: 12),
124
+ ],
125
),
126
),
127
);
@@ -240,3 +163,37 @@ class WCCDetailsWidget extends BasePage {
163
}
164
}
165
}
166
+
167
+class _SessionSection extends StatelessWidget {
168
+ const _SessionSection({
169
+ required this.session,
170
+ required this.walletName,
171
+ });
172
+
173
+ final SessionData session;
174
+ final String walletName;
175
+
176
+ String _firstAddress() {
177
+ for (final namespace in session.namespaces.values) {
178
+ if (namespace.accounts.isNotEmpty) {
179
+ return NamespaceUtils.getAccount(namespace.accounts.first);
180
+ }
181
+ }
182
+ return '';
183
+ }
184
+
185
+ @override
186
+ Widget build(BuildContext context) {
187
+ final permissions = WCPermissionsMapper.fromGeneratedNamespaces(session.namespaces);
188
+ final address = _firstAddress();
189
+
190
+ return Column(
191
+ crossAxisAlignment: CrossAxisAlignment.stretch,
192
+ children: [
193
+ WCWalletCard(walletName: walletName, address: address),
194
+ const SizedBox(height: 24),
195
+ WCPermissionsCard(permissions: permissions),
196
+ ],
197
+ );
198
+ }
199
+}
lib/src/screens/wallet_connect/widgets/enter_wallet_connect_uri_widget.dart
+4
-4
@@ -75,15 +75,15 @@ class EnterWalletConnectURIWidget extends BaseAlertDialog {
75
fontWeight: FontWeight.w500,
76
),
77
suffixIcon: Container(
78
- width: 24,
79
- height: 24,
78
+ width: 36,
79
+ height: 36,
80
padding: EdgeInsets.only(top: 0),
81
- child: Semantics(
81
+ child: Semantics(
82
label: S.of(context).paste,
83
child: InkWell(
84
onTap: () => _pasteWalletConnectURI(),
85
child: Container(
86
- padding: EdgeInsets.all(10),
86
+ padding: EdgeInsets.all(8),
87
decoration: BoxDecoration(
88
borderRadius: BorderRadius.all(Radius.circular(6)),
89
),
lib/src/screens/wallet_connect/widgets/wc_connection_item_widget.dart
deleted
-94
@@ -1,94 +0,0 @@
1
-import 'package:cake_wallet/src/screens/wallet_connect/models/wc_connection_model.dart';
2
-import 'package:flutter/material.dart';
3
-
4
-class WCConnectionItemWidget extends StatelessWidget {
5
- const WCConnectionItemWidget({required this.model, Key? key}) : super(key: key);
6
-
7
- final WCConnectionModel model;
8
-
9
- @override
10
- Widget build(BuildContext context) {
11
- return Container(
12
- width: double.infinity,
13
- decoration: BoxDecoration(
14
- color: Theme.of(context).colorScheme.surfaceContainer,
15
- borderRadius: BorderRadius.circular(8),
16
- ),
17
- padding: const EdgeInsets.all(8),
18
- margin: const EdgeInsetsDirectional.only(top: 8),
19
- child: Visibility(
20
- visible: model.elements != null,
21
- child: Column(
22
- crossAxisAlignment: CrossAxisAlignment.start,
23
- children: [
24
- Text(
25
- model.title ?? '',
26
- style: Theme.of(context).textTheme.bodyMedium!.copyWith(
27
- fontWeight: FontWeight.w600,
28
- ),
29
- ),
30
- const SizedBox(height: 8),
31
- if (model.elements != null)
32
- Wrap(
33
- spacing: 4,
34
- runSpacing: 4,
35
- direction: Axis.horizontal,
36
- children: model.elements!
37
- .map((e) => _ModelElementWidget(model: model, modelElement: e))
38
- .toList(),
39
- ),
40
- ],
41
- ),
42
- replacement: _NoModelElementWidget(model: model),
43
- ),
44
- );
45
- }
46
-}
47
-
48
-class _NoModelElementWidget extends StatelessWidget {
49
- const _NoModelElementWidget({required this.model});
50
-
51
- final WCConnectionModel model;
52
-
53
- @override
54
- Widget build(BuildContext context) {
55
- return Text(
56
- model.text!,
57
- style: Theme.of(context).textTheme.bodyMedium!.copyWith(
58
- fontWeight: FontWeight.w600,
59
- ),
60
- );
61
- }
62
-}
63
-
64
-class _ModelElementWidget extends StatelessWidget {
65
- const _ModelElementWidget({
66
- required this.model,
67
- required this.modelElement,
68
- });
69
-
70
- final WCConnectionModel model;
71
- final String modelElement;
72
-
73
- @override
74
- Widget build(BuildContext context) {
75
- return InkWell(
76
- onTap: model.elementActions != null ? model.elementActions![modelElement] : null,
77
- child: Container(
78
- decoration: BoxDecoration(
79
- color: Theme.of(context).colorScheme.surface,
80
- borderRadius: BorderRadius.circular(6),
81
- ),
82
- padding: const EdgeInsets.all(8),
83
- child: Text(
84
- modelElement,
85
- style: Theme.of(context).textTheme.bodyMedium!.copyWith(
86
- fontWeight: FontWeight.w600,
87
- ),
88
- maxLines: 50,
89
- overflow: TextOverflow.ellipsis,
90
- ),
91
- ),
92
- );
93
- }
94
-}
lib/src/screens/wallet_connect/widgets/wc_connection_request_sheet.dart
new
+94
@@ -0,0 +1,94 @@
1
+import 'package:cake_wallet/generated/i18n.dart';
2
+import 'package:cake_wallet/new-ui/widgets/confirm_swiper.dart';
3
+import 'package:cake_wallet/src/screens/wallet_connect/services/bottom_sheet_service.dart';
4
+import 'package:cake_wallet/src/screens/wallet_connect/services/key_service/wallet_connect_key_service.dart';
5
+import 'package:cake_wallet/src/screens/wallet_connect/utils/wc_permissions_mapper.dart';
6
+import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_dapp_card.dart';
7
+import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_permissions_card.dart';
8
+import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_scam_banner.dart';
9
+import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_sheet_header.dart';
10
+import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_wallet_card.dart';
11
+import 'package:cake_wallet/store/app_store.dart';
12
+import 'package:flutter/material.dart';
13
+import 'package:reown_walletkit/reown_walletkit.dart';
14
+
15
+class WCConnectionRequestSheet extends StatelessWidget {
16
+ const WCConnectionRequestSheet({
17
+ super.key,
18
+ required this.proposalData,
19
+ required this.requester,
20
+ required this.walletKeyService,
21
+ required this.appStore,
22
+ this.verifyContext,
23
+ });
24
+
25
+ final ProposalData proposalData;
26
+ final ConnectionMetadata requester;
27
+ final WalletConnectKeyService walletKeyService;
28
+ final AppStore appStore;
29
+ final VerifyContext? verifyContext;
30
+
31
+ String _resolveAddress() {
32
+ final wallet = appStore.wallet;
33
+ if (wallet == null) return '';
34
+ final keys = walletKeyService.getKeysForChain(wallet);
35
+ if (keys.isEmpty) return '';
36
+ return keys.first.publicKey;
37
+ }
38
+
39
+ @override
40
+ Widget build(BuildContext context) {
41
+ final permissions =
42
+ WCPermissionsMapper.fromGeneratedNamespaces(proposalData.generatedNamespaces ?? const {});
43
+
44
+ final metadata = requester.metadata;
45
+ final iconUrl = metadata.icons.isNotEmpty ? metadata.icons.first : null;
46
+ final walletName = appStore.wallet?.name ?? '';
47
+ final address = _resolveAddress();
48
+ final isScam = verifyContext?.validation.scam ?? false;
49
+
50
+ return Column(
51
+ mainAxisSize: MainAxisSize.min,
52
+ children: [
53
+ WCSheetHeader(title: S.of(context).wc_connect_request_title),
54
+ const SizedBox(height: 24),
55
+ Expanded(
56
+ child: SingleChildScrollView(
57
+ child: Column(
58
+ children: [
59
+ WCDappCard(
60
+ name: metadata.name,
61
+ iconUrl: iconUrl,
62
+ subtitle: metadata.url,
63
+ action: WCDappCardAction.connect,
64
+ verifyContext: verifyContext,
65
+ ),
66
+ if (isScam) ...[
67
+ const SizedBox(height: 16),
68
+ const WCScamBanner(),
69
+ ],
70
+ const SizedBox(height: 24),
71
+ WCWalletCard(walletName: walletName, address: address),
72
+ const SizedBox(height: 24),
73
+ WCPermissionsCard(permissions: permissions),
74
+ ],
75
+ ),
76
+ ),
77
+ ),
78
+ const SizedBox(height: 24),
79
+ Padding(
80
+ padding: const EdgeInsets.symmetric(horizontal: 24),
81
+ child: ConfirmSwiper(
82
+ swiperText: S.of(context).wc_swipe_to_approve,
83
+ onConfirmed: () {
84
+ if (Navigator.canPop(context)) {
85
+ Navigator.of(context).pop(WCBottomSheetResult.one);
86
+ }
87
+ },
88
+ ),
89
+ ),
90
+ const SizedBox(height: 16),
91
+ ],
92
+ );
93
+ }
94
+}
lib/src/screens/wallet_connect/widgets/wc_connection_request_widget.dart
deleted
-100
@@ -1,100 +0,0 @@
1
-import 'package:cake_wallet/generated/i18n.dart';
2
-import 'package:cake_wallet/src/screens/wallet_connect/services/key_service/wallet_connect_key_service.dart';
3
-import 'package:cake_wallet/src/screens/wallet_connect/models/wc_connection_model.dart';
4
-import 'package:cake_wallet/src/screens/wallet_connect/utils/namespace_model_builder.dart';
5
-import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_connection_widget.dart';
6
-import 'package:cake_wallet/store/app_store.dart';
7
-import 'package:flutter/material.dart';
8
-import 'package:reown_walletkit/reown_walletkit.dart';
9
-
10
-class WCConnectionRequestWidget extends StatelessWidget {
11
- WCConnectionRequestWidget({
12
- this.sessionAuthPayload,
13
- this.proposalData,
14
- this.requester,
15
- this.verifyContext,
16
- required this.walletKeyService,
17
- required this.walletKit,
18
- required this.appStore,
19
- });
20
-
21
- final SessionAuthPayload? sessionAuthPayload;
22
- final ProposalData? proposalData;
23
- final ConnectionMetadata? requester;
24
- final VerifyContext? verifyContext;
25
- final WalletConnectKeyService walletKeyService;
26
- final AppStore appStore;
27
- final ReownWalletKit walletKit;
28
-
29
- @override
30
- Widget build(BuildContext context) {
31
- if (requester == null) {
32
- return Text(S.current.error.toUpperCase());
33
- }
34
-
35
- return Container(
36
- decoration: BoxDecoration(
37
- borderRadius: BorderRadius.circular(8),
38
- ),
39
- child: Column(
40
- crossAxisAlignment: CrossAxisAlignment.center,
41
- mainAxisSize: MainAxisSize.min,
42
- children: [
43
- const SizedBox(height: 8),
44
- Text(
45
- '${requester!.metadata.name} ${S.current.wouoldLikeToConnect}',
46
- style: Theme.of(context).textTheme.bodyMedium!.copyWith(
47
- fontSize: 18.0,
48
- fontWeight: FontWeight.bold,
49
- ),
50
- textAlign: TextAlign.center,
51
- ),
52
- const SizedBox(height: 8),
53
- (sessionAuthPayload != null)
54
- ? _buildSessionAuthRequestView()
55
- : _buildSessionProposalView(context),
56
- ],
57
- ),
58
- );
59
- }
60
-
61
- Widget _buildSessionAuthRequestView() {
62
- final cacaoPayload = CacaoRequestPayload.fromSessionAuthPayload(
63
- sessionAuthPayload!,
64
- );
65
-
66
- final List<WCConnectionModel> messagesModels = [];
67
- for (var chain in sessionAuthPayload!.chains) {
68
- final chainKeys = walletKeyService.getKeysForChain(appStore.wallet!);
69
- final iss = 'did:pkh:$chain:${chainKeys.first.publicKey}';
70
-
71
- final message = walletKit.formatAuthMessage(
72
- iss: iss,
73
- cacaoPayload: cacaoPayload,
74
- );
75
-
76
- messagesModels.add(
77
- WCConnectionModel(
78
- title: '${S.current.message} ${messagesModels.length + 1}',
79
- elements: [message],
80
- ),
81
- );
82
- }
83
-
84
- return WCConnectionWidget(
85
- title: '${messagesModels.length} ${S.current.messages}',
86
- info: messagesModels,
87
- );
88
- }
89
-
90
- Widget _buildSessionProposalView(BuildContext context) {
91
- // Create the connection models using the required and optional namespaces provided by the proposal data
92
-
93
- final views = ConnectionWidgetBuilder.buildFromRequiredNamespaces(
94
- proposalData!.generatedNamespaces ?? {},
95
- );
96
-
97
- return Column(children: views);
98
- }
99
-}
100
-
lib/src/screens/wallet_connect/widgets/wc_connection_widget.dart
deleted
-45
@@ -1,45 +0,0 @@
1
-import 'package:cake_wallet/src/screens/wallet_connect/models/wc_connection_model.dart';
2
-import 'package:flutter/material.dart';
3
-
4
-import 'wc_connection_item_widget.dart';
5
-
6
-class WCConnectionWidget extends StatelessWidget {
7
- const WCConnectionWidget({required this.title, required this.info, super.key});
8
-
9
- final String title;
10
- final List<WCConnectionModel> info;
11
-
12
- @override
13
- Widget build(BuildContext context) {
14
-
15
- return Container(
16
- decoration: BoxDecoration(
17
- color: Theme.of(context).colorScheme.primary,
18
- borderRadius: BorderRadius.circular(8),
19
- ),
20
- padding: const EdgeInsets.all(8),
21
- child: Column(
22
- crossAxisAlignment: CrossAxisAlignment.start,
23
- children: [
24
- Container(
25
- decoration: BoxDecoration(
26
- color: Theme.of(context).colorScheme.surface,
27
- borderRadius: BorderRadius.circular(8),
28
- ),
29
- padding: EdgeInsets.symmetric(vertical: 8, horizontal: 8),
30
- child: Text(
31
- title,
32
- style: Theme.of(context).textTheme.bodyMedium!.copyWith(
33
- fontSize: 16,
34
- fontWeight: FontWeight.w600,
35
- color: Theme.of(context).colorScheme.onSurface,
36
- ),
37
- ),
38
- ),
39
- const SizedBox(height: 8),
40
- ...info.map((e) => WCConnectionItemWidget(model: e)),
41
- ],
42
- ),
43
- );
44
- }
45
-}
lib/src/screens/wallet_connect/widgets/wc_dapp_card.dart
new
+132
@@ -0,0 +1,132 @@
1
+import 'package:cake_wallet/generated/i18n.dart';
2
+import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
3
+import 'package:cake_wallet/themes/core/custom_theme_colors.dart';
4
+import 'package:flutter/material.dart';
5
+import 'package:reown_walletkit/reown_walletkit.dart';
6
+
7
+enum WCDappCardAction { connect, sign, connected }
8
+
9
+class WCDappCard extends StatelessWidget {
10
+ const WCDappCard({
11
+ super.key,
12
+ required this.name,
13
+ required this.iconUrl,
14
+ required this.subtitle,
15
+ required this.action,
16
+ this.verifyContext,
17
+ });
18
+
19
+ final String name;
20
+ final String? iconUrl;
21
+ final String subtitle;
22
+ final WCDappCardAction action;
23
+ final VerifyContext? verifyContext;
24
+
25
+ String _actionLine(BuildContext context) {
26
+ switch (action) {
27
+ case WCDappCardAction.connect:
28
+ return S.of(context).wc_would_like_to_connect_to(name);
29
+ case WCDappCardAction.sign:
30
+ return S.of(context).wc_would_like_to_sign(name);
31
+ case WCDappCardAction.connected:
32
+ return S.of(context).wc_connected_to(name);
33
+ }
34
+ }
35
+
36
+ @override
37
+ Widget build(BuildContext context) {
38
+ final colors = Theme.of(context).colorScheme;
39
+
40
+ return Container(
41
+ width: double.infinity,
42
+ decoration: BoxDecoration(
43
+ color: colors.surfaceContainer,
44
+ borderRadius: BorderRadius.circular(20),
45
+ ),
46
+ padding: const EdgeInsets.symmetric(vertical: 20, horizontal: 16),
47
+ child: Column(
48
+ crossAxisAlignment: CrossAxisAlignment.center,
49
+ children: [
50
+ SizedBox(
51
+ width: 56,
52
+ height: 56,
53
+ child: CakeImageWidget(
54
+ borderRadius: 16,
55
+ imageUrl: iconUrl,
56
+ fit: BoxFit.cover,
57
+ errorWidget: CakeImageWidget(
58
+ imageUrl: 'assets/new-ui/walletconnect_icon.svg',
59
+ width: 40,
60
+ height: 40,
61
+ ),
62
+ ),
63
+ ),
64
+ const SizedBox(height: 10),
65
+ Text(
66
+ _actionLine(context),
67
+ textAlign: TextAlign.center,
68
+ style: Theme.of(context).textTheme.titleMedium!.copyWith(
69
+ fontWeight: FontWeight.w600,
70
+ color: colors.onSurface,
71
+ ),
72
+ ),
73
+ if (subtitle.trim().isNotEmpty) ...[
74
+ const SizedBox(height: 10),
75
+ Text(
76
+ subtitle,
77
+ textAlign: TextAlign.center,
78
+ style: Theme.of(context).textTheme.bodySmall!.copyWith(
79
+ color: colors.onSurfaceVariant,
80
+ ),
81
+ ),
82
+ ],
83
+ if (_shouldShowBadge()) ...[
84
+ const SizedBox(height: 10),
85
+ _VerifyBadge(verifyContext: verifyContext!),
86
+ ],
87
+ ],
88
+ ),
89
+ );
90
+ }
91
+
92
+ bool _shouldShowBadge() {
93
+ if (verifyContext == null) return false;
94
+ if (verifyContext!.validation.scam) return false;
95
+ return true;
96
+ }
97
+}
98
+
99
+class _VerifyBadge extends StatelessWidget {
100
+ const _VerifyBadge({required this.verifyContext});
101
+
102
+ final VerifyContext verifyContext;
103
+
104
+ @override
105
+ Widget build(BuildContext context) {
106
+ final IconData icon;
107
+ final Color color;
108
+ final String label;
109
+
110
+ if (verifyContext.validation.valid) {
111
+ icon = Icons.check_circle;
112
+ color = CustomThemeColors.syncGreen;
113
+ label = S.of(context).wc_verified;
114
+ } else {
115
+ icon = Icons.warning_amber_rounded;
116
+ color = CustomThemeColors.syncYellow;
117
+ label = S.of(context).wc_not_verified;
118
+ }
119
+
120
+ return Row(
121
+ mainAxisSize: MainAxisSize.min,
122
+ children: [
123
+ Icon(icon, size: 16, color: color),
124
+ const SizedBox(width: 4),
125
+ Text(
126
+ label,
127
+ style: Theme.of(context).textTheme.bodySmall!.copyWith(color: color),
128
+ ),
129
+ ],
130
+ );
131
+ }
132
+}
lib/src/screens/wallet_connect/widgets/wc_hero_card.dart
new
+51
@@ -0,0 +1,51 @@
1
+
2
+import 'package:cake_wallet/generated/i18n.dart';
3
+import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
4
+import 'package:flutter/material.dart';
5
+
6
+class WCHeroCard extends StatelessWidget {
7
+ const WCHeroCard();
8
+
9
+ @override
10
+ Widget build(BuildContext context) {
11
+ final theme = Theme.of(context);
12
+ final colors = theme.colorScheme;
13
+ return Container(
14
+ padding: const EdgeInsets.all(12),
15
+ decoration: BoxDecoration(
16
+ color: colors.surfaceContainerHigh,
17
+ borderRadius: BorderRadius.circular(20),
18
+ ),
19
+ child: Column(
20
+ children: [
21
+ ClipRRect(
22
+ borderRadius: BorderRadius.circular(12),
23
+ child: CakeImageWidget(
24
+ imageUrl: 'assets/new-ui/walletconnect_icon.svg',
25
+ width: 36,
26
+ height: 36,
27
+ fit: BoxFit.cover,
28
+ ),
29
+ ),
30
+ const SizedBox(height: 10),
31
+ Text(
32
+ S.of(context).walletConnect,
33
+ style: theme.textTheme.titleMedium?.copyWith(
34
+ fontWeight: FontWeight.w500,
35
+ letterSpacing: -0.08,
36
+ ),
37
+ ),
38
+ const SizedBox(height: 10),
39
+ Text(
40
+ S.of(context).wc_pairing_list_header_subtitle,
41
+ textAlign: TextAlign.center,
42
+ style: theme.textTheme.bodySmall?.copyWith(
43
+ letterSpacing: -0.06,
44
+ color: colors.onSurfaceVariant,
45
+ ),
46
+ ),
47
+ ],
48
+ ),
49
+ );
50
+ }
51
+}
lib/src/screens/wallet_connect/widgets/wc_message_card.dart
new
+86
@@ -0,0 +1,86 @@
1
+import 'package:cake_wallet/generated/i18n.dart';
2
+import 'package:flutter/material.dart';
3
+
4
+class WCMessageRow {
5
+ const WCMessageRow({required this.label, required this.value});
6
+
7
+ final String label;
8
+ final String value;
9
+}
10
+
11
+class WCMessageCard extends StatelessWidget {
12
+ const WCMessageCard({
13
+ super.key,
14
+ required this.message,
15
+ this.title,
16
+ this.extraRows = const [],
17
+ });
18
+
19
+ final String? title;
20
+ final String message;
21
+ final List<WCMessageRow> extraRows;
22
+
23
+ @override
24
+ Widget build(BuildContext context) {
25
+ final colors = Theme.of(context).colorScheme;
26
+ final resolvedTitle = title ?? S.of(context).wc_message_to_sign;
27
+
28
+ return Container(
29
+ width: double.infinity,
30
+ decoration: BoxDecoration(
31
+ color: colors.surfaceContainer,
32
+ borderRadius: BorderRadius.circular(16),
33
+ ),
34
+ padding: const EdgeInsets.all(16),
35
+ child: Column(
36
+ crossAxisAlignment: CrossAxisAlignment.start,
37
+ children: [
38
+ Text(
39
+ resolvedTitle,
40
+ style: Theme.of(context).textTheme.bodyMedium!.copyWith(
41
+ fontWeight: FontWeight.w600,
42
+ color: colors.onSurface,
43
+ ),
44
+ ),
45
+ if (message.isNotEmpty) ...[
46
+ const SizedBox(height: 8),
47
+ SelectableText(
48
+ message,
49
+ style: Theme.of(context).textTheme.bodySmall!.copyWith(
50
+ color: colors.onSurfaceVariant,
51
+ height: 1.4,
52
+ ),
53
+ ),
54
+ ],
55
+ for (final row in extraRows) ...[
56
+ const SizedBox(height: 12),
57
+ Divider(height: 1, color: colors.outlineVariant),
58
+ const SizedBox(height: 12),
59
+ Row(
60
+ crossAxisAlignment: CrossAxisAlignment.start,
61
+ children: [
62
+ Text(
63
+ row.label,
64
+ style: Theme.of(context).textTheme.bodySmall!.copyWith(
65
+ color: colors.onSurface,
66
+ fontWeight: FontWeight.w500,
67
+ ),
68
+ ),
69
+ const SizedBox(width: 8),
70
+ Expanded(
71
+ child: Text(
72
+ row.value,
73
+ textAlign: TextAlign.end,
74
+ style: Theme.of(context).textTheme.bodySmall!.copyWith(
75
+ color: colors.onSurfaceVariant,
76
+ ),
77
+ ),
78
+ ),
79
+ ],
80
+ ),
81
+ ],
82
+ ],
83
+ ),
84
+ );
85
+ }
86
+}
lib/src/screens/wallet_connect/widgets/wc_pairing_item_widget.dart
deleted
-89
@@ -1,89 +0,0 @@
1
-import 'package:cake_wallet/generated/i18n.dart';
2
-import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
3
-import 'package:flutter/material.dart';
4
-import 'package:reown_walletkit/reown_walletkit.dart';
5
-
6
-class WCPairingItemWidget extends StatelessWidget {
7
- const WCPairingItemWidget({required this.pairing, required this.onTap, super.key});
8
-
9
- final PairingInfo pairing;
10
- final void Function() onTap;
11
-
12
- @override
13
- Widget build(BuildContext context) {
14
- PairingMetadata? metadata = pairing.peerMetadata;
15
-
16
- if (metadata == null) {
17
- return SizedBox.shrink();
18
- }
19
-
20
- DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(pairing.expiry * 1000);
21
- int year = dateTime.year;
22
- int month = dateTime.month;
23
- int day = dateTime.day;
24
-
25
- String expiryDate =
26
- '$year-${month.toString().padLeft(2, '0')}-${day.toString().padLeft(2, '0')}';
27
-
28
- return ListTile(
29
- contentPadding: EdgeInsets.symmetric(horizontal: 16, vertical: 8),
30
- leading: SizedBox(
31
- width: 60,
32
- height: 60,
33
- child: CakeImageWidget(
34
- borderRadius: 8,
35
- width: 60,
36
- height: 60,
37
- imageUrl: metadata.icons.isNotEmpty ? metadata.icons[0] : null,
38
- errorWidget: CircleAvatar(
39
- backgroundImage: AssetImage('assets/images/walletconnect_logo.png'),
40
- ),
41
- ),
42
- ),
43
- title: Text(
44
- metadata.name,
45
- style: Theme.of(context).textTheme.bodyMedium!.copyWith(
46
- fontSize: 16.0,
47
- fontWeight: FontWeight.w700,
48
- color: Theme.of(context).colorScheme.onSurfaceVariant,
49
- ),
50
- ),
51
- subtitle: Column(
52
- crossAxisAlignment: CrossAxisAlignment.start,
53
- children: [
54
- Text(
55
- metadata.url,
56
- style: Theme.of(context).textTheme.bodyMedium!.copyWith(
57
- fontWeight: FontWeight.w700,
58
- color: Theme.of(context).colorScheme.onSurfaceVariant,
59
- ),
60
- ),
61
- Text(
62
- '${S.current.expiresOn}: $expiryDate',
63
- style: Theme.of(context).textTheme.bodyMedium!.copyWith(
64
- fontWeight: FontWeight.w700,
65
- color: Theme.of(context).colorScheme.onSurfaceVariant,
66
- ),
67
- ),
68
- ],
69
- ),
70
- trailing: SizedBox(
71
- width: 44,
72
- height: 40,
73
- child: Container(
74
- padding: EdgeInsets.all(10),
75
- decoration: BoxDecoration(
76
- shape: BoxShape.circle,
77
- color: Theme.of(context).colorScheme.primary,
78
- ),
79
- child: Icon(
80
- Icons.edit,
81
- size: 14,
82
- color: Theme.of(context).colorScheme.onPrimary,
83
- ),
84
- ),
85
- ),
86
- onTap: onTap,
87
- );
88
- }
89
-}
lib/src/screens/wallet_connect/widgets/wc_permissions_card.dart
new
+64
@@ -0,0 +1,64 @@
1
+import 'package:cake_wallet/src/screens/wallet_connect/utils/wc_permissions_mapper.dart';
2
+import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
3
+import 'package:flutter/material.dart';
4
+
5
+class WCPermissionsCard extends StatelessWidget {
6
+ const WCPermissionsCard({super.key, required this.permissions});
7
+
8
+ final List<WCPermission> permissions;
9
+
10
+ @override
11
+ Widget build(BuildContext context) {
12
+ final colors = Theme.of(context).colorScheme;
13
+
14
+ if (permissions.isEmpty) return const SizedBox.shrink();
15
+
16
+ return Container(
17
+ width: double.infinity,
18
+ decoration: BoxDecoration(
19
+ color: colors.surfaceContainer,
20
+ borderRadius: BorderRadius.circular(20),
21
+ ),
22
+ padding: const EdgeInsets.symmetric(horizontal: 16),
23
+ child: Column(
24
+ children: [
25
+ for (int i = 0; i < permissions.length; i++) ...[
26
+ if (i > 0) Divider(height: 1, color: colors.outlineVariant, indent: 44),
27
+ _PermissionRow(permission: permissions[i]),
28
+ ],
29
+ ],
30
+ ),
31
+ );
32
+ }
33
+}
34
+
35
+class _PermissionRow extends StatelessWidget {
36
+ const _PermissionRow({required this.permission});
37
+
38
+ final WCPermission permission;
39
+
40
+ @override
41
+ Widget build(BuildContext context) {
42
+ return Padding(
43
+ padding: const EdgeInsets.symmetric(vertical: 14),
44
+ child: Row(
45
+ children: [
46
+ Container(
47
+ child: CakeImageWidget(
48
+ imageUrl: permission.iconUrl,
49
+ width: 28,
50
+ height: 28,
51
+ ),
52
+ ),
53
+ const SizedBox(width: 12),
54
+ Expanded(
55
+ child: Text(
56
+ permission.label,
57
+ style: Theme.of(context).textTheme.bodyMedium,
58
+ ),
59
+ ),
60
+ ],
61
+ ),
62
+ );
63
+ }
64
+}
lib/src/screens/wallet_connect/widgets/wc_request_widget.dart
deleted
-69
@@ -1,69 +0,0 @@
1
-import 'package:cake_wallet/generated/i18n.dart';
2
-import 'package:cake_wallet/src/screens/wallet_connect/services/bottom_sheet_service.dart';
3
-import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_verify_context_widget.dart';
4
-import 'package:cake_wallet/src/widgets/primary_button.dart';
5
-import 'package:flutter/material.dart';
6
-import 'package:reown_walletkit/reown_walletkit.dart';
7
-
8
-class WCRequestWidget extends StatelessWidget {
9
- WCRequestWidget({
10
- required this.child,
11
- this.verifyContext,
12
- this.onAccept,
13
- this.onReject,
14
- });
15
-
16
- final Widget child;
17
- final VerifyContext? verifyContext;
18
- final VoidCallback? onAccept;
19
- final VoidCallback? onReject;
20
-
21
- @override
22
- Widget build(BuildContext context) {
23
- return Column(
24
- mainAxisSize: MainAxisSize.min,
25
- children: [
26
- WCVerifyContextWidget(
27
- verifyContext: verifyContext,
28
- ),
29
- const SizedBox(height: 8),
30
- Flexible(
31
- child: SingleChildScrollView(child: child),
32
- ),
33
- const SizedBox(height: 16),
34
- Row(
35
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
36
- children: [
37
- Expanded(
38
- child: PrimaryButton(
39
- onPressed: onReject ??
40
- () {
41
- if (Navigator.canPop(context)) {
42
- Navigator.of(context).pop(WCBottomSheetResult.reject);
43
- }
44
- },
45
- text: S.current.reject,
46
- color: Theme.of(context).colorScheme.error,
47
- textColor: Theme.of(context).colorScheme.onError,
48
- ),
49
- ),
50
- const SizedBox(width: 16),
51
- Expanded(
52
- child: PrimaryButton(
53
- onPressed: onAccept ??
54
- () {
55
- if (Navigator.canPop(context)) {
56
- Navigator.of(context).pop(WCBottomSheetResult.one);
57
- }
58
- },
59
- text: S.current.approve,
60
- color: Theme.of(context).colorScheme.primary,
61
- textColor: Theme.of(context).colorScheme.onPrimary,
62
- ),
63
- ),
64
- ],
65
- ),
66
- ],
67
- );
68
- }
69
-}
lib/src/screens/wallet_connect/widgets/wc_scam_banner.dart
new
+56
@@ -0,0 +1,56 @@
1
+import 'package:cake_wallet/generated/i18n.dart';
2
+import 'package:flutter/material.dart';
3
+
4
+class WCScamBanner extends StatelessWidget {
5
+ const WCScamBanner({super.key});
6
+
7
+ @override
8
+ Widget build(BuildContext context) {
9
+ final colors = Theme.of(context).colorScheme;
10
+
11
+ return Container(
12
+ width: double.infinity,
13
+ decoration: BoxDecoration(
14
+ color: colors.errorContainer,
15
+ border: Border.all(color: colors.onError, width: 2),
16
+ borderRadius: BorderRadius.circular(20),
17
+ ),
18
+ padding: const EdgeInsets.symmetric(vertical: 16, horizontal: 16),
19
+ child: Row(
20
+ crossAxisAlignment: CrossAxisAlignment.center,
21
+ children: [
22
+ Icon(
23
+ Icons.warning_amber_rounded,
24
+ size: 36,
25
+ color: colors.error,
26
+ ),
27
+ const SizedBox(width: 16),
28
+ Expanded(
29
+ child: Column(
30
+ crossAxisAlignment: CrossAxisAlignment.center,
31
+ mainAxisSize: MainAxisSize.min,
32
+ children: [
33
+ Text(
34
+ S.of(context).wc_scam_warning_title,
35
+ textAlign: TextAlign.center,
36
+ style: Theme.of(context).textTheme.titleSmall!.copyWith(
37
+ color: colors.error,
38
+ letterSpacing: -0.06,
39
+ ),
40
+ ),
41
+ const SizedBox(height: 4),
42
+ Text(
43
+ S.of(context).wc_scam_warning_message,
44
+ textAlign: TextAlign.center,
45
+ style: Theme.of(context).textTheme.bodySmall!.copyWith(
46
+ color: colors.error,
47
+ ),
48
+ ),
49
+ ],
50
+ ),
51
+ ),
52
+ ],
53
+ ),
54
+ );
55
+ }
56
+}
lib/src/screens/wallet_connect/widgets/wc_session_auth_request_widget.dart
deleted
-60
@@ -1,60 +0,0 @@
1
-import 'package:cake_wallet/generated/i18n.dart';
2
-import 'package:cake_wallet/src/screens/wallet_connect/services/bottom_sheet_service.dart';
3
-import 'package:cake_wallet/src/widgets/primary_button.dart';
4
-import 'package:flutter/material.dart';
5
-
6
-class WCSessionAuthRequestWidget extends StatelessWidget {
7
- const WCSessionAuthRequestWidget({super.key, required this.child});
8
-
9
- final Widget child;
10
-
11
- @override
12
- Widget build(BuildContext context) {
13
- return Column(
14
- mainAxisSize: MainAxisSize.min,
15
- children: [
16
- Expanded(
17
- child: SingleChildScrollView(child: child),
18
- ),
19
- const SizedBox(height: 16),
20
- Column(
21
- mainAxisAlignment: MainAxisAlignment.spaceEvenly,
22
- children: [
23
- PrimaryButton(
24
- onPressed: () {
25
- if (Navigator.canPop(context)) {
26
- Navigator.of(context).pop(WCBottomSheetResult.reject);
27
- }
28
- },
29
- text: S.current.cancel,
30
- color: Theme.of(context).colorScheme.error,
31
- textColor: Theme.of(context).colorScheme.onError,
32
- ),
33
- const SizedBox(height: 8),
34
- PrimaryButton(
35
- onPressed: () {
36
- if (Navigator.canPop(context)) {
37
- Navigator.of(context).pop(WCBottomSheetResult.one);
38
- }
39
- },
40
- text: S.current.sign_one,
41
- color: Theme.of(context).colorScheme.primary,
42
- textColor: Theme.of(context).colorScheme.onPrimary,
43
- ),
44
- const SizedBox(height: 8),
45
- PrimaryButton(
46
- onPressed: () {
47
- if (Navigator.canPop(context)) {
48
- Navigator.of(context).pop(WCBottomSheetResult.all);
49
- }
50
- },
51
- text: S.current.sign_all,
52
- color: Theme.of(context).colorScheme.secondaryContainer,
53
- textColor: Theme.of(context).colorScheme.onSecondaryContainer,
54
- ),
55
- ],
56
- ),
57
- ],
58
- );
59
- }
60
-}
lib/src/screens/wallet_connect/widgets/wc_sheet_header.dart
new
+50
@@ -0,0 +1,50 @@
1
+import 'package:cake_wallet/src/screens/wallet_connect/services/bottom_sheet_service.dart';
2
+import 'package:flutter/material.dart';
3
+
4
+class WCSheetHeader extends StatelessWidget {
5
+ const WCSheetHeader({super.key, required this.title});
6
+
7
+ final String title;
8
+
9
+ @override
10
+ Widget build(BuildContext context) {
11
+ final colors = Theme.of(context).colorScheme;
12
+
13
+ return SizedBox(
14
+ height: 40,
15
+ child: Stack(
16
+ alignment: Alignment.center,
17
+ children: [
18
+ Align(
19
+ alignment: AlignmentDirectional.centerStart,
20
+ child: InkResponse(
21
+ radius: 36,
22
+ onTap: () {
23
+ if (Navigator.canPop(context)) {
24
+ Navigator.of(context).pop(WCBottomSheetResult.reject);
25
+ }
26
+ },
27
+ child: Container(
28
+ width: 40,
29
+ height: 40,
30
+ decoration: BoxDecoration(
31
+ color: colors.surfaceContainerHighest,
32
+ shape: BoxShape.circle,
33
+ ),
34
+ child: Icon(
35
+ Icons.close,
36
+ size: 20,
37
+ color: colors.onSurface,
38
+ ),
39
+ ),
40
+ ),
41
+ ),
42
+ Text(
43
+ title,
44
+ style: Theme.of(context).textTheme.headlineMedium!.copyWith(letterSpacing: -0.09),
45
+ ),
46
+ ],
47
+ ),
48
+ );
49
+ }
50
+}
lib/src/screens/wallet_connect/widgets/wc_signing_request_sheet.dart
new
+111
@@ -0,0 +1,111 @@
1
+import 'package:cake_wallet/generated/i18n.dart';
2
+import 'package:cake_wallet/new-ui/widgets/confirm_swiper.dart';
3
+import 'package:cake_wallet/src/screens/wallet_connect/services/bottom_sheet_service.dart';
4
+import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_dapp_card.dart';
5
+import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_message_card.dart';
6
+import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_scam_banner.dart';
7
+import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_sheet_header.dart';
8
+import 'package:cake_wallet/src/screens/wallet_connect/widgets/wc_wallet_card.dart';
9
+import 'package:flutter/material.dart';
10
+import 'package:reown_walletkit/reown_walletkit.dart';
11
+
12
+class WCSigningRequestSheet extends StatelessWidget {
13
+ const WCSigningRequestSheet({
14
+ super.key,
15
+ required this.title,
16
+ required this.swipeLabel,
17
+ required this.dappName,
18
+ required this.message,
19
+ required this.walletName,
20
+ required this.address,
21
+ this.dappIconUrl,
22
+ this.dappSubtitle,
23
+ this.verifyContext,
24
+ this.messageTitle,
25
+ this.extraRows = const [],
26
+ this.signAllCount,
27
+ });
28
+
29
+ final String title;
30
+ final String swipeLabel;
31
+ final String dappName;
32
+ final String? dappIconUrl;
33
+ final String? dappSubtitle;
34
+ final String message;
35
+ final String? messageTitle;
36
+ final List<WCMessageRow> extraRows;
37
+ final String walletName;
38
+ final String address;
39
+ final VerifyContext? verifyContext;
40
+ final int? signAllCount;
41
+
42
+ @override
43
+ Widget build(BuildContext context) {
44
+ final colors = Theme.of(context).colorScheme;
45
+ final showSignAll = (signAllCount ?? 0) > 1;
46
+ final isScam = verifyContext?.validation.scam ?? false;
47
+
48
+ return Column(
49
+ mainAxisSize: MainAxisSize.min,
50
+ children: [
51
+ WCSheetHeader(title: title),
52
+ const SizedBox(height: 24),
53
+ Expanded(
54
+ child: SingleChildScrollView(
55
+ child: Column(
56
+ children: [
57
+ WCDappCard(
58
+ name: dappName,
59
+ iconUrl: dappIconUrl,
60
+ subtitle: dappSubtitle ?? '',
61
+ action: WCDappCardAction.sign,
62
+ verifyContext: verifyContext,
63
+ ),
64
+ if (isScam) ...[
65
+ const SizedBox(height: 16),
66
+ const WCScamBanner(),
67
+ ],
68
+ const SizedBox(height: 24),
69
+ WCWalletCard(walletName: walletName, address: address),
70
+ const SizedBox(height: 24),
71
+ WCMessageCard(
72
+ title: messageTitle,
73
+ message: message,
74
+ extraRows: extraRows,
75
+ ),
76
+ ],
77
+ ),
78
+ ),
79
+ ),
80
+ const SizedBox(height: 24),
81
+ Padding(
82
+ padding: const EdgeInsets.symmetric(horizontal: 24),
83
+ child: ConfirmSwiper(
84
+ swiperText: swipeLabel,
85
+ onConfirmed: () {
86
+ if (Navigator.canPop(context)) {
87
+ Navigator.of(context).pop(WCBottomSheetResult.one);
88
+ }
89
+ },
90
+ ),
91
+ ),
92
+ if (showSignAll) ...[
93
+ const SizedBox(height: 24),
94
+ TextButton(
95
+ onPressed: () {
96
+ if (Navigator.canPop(context)) {
97
+ Navigator.of(context).pop(WCBottomSheetResult.all);
98
+ }
99
+ },
100
+ style: TextButton.styleFrom(
101
+ foregroundColor: colors.primary,
102
+ minimumSize: const Size.fromHeight(48),
103
+ ),
104
+ child: Text(S.of(context).wc_sign_all_count(signAllCount!.toString())),
105
+ ),
106
+ ],
107
+ const SizedBox(height: 16),
108
+ ],
109
+ );
110
+ }
111
+}
lib/src/screens/wallet_connect/widgets/wc_verify_context_widget.dart
deleted
-131
@@ -1,131 +0,0 @@
1
-import 'package:cake_wallet/generated/i18n.dart';
2
-import 'package:cake_wallet/themes/core/custom_theme_colors.dart';
3
-import 'package:flutter/material.dart';
4
-import 'package:reown_walletkit/reown_walletkit.dart';
5
-
6
-class WCVerifyContextWidget extends StatelessWidget {
7
- const WCVerifyContextWidget({
8
- super.key,
9
- required this.verifyContext,
10
- });
11
-
12
- final VerifyContext? verifyContext;
13
-
14
- @override
15
- Widget build(BuildContext context) {
16
- if (verifyContext == null) {
17
- return const SizedBox.shrink();
18
- }
19
-
20
- if (verifyContext!.validation.scam) {
21
- return VerifyBanner(
22
- color: Theme.of(context).colorScheme.errorContainer,
23
- origin: verifyContext!.origin,
24
- title: S.current.security_risk,
25
- text: S.current.security_risk_description,
26
- );
27
- }
28
- if (verifyContext!.validation.invalid) {
29
- return VerifyBanner(
30
- color: Theme.of(context).colorScheme.errorContainer,
31
- origin: verifyContext!.origin,
32
- title: S.current.domain_mismatch,
33
- text: S.current.domain_mismatch_description,
34
- );
35
- }
36
- if (verifyContext!.validation.valid) {
37
- return VerifyHeader(
38
- iconColor: Theme.of(context).colorScheme.onPrimary,
39
- title: verifyContext!.origin,
40
- );
41
- }
42
- return VerifyBanner(
43
- color: CustomThemeColors.syncYellow,
44
- origin: verifyContext!.origin,
45
- title: S.current.cannot_verify,
46
- text: S.current.cannot_verify_description,
47
- );
48
- }
49
-}
50
-
51
-class VerifyHeader extends StatelessWidget {
52
- const VerifyHeader({
53
- super.key,
54
- required this.iconColor,
55
- required this.title,
56
- });
57
- final Color iconColor;
58
- final String title;
59
-
60
- @override
61
- Widget build(BuildContext context) {
62
- return Row(
63
- mainAxisAlignment: MainAxisAlignment.center,
64
- children: [
65
- Icon(
66
- Icons.shield_outlined,
67
- color: iconColor,
68
- ),
69
- const SizedBox(width: 8),
70
- Text(
71
- title,
72
- style: Theme.of(context).textTheme.bodyMedium!.copyWith(
73
- color: iconColor,
74
- fontWeight: FontWeight.bold,
75
- ),
76
- ),
77
- ],
78
- );
79
- }
80
-}
81
-
82
-class VerifyBanner extends StatelessWidget {
83
- const VerifyBanner({
84
- super.key,
85
- required this.origin,
86
- required this.title,
87
- required this.text,
88
- required this.color,
89
- });
90
- final String origin, title, text;
91
- final Color color;
92
-
93
- @override
94
- Widget build(BuildContext context) {
95
- return Column(
96
- children: [
97
- Text(
98
- origin,
99
- style: Theme.of(context).textTheme.bodyMedium!.copyWith(
100
- fontWeight: FontWeight.bold,
101
- ),
102
- ),
103
- const SizedBox.square(dimension: 8.0),
104
- Container(
105
- padding: const EdgeInsets.all(8.0),
106
- decoration: BoxDecoration(
107
- color: color.withOpacity(0.2),
108
- borderRadius: const BorderRadius.all(Radius.circular(12.0)),
109
- ),
110
- child: Column(
111
- children: [
112
- VerifyHeader(
113
- iconColor: color,
114
- title: title,
115
- ),
116
- const SizedBox(height: 4.0),
117
- Text(
118
- text,
119
- textAlign: TextAlign.center,
120
- style: Theme.of(context).textTheme.bodyMedium!.copyWith(
121
- color: color,
122
- fontWeight: FontWeight.bold,
123
- ),
124
- ),
125
- ],
126
- ),
127
- ),
128
- ],
129
- );
130
- }
131
-}
lib/src/screens/wallet_connect/widgets/wc_wallet_card.dart
new
+95
@@ -0,0 +1,95 @@
1
+import 'package:cake_wallet/generated/i18n.dart';
2
+import 'package:cake_wallet/utils/clipboard_util.dart';
3
+import 'package:cake_wallet/utils/show_bar.dart';
4
+import 'package:flutter/material.dart';
5
+import 'package:flutter/services.dart';
6
+
7
+class WCWalletCard extends StatelessWidget {
8
+ const WCWalletCard({
9
+ super.key,
10
+ required this.walletName,
11
+ required this.address,
12
+ });
13
+
14
+ final String walletName;
15
+ final String address;
16
+
17
+ static String _truncate(String value) {
18
+ if (value.length <= 14) return value;
19
+ return '${value.substring(0, 6)}...${value.substring(value.length - 7)}';
20
+ }
21
+
22
+ @override
23
+ Widget build(BuildContext context) {
24
+ final colors = Theme.of(context).colorScheme;
25
+
26
+ return Container(
27
+ width: double.infinity,
28
+ decoration: BoxDecoration(
29
+ color: colors.surfaceContainer,
30
+ borderRadius: BorderRadius.circular(20),
31
+ ),
32
+ padding: const EdgeInsets.symmetric(horizontal: 16),
33
+ child: Column(
34
+ children: [
35
+ WalletDetailEntry(label: S.of(context).wallet, value: walletName),
36
+ Divider(height: 1, color: colors.outlineVariant),
37
+ WalletDetailEntry(
38
+ label: S.of(context).address,
39
+ value: _truncate(address),
40
+ onTap: address.isEmpty
41
+ ? null
42
+ : () async {
43
+ await ClipboardUtil.setSensitiveDataToClipboard(
44
+ ClipboardData(text: address),
45
+ );
46
+ if (!context.mounted) return;
47
+ showBar<void>(context, S.of(context).copied_to_clipboard);
48
+ },
49
+ ),
50
+ ],
51
+ ),
52
+ );
53
+ }
54
+}
55
+
56
+class WalletDetailEntry extends StatelessWidget {
57
+ const WalletDetailEntry({required this.label, required this.value, this.onTap});
58
+
59
+ final String label;
60
+ final String value;
61
+ final VoidCallback? onTap;
62
+
63
+ @override
64
+ Widget build(BuildContext context) {
65
+ final colors = Theme.of(context).colorScheme;
66
+
67
+ return InkWell(
68
+ onTap: onTap,
69
+ borderRadius: BorderRadius.circular(8),
70
+ child: Padding(
71
+ padding: const EdgeInsets.symmetric(vertical: 16),
72
+ child: Row(
73
+ mainAxisAlignment: MainAxisAlignment.spaceBetween,
74
+ children: [
75
+ Text(
76
+ label,
77
+ style: Theme.of(context).textTheme.bodyMedium!.copyWith(
78
+ fontWeight: FontWeight.w500,
79
+ ),
80
+ ),
81
+ Flexible(
82
+ child: Text(
83
+ value,
84
+ overflow: TextOverflow.ellipsis,
85
+ style: Theme.of(context).textTheme.bodyMedium!.copyWith(
86
+ color: colors.onSurfaceVariant,
87
+ ),
88
+ ),
89
+ ),
90
+ ],
91
+ ),
92
+ ),
93
+ );
94
+ }
95
+}
lib/src/widgets/cake_image_widget.dart
+7
-9
@@ -1,6 +1,4 @@
1
-import 'package:cw_core/utils/print_verbose.dart';
1
import 'package:flutter/material.dart';
3
-import 'package:flutter/services.dart';
2
import 'package:flutter_svg/flutter_svg.dart';
3
import 'package:vector_graphics/vector_graphics.dart';
4
@@ -15,7 +13,9 @@ class CakeImageWidget extends StatelessWidget {
13
this.errorWidget,
14
this.color,
15
this.colorFilter,
18
- this.borderRadius = 24.0, this.alignment, this.allowDrawingOutsideViewBox,
16
+ this.borderRadius = 24.0,
17
+ this.alignment,
18
+ this.allowDrawingOutsideViewBox,
19
});
20
21
final String? imageUrl;
@@ -38,8 +38,8 @@ class CakeImageWidget extends StatelessWidget {
38
39
final isSvg = imageUrl!.toLowerCase().endsWith('.svg');
40
final isAsset = imageUrl!.startsWith('assets/');
41
- final effectiveColorFilter = colorFilter ??
42
- (color != null ? ColorFilter.mode(color!, BlendMode.srcIn) : null);
41
+ final effectiveColorFilter =
42
+ colorFilter ?? (color != null ? ColorFilter.mode(color!, BlendMode.srcIn) : null);
43
44
Widget imageWidget;
45
if (isAsset) {
@@ -49,8 +49,7 @@ class CakeImageWidget extends StatelessWidget {
49
width: width,
50
alignment: alignment ?? Alignment.center,
51
allowDrawingOutsideViewBox: allowDrawingOutsideViewBox ?? false,
52
- colorFilter:
53
- effectiveColorFilter,
52
+ colorFilter: effectiveColorFilter,
53
fit: fit ?? BoxFit.contain, errorBuilder: (context, e, trace) {
54
return SvgPicture.asset(
55
imageUrl!,
@@ -59,8 +58,7 @@ class CakeImageWidget extends StatelessWidget {
58
allowDrawingOutsideViewBox: allowDrawingOutsideViewBox ?? false,
59
width: width,
60
errorBuilder: (_, __, ___) => SizedBox(height: height, width: width),
62
- colorFilter:
63
- effectiveColorFilter,
61
+ colorFilter: effectiveColorFilter,
62
fit: fit ?? BoxFit.contain,
63
);
64
});
lib/src/widgets/new_list_row/list_item_regular_row_widget.dart
+8
-3
@@ -23,7 +23,9 @@ class ListItemRegularRowWidget extends StatelessWidget {
23
this.trailingIconSize,
24
this.bottomWidget,
25
this.trailingWidget,
26
- this.copyableText
26
+ this.copyableText,
27
+ this.leadingIconErrorWidget,
28
+ this.leadingIconSize,
29
});
30
31
final String keyValue;
@@ -42,6 +44,8 @@ class ListItemRegularRowWidget extends StatelessWidget {
44
final Color? foregroundColor;
45
final double? trailingIconSize;
46
final String? copyableText;
47
+ final Widget? leadingIconErrorWidget;
48
+ final double? leadingIconSize;
49
50
@override
51
Widget build(BuildContext context) {
@@ -78,8 +82,9 @@ class ListItemRegularRowWidget extends StatelessWidget {
82
padding: const EdgeInsets.only(right: 12.0),
83
child: CakeImageWidget(
84
imageUrl: iconPath!,
81
- width: 24,
82
- height: 24,
85
+ width: leadingIconSize ?? 24,
86
+ height: leadingIconSize ?? 24,
87
+ errorWidget: leadingIconErrorWidget,
88
)),
89
Flexible(
90
child: Column(
lib/src/widgets/new_list_row/new_list_section.dart
+2
@@ -107,6 +107,8 @@ class NewListSections extends StatelessWidget {
107
trailingIconSize: item.trailingIconSize,
108
trailingWidget: item.trailingWidget,
109
bottomWidget: item.bottomWidget,
110
+ leadingIconErrorWidget: item.leadingIconErrorWidget,
111
+ leadingIconSize: item.leadingIconSize,
112
);
113
}
114
res/pictures/global_view.svg
new
+26
@@ -0,0 +1,26 @@
1
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<g clip-path="url(#clip0_20090_87742)">
3
+<g clip-path="url(#clip1_20090_87742)">
4
+<path d="M0 8C0 5.19974 0 3.79961 0.544967 2.73005C1.02433 1.78924 1.78924 1.02433 2.73005 0.544967C3.79961 0 5.19974 0 8 0H16C18.8003 0 20.2004 0 21.27 0.544967C22.2108 1.02433 22.9757 1.78924 23.455 2.73005C24 3.79961 24 5.19974 24 8V16C24 18.8003 24 20.2004 23.455 21.27C22.9757 22.2108 22.2108 22.9757 21.27 23.455C20.2004 24 18.8003 24 16 24H8C5.19974 24 3.79961 24 2.73005 23.455C1.78924 22.9757 1.02433 22.2108 0.544967 21.27C0 20.2004 0 18.8003 0 16V8Z" fill="#6D6D6D"/>
5
+<path d="M0 8C0 5.19974 0 3.79961 0.544967 2.73005C1.02433 1.78924 1.78924 1.02433 2.73005 0.544967C3.79961 0 5.19974 0 8 0H16C18.8003 0 20.2004 0 21.27 0.544967C22.2108 1.02433 22.9757 1.78924 23.455 2.73005C24 3.79961 24 5.19974 24 8V16C24 18.8003 24 20.2004 23.455 21.27C22.9757 22.2108 22.2108 22.9757 21.27 23.455C20.2004 24 18.8003 24 16 24H8C5.19974 24 3.79961 24 2.73005 23.455C1.78924 22.9757 1.02433 22.2108 0.544967 21.27C0 20.2004 0 18.8003 0 16V8Z" fill="url(#paint0_linear_20090_87742)"/>
6
+<path d="M12.0031 19.799C10.9298 19.799 9.91865 19.5937 8.96979 19.1832C8.02094 18.7726 7.19457 18.2153 6.49069 17.5114C5.78681 16.8075 5.22955 15.9812 4.81889 15.0323C4.40838 14.0835 4.20312 13.0723 4.20312 11.999C4.20312 10.9223 4.40838 9.91031 4.81889 8.96304C5.22955 8.01592 5.78681 7.19042 6.49069 6.48654C7.19457 5.78266 8.02094 5.2254 8.96979 4.81474C9.91865 4.40423 10.9298 4.19897 12.0031 4.19897C13.0798 4.19897 14.0918 4.40423 15.0391 4.81474C15.9862 5.2254 16.8117 5.78266 17.5156 6.48654C18.2194 7.19042 18.7767 8.01592 19.1874 8.96304C19.5979 9.91031 19.8031 10.9223 19.8031 11.999C19.8031 13.0723 19.5979 14.0835 19.1874 15.0323C18.7767 15.9812 18.2194 16.8075 17.5156 17.5114C16.8117 18.2153 15.9862 18.7726 15.0391 19.1832C14.0918 19.5937 13.0798 19.799 12.0031 19.799ZM12.0031 18.939C12.512 18.2857 12.9315 17.644 13.2615 17.0139C13.5914 16.384 13.8597 15.6791 14.0664 14.8991H9.93981C10.1688 15.7234 10.4426 16.4506 10.7614 17.0807C11.0803 17.7106 11.4942 18.33 12.0031 18.939ZM10.8999 18.809C10.4954 18.3324 10.1262 17.7432 9.79226 17.0415C9.45845 16.3397 9.20986 15.6256 9.04649 14.8991H5.72304C6.21979 15.9768 6.92395 16.8606 7.83554 17.5506C8.74727 18.2406 9.76871 18.6601 10.8999 18.809ZM13.1064 18.809C14.2375 18.6601 15.259 18.2406 16.1707 17.5506C17.0823 16.8606 17.7865 15.9768 18.2832 14.8991H14.9598C14.7409 15.6367 14.4645 16.3564 14.1306 17.0581C13.7968 17.7599 13.4554 18.3435 13.1064 18.809ZM5.36988 14.0324H8.86644C8.80086 13.6768 8.7545 13.3303 8.72734 12.993C8.70004 12.6559 8.68639 12.3246 8.68639 11.999C8.68639 11.6734 8.70004 11.342 8.72734 11.0049C8.7545 10.6676 8.80086 10.3212 8.86644 9.96556H5.36988C5.27541 10.2656 5.20174 10.5925 5.14887 10.9464C5.09615 11.3003 5.06979 11.6512 5.06979 11.999C5.06979 12.3468 5.09615 12.6977 5.14887 13.0515C5.20174 13.4054 5.27541 13.7324 5.36988 14.0324ZM9.73311 14.0324H14.2731C14.3387 13.6768 14.3851 13.3359 14.4122 13.0097C14.4395 12.6837 14.4532 12.3468 14.4532 11.999C14.4532 11.6512 14.4395 11.3142 14.4122 10.9882C14.3851 10.6621 14.3387 10.3212 14.2731 9.96556H9.73311C9.66753 10.3212 9.62116 10.6621 9.59401 10.9882C9.56671 11.3142 9.55306 11.6512 9.55306 11.999C9.55306 12.3468 9.56671 12.6837 9.59401 13.0097C9.62116 13.3359 9.66753 13.6768 9.73311 14.0324ZM15.1398 14.0324H18.6364C18.7308 13.7324 18.8045 13.4054 18.8574 13.0515C18.9101 12.6977 18.9365 12.3468 18.9365 11.999C18.9365 11.6512 18.9101 11.3003 18.8574 10.9464C18.8045 10.5925 18.7308 10.2656 18.6364 9.96556H15.1398C15.2054 10.3212 15.2518 10.6676 15.2789 11.0049C15.3062 11.342 15.3199 11.6734 15.3199 11.999C15.3199 12.3246 15.3062 12.6559 15.2789 12.993C15.2518 13.3303 15.2054 13.6768 15.1398 14.0324ZM14.9598 9.09889H18.2832C17.7753 7.99895 17.0795 7.11509 16.1956 6.44732C15.3118 5.77956 14.282 5.35453 13.1064 5.17224C13.5108 5.70452 13.8745 6.31314 14.1973 6.99809C14.5201 7.68319 14.7743 8.38346 14.9598 9.09889ZM9.93981 9.09889H14.0664C13.8375 8.28567 13.5553 7.55016 13.2197 6.89236C12.8842 6.23456 12.4786 5.62341 12.0031 5.05892C11.5276 5.62341 11.1221 6.23456 10.7865 6.89236C10.451 7.55016 10.1688 8.28567 9.93981 9.09889ZM5.72304 9.09889H9.04649C9.23196 8.38346 9.48611 7.68319 9.80894 6.99809C10.1318 6.31314 10.4954 5.70452 10.8999 5.17224C9.7131 5.35453 8.68061 5.7823 7.80239 6.45556C6.92402 7.12896 6.23091 8.01007 5.72304 9.09889Z" fill="white"/>
7
+<path d="M12.0031 19.799C10.9298 19.799 9.91865 19.5937 8.96979 19.1832C8.02094 18.7726 7.19457 18.2153 6.49069 17.5114C5.78681 16.8075 5.22955 15.9812 4.81889 15.0323C4.40838 14.0835 4.20312 13.0723 4.20312 11.999C4.20312 10.9223 4.40838 9.91031 4.81889 8.96304C5.22955 8.01592 5.78681 7.19042 6.49069 6.48654C7.19457 5.78266 8.02094 5.2254 8.96979 4.81474C9.91865 4.40423 10.9298 4.19897 12.0031 4.19897C13.0798 4.19897 14.0918 4.40423 15.0391 4.81474C15.9862 5.2254 16.8117 5.78266 17.5156 6.48654C18.2194 7.19042 18.7767 8.01592 19.1874 8.96304C19.5979 9.91031 19.8031 10.9223 19.8031 11.999C19.8031 13.0723 19.5979 14.0835 19.1874 15.0323C18.7767 15.9812 18.2194 16.8075 17.5156 17.5114C16.8117 18.2153 15.9862 18.7726 15.0391 19.1832C14.0918 19.5937 13.0798 19.799 12.0031 19.799ZM12.0031 18.939C12.512 18.2857 12.9315 17.644 13.2615 17.0139C13.5914 16.384 13.8597 15.6791 14.0664 14.8991H9.93981C10.1688 15.7234 10.4426 16.4506 10.7614 17.0807C11.0803 17.7106 11.4942 18.33 12.0031 18.939ZM10.8999 18.809C10.4954 18.3324 10.1262 17.7432 9.79226 17.0415C9.45845 16.3397 9.20986 15.6256 9.04649 14.8991H5.72304C6.21979 15.9768 6.92395 16.8606 7.83554 17.5506C8.74727 18.2406 9.76871 18.6601 10.8999 18.809ZM13.1064 18.809C14.2375 18.6601 15.259 18.2406 16.1707 17.5506C17.0823 16.8606 17.7865 15.9768 18.2832 14.8991H14.9598C14.7409 15.6367 14.4645 16.3564 14.1306 17.0581C13.7968 17.7599 13.4554 18.3435 13.1064 18.809ZM5.36988 14.0324H8.86644C8.80086 13.6768 8.7545 13.3303 8.72734 12.993C8.70004 12.6559 8.68639 12.3246 8.68639 11.999C8.68639 11.6734 8.70004 11.342 8.72734 11.0049C8.7545 10.6676 8.80086 10.3212 8.86644 9.96556H5.36988C5.27541 10.2656 5.20174 10.5925 5.14887 10.9464C5.09615 11.3003 5.06979 11.6512 5.06979 11.999C5.06979 12.3468 5.09615 12.6977 5.14887 13.0515C5.20174 13.4054 5.27541 13.7324 5.36988 14.0324ZM9.73311 14.0324H14.2731C14.3387 13.6768 14.3851 13.3359 14.4122 13.0097C14.4395 12.6837 14.4532 12.3468 14.4532 11.999C14.4532 11.6512 14.4395 11.3142 14.4122 10.9882C14.3851 10.6621 14.3387 10.3212 14.2731 9.96556H9.73311C9.66753 10.3212 9.62116 10.6621 9.59401 10.9882C9.56671 11.3142 9.55306 11.6512 9.55306 11.999C9.55306 12.3468 9.56671 12.6837 9.59401 13.0097C9.62116 13.3359 9.66753 13.6768 9.73311 14.0324ZM15.1398 14.0324H18.6364C18.7308 13.7324 18.8045 13.4054 18.8574 13.0515C18.9101 12.6977 18.9365 12.3468 18.9365 11.999C18.9365 11.6512 18.9101 11.3003 18.8574 10.9464C18.8045 10.5925 18.7308 10.2656 18.6364 9.96556H15.1398C15.2054 10.3212 15.2518 10.6676 15.2789 11.0049C15.3062 11.342 15.3199 11.6734 15.3199 11.999C15.3199 12.3246 15.3062 12.6559 15.2789 12.993C15.2518 13.3303 15.2054 13.6768 15.1398 14.0324ZM14.9598 9.09889H18.2832C17.7753 7.99895 17.0795 7.11509 16.1956 6.44732C15.3118 5.77956 14.282 5.35453 13.1064 5.17224C13.5108 5.70452 13.8745 6.31314 14.1973 6.99809C14.5201 7.68319 14.7743 8.38346 14.9598 9.09889ZM9.93981 9.09889H14.0664C13.8375 8.28567 13.5553 7.55016 13.2197 6.89236C12.8842 6.23456 12.4786 5.62341 12.0031 5.05892C11.5276 5.62341 11.1221 6.23456 10.7865 6.89236C10.451 7.55016 10.1688 8.28567 9.93981 9.09889ZM5.72304 9.09889H9.04649C9.23196 8.38346 9.48611 7.68319 9.80894 6.99809C10.1318 6.31314 10.4954 5.70452 10.8999 5.17224C9.7131 5.35453 8.68061 5.7823 7.80239 6.45556C6.92402 7.12896 6.23091 8.01007 5.72304 9.09889Z" fill="url(#paint1_linear_20090_87742)"/>
8
+</g>
9
+</g>
10
+<defs>
11
+<linearGradient id="paint0_linear_20090_87742" x1="12" y1="0" x2="12" y2="24" gradientUnits="userSpaceOnUse">
12
+<stop stop-color="#8F8F8F"/>
13
+<stop offset="1" stop-color="#6D6D6D"/>
14
+</linearGradient>
15
+<linearGradient id="paint1_linear_20090_87742" x1="12.0031" y1="4.19897" x2="12.0031" y2="19.799" gradientUnits="userSpaceOnUse">
16
+<stop stop-color="white"/>
17
+<stop offset="1" stop-color="#DADADA"/>
18
+</linearGradient>
19
+<clipPath id="clip0_20090_87742">
20
+<rect width="24" height="24" fill="white"/>
21
+</clipPath>
22
+<clipPath id="clip1_20090_87742">
23
+<rect width="24" height="24" fill="white"/>
24
+</clipPath>
25
+</defs>
26
+</svg>
res/pictures/green_check.svg
new
+21
@@ -0,0 +1,21 @@
1
+<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<g clip-path="url(#clip0_20090_21608)">
3
+<g clip-path="url(#clip1_20090_21608)">
4
+<path d="M0 8C0 5.19974 0 3.79961 0.544967 2.73005C1.02433 1.78924 1.78924 1.02433 2.73005 0.544967C3.79961 0 5.19974 0 8 0H16C18.8003 0 20.2004 0 21.27 0.544967C22.2108 1.02433 22.9757 1.78924 23.455 2.73005C24 3.79961 24 5.19974 24 8V16C24 18.8003 24 20.2004 23.455 21.27C22.9757 22.2108 22.2108 22.9757 21.27 23.455C20.2004 24 18.8003 24 16 24H8C5.19974 24 3.79961 24 2.73005 23.455C1.78924 22.9757 1.02433 22.2108 0.544967 21.27C0 20.2004 0 18.8003 0 16V8Z" fill="#1C972D"/>
5
+<path d="M0 8C0 5.19974 0 3.79961 0.544967 2.73005C1.02433 1.78924 1.78924 1.02433 2.73005 0.544967C3.79961 0 5.19974 0 8 0H16C18.8003 0 20.2004 0 21.27 0.544967C22.2108 1.02433 22.9757 1.78924 23.455 2.73005C24 3.79961 24 5.19974 24 8V16C24 18.8003 24 20.2004 23.455 21.27C22.9757 22.2108 22.2108 22.9757 21.27 23.455C20.2004 24 18.8003 24 16 24H8C5.19974 24 3.79961 24 2.73005 23.455C1.78924 22.9757 1.02433 22.2108 0.544967 21.27C0 20.2004 0 18.8003 0 16V8Z" fill="url(#paint0_linear_20090_21608)"/>
6
+<path d="M9.71324 17.2767L4.73438 12.2979L5.73211 11.2999L9.71324 15.281L18.2677 6.72656L19.2654 7.72453L9.71324 17.2767Z" fill="white"/>
7
+</g>
8
+</g>
9
+<defs>
10
+<linearGradient id="paint0_linear_20090_21608" x1="12" y1="0" x2="12" y2="24" gradientUnits="userSpaceOnUse">
11
+<stop stop-color="#2BCA41"/>
12
+<stop offset="1" stop-color="#00843C"/>
13
+</linearGradient>
14
+<clipPath id="clip0_20090_21608">
15
+<rect width="24" height="24" fill="white"/>
16
+</clipPath>
17
+<clipPath id="clip1_20090_21608">
18
+<rect width="24" height="24" fill="white"/>
19
+</clipPath>
20
+</defs>
21
+</svg>
res/pictures/pencil.svg
new
+1
@@ -0,0 +1 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e3e3e3"><path d="M200-200h57l391-391-57-57-391 391v57Zm-80 80v-170l528-527q12-11 26.5-17t30.5-6q16 0 31 6t26 18l55 56q12 11 17.5 26t5.5 30q0 16-5.5 30.5T817-647L290-120H120Zm640-584-56-56 56 56Zm-141 85-28-29 57 57-29-28Z"/></svg>
\ No newline at end of file
res/pictures/walletconnect_icon.svg
new
+29
@@ -0,0 +1,29 @@
1
+<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<g clip-path="url(#clip0_20249_130121)">
3
+<path d="M0 12C0 7.7996 0 5.69941 0.817451 4.09507C1.5365 2.68386 2.68386 1.5365 4.09507 0.817451C5.69941 0 7.79961 0 12 0H24C28.2004 0 30.3006 0 31.9049 0.817451C33.3161 1.5365 34.4635 2.68386 35.1825 4.09507C36 5.69941 36 7.79961 36 12V24C36 28.2004 36 30.3006 35.1825 31.9049C34.4635 33.3161 33.3161 34.4635 31.9049 35.1825C30.3006 36 28.2004 36 24 36H12C7.7996 36 5.69941 36 4.09507 35.1825C2.68386 34.4635 1.5365 33.3161 0.817451 31.9049C0 30.3006 0 28.2004 0 24V12Z" fill="url(#paint0_linear_20249_130121)"/>
4
+<path d="M0 12C0 7.7996 0 5.69941 0.817451 4.09507C1.5365 2.68386 2.68386 1.5365 4.09507 0.817451C5.69941 0 7.79961 0 12 0H24C28.2004 0 30.3006 0 31.9049 0.817451C33.3161 1.5365 34.4635 2.68386 35.1825 4.09507C36 5.69941 36 7.79961 36 12V24C36 28.2004 36 30.3006 35.1825 31.9049C34.4635 33.3161 33.3161 34.4635 31.9049 35.1825C30.3006 36 28.2004 36 24 36H12C7.7996 36 5.69941 36 4.09507 35.1825C2.68386 34.4635 1.5365 33.3161 0.817451 31.9049C0 30.3006 0 28.2004 0 24V12Z" fill="url(#paint1_linear_20249_130121)"/>
5
+<path d="M0 12C0 7.7996 0 5.69941 0.817451 4.09507C1.5365 2.68386 2.68386 1.5365 4.09507 0.817451C5.69941 0 7.79961 0 12 0H24C28.2004 0 30.3006 0 31.9049 0.817451C33.3161 1.5365 34.4635 2.68386 35.1825 4.09507C36 5.69941 36 7.79961 36 12V24C36 28.2004 36 30.3006 35.1825 31.9049C34.4635 33.3161 33.3161 34.4635 31.9049 35.1825C30.3006 36 28.2004 36 24 36H12C7.7996 36 5.69941 36 4.09507 35.1825C2.68386 34.4635 1.5365 33.3161 0.817451 31.9049C0 30.3006 0 28.2004 0 24V12Z" fill="url(#paint2_linear_20249_130121)"/>
6
+<path d="M32.4016 18.3154L23.9312 26.7247L18.0016 20.8388L12.0719 26.7247L3.60156 18.3154L6.14062 15.7951L12.0719 21.681L18.0016 15.7951L23.9312 21.681L29.8625 15.7951L32.4016 18.3154ZM8.68594 13.2779C14.4329 7.57399 21.5733 7.57406 27.3203 13.2779L24.7781 15.7998C20.4079 11.4639 15.5982 11.464 11.2281 15.8014L8.68594 13.2779Z" fill="url(#paint3_linear_20249_130121)"/>
7
+</g>
8
+<defs>
9
+<linearGradient id="paint0_linear_20249_130121" x1="18" y1="0" x2="18" y2="36" gradientUnits="userSpaceOnUse">
10
+<stop stop-color="#0082F8"/>
11
+<stop offset="1" stop-color="#0666FF"/>
12
+</linearGradient>
13
+<linearGradient id="paint1_linear_20249_130121" x1="18" y1="0" x2="18" y2="36" gradientUnits="userSpaceOnUse">
14
+<stop stop-color="#2B9AFF"/>
15
+<stop offset="1" stop-color="#0666FF"/>
16
+</linearGradient>
17
+<linearGradient id="paint2_linear_20249_130121" x1="18" y1="0" x2="18" y2="36" gradientUnits="userSpaceOnUse">
18
+<stop stop-color="#3396FF"/>
19
+<stop offset="1" stop-color="#007CFF"/>
20
+</linearGradient>
21
+<linearGradient id="paint3_linear_20249_130121" x1="18.0016" y1="9" x2="18.0016" y2="26.7247" gradientUnits="userSpaceOnUse">
22
+<stop stop-color="white"/>
23
+<stop offset="1" stop-color="#BFDEFF"/>
24
+</linearGradient>
25
+<clipPath id="clip0_20249_130121">
26
+<rect width="36" height="36" fill="white"/>
27
+</clipPath>
28
+</defs>
29
+</svg>
res/values/strings_ar.arb
+25
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "يلزم إذن الكاميرا.\nيرجى تفعيله من إعدادات التطبيق.",
157
"cancel": "إلغاء",
158
"cannot_manage_accounts_during_sync": "لا يمكنك إدارة الحسابات بينما لا تزال المحفظة قيد المزامنة. يُرجى المحاولة مرة أخرى لاحقًا.",
159
- "cannot_verify": "تعذّر التحقق",
160
- "cannot_verify_description": "لا يمكن التحقق من هذا النطاق. تحقّق من الطلب بعناية قبل الموافقة.",
159
"card_address": "العنوان:",
160
"card_order_reset_desc": "هل تريد استعادة ترتيب البطاقة إلى الإعدادات الافتراضية؟",
161
"card_style": "نمط البطاقة",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "تعطيل تحسين البطارية",
349
"disableBatteryOptimizationDescription": "هل تريد تعطيل تحسين استهلاك البطارية للسماح بمزامنة الخلفية بالعمل بحرية وسلاسة أكبر؟",
350
"disabled": "معطّل",
353
- "disconnect_session": "قطع الاتصال بالجلسة",
351
"discount": "وفّر ${value}٪",
352
"dismiss": "إغلاق",
353
"display": "العرض",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "لا تعرض هذا مرة أخرى",
360
"do_not_show_me": "لا تُظهر هذا مرة أخرى",
361
"domain_looks_up": "عمليات البحث عن النطاقات",
365
- "domain_mismatch": "عدم تطابق النطاق",
366
- "domain_mismatch_description": "يحتوي هذا الموقع على نطاق لا يتطابق مع مُرسِل هذا الطلب. قد تؤدي الموافقة إلى فقدان الأموال.",
362
"donation": "تبرع",
363
"donation_link_details": "تفاصيل رابط التبرع",
364
"done": "تم",
@@ -893,8 +888,6 @@
888
"second_intro_title": "عنوان إيموجي واحد ليحكمها جميعًا",
889
"security": "الأمان",
890
"security_and_backup": "الأمان والنسخ الاحتياطي",
896
- "security_risk": "مخاطر أمنية",
897
- "security_risk_description": "تم وضع علامة على هذا النطاق على أنه غير آمن من قِبل عدة مزوّدي خدمات الأمان. غادر فورًا لحماية أصولك.",
891
"seed_alert_back": "الرجوع",
892
"seed_alert_content": "عبارة الاسترداد هي الطريقة الوحيدة لاستعادة محفظتك. هل كتبتها؟",
893
"seed_alert_title": "انتباه",
@@ -1259,7 +1252,6 @@
1252
"unspent_coins_details_title": "تفاصيل العملات غير المُنفَقة",
1253
"unspent_coins_title": "العملات غير المُنفَقة",
1254
"unsupported_asset": "لا ندعم هذا الإجراء لهذا الأصل. يُرجى إنشاء محفظة لأصل مدعوم أو التبديل إلى محفظة من نوع أصل مدعوم.",
1262
- "update_session": "تحديث الجلسة",
1255
"uptime": "مدة التشغيل",
1256
"upto": "حتى ${value}",
1257
"usb": "USB",
@@ -1334,6 +1326,31 @@
1326
"walletConnect": "WalletConnect",
1327
"wallets": "المحافظ",
1328
"warning": "تحذير",
1329
+ "wc_action_approve": "يعتمد",
1330
+ "wc_approve_request_title": "الموافقة على الطلب",
1331
+ "wc_connect_request_title": "طلب الاتصال",
1332
+ "wc_connected_to": "متصل بـ ${name}",
1333
+ "wc_max_network_fee": "الحد الأقصى لرسوم الشبكة",
1334
+ "wc_message_to_sign": "رسالة للتوقيع",
1335
+ "wc_network_fee": "رسوم الشبكة",
1336
+ "wc_not_verified": "لم يتم التحقق منها",
1337
+ "wc_pairing_list_header_subtitle": "قم بتوصيل محفظتك باستخدام WalletConnect أو إدارة التطبيقات الموجودة.",
1338
+ "wc_paste_link": "الصق رابط WalletConnect",
1339
+ "wc_permission_other": "أخرى: ${method}",
1340
+ "wc_permission_request_approval": "طلب الموافقة على المعاملات",
1341
+ "wc_permission_sign_messages": "توقيع الرسائل والبيانات المكتوبة",
1342
+ "wc_permission_switch_chains": "قم بالتبديل وإضافة سلاسل EVM",
1343
+ "wc_permission_view_balance": "عرض رصيد محفظتك ونشاطك",
1344
+ "wc_scam_warning_message": "يبدو أن هذا الطلب مرسل من عملية احتيال معروفة. يرجى المضي قدما بحذر.",
1345
+ "wc_scam_warning_title": "تحذير!",
1346
+ "wc_scan_qr": "مسح QR",
1347
+ "wc_sign_all_count": "قم بالتوقيع على جميع رسائل ${count}.",
1348
+ "wc_signing_request_title": "طلب التوقيع",
1349
+ "wc_swipe_to_approve": "اسحب للموافقة",
1350
+ "wc_swipe_to_sign": "اسحب للتوقيع",
1351
+ "wc_verified": "تم التحقق منه",
1352
+ "wc_would_like_to_connect_to": "${name} يرغب في الاتصال",
1353
+ "wc_would_like_to_sign": "${name} يرغب في التوقيع",
1354
"website": "الموقع الإلكتروني",
1355
"welcome": "مرحبًا",
1356
"welcome_subtitle_new_wallet": "إذا كنت ترغب في البدء من جديد، فانقر على \"Create New Wallet\" أدناه وستنطلق.",
res/values/strings_bg.arb
+25
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "Необходимо е разрешение за камера.\nМоля, активирайте го от настройките на приложението.",
157
"cancel": "Отказ",
158
"cannot_manage_accounts_during_sync": "Не можете да управлявате акаунтите, докато портфейлът все още се синхронизира. Моля, опитайте отново по-късно.",
159
- "cannot_verify": "Не може да се потвърди",
160
- "cannot_verify_description": "Този домейн не може да бъде потвърден. Проверете внимателно заявката, преди да я одобрите.",
159
"card_address": "Адрес:",
160
"card_order_reset_desc": "Да се възстанови подредбата на картите до настройките по подразбиране?",
161
"card_style": "Стил на картата",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "Деактивирайте оптимизацията на батерията",
349
"disableBatteryOptimizationDescription": "Искате ли да деактивирате оптимизацията на батерията, за да може фоновата синхронизация да работи по‑свободно и гладко?",
350
"disabled": "Деактивирано",
353
- "disconnect_session": "Прекъсване на сесията",
351
"discount": "Спестете ${value}%",
352
"dismiss": "Отказ",
353
"display": "Дисплей",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "Не показвай това повече",
360
"do_not_show_me": "Не ми показвай това отново",
361
"domain_looks_up": "Търсене на домейни",
365
- "domain_mismatch": "Несъответствие на домейна",
366
- "domain_mismatch_description": "Този уебсайт има домейн, който не съответства на подателя на тази заявка. Одобряването може да доведе до загуба на средства.",
362
"donation": "Дарение",
363
"donation_link_details": "Подробности за връзката за дарение",
364
"done": "Готово",
@@ -893,8 +888,6 @@
888
"second_intro_title": "Един емоджи адрес, който да управлява всички",
889
"security": "Сигурност",
890
"security_and_backup": "Сигурност и резервно копие",
896
- "security_risk": "Риск за сигурността",
897
- "security_risk_description": "Този домейн е маркиран като опасен от множество доставчици на сигурност. Напуснете незабавно, за да защитите активите си.",
891
"seed_alert_back": "Назад",
892
"seed_alert_content": "Seed фразата е единственият начин да възстановите портфейла си. Записахте ли я?",
893
"seed_alert_title": "Внимание",
@@ -1259,7 +1252,6 @@
1252
"unspent_coins_details_title": "Подробности за неизразходваните монети",
1253
"unspent_coins_title": "Неизразходвани монети",
1254
"unsupported_asset": "Не поддържаме това действие за този актив. Моля, създайте или превключете към портфейл с поддържан тип актив.",
1262
- "update_session": "Актуализиране на сесията",
1255
"uptime": "Време на работа",
1256
"upto": "до ${value}",
1257
"usb": "USB",
@@ -1334,6 +1326,31 @@
1326
"walletConnect": "WalletConnect",
1327
"wallets": "Портфейли",
1328
"warning": "Предупреждение",
1329
+ "wc_action_approve": "Одобряване",
1330
+ "wc_approve_request_title": "Одобряване на заявката",
1331
+ "wc_connect_request_title": "Заявка за свързване",
1332
+ "wc_connected_to": "Свързан с ${name}",
1333
+ "wc_max_network_fee": "Максимална мрежова такса",
1334
+ "wc_message_to_sign": "Съобщение за подпис",
1335
+ "wc_network_fee": "Мрежова такса",
1336
+ "wc_not_verified": "Не е проверено",
1337
+ "wc_pairing_list_header_subtitle": "Свържете портфейла си с WalletConnect или управлявайте съществуващи приложения.",
1338
+ "wc_paste_link": "Поставете връзката WalletConnect",
1339
+ "wc_permission_other": "Друго: ${method}",
1340
+ "wc_permission_request_approval": "Поискайте одобрение за транзакции",
1341
+ "wc_permission_sign_messages": "Подписвайте съобщения и въведени данни",
1342
+ "wc_permission_switch_chains": "Превключете и добавете EVM вериги",
1343
+ "wc_permission_view_balance": "Вижте баланса и активността на вашия портфейл",
1344
+ "wc_scam_warning_message": "Тази заявка изглежда е от известна измама. Моля, продължете с повишено внимание.",
1345
+ "wc_scam_warning_title": "ПРЕДУПРЕЖДЕНИЕ!",
1346
+ "wc_scan_qr": "Сканирайте QR",
1347
+ "wc_sign_all_count": "Подпишете всички ${count} съобщения",
1348
+ "wc_signing_request_title": "Искане за подписване",
1349
+ "wc_swipe_to_approve": "Плъзнете, за да одобрите",
1350
+ "wc_swipe_to_sign": "Плъзнете, за да подпишете",
1351
+ "wc_verified": "Проверен",
1352
+ "wc_would_like_to_connect_to": "${name} иска да се свърже",
1353
+ "wc_would_like_to_sign": "${name} иска да подпише",
1354
"website": "Уебсайт",
1355
"welcome": "Добре дошли",
1356
"welcome_subtitle_new_wallet": "Ако искате да започнете начисто, докоснете „Създаване на нов портфейл“ по-долу и сте готови да започнете.",
res/values/strings_cs.arb
+25
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "Je vyžadováno oprávnění k fotoaparátu.\nPovolte ho v nastavení aplikace.",
157
"cancel": "Zrušit",
158
"cannot_manage_accounts_during_sync": "Nemůžete spravovat účty, dokud se peněženka stále synchronizuje. Zkuste to znovu později.",
159
- "cannot_verify": "Nelze ověřit",
160
- "cannot_verify_description": "Tuto doménu nelze ověřit. Před schválením pečlivě zkontrolujte požadavek.",
159
"card_address": "Adresa:",
160
"card_order_reset_desc": "Obnovit pořadí karet na výchozí nastavení?",
161
"card_style": "Styl karty",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "Vypnout optimalizaci baterie",
349
"disableBatteryOptimizationDescription": "Chcete deaktivovat optimalizaci baterie, aby synchronizace na pozadí běžela volněji a plynuleji?",
350
"disabled": "Zakázáno",
353
- "disconnect_session": "Odpojit relaci",
351
"discount": "Ušetřete ${value}%",
352
"dismiss": "Zavřít",
353
"display": "Zobrazení",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "Už to nezobrazovat",
360
"do_not_show_me": "Už mi to znovu nezobrazovat",
361
"domain_looks_up": "Vyhledávání domén",
365
- "domain_mismatch": "Neshoda domény",
366
- "domain_mismatch_description": "Tento web má doménu, která neodpovídá odesílateli této žádosti. Schválení může vést ke ztrátě prostředků.",
362
"donation": "Darování",
363
"donation_link_details": "Podrobnosti odkazu na darování",
364
"done": "Hotovo",
@@ -893,8 +888,6 @@
888
"second_intro_title": "Jedna emoji adresa, která vládne všem",
889
"security": "Zabezpečení",
890
"security_and_backup": "Zabezpečení a záloha",
896
- "security_risk": "Bezpečnostní riziko",
897
- "security_risk_description": "Tato doména je označena jako nebezpečná více poskytovateli zabezpečení. Okamžitě ji opusťte, abyste ochránili svá aktiva.",
891
"seed_alert_back": "Zpět",
892
"seed_alert_content": "Seed je jediný způsob, jak obnovit vaši peněženku. Zapsali jste si ho?",
893
"seed_alert_title": "Pozor",
@@ -1259,7 +1252,6 @@
1252
"unspent_coins_details_title": "Podrobnosti o neutracených mincích",
1253
"unspent_coins_title": "Neutratné mince",
1254
"unsupported_asset": "Tuto akci pro toto aktivum nepodporujeme. Vytvořte nebo přepněte na peněženku podporovaného typu aktiva.",
1262
- "update_session": "Aktualizovat relaci",
1255
"uptime": "Doba provozu",
1256
"upto": "až do ${value}",
1257
"usb": "USB",
@@ -1334,6 +1326,31 @@
1326
"walletConnect": "WalletConnect",
1327
"wallets": "Peněženky",
1328
"warning": "Varování",
1329
+ "wc_action_approve": "Schvalovat",
1330
+ "wc_approve_request_title": "Schválit žádost",
1331
+ "wc_connect_request_title": "Žádost o připojení",
1332
+ "wc_connected_to": "Připojeno k ${name}",
1333
+ "wc_max_network_fee": "Max síťový poplatek",
1334
+ "wc_message_to_sign": "Zpráva k podpisu",
1335
+ "wc_network_fee": "Síťový poplatek",
1336
+ "wc_not_verified": "Neověřeno",
1337
+ "wc_pairing_list_header_subtitle": "Propojte svou peněženku s WalletConnect nebo spravujte existující aplikace.",
1338
+ "wc_paste_link": "Vložte odkaz WalletConnect",
1339
+ "wc_permission_other": "Jiné: ${method}",
1340
+ "wc_permission_request_approval": "Požádejte o schválení transakcí",
1341
+ "wc_permission_sign_messages": "Podepisujte zprávy a zadaná data",
1342
+ "wc_permission_switch_chains": "Přepněte a přidejte řetězy EVM",
1343
+ "wc_permission_view_balance": "Prohlédněte si zůstatek a aktivitu v peněžence",
1344
+ "wc_scam_warning_message": "Zdá se, že tento požadavek pochází od známého podvodu. Postupujte prosím opatrně.",
1345
+ "wc_scam_warning_title": "VAROVÁNÍ!",
1346
+ "wc_scan_qr": "Naskenujte QR",
1347
+ "wc_sign_all_count": "Podepište všechny ${count} zprávy",
1348
+ "wc_signing_request_title": "Žádost o podpis",
1349
+ "wc_swipe_to_approve": "Schválení přejetím prstem",
1350
+ "wc_swipe_to_sign": "Podepište přejetím prstem",
1351
+ "wc_verified": "Ověřeno",
1352
+ "wc_would_like_to_connect_to": "${name} se chce připojit",
1353
+ "wc_would_like_to_sign": "${name} chce podepsat",
1354
"website": "Webová stránka",
1355
"welcome": "Vítejte",
1356
"welcome_subtitle_new_wallet": "Pokud chcete začít znovu, klepněte níže na Vytvořit novou peněženku a můžete vyrazit.",
res/values/strings_de.arb
+26
-9
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "Kameraberechtigung ist erforderlich.\nBitte aktivieren Sie sie in den App-Einstellungen.",
157
"cancel": "Abbrechen",
158
"cannot_manage_accounts_during_sync": "Sie können keine Konten verwalten, während die Wallet noch synchronisiert wird. Bitte versuchen Sie es später erneut.",
159
- "cannot_verify": "Kann nicht verifiziert werden",
160
- "cannot_verify_description": "Diese Domain kann nicht verifiziert werden. Überprüfen Sie die Anfrage sorgfältig, bevor Sie sie genehmigen.",
159
"card_address": "Adresse:",
160
"card_order_reset_desc": "Kartenreihenfolge auf die Standardeinstellungen zurücksetzen?",
161
"card_style": "Kartenstil",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "Batterieoptimierung deaktivieren",
349
"disableBatteryOptimizationDescription": "Möchten Sie die Batterieoptimierung deaktivieren, damit die Hintergrundsynchronisierung freier und reibungsloser laufen kann?",
350
"disabled": "Deaktiviert",
353
- "disconnect_session": "Sitzung trennen",
351
"discount": "${value}% sparen",
352
"dismiss": "Schließen",
353
"display": "Anzeige",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "Nicht mehr anzeigen",
360
"do_not_show_me": "Zeig mir das nicht noch einmal",
361
"domain_looks_up": "Domain-Abfragen",
365
- "domain_mismatch": "Domänenkonflikt",
366
- "domain_mismatch_description": "Diese Website hat eine Domain, die nicht mit dem Absender dieser Anfrage übereinstimmt. Eine Genehmigung kann zum Verlust von Guthaben führen.",
362
"donation": "Spende",
363
"donation_link_details": "Details zum Spendenlink",
364
"done": "Fertig",
@@ -749,8 +744,8 @@
744
"please_choose_one": "Bitte wählen Sie eine Option",
745
"please_fill_totp": "Bitte geben Sie den 8-stelligen Code ein, der auf Ihrem anderen Gerät angezeigt wird",
746
"please_make_selection": "Bitte treffen Sie unten eine Auswahl, um Ihre Wallet zu erstellen oder wiederherzustellen.",
752
- "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.",
747
"please_reference_document": "Bitte beachten Sie die untenstehenden Dokumente für weitere Informationen.",
748
+ "Please_reference_document": "Weitere Informationen finden Sie in den Dokumenten unten.",
749
"please_select": "Bitte auswählen:",
750
"please_select_backup_file": "Bitte wählen Sie eine Sicherungsdatei aus und geben Sie das Sicherungskennwort ein.",
751
"please_try_to_connect_to_another_node": "Bitte versuchen Sie, eine Verbindung zu einem anderen Node herzustellen",
@@ -894,8 +889,6 @@
889
"second_intro_title": "Eine Emoji-Adresse, um sie alle zu beherrschen",
890
"security": "Sicherheit",
891
"security_and_backup": "Sicherheit und Backup",
897
- "security_risk": "Sicherheitsrisiko",
898
- "security_risk_description": "Diese Domain wird von mehreren Sicherheitsanbietern als unsicher eingestuft. Verlassen Sie sie sofort, um Ihre Assets zu schützen.",
892
"seed_alert_back": "Zurück",
893
"seed_alert_content": "Der Seed ist die einzige Möglichkeit, Ihre Wallet wiederherzustellen. Haben Sie ihn aufgeschrieben?",
894
"seed_alert_title": "Achtung",
@@ -1261,7 +1254,6 @@
1254
"unspent_coins_details_title": "Details zu nicht ausgegebenen Coins",
1255
"unspent_coins_title": "Nicht ausgegebene Coins",
1256
"unsupported_asset": "Wir unterstützen diese Aktion für dieses Asset nicht. Bitte erstellen Sie eine Wallet mit einem unterstützten Asset-Typ oder wechseln Sie zu einer Wallet mit einem unterstützten Asset-Typ.",
1264
- "update_session": "Sitzung aktualisieren",
1257
"uptime": "Betriebszeit",
1258
"upto": "bis zu ${value}",
1259
"usb": "USB",
@@ -1338,6 +1330,31 @@
1330
"walletConnect": "WalletConnect",
1331
"wallets": "Wallets",
1332
"warning": "Warnung",
1333
+ "wc_action_approve": "Genehmigen",
1334
+ "wc_approve_request_title": "Anfrage genehmigen",
1335
+ "wc_connect_request_title": "Verbindungsanfrage",
1336
+ "wc_connected_to": "Verbunden mit ${name}",
1337
+ "wc_max_network_fee": "Maximale Netzwerkgebühr",
1338
+ "wc_message_to_sign": "Nachricht zum Unterschreiben",
1339
+ "wc_network_fee": "Netzwerkgebühr",
1340
+ "wc_not_verified": "Nicht verifiziert",
1341
+ "wc_pairing_list_header_subtitle": "Verbinden Sie Ihr Wallet mit WalletConnect oder verwalten Sie bestehende Apps.",
1342
+ "wc_paste_link": "Fügen Sie den WalletConnect-Link ein",
1343
+ "wc_permission_other": "Andere: ${method}",
1344
+ "wc_permission_request_approval": "Fordern Sie die Genehmigung für Transaktionen an",
1345
+ "wc_permission_sign_messages": "Signieren Sie Nachrichten und geben Sie Daten ein",
1346
+ "wc_permission_switch_chains": "EVM-Ketten wechseln und hinzufügen",
1347
+ "wc_permission_view_balance": "Sehen Sie sich den Kontostand und die Aktivität Ihres Geldbeutels an",
1348
+ "wc_scam_warning_message": "Diese Anfrage scheint von einem bekannten Betrug zu stammen. Bitte gehen Sie vorsichtig vor.",
1349
+ "wc_scam_warning_title": "WARNUNG!",
1350
+ "wc_scan_qr": "QR scannen",
1351
+ "wc_sign_all_count": "Signieren Sie alle ${count} Nachrichten",
1352
+ "wc_signing_request_title": "Signierungsanfrage",
1353
+ "wc_swipe_to_approve": "Zum Genehmigen wischen",
1354
+ "wc_swipe_to_sign": "Zum Signieren wischen",
1355
+ "wc_verified": "Verifiziert",
1356
+ "wc_would_like_to_connect_to": "${name} möchte eine Verbindung herstellen",
1357
+ "wc_would_like_to_sign": "${name} möchte unterschreiben",
1358
"website": "Website",
1359
"welcome": "Willkommen",
1360
"welcome_subtitle_new_wallet": "Wenn Sie neu anfangen möchten, tippen Sie unten auf „Neue Wallet erstellen“ und schon kann es losgehen.",
res/values/strings_en.arb
+25
-8
@@ -158,8 +158,6 @@
158
"camera_permission_is_required": "Camera permission is required. \nPlease enable it from app settings.",
159
"cancel": "Cancel",
160
"cannot_manage_accounts_during_sync": "You can't manage accounts while the wallet is still syncing. Please try again later.",
161
- "cannot_verify": "Cannot Verify",
162
- "cannot_verify_description": "This domain cannot be verified. Check the request carefully before approving.",
161
"card_address": "Address:",
162
"card_order_reset_desc": "Restore card order to default settings?",
163
"card_style": "Card style",
@@ -352,7 +350,6 @@
350
"disableBatteryOptimization": "Disable Battery Optimization",
351
"disableBatteryOptimizationDescription": "Do you want to disable battery optimization in order to make background sync run more freely and smoothly?",
352
"disabled": "Disabled",
355
- "disconnect_session": "Disconnect Session",
353
"discount": "Save ${value}%",
354
"dismiss": "Dismiss",
355
"display": "Display",
@@ -364,8 +361,6 @@
361
"do_not_show_anymore": "Don’t show this anymore",
362
"do_not_show_me": "Do not show me this again",
363
"domain_looks_up": "Domain lookups",
367
- "domain_mismatch": "Domain Mismatch",
368
- "domain_mismatch_description": "This website has a domain that does not match the sender of this request. Approving may lead to loss of funds.",
364
"donation": "Donation",
365
"donation_link_details": "Donation link details",
366
"done": "Done",
@@ -898,8 +893,6 @@
893
"second_intro_title": "One emoji address to rule them all",
894
"security": "Security",
895
"security_and_backup": "Security and backup",
901
- "security_risk": "Security Risk",
902
- "security_risk_description": "This domain is flagged as unsafe by multiple security providers. Leave immediately to protect your assets.",
896
"seed_alert_back": "Go back",
897
"seed_alert_content": "The seed is the only way to recover your wallet. Have you written it down?",
898
"seed_alert_title": "Attention",
@@ -1266,7 +1259,6 @@
1259
"unspent_coins_details_title": "Unspent coins details",
1260
"unspent_coins_title": "Unspent coins",
1261
"unsupported_asset": "We don't support this action for this asset. Please create or switch to a wallet of a supported asset type.",
1269
- "update_session": "Update Session",
1262
"uptime": "Uptime",
1263
"upto": "up to ${value}",
1264
"usb": "USB",
@@ -1343,6 +1335,31 @@
1335
"walletConnect": "WalletConnect",
1336
"wallets": "Wallets",
1337
"warning": "Warning",
1338
+ "wc_action_approve": "Approve",
1339
+ "wc_approve_request_title": "Approve request",
1340
+ "wc_connect_request_title": "Connect request",
1341
+ "wc_connected_to": "Connected to ${name}",
1342
+ "wc_max_network_fee": "Max network fee",
1343
+ "wc_message_to_sign": "Message to sign",
1344
+ "wc_network_fee": "Network fee",
1345
+ "wc_not_verified": "Not Verified",
1346
+ "wc_pairing_list_header_subtitle": "Connect your wallet with WalletConnect or manage existing apps.",
1347
+ "wc_paste_link": "Paste WalletConnect link",
1348
+ "wc_permission_other": "Other: ${method}",
1349
+ "wc_permission_request_approval": "Request approval for transactions",
1350
+ "wc_permission_sign_messages": "Sign messages and typed data",
1351
+ "wc_permission_switch_chains": "Switch and add EVM chains",
1352
+ "wc_permission_view_balance": "View your wallet balance and activity",
1353
+ "wc_scam_warning_message": "This request appears to be from a known scam. Please proceed with caution.",
1354
+ "wc_scam_warning_title": "WARNING!",
1355
+ "wc_scan_qr": "Scan QR",
1356
+ "wc_sign_all_count": "Sign all ${count} messages",
1357
+ "wc_signing_request_title": "Signing request",
1358
+ "wc_swipe_to_approve": "Swipe to approve",
1359
+ "wc_swipe_to_sign": "Swipe to sign",
1360
+ "wc_verified": "Verified",
1361
+ "wc_would_like_to_connect_to": "${name} would like to connect",
1362
+ "wc_would_like_to_sign": "${name} would like to sign",
1363
"website": "Website",
1364
"welcome": "Welcome",
1365
"welcome_subtitle_new_wallet": "If you want to start fresh, tap Create New Wallet below and you'll be off to the races.",
res/values/strings_es.arb
+25
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "Se requiere permiso para usar la cámara.\nActívalo en la configuración de la aplicación.",
157
"cancel": "Cancelar",
158
"cannot_manage_accounts_during_sync": "No puedes administrar cuentas mientras la billetera aún se está sincronizando. Por favor, inténtalo de nuevo más tarde.",
159
- "cannot_verify": "No se puede verificar",
160
- "cannot_verify_description": "Este dominio no se puede verificar. Revisa la solicitud detenidamente antes de aprobar.",
159
"card_address": "Dirección:",
160
"card_order_reset_desc": "¿Restaurar el orden de las tarjetas a la configuración predeterminada?",
161
"card_style": "Estilo de tarjeta",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "Desactivar la optimización de batería",
349
"disableBatteryOptimizationDescription": "¿Desea desactivar la optimización de la batería para que la sincronización en segundo plano se ejecute de forma más libre y fluida?",
350
"disabled": "Desactivado",
353
- "disconnect_session": "Desconectar sesión",
351
"discount": "Ahorra ${value}%",
352
"dismiss": "Descartar",
353
"display": "Pantalla",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "No volver a mostrar esto",
360
"do_not_show_me": "No me lo muestres de nuevo",
361
"domain_looks_up": "Búsquedas de dominios",
365
- "domain_mismatch": "Discordancia de dominio",
366
- "domain_mismatch_description": "Este sitio web tiene un dominio que no coincide con el remitente de esta solicitud. Aprobarlo podría provocar la pérdida de fondos.",
362
"donation": "Donación",
363
"donation_link_details": "Detalles del enlace de donación",
364
"done": "Listo",
@@ -894,8 +889,6 @@
889
"second_intro_title": "Una dirección de emoji para gobernarlas a todas",
890
"security": "Seguridad",
891
"security_and_backup": "Seguridad y copia de seguridad",
897
- "security_risk": "Riesgo de seguridad",
898
- "security_risk_description": "Este dominio ha sido marcado como inseguro por varios proveedores de seguridad. Salga inmediatamente para proteger sus activos.",
892
"seed_alert_back": "Volver",
893
"seed_alert_content": "La semilla es la única forma de recuperar tu billetera. ¿La has escrito?",
894
"seed_alert_title": "Atención",
@@ -1260,7 +1253,6 @@
1253
"unspent_coins_details_title": "Detalles de monedas sin gastar",
1254
"unspent_coins_title": "Monedas no gastadas",
1255
"unsupported_asset": "No se admite esta acción para este activo. Por favor, crea o cambia a una billetera de un tipo de activo compatible.",
1263
- "update_session": "Actualizar sesión",
1256
"uptime": "Tiempo de actividad",
1257
"upto": "hasta ${value}",
1258
"usb": "USB",
@@ -1335,6 +1327,31 @@
1327
"walletConnect": "WalletConnect",
1328
"wallets": "Carteras",
1329
"warning": "Advertencia",
1330
+ "wc_action_approve": "Aprobar",
1331
+ "wc_approve_request_title": "Aprobar solicitud",
1332
+ "wc_connect_request_title": "Solicitud de conexión",
1333
+ "wc_connected_to": "Conectado a ${name}",
1334
+ "wc_max_network_fee": "Tarifa máxima de red",
1335
+ "wc_message_to_sign": "Mensaje para firmar",
1336
+ "wc_network_fee": "Tarifa de red",
1337
+ "wc_not_verified": "No verificado",
1338
+ "wc_pairing_list_header_subtitle": "Conecte su billetera con WalletConnect o administre aplicaciones existentes.",
1339
+ "wc_paste_link": "Pegar enlace de WalletConnect",
1340
+ "wc_permission_other": "Otro: ${method}",
1341
+ "wc_permission_request_approval": "Solicitar aprobación para transacciones",
1342
+ "wc_permission_sign_messages": "Firmar mensajes y datos escritos",
1343
+ "wc_permission_switch_chains": "Cambie y agregue cadenas EVM",
1344
+ "wc_permission_view_balance": "Ver el saldo y la actividad de su billetera",
1345
+ "wc_scam_warning_message": "Esta solicitud parece provenir de una estafa conocida. Proceda con precaución.",
1346
+ "wc_scam_warning_title": "¡ADVERTENCIA!",
1347
+ "wc_scan_qr": "Escanear QR",
1348
+ "wc_sign_all_count": "Firmar todos los mensajes de ${count}",
1349
+ "wc_signing_request_title": "Solicitud de firma",
1350
+ "wc_swipe_to_approve": "Desliza para aprobar",
1351
+ "wc_swipe_to_sign": "Desliza para firmar",
1352
+ "wc_verified": "Verificado",
1353
+ "wc_would_like_to_connect_to": "${name} desea conectarse",
1354
+ "wc_would_like_to_sign": "${name} quiere firmar",
1355
"website": "Sitio web",
1356
"welcome": "Bienvenido",
1357
"welcome_only": "Bienvenido",
res/values/strings_fa.arb
+25
-8
@@ -154,8 +154,6 @@
154
"camera_permission_is_required": "مجوز دسترسی به دوربین الزامی است.\nلطفاً آن را از تنظیمات برنامه فعال کنید.",
155
"cancel": "لغو",
156
"cannot_manage_accounts_during_sync": "در حالی که کیف پول هنوز در حال همگامسازی است، نمیتوانید حسابها را مدیریت کنید. لطفاً بعداً دوباره امتحان کنید.",
157
- "cannot_verify": "امکان تأیید نیست",
158
- "cannot_verify_description": "این دامنه قابل تأیید نیست.\nپیش از تأیید، درخواست را با دقت بررسی کنید.",
157
"card_address": "آدرس:",
158
"card_order_reset_desc": "ترتیب کارتها به تنظیمات پیشفرض بازگردانده شود؟",
159
"card_style": "سبک کارت",
@@ -348,7 +346,6 @@
346
"disableBatteryOptimization": "غیرفعال کردن بهینهسازی باتری",
347
"disableBatteryOptimizationDescription": "آیا میخواهید بهینهسازی باتری را غیرفعال کنید تا همگامسازی در پسزمینه آزادتر و روانتر اجرا شود؟",
348
"disabled": "غیرفعال",
351
- "disconnect_session": "قطع اتصال جلسه",
349
"discount": "${value}% صرفهجویی",
350
"dismiss": "بستن",
351
"display": "نمایش",
@@ -360,8 +357,6 @@
357
"do_not_show_anymore": "دیگر این را نشان نده",
358
"do_not_show_me": "این را دوباره نشان ندهید",
359
"domain_looks_up": "جستجوهای دامنه",
363
- "domain_mismatch": "عدم تطابق دامنه",
364
- "domain_mismatch_description": "این وبسایت دامنهای دارد که با فرستندهٔ این درخواست مطابقت ندارد.\nتأیید آن ممکن است منجر به از دست رفتن داراییها شود.",
360
"donation": "کمک مالی",
361
"donation_link_details": "جزئیات لینک اهدایی",
362
"done": "انجام شد",
@@ -892,8 +887,6 @@
887
"second_intro_title": "یک آدرس ایموجی برای حکمرانی بر همه",
888
"security": "امنیت",
889
"security_and_backup": "امنیت و پشتیبانگیری",
895
- "security_risk": "ریسک امنیتی",
896
- "security_risk_description": "این دامنه توسط چندین ارائهدهندهٔ امنیتی بهعنوان ناامن علامتگذاری شده است.\nبرای محافظت از داراییهای خود فوراً از آن خارج شوید.",
890
"seed_alert_back": "بازگشت",
891
"seed_alert_content": "عبارت بازیابی تنها راه بازیابی کیف پول شماست.\nآیا آن را یادداشت کردهاید؟",
892
"seed_alert_title": "توجه",
@@ -1257,7 +1250,6 @@
1250
"unspent_coins_details_title": "جزئیات کوینهای خرجنشده",
1251
"unspent_coins_title": "کوینهای خرجنشده",
1252
"unsupported_asset": "ما از انجام این اقدام برای این دارایی پشتیبانی نمیکنیم.\nلطفاً یک کیف پول از نوع داراییِ پشتیبانیشده ایجاد کنید یا به کیف پولی با نوع داراییِ پشتیبانیشده تغییر دهید.",
1260
- "update_session": "بهروزرسانی نشست",
1253
"uptime": "زمان فعالیت",
1254
"upto": "تا ${value}",
1255
"usb": "USB",
@@ -1331,6 +1323,31 @@
1323
"walletConnect": "WalletConnect",
1324
"wallets": "کیف پولها",
1325
"warning": "هشدار",
1326
+ "wc_action_approve": "تایید کنید",
1327
+ "wc_approve_request_title": "درخواست را تایید کنید",
1328
+ "wc_connect_request_title": "درخواست اتصال",
1329
+ "wc_connected_to": "متصل به ${name}",
1330
+ "wc_max_network_fee": "حداکثر هزینه شبکه",
1331
+ "wc_message_to_sign": "برای امضا پیام دهید",
1332
+ "wc_network_fee": "هزینه شبکه",
1333
+ "wc_not_verified": "تایید نشده است",
1334
+ "wc_pairing_list_header_subtitle": "کیف پول خود را با WalletConnect وصل کنید یا برنامه های موجود را مدیریت کنید.",
1335
+ "wc_paste_link": "پیوند WalletConnect را جایگذاری کنید",
1336
+ "wc_permission_other": "موارد دیگر: ${method}",
1337
+ "wc_permission_request_approval": "درخواست تایید برای معاملات",
1338
+ "wc_permission_sign_messages": "پیام ها و داده های تایپ شده را امضا کنید",
1339
+ "wc_permission_switch_chains": "زنجیره های EVM را تغییر دهید و اضافه کنید",
1340
+ "wc_permission_view_balance": "موجودی و فعالیت کیف پول خود را مشاهده کنید",
1341
+ "wc_scam_warning_message": "به نظر می رسد این درخواست از یک کلاهبرداری شناخته شده باشد. لطفا با احتیاط ادامه دهید",
1342
+ "wc_scam_warning_title": "هشدار!",
1343
+ "wc_scan_qr": "اسکن QR",
1344
+ "wc_sign_all_count": "همه پیامهای ${count} را امضا کنید",
1345
+ "wc_signing_request_title": "درخواست امضا",
1346
+ "wc_swipe_to_approve": "برای تأیید، انگشت خود را بکشید",
1347
+ "wc_swipe_to_sign": "برای امضا، انگشت خود را بکشید",
1348
+ "wc_verified": "تایید شده است",
1349
+ "wc_would_like_to_connect_to": "${name} مایل به اتصال است",
1350
+ "wc_would_like_to_sign": "${name} میخواهد امضا کند",
1351
"website": "وبسایت",
1352
"welcome": "خوش آمدید",
1353
"welcome_subtitle_new_wallet": "اگر میخواهید از نو شروع کنید، روی «ایجاد کیف پول جدید» در پایین بزنید و آمادهاید شروع کنید.",
res/values/strings_fr.arb
+25
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "L'autorisation d'accéder à la caméra est requise.\nVeuillez l'activer dans les paramètres de l'application.",
157
"cancel": "Annuler",
158
"cannot_manage_accounts_during_sync": "Vous ne pouvez pas gérer les comptes tant que le portefeuille est en cours de synchronisation. Veuillez réessayer plus tard.",
159
- "cannot_verify": "Impossible de vérifier",
160
- "cannot_verify_description": "Ce domaine ne peut pas être vérifié. Vérifiez attentivement la demande avant d'approuver.",
159
"card_address": "Adresse :",
160
"card_order_reset_desc": "Rétablir l’ordre des cartes aux paramètres par défaut ?",
161
"card_style": "Style de carte",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "Désactiver l'optimisation de la batterie",
349
"disableBatteryOptimizationDescription": "Voulez-vous désactiver l'optimisation de la batterie afin que la synchronisation en arrière-plan s'exécute plus librement et plus fluidement ?",
350
"disabled": "Désactivé",
353
- "disconnect_session": "Déconnecter la session",
351
"discount": "Économisez ${value} %",
352
"dismiss": "Ignorer",
353
"display": "Affichage",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "Ne plus afficher",
360
"do_not_show_me": "Ne plus me montrer ceci",
361
"domain_looks_up": "Recherches de domaine",
365
- "domain_mismatch": "Incohérence de domaine",
366
- "domain_mismatch_description": "Ce site Web utilise un domaine qui ne correspond pas à l'expéditeur de cette requête. L'approbation peut entraîner une perte de fonds.",
362
"donation": "Don",
363
"donation_link_details": "Détails du lien de don",
364
"done": "Terminé",
@@ -893,8 +888,6 @@
888
"second_intro_title": "Une adresse emoji pour toutes les gouverner",
889
"security": "Sécurité",
890
"security_and_backup": "Sécurité et sauvegarde",
896
- "security_risk": "Risque de sécurité",
897
- "security_risk_description": "Ce domaine est signalé comme non sécurisé par plusieurs fournisseurs de sécurité. Quittez-le immédiatement pour protéger vos actifs.",
891
"seed_alert_back": "Retour",
892
"seed_alert_content": "La phrase de récupération (seed) est le seul moyen de récupérer votre portefeuille (wallet). L'avez-vous notée ?",
893
"seed_alert_title": "Attention",
@@ -1259,7 +1252,6 @@
1252
"unspent_coins_details_title": "Détails des coins non dépensés",
1253
"unspent_coins_title": "Coins non dépensées",
1254
"unsupported_asset": "Nous ne prenons pas en charge cette action pour cet actif. Veuillez créer ou passer à un portefeuille d’un type d’actif pris en charge.",
1262
- "update_session": "Mettre à jour la session",
1255
"uptime": "Temps de disponibilité",
1256
"upto": "jusqu’à ${value}",
1257
"usb": "USB",
@@ -1334,6 +1326,31 @@
1326
"walletConnect": "WalletConnect",
1327
"wallets": "Portefeuilles",
1328
"warning": "Avertissement",
1329
+ "wc_action_approve": "Approuver",
1330
+ "wc_approve_request_title": "Approuver la demande",
1331
+ "wc_connect_request_title": "Demande de connexion",
1332
+ "wc_connected_to": "Connecté à ${name}",
1333
+ "wc_max_network_fee": "Frais de réseau maximum",
1334
+ "wc_message_to_sign": "Message à signer",
1335
+ "wc_network_fee": "Frais de réseau",
1336
+ "wc_not_verified": "Non vérifié",
1337
+ "wc_pairing_list_header_subtitle": "Connectez votre portefeuille avec WalletConnect ou gérez les applications existantes.",
1338
+ "wc_paste_link": "Coller le lien WalletConnect",
1339
+ "wc_permission_other": "Autre : ${method}",
1340
+ "wc_permission_request_approval": "Demander l'approbation des transactions",
1341
+ "wc_permission_sign_messages": "Signer les messages et les données saisies",
1342
+ "wc_permission_switch_chains": "Changer et ajouter des chaînes EVM",
1343
+ "wc_permission_view_balance": "Consultez le solde et l'activité de votre portefeuille",
1344
+ "wc_scam_warning_message": "Cette demande semble provenir d'une arnaque connue. Veuillez procéder avec prudence.",
1345
+ "wc_scam_warning_title": "AVERTISSEMENT!",
1346
+ "wc_scan_qr": "Scanner le QR",
1347
+ "wc_sign_all_count": "Signer tous les ${count} messages",
1348
+ "wc_signing_request_title": "Demande de signature",
1349
+ "wc_swipe_to_approve": "Glissez pour approuver",
1350
+ "wc_swipe_to_sign": "Glissez pour signer",
1351
+ "wc_verified": "Vérifié",
1352
+ "wc_would_like_to_connect_to": "${name} souhaite se connecter",
1353
+ "wc_would_like_to_sign": "${name} aimerait signer",
1354
"website": "Site web",
1355
"welcome": "Bienvenue",
1356
"welcome_subtitle_new_wallet": "Si vous souhaitez repartir de zéro, appuyez sur Créer un nouveau portefeuille ci-dessous et vous serez prêt à démarrer.",
res/values/strings_gn.arb
+25
@@ -1078,6 +1078,31 @@
1078
"walletConnect": "WalletConnect",
1079
"wallets": "Billetera kuéra",
1080
"warning": "Kyhyje",
1081
+ "wc_action_approve": "Hasapyre",
1082
+ "wc_approve_request_title": "Omoneĩ mba’ejerure",
1083
+ "wc_connect_request_title": "Ombojoaju mba’ejerure",
1084
+ "wc_connected_to": "Oñembojoaju ${name} ndive.",
1085
+ "wc_max_network_fee": "Max cuota red rehegua",
1086
+ "wc_message_to_sign": "Marandu ofirma haguã",
1087
+ "wc_network_fee": "Cuota de red rehegua",
1088
+ "wc_not_verified": "Ndojehechái",
1089
+ "wc_pairing_list_header_subtitle": "Embojoaju ne billetera WalletConnect ndive térã emohenda umi aplicación oĩmava.",
1090
+ "wc_paste_link": "Pega WalletConnect enlace rehegua",
1091
+ "wc_permission_other": "Ambue: ${method}.",
1092
+ "wc_permission_request_approval": "Ojerure aprobación umi transacción rehegua",
1093
+ "wc_permission_sign_messages": "Marandu ofirma ha dato ojehaipyréva",
1094
+ "wc_permission_switch_chains": "Embohasa ha emoĩve umi cadena EVM rehegua",
1095
+ "wc_permission_view_balance": "Ehecha nde billetera saldo ha actividad",
1096
+ "wc_scam_warning_message": "Ko pedido ojekuaa oúha peteî estafa ojekuaávagui. Por favor, peprocede ñeñangareko reheve.",
1097
+ "wc_scam_warning_title": "ÑEMONGYHYJE!",
1098
+ "wc_scan_qr": "Escanear QR",
1099
+ "wc_sign_all_count": "Efirma opaite ${count} marandu",
1100
+ "wc_signing_request_title": "Ofirma pedido",
1101
+ "wc_swipe_to_approve": "Emboguejy emoneĩ hag̃ua",
1102
+ "wc_swipe_to_sign": "Emboguejy eñefirma hag̃ua",
1103
+ "wc_verified": "Ojehecháma",
1104
+ "wc_would_like_to_connect_to": "${name} oñembojoajuse",
1105
+ "wc_would_like_to_sign": "${name} ofirmase",
1106
"welcome": "Tapeguahẽ porãite",
1107
"welcome_to_cakepay": "¡Eg̃uahẽporãite Cake Pay-pe!",
1108
"what_is_silent_payments": "¿Mbaʼépa hína Jehepymeʼẽ Kirirĩva?",
res/values/strings_ha.arb
+25
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "Ana buƙatar izinin kyamara.\nDa fatan za a ba da izini daga saitunan manhaja.",
157
"cancel": "Soke",
158
"cannot_manage_accounts_during_sync": "Ba za ka iya sarrafa asusu ba yayin da walat ɗin ke ci gaba da daidaitawa. Da fatan za a sake gwadawa daga baya.",
159
- "cannot_verify": "Ba a iya tabbatarwa",
160
- "cannot_verify_description": "Ba za a iya tabbatar da wannan yanki ba. Duba buƙatar a hankali kafin amincewa.",
159
"card_address": "Adireshi:",
160
"card_order_reset_desc": "Mayar da jerin katin zuwa saitunan tsoho?",
161
"card_style": "Salon kati",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "Kashe inganta amfani da baturi",
349
"disableBatteryOptimizationDescription": "Kana so ka kashe inganta amfani da baturi domin daidaitawar bayan-fage ta yi aiki cikin 'yanci kuma cikin santsi?",
350
"disabled": "An kashe",
353
- "disconnect_session": "Cire haɗin zaman",
351
"discount": "Ajiye ${value}%",
352
"dismiss": "Rufe",
353
"display": "Nuni",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "Kada a sake nuna wannan",
360
"do_not_show_me": "Kada a sake nuna min wannan",
361
"domain_looks_up": "Binciken yankuna",
365
- "domain_mismatch": "Rashin Daidaiton Domain",
366
- "domain_mismatch_description": "Wannan rukunin yanar gizon yana da yanki (domain) da bai dace da mai aiko da wannan buƙatar ba. Amincewa na iya haifar da asarar kuɗaɗe.",
362
"donation": "Gudummawa",
363
"donation_link_details": "Cikakkun bayanan hanyar bayar da gudummawa",
364
"done": "An gama",
@@ -895,8 +890,6 @@
890
"second_intro_title": "Adireshin emoji ɗaya don mulkin su duka",
891
"security": "Tsaro",
892
"security_and_backup": "Tsaro da ajiyar bayanai",
898
- "security_risk": "Haɗarin Tsaro",
899
- "security_risk_description": "Masu samar da tsaro da dama sun yi wa wannan yankin alama a matsayin mara aminci. Bar nan take don kare kadarorinka.",
893
"seed_alert_back": "Komawa baya",
894
"seed_alert_content": "Seed ɗin ita ce hanya ɗaya tilo ta dawo da walat ɗin ku. Kun rubuta ta?",
895
"seed_alert_title": "Hankali",
@@ -1261,7 +1254,6 @@
1254
"unspent_coins_details_title": "Cikakkun bayanan tsabar kuɗi da ba a kashe ba",
1255
"unspent_coins_title": "Tsabar kuɗi da ba a kashe ba",
1256
"unsupported_asset": "Ba mu goyi bayan wannan aikin ga wannan kadara ba. Da fatan za a ƙirƙiri ko canza zuwa walat na nau'in kadara da ake tallafawa.",
1264
- "update_session": "Sabunta Zama",
1257
"uptime": "Lokacin aiki",
1258
"upto": "har zuwa ${value}",
1259
"usb": "USB",
@@ -1336,6 +1328,31 @@
1328
"walletConnect": "WalletConnect",
1329
"wallets": "Walati",
1330
"warning": "Gargaɗi",
1331
+ "wc_action_approve": "Amincewa",
1332
+ "wc_approve_request_title": "Amincewa da buƙata",
1333
+ "wc_connect_request_title": "Buƙatar haɗin kai",
1334
+ "wc_connected_to": "An haɗa zuwa ${name}",
1335
+ "wc_max_network_fee": "Matsakaicin kuɗin hanyar sadarwa",
1336
+ "wc_message_to_sign": "Saƙo don sa hannu",
1337
+ "wc_network_fee": "Kudin hanyar sadarwa",
1338
+ "wc_not_verified": "Ba a Tabbatarwa ba",
1339
+ "wc_pairing_list_header_subtitle": "Haɗa walat ɗin ku tare da WalletConnect ko sarrafa ƙa'idodin da ke akwai.",
1340
+ "wc_paste_link": "Manna hanyar haɗin WalletConnect",
1341
+ "wc_permission_other": "Wani: ${method}",
1342
+ "wc_permission_request_approval": "Nemi izini don ma'amaloli",
1343
+ "wc_permission_sign_messages": "Sa hannu kan saƙonni da rubutattun bayanai",
1344
+ "wc_permission_switch_chains": "Canja kuma ƙara sarƙoƙin EVM",
1345
+ "wc_permission_view_balance": "Duba ma'auni na walat ɗin ku da aiki",
1346
+ "wc_scam_warning_message": "Wannan buƙatar ta bayyana daga wata zamba da aka sani. Da fatan za a ci gaba da taka tsantsan.",
1347
+ "wc_scam_warning_title": "GARGADI!",
1348
+ "wc_scan_qr": "Duba QR",
1349
+ "wc_sign_all_count": "Shiga duk saƙon ${count}",
1350
+ "wc_signing_request_title": "Bukatar sa hannu",
1351
+ "wc_swipe_to_approve": "Dokewa don amincewa",
1352
+ "wc_swipe_to_sign": "Danna don sa hannu",
1353
+ "wc_verified": "Tabbatarwa",
1354
+ "wc_would_like_to_connect_to": "${name} yana son haɗi",
1355
+ "wc_would_like_to_sign": "${name} na son sanya hannu",
1356
"website": "Yanar gizo",
1357
"welcome": "Barka da zuwa",
1358
"welcome_only": "Barka da zuwa",
res/values/strings_hi.arb
+25
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "कैमरा अनुमति आवश्यक है।\nकृपया इसे ऐप सेटिंग्स में सक्षम करें।",
157
"cancel": "रद्द करें",
158
"cannot_manage_accounts_during_sync": "जब वॉलेट अभी भी सिंक हो रहा हो, तब आप खातों का प्रबंधन नहीं कर सकते। कृपया बाद में फिर से प्रयास करें।",
159
- "cannot_verify": "सत्यापित नहीं किया जा सकता",
160
- "cannot_verify_description": "इस डोमेन को सत्यापित नहीं किया जा सकता। अनुमोदन करने से पहले अनुरोध को ध्यान से जाँचें।",
159
"card_address": "पता:",
160
"card_order_reset_desc": "कार्ड क्रम को डिफ़ॉल्ट सेटिंग्स पर रीसेट करें?",
161
"card_style": "कार्ड शैली",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "बैटरी ऑप्टिमाइज़ेशन अक्षम करें",
349
"disableBatteryOptimizationDescription": "क्या आप बैकग्राउंड सिंक को अधिक स्वतंत्र और सुचारू रूप से चलाने के लिए बैटरी ऑप्टिमाइज़ेशन को बंद करना चाहते हैं?",
350
"disabled": "अक्षम",
353
- "disconnect_session": "सत्र डिस्कनेक्ट करें",
351
"discount": "${value}% बचाएं",
352
"dismiss": "खारिज करें",
353
"display": "डिस्प्ले",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "इसे फिर से न दिखाएँ",
360
"do_not_show_me": "मुझे यह फिर से न दिखाएँ",
361
"domain_looks_up": "डोमेन लुकअप",
365
- "domain_mismatch": "डोमेन मेल नहीं खाता",
366
- "domain_mismatch_description": "इस वेबसाइट का डोमेन इस अनुरोध के प्रेषक से मेल नहीं खाता। अनुमोदन करने पर धन की हानि हो सकती है।",
362
"donation": "दान",
363
"donation_link_details": "डोनेशन लिंक विवरण",
364
"done": "पूर्ण",
@@ -895,8 +890,6 @@
890
"second_intro_title": "सब पर राज करने के लिए एक इमोजी पता",
891
"security": "सुरक्षा",
892
"security_and_backup": "सुरक्षा और बैकअप",
898
- "security_risk": "सुरक्षा जोखिम",
899
- "security_risk_description": "इस डोमेन को कई सुरक्षा प्रदाताओं द्वारा असुरक्षित के रूप में चिह्नित किया गया है। अपनी संपत्तियों की सुरक्षा के लिए तुरंत यहाँ से निकल जाएँ।",
893
"seed_alert_back": "वापस जाएँ",
894
"seed_alert_content": "सीड आपके वॉलेट को रिकवर करने का एकमात्र तरीका है। क्या आपने इसे लिख लिया है?",
895
"seed_alert_title": "ध्यान दें",
@@ -1261,7 +1254,6 @@
1254
"unspent_coins_details_title": "अव्ययित कॉइन्स का विवरण",
1255
"unspent_coins_title": "अव्ययित सिक्के",
1256
"unsupported_asset": "हम इस एसेट के लिए इस कार्रवाई का समर्थन नहीं करते हैं। कृपया समर्थित एसेट प्रकार का वॉलेट बनाएं या उस पर स्विच करें।",
1264
- "update_session": "सत्र अपडेट करें",
1257
"uptime": "अपटाइम",
1258
"upto": "${value} तक",
1259
"usb": "USB",
@@ -1336,6 +1328,31 @@
1328
"walletConnect": "WalletConnect",
1329
"wallets": "वॉलेट्स",
1330
"warning": "चेतावनी",
1331
+ "wc_action_approve": "मंज़ूरी देना",
1332
+ "wc_approve_request_title": "अनुरोध स्वीकृत करें",
1333
+ "wc_connect_request_title": "कनेक्ट अनुरोध",
1334
+ "wc_connected_to": "${name} से कनेक्टेड",
1335
+ "wc_max_network_fee": "अधिकतम नेटवर्क शुल्क",
1336
+ "wc_message_to_sign": "हस्ताक्षर करने के लिए संदेश",
1337
+ "wc_network_fee": "नेटवर्क शुल्क",
1338
+ "wc_not_verified": "सत्यापित नहीं है",
1339
+ "wc_pairing_list_header_subtitle": "अपने वॉलेट को वॉलेटकनेक्ट से कनेक्ट करें या मौजूदा ऐप्स प्रबंधित करें।",
1340
+ "wc_paste_link": "वॉलेटकनेक्ट लिंक चिपकाएँ",
1341
+ "wc_permission_other": "अन्य: ${method}",
1342
+ "wc_permission_request_approval": "लेन-देन के लिए अनुमोदन का अनुरोध करें",
1343
+ "wc_permission_sign_messages": "संदेशों पर हस्ताक्षर करें और डेटा टाइप करें",
1344
+ "wc_permission_switch_chains": "स्विच करें और ईवीएम चेन जोड़ें",
1345
+ "wc_permission_view_balance": "अपना बटुआ शेष और गतिविधि देखें",
1346
+ "wc_scam_warning_message": "ऐसा प्रतीत होता है कि यह अनुरोध किसी ज्ञात घोटाले से आया है। कृपया सावधानी से आगे बढ़ें.",
1347
+ "wc_scam_warning_title": "चेतावनी!",
1348
+ "wc_scan_qr": "QR स्कैन करें",
1349
+ "wc_sign_all_count": "सभी ${count} संदेशों पर हस्ताक्षर करें",
1350
+ "wc_signing_request_title": "अनुरोध पर हस्ताक्षर",
1351
+ "wc_swipe_to_approve": "स्वीकृत करने के लिए स्वाइप करें",
1352
+ "wc_swipe_to_sign": "हस्ताक्षर करने के लिए स्वाइप करें",
1353
+ "wc_verified": "सत्यापित",
1354
+ "wc_would_like_to_connect_to": "${name} कनेक्ट करना चाहेंगे",
1355
+ "wc_would_like_to_sign": "${name} हस्ताक्षर करना चाहेंगे",
1356
"website": "वेबसाइट",
1357
"welcome": "स्वागत है",
1358
"welcome_subtitle_new_wallet": "यदि आप नए सिरे से शुरू करना चाहते हैं, तो नीचे \"नया वॉलेट बनाएं\" पर टैप करें और आप तुरंत शुरू कर देंगे।",
res/values/strings_hr.arb
+25
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "Potrebno je dopuštenje za kameru.\nOmogućite ga u postavkama aplikacije.",
157
"cancel": "Odustani",
158
"cannot_manage_accounts_during_sync": "Ne možete upravljati računima dok se novčanik još sinkronizira. Pokušajte ponovno kasnije.",
159
- "cannot_verify": "Nije moguće provjeriti",
160
- "cannot_verify_description": "Ovu domenu nije moguće provjeriti. Pažljivo provjerite zahtjev prije nego što ga odobrite.",
159
"card_address": "Adresa:",
160
"card_order_reset_desc": "Vratiti redoslijed kartica na zadane postavke?",
161
"card_style": "Stil kartice",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "Onemogući optimizaciju baterije",
349
"disableBatteryOptimizationDescription": "Želite li onemogućiti optimizaciju baterije kako bi se pozadinska sinkronizacija odvijala slobodnije i glatko?",
350
"disabled": "Onemogućeno",
353
- "disconnect_session": "Odspoji sesiju",
351
"discount": "Uštedite ${value}%",
352
"dismiss": "Odbaci",
353
"display": "Prikaz",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "Ne prikazuj ovo više",
360
"do_not_show_me": "Ne prikazuj mi ovo više",
361
"domain_looks_up": "Pretrage domena",
365
- "domain_mismatch": "Nepodudaranje domene",
366
- "domain_mismatch_description": "Ova web-stranica ima domenu koja se ne podudara s pošiljateljem ovog zahtjeva. Odobravanje može dovesti do gubitka sredstava.",
362
"donation": "Donacija",
363
"donation_link_details": "Detalji poveznice za donacije",
364
"done": "Gotovo",
@@ -893,8 +888,6 @@
888
"second_intro_title": "Jedna emoji adresa koja će svima vladati",
889
"security": "Sigurnost",
890
"security_and_backup": "Sigurnost i sigurnosna kopija",
896
- "security_risk": "Sigurnosni rizik",
897
- "security_risk_description": "Ova je domena označena kao nesigurna od strane više pružatelja sigurnosnih usluga. Odmah napustite stranicu kako biste zaštitili svoju imovinu.",
891
"seed_alert_back": "Natrag",
892
"seed_alert_content": "Seed fraza jedini je način za oporavak vašeg novčanika. Jeste li je zapisali?",
893
"seed_alert_title": "Pažnja",
@@ -1259,7 +1252,6 @@
1252
"unspent_coins_details_title": "Detalji nepotrošenih novčića",
1253
"unspent_coins_title": "Nepotrošeni novčići",
1254
"unsupported_asset": "Ne podržavamo ovu radnju za ovu imovinu. Izradite ili se prebacite na novčanik podržane vrste imovine.",
1262
- "update_session": "Ažuriraj sesiju",
1255
"uptime": "Vrijeme neprekidnog rada",
1256
"upto": "do ${value}",
1257
"usb": "USB",
@@ -1334,6 +1326,31 @@
1326
"walletConnect": "WalletConnect",
1327
"wallets": "Novčanici",
1328
"warning": "Upozorenje",
1329
+ "wc_action_approve": "Odobriti",
1330
+ "wc_approve_request_title": "Odobri zahtjev",
1331
+ "wc_connect_request_title": "Zahtjev za povezivanje",
1332
+ "wc_connected_to": "Povezan s ${name}",
1333
+ "wc_max_network_fee": "Maksimalna mrežna naknada",
1334
+ "wc_message_to_sign": "Poruka za potpisivanje",
1335
+ "wc_network_fee": "Mrežna naknada",
1336
+ "wc_not_verified": "Nije potvrđeno",
1337
+ "wc_pairing_list_header_subtitle": "Povežite svoj novčanik s WalletConnectom ili upravljajte postojećim aplikacijama.",
1338
+ "wc_paste_link": "Zalijepi vezu WalletConnect",
1339
+ "wc_permission_other": "Ostalo: ${method}",
1340
+ "wc_permission_request_approval": "Zatražite odobrenje za transakcije",
1341
+ "wc_permission_sign_messages": "Potpisivati poruke i upisane podatke",
1342
+ "wc_permission_switch_chains": "Prebacite i dodajte EVM lance",
1343
+ "wc_permission_view_balance": "Pogledajte svoj novčanik i aktivnost",
1344
+ "wc_scam_warning_message": "Čini se da ovaj zahtjev potječe iz poznate prijevare. Molimo nastavite s oprezom.",
1345
+ "wc_scam_warning_title": "UPOZORENJE!",
1346
+ "wc_scan_qr": "Skeniraj QR",
1347
+ "wc_sign_all_count": "Potpišite svih ${count} poruka",
1348
+ "wc_signing_request_title": "Zahtjev za potpisivanje",
1349
+ "wc_swipe_to_approve": "Prijeđite prstom za odobrenje",
1350
+ "wc_swipe_to_sign": "Prijeđite prstom za potpis",
1351
+ "wc_verified": "Provjereno",
1352
+ "wc_would_like_to_connect_to": "${name} želi se povezati",
1353
+ "wc_would_like_to_sign": "${name} želi potpisati",
1354
"website": "Web-stranica",
1355
"welcome": "Dobrodošli",
1356
"welcome_subtitle_new_wallet": "Ako želite krenuti ispočetka, dodirnite Create New Wallet u nastavku i spremni ste za početak.",
res/values/strings_hy.arb
+24
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "Տեսախցիկի թույլտվությունը պահանջվում է։ \nԽնդրում ենք այն միացնել հավելվածի կարգավորումներից։",
157
"cancel": "Չեղարկել",
158
"cannot_manage_accounts_during_sync": "Դուք չեք կարող կառավարել հաշիվները, քանի դեռ դրամապանակը դեռ համաժամացվում է։ Խնդրում ենք կրկին փորձել ավելի ուշ։",
159
- "cannot_verify": "Հնարավոր չէ ստուգել",
160
- "cannot_verify_description": "Այս տիրույթը հնարավոր չէ ստուգել։ Հաստատելուց առաջ ուշադիր ստուգեք հարցումը։",
159
"card_address": "Հասցե՝",
160
"card_order_reset_desc": "Վերականգնե՞լ քարտերի դասավորությունը լռելյայն կարգավորումներին:",
161
"card_style": "Քարտի ոճ",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "Անջատել մարտկոցի օպտիմիզացիան",
349
"disableBatteryOptimizationDescription": "Ցանկանո՞ւմ եք անջատել մարտկոցի օպտիմիզացիան, որպեսզի ֆոնային համաժամացումը աշխատի ավելի ազատ և սահուն:",
350
"disabled": "Անջատված",
353
- "disconnect_session": "Անջատել սեսիան",
351
"discount": "Խնայեք ${value}%-ով",
352
"dismiss": "Փակել",
353
"display": "Ցուցադրում",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "Այլևս չցուցադրել",
360
"do_not_show_me": "Այլևս չցուցադրել",
361
"domain_looks_up": "Դոմեյնի որոնումներ",
365
- "domain_mismatch": "Դոմենի անհամապատասխանություն",
366
- "domain_mismatch_description": "Այս կայքը ունի տիրույթ, որը չի համապատասխանում այս հարցման ուղարկողին։ Հաստատումը կարող է հանգեցնել միջոցների կորստի։",
362
"donation": "Նվիրատվություն",
363
"donation_link_details": "Նվիրատվության հղման մանրամասներ",
364
"done": "Պատրաստ",
@@ -892,8 +887,6 @@
887
"second_intro_title": "Մեկ էմոջի հասցե՝ բոլորին կառավարելու համար",
888
"security": "Անվտանգություն",
889
"security_and_backup": "Անվտանգություն և պահուստավորում",
895
- "security_risk": "Անվտանգության ռիսկ",
896
- "security_risk_description": "Այս տիրույթը մի քանի անվտանգության մատակարարների կողմից նշվել է որպես վտանգավոր։ Ձեր ակտիվները պաշտպանելու համար անմիջապես դուրս եկեք։",
890
"seed_alert_back": "Վերադառնալ",
891
"seed_alert_content": "Սերմը ձեր դրամապանակը վերականգնելու միակ միջոցն է։ Դուք այն գրի առե՞լ եք։",
892
"seed_alert_title": "Ուշադրություն",
@@ -1257,7 +1250,6 @@
1250
"unspent_coins_details_title": "Չծախսված մետաղադրամների մանրամասները",
1251
"unspent_coins_title": "Չծախսված մետաղադրամներ",
1252
"unsupported_asset": "Մենք չենք աջակցում այս գործողությունը տվյալ ակտիվի համար։ Խնդրում ենք ստեղծել կամ անցնել աջակցվող ակտիվի տեսակի դրամապանակի։",
1260
- "update_session": "Թարմացնել նիստը",
1253
"uptime": "Աշխատանքի ժամանակ",
1254
"upto": "մինչև ${value}",
1255
"usb": "USB",
@@ -1332,6 +1324,30 @@
1324
"walletConnect": "WalletConnect",
1325
"wallets": "Դրամապանակներ",
1326
"warning": "Զգուշացում",
1327
+ "wc_approve_request_title": "Հաստատել հարցումը",
1328
+ "wc_connect_request_title": "Միացման հարցում",
1329
+ "wc_connected_to": "Միացված է ${name}-ին",
1330
+ "wc_max_network_fee": "Ցանցի առավելագույն վճար",
1331
+ "wc_message_to_sign": "Հաղորդագրություն ստորագրելու համար",
1332
+ "wc_network_fee": "Ցանցի վճար",
1333
+ "wc_not_verified": "Ստուգված չէ",
1334
+ "wc_pairing_list_header_subtitle": "Միացրեք ձեր դրամապանակը WalletConnect-ի հետ կամ կառավարեք առկա հավելվածները:",
1335
+ "wc_paste_link": "Տեղադրեք WalletConnect հղումը",
1336
+ "wc_permission_other": "Այլ՝ ${method}",
1337
+ "wc_permission_request_approval": "Գործարքների համար հաստատման պահանջ",
1338
+ "wc_permission_sign_messages": "Ստորագրեք հաղորդագրությունները և մուտքագրված տվյալները",
1339
+ "wc_permission_switch_chains": "Միացրեք և ավելացրեք EVM շղթաներ",
1340
+ "wc_permission_view_balance": "Դիտեք ձեր դրամապանակի մնացորդը և գործունեությունը",
1341
+ "wc_scam_warning_message": "Այս հարցումը, կարծես, հայտնի խարդախությունից է: Խնդրում ենք շարունակել զգուշությամբ:",
1342
+ "wc_scam_warning_title": "ԶԳՈՒՇԱՑՈՒՄ.",
1343
+ "wc_scan_qr": "Scan QR",
1344
+ "wc_sign_all_count": "Ստորագրեք բոլոր ${count} հաղորդագրությունները",
1345
+ "wc_signing_request_title": "Ստորագրման հարցում",
1346
+ "wc_swipe_to_approve": "Հաստատելու համար սահեցրեք",
1347
+ "wc_swipe_to_sign": "Սահեցրեք՝ ստորագրելու համար",
1348
+ "wc_verified": "Ստուգված է",
1349
+ "wc_would_like_to_connect_to": "${name}-ը ցանկանում է միանալ",
1350
+ "wc_would_like_to_sign": "${name}-ը ցանկանում է ստորագրել",
1351
"website": "Վեբկայք",
1352
"welcome": "Բարի գալուստ",
1353
"welcome_subtitle_new_wallet": "Եթե ցանկանում եք սկսել նորից, ներքևում հպեք «Ստեղծել նոր դրամապանակ», և կարող եք անմիջապես սկսել։",
res/values/strings_id.arb
+24
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "Izin kamera diperlukan.\nSilakan aktifkan melalui pengaturan aplikasi.",
157
"cancel": "Batal",
158
"cannot_manage_accounts_during_sync": "Anda tidak dapat mengelola akun saat wallet masih dalam proses sinkronisasi. Silakan coba lagi nanti.",
159
- "cannot_verify": "Tidak dapat diverifikasi",
160
- "cannot_verify_description": "Domain ini tidak dapat diverifikasi. Periksa permintaan dengan saksama sebelum menyetujui.",
159
"card_address": "Alamat:",
160
"card_order_reset_desc": "Pulihkan urutan kartu ke pengaturan bawaan?",
161
"card_style": "Gaya kartu",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "Nonaktifkan Optimasi Baterai",
349
"disableBatteryOptimizationDescription": "Apakah Anda ingin menonaktifkan pengoptimalan baterai agar sinkronisasi latar belakang dapat berjalan lebih bebas dan lancar?",
350
"disabled": "Dinonaktifkan",
353
- "disconnect_session": "Putuskan Sesi",
351
"discount": "Hemat ${value}%",
352
"dismiss": "Tutup",
353
"display": "Tampilan",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "Jangan tampilkan lagi",
360
"do_not_show_me": "Jangan tampilkan ini lagi",
361
"domain_looks_up": "Pencarian domain",
365
- "domain_mismatch": "Domain Tidak Cocok",
366
- "domain_mismatch_description": "Situs web ini memiliki domain yang tidak sesuai dengan pengirim permintaan ini. Menyetujui dapat menyebabkan kehilangan dana.",
362
"donation": "Donasi",
363
"donation_link_details": "Detail tautan donasi",
364
"done": "Selesai",
@@ -896,8 +891,6 @@
891
"second_intro_title": "Satu alamat emoji untuk menguasai semuanya",
892
"security": "Keamanan",
893
"security_and_backup": "Keamanan dan pencadangan",
899
- "security_risk": "Risiko Keamanan",
900
- "security_risk_description": "Domain ini ditandai tidak aman oleh beberapa penyedia keamanan. Segera tinggalkan untuk melindungi aset Anda.",
894
"seed_alert_back": "Kembali",
895
"seed_alert_content": "Seed adalah satu-satunya cara untuk memulihkan dompet Anda. Apakah Anda sudah menuliskannya?",
896
"seed_alert_title": "Perhatian",
@@ -1262,7 +1255,6 @@
1255
"unspent_coins_details_title": "Rincian koin yang belum dibelanjakan",
1256
"unspent_coins_title": "Koin yang belum dibelanjakan",
1257
"unsupported_asset": "Kami tidak mendukung tindakan ini untuk aset ini. Harap buat atau beralih ke dompet dengan jenis aset yang didukung.",
1265
- "update_session": "Perbarui Sesi",
1258
"uptime": "Waktu aktif",
1259
"upto": "hingga ${value}",
1260
"usb": "USB",
@@ -1337,6 +1329,30 @@
1329
"walletConnect": "WalletConnect",
1330
"wallets": "Dompet",
1331
"warning": "Peringatan",
1332
+ "wc_approve_request_title": "Setujui permintaan",
1333
+ "wc_connect_request_title": "Hubungkan permintaan",
1334
+ "wc_connected_to": "Terhubung ke ${name}",
1335
+ "wc_max_network_fee": "Biaya jaringan maksimal",
1336
+ "wc_message_to_sign": "Pesan untuk ditandatangani",
1337
+ "wc_network_fee": "Biaya jaringan",
1338
+ "wc_not_verified": "Tidak Terverifikasi",
1339
+ "wc_pairing_list_header_subtitle": "Hubungkan dompet Anda dengan WalletConnect atau kelola aplikasi yang ada.",
1340
+ "wc_paste_link": "Tempel tautan WalletConnect",
1341
+ "wc_permission_other": "Lainnya: ${method}",
1342
+ "wc_permission_request_approval": "Minta persetujuan untuk transaksi",
1343
+ "wc_permission_sign_messages": "Menandatangani pesan dan mengetik data",
1344
+ "wc_permission_switch_chains": "Beralih dan tambahkan rantai EVM",
1345
+ "wc_permission_view_balance": "Lihat saldo dan aktivitas dompet Anda",
1346
+ "wc_scam_warning_message": "Permintaan ini tampaknya berasal dari penipuan yang diketahui. Silakan lanjutkan dengan hati-hati.",
1347
+ "wc_scam_warning_title": "PERINGATAN!",
1348
+ "wc_scan_qr": "Pindai QR",
1349
+ "wc_sign_all_count": "Tanda tangani semua pesan ${count}",
1350
+ "wc_signing_request_title": "Permintaan penandatanganan",
1351
+ "wc_swipe_to_approve": "Geser untuk menyetujui",
1352
+ "wc_swipe_to_sign": "Gesek untuk menandatangani",
1353
+ "wc_verified": "Terverifikasi",
1354
+ "wc_would_like_to_connect_to": "${name} ingin terhubung",
1355
+ "wc_would_like_to_sign": "${name} ingin menandatangani",
1356
"website": "Situs web",
1357
"welcome": "Selamat datang",
1358
"welcome_subtitle_new_wallet": "Jika Anda ingin memulai dari awal, ketuk Buat Dompet Baru di bawah ini dan Anda siap melaju.",
res/values/strings_it.arb
+24
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "È richiesta l'autorizzazione della fotocamera.\nAbilitala dalle impostazioni dell'app.",
157
"cancel": "Annulla",
158
"cannot_manage_accounts_during_sync": "Non puoi gestire gli account mentre il wallet è ancora in fase di sincronizzazione. Riprova più tardi.",
159
- "cannot_verify": "Impossibile verificare",
160
- "cannot_verify_description": "Questo dominio non può essere verificato. Controlla attentamente la richiesta prima di approvare.",
159
"card_address": "Indirizzo:",
160
"card_order_reset_desc": "Ripristinare l'ordine delle carte alle impostazioni predefinite?",
161
"card_style": "Stile della scheda",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "Disattiva l'ottimizzazione della batteria",
349
"disableBatteryOptimizationDescription": "Vuoi disabilitare l'ottimizzazione della batteria per consentire alla sincronizzazione in background di funzionare in modo più libero e fluido?",
350
"disabled": "Disabilitato",
353
- "disconnect_session": "Disconnetti sessione",
351
"discount": "Risparmia ${value}%",
352
"dismiss": "Ignora",
353
"display": "Schermo",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "Non mostrarlo più",
360
"do_not_show_me": "Non mostrarmelo più",
361
"domain_looks_up": "Ricerche di dominio",
365
- "domain_mismatch": "Dominio non corrispondente",
366
- "domain_mismatch_description": "Questo sito web ha un dominio che non corrisponde al mittente di questa richiesta. L'approvazione potrebbe comportare la perdita di fondi.",
362
"donation": "Donazione",
363
"donation_link_details": "Dettagli del link di donazione",
364
"done": "Fatto",
@@ -893,8 +888,6 @@
888
"second_intro_title": "Un indirizzo emoji per domarli tutti",
889
"security": "Sicurezza",
890
"security_and_backup": "Sicurezza e backup",
896
- "security_risk": "Rischio per la sicurezza",
897
- "security_risk_description": "Questo dominio è segnalato come non sicuro da più provider di sicurezza. Esci immediatamente per proteggere i tuoi asset.",
891
"seed_alert_back": "Torna indietro",
892
"seed_alert_content": "Il seed è l'unico modo per recuperare il tuo wallet. L'hai scritto da qualche parte?",
893
"seed_alert_title": "Attenzione",
@@ -1259,7 +1252,6 @@
1252
"unspent_coins_details_title": "Dettagli delle monete non spese",
1253
"unspent_coins_title": "Monete non spese",
1254
"unsupported_asset": "Non supportiamo questa azione per questo asset. Crea o passa a un wallet di un tipo di asset supportato.",
1262
- "update_session": "Aggiorna sessione",
1255
"uptime": "Tempo di attività",
1256
"upto": "fino a ${value}",
1257
"usb": "USB",
@@ -1335,6 +1327,30 @@
1327
"walletConnect": "WalletConnect",
1328
"wallets": "Portafogli",
1329
"warning": "Attenzione",
1330
+ "wc_approve_request_title": "Approva la richiesta",
1331
+ "wc_connect_request_title": "Richiesta di connessione",
1332
+ "wc_connected_to": "Connesso a ${name}",
1333
+ "wc_max_network_fee": "Tariffa di rete massima",
1334
+ "wc_message_to_sign": "Messaggio da firmare",
1335
+ "wc_network_fee": "Tariffa di rete",
1336
+ "wc_not_verified": "Non verificato",
1337
+ "wc_pairing_list_header_subtitle": "Collega il tuo portafoglio con WalletConnect o gestisci le app esistenti.",
1338
+ "wc_paste_link": "Incolla il collegamento WalletConnect",
1339
+ "wc_permission_other": "Altro: ${method}",
1340
+ "wc_permission_request_approval": "Richiedere l'approvazione per le transazioni",
1341
+ "wc_permission_sign_messages": "Firmare messaggi e dati digitati",
1342
+ "wc_permission_switch_chains": "Cambia e aggiungi catene EVM",
1343
+ "wc_permission_view_balance": "Visualizza il saldo e l'attività del tuo portafoglio",
1344
+ "wc_scam_warning_message": "Questa richiesta sembra provenire da una truffa nota. Si prega di procedere con cautela.",
1345
+ "wc_scam_warning_title": "AVVERTIMENTO!",
1346
+ "wc_scan_qr": "Scansione QR",
1347
+ "wc_sign_all_count": "Firma tutti i ${count} messaggi",
1348
+ "wc_signing_request_title": "Richiesta di firma",
1349
+ "wc_swipe_to_approve": "Scorri per approvare",
1350
+ "wc_swipe_to_sign": "Scorri per firmare",
1351
+ "wc_verified": "Verificato",
1352
+ "wc_would_like_to_connect_to": "${name} vorrebbe connettersi",
1353
+ "wc_would_like_to_sign": "${name} vorrebbe firmare",
1354
"website": "Sito web",
1355
"welcome": "Benvenuto",
1356
"welcome_only": "Benvenuto",
res/values/strings_ja.arb
+24
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "カメラの許可が必要です。\nアプリの設定から有効にしてください。",
157
"cancel": "キャンセル",
158
"cannot_manage_accounts_during_sync": "ウォレットの同期が完了するまで、アカウントを管理できません。後でもう一度お試しください。",
159
- "cannot_verify": "検証できません",
160
- "cannot_verify_description": "このドメインは検証できません。承認する前に、リクエスト内容を注意深く確認してください。",
159
"card_address": "アドレス:",
160
"card_order_reset_desc": "カードの並び順をデフォルト設定に戻しますか?",
161
"card_style": "カードスタイル",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "バッテリー最適化を無効にする",
349
"disableBatteryOptimizationDescription": "バックグラウンド同期をより自由かつスムーズに実行するために、バッテリー最適化を無効にしますか?",
350
"disabled": "無効",
353
- "disconnect_session": "セッションを切断",
351
"discount": "${value}%お得",
352
"dismiss": "閉じる",
353
"display": "表示",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "今後表示しない",
360
"do_not_show_me": "今後このメッセージを表示しない",
361
"domain_looks_up": "ドメイン検索",
365
- "domain_mismatch": "ドメインの不一致",
366
- "domain_mismatch_description": "このWebサイトのドメインが、このリクエストの送信元と一致しません。承認すると、資金を失う可能性があります。",
362
"donation": "寄付",
363
"donation_link_details": "寄付リンクの詳細",
364
"done": "完了",
@@ -893,8 +888,6 @@
888
"second_intro_title": "すべてを支配する1つの絵文字アドレス",
889
"security": "セキュリティ",
890
"security_and_backup": "セキュリティとバックアップ",
896
- "security_risk": "セキュリティリスク",
897
- "security_risk_description": "このドメインは、複数のセキュリティプロバイダーによって安全でないと判定されています。資産を保護するため、直ちに離れてください。",
891
"seed_alert_back": "戻る",
892
"seed_alert_content": "シードはウォレットを復元する唯一の方法です。書き留めましたか?",
893
"seed_alert_title": "注意",
@@ -1259,7 +1252,6 @@
1252
"unspent_coins_details_title": "未使用コインの詳細",
1253
"unspent_coins_title": "未使用コイン",
1254
"unsupported_asset": "このアセットではこの操作はサポートされていません。サポートされているアセットタイプのウォレットを作成するか、対応するウォレットに切り替えてください。",
1262
- "update_session": "セッションを更新",
1255
"uptime": "稼働時間",
1256
"upto": "${value}まで",
1257
"usb": "USB",
@@ -1334,6 +1326,30 @@
1326
"walletConnect": "WalletConnect",
1327
"wallets": "ウォレット",
1328
"warning": "警告",
1329
+ "wc_approve_request_title": "リクエストの承認",
1330
+ "wc_connect_request_title": "接続リクエスト",
1331
+ "wc_connected_to": "${name} に接続しました",
1332
+ "wc_max_network_fee": "最大ネットワーク料金",
1333
+ "wc_message_to_sign": "署名するメッセージ",
1334
+ "wc_network_fee": "ネットワーク料金",
1335
+ "wc_not_verified": "未検証",
1336
+ "wc_pairing_list_header_subtitle": "ウォレットを WalletConnect に接続するか、既存のアプリを管理します。",
1337
+ "wc_paste_link": "WalletConnect リンクを貼り付けます",
1338
+ "wc_permission_other": "その他: ${method}",
1339
+ "wc_permission_request_approval": "取引の承認をリクエストする",
1340
+ "wc_permission_sign_messages": "メッセージと入力されたデータに署名する",
1341
+ "wc_permission_switch_chains": "EVMチェーンの切り替えと追加",
1342
+ "wc_permission_view_balance": "ウォレットの残高とアクティビティを表示する",
1343
+ "wc_scam_warning_message": "このリクエストは既知の詐欺によるものと思われます。慎重に進めてください。",
1344
+ "wc_scam_warning_title": "警告!",
1345
+ "wc_scan_qr": "QRをスキャン",
1346
+ "wc_sign_all_count": "すべての ${count} メッセージに署名します",
1347
+ "wc_signing_request_title": "署名リクエスト",
1348
+ "wc_swipe_to_approve": "スワイプして承認します",
1349
+ "wc_swipe_to_sign": "スワイプして署名",
1350
+ "wc_verified": "確認済み",
1351
+ "wc_would_like_to_connect_to": "${name} が接続を希望しています",
1352
+ "wc_would_like_to_sign": "${name} は署名を希望しています",
1353
"website": "ウェブサイト",
1354
"welcome": "ようこそ",
1355
"welcome_subtitle_new_wallet": "新しく始めたい場合は、下の「新しいウォレットを作成」をタップすれば、すぐに始められます。",
res/values/strings_ko.arb
+24
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "카메라 권한이 필요합니다.\n앱 설정에서 활성화해 주세요.",
157
"cancel": "취소",
158
"cannot_manage_accounts_during_sync": "지갑이 아직 동기화 중인 동안에는 계정을 관리할 수 없습니다. 나중에 다시 시도해 주세요.",
159
- "cannot_verify": "확인할 수 없음",
160
- "cannot_verify_description": "이 도메인은 검증할 수 없습니다. 승인하기 전에 요청을 주의 깊게 확인하세요.",
159
"card_address": "주소:",
160
"card_order_reset_desc": "카드 순서를 기본 설정으로 복원하시겠습니까?",
161
"card_style": "카드 스타일",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "배터리 최적화 끄기",
349
"disableBatteryOptimizationDescription": "백그라운드 동기화가 더 자유롭고 원활하게 실행되도록 배터리 최적화를 비활성화하시겠습니까?",
350
"disabled": "비활성화됨",
353
- "disconnect_session": "세션 연결 끊기",
351
"discount": "${value}% 절약",
352
"dismiss": "닫기",
353
"display": "디스플레이",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "다시 표시하지 않기",
360
"do_not_show_me": "다시 보지 않기",
361
"domain_looks_up": "도메인 조회",
365
- "domain_mismatch": "도메인 불일치",
366
- "domain_mismatch_description": "이 웹사이트의 도메인이 이 요청의 발신자와 일치하지 않습니다. 승인하면 자금이 손실될 수 있습니다.",
362
"donation": "기부",
363
"donation_link_details": "기부 링크 상세 정보",
364
"done": "완료",
@@ -893,8 +888,6 @@
888
"second_intro_title": "하나의 이모지 주소로 모두를 지배하세요",
889
"security": "보안",
890
"security_and_backup": "보안 및 백업",
896
- "security_risk": "보안 위험",
897
- "security_risk_description": "이 도메인은 여러 보안 제공업체에서 안전하지 않은 것으로 표시되었습니다. 자산을 보호하려면 즉시 떠나세요.",
891
"seed_alert_back": "뒤로 가기",
892
"seed_alert_content": "시드는 지갑을 복구할 수 있는 유일한 방법입니다. 적어두셨나요?",
893
"seed_alert_title": "주의",
@@ -1259,7 +1252,6 @@
1252
"unspent_coins_details_title": "미사용 코인 상세 정보",
1253
"unspent_coins_title": "미사용 코인",
1254
"unsupported_asset": "이 자산에서는 이 작업을 지원하지 않습니다. 지원되는 자산 유형의 지갑을 생성하거나 해당 지갑으로 전환하세요.",
1262
- "update_session": "세션 업데이트",
1255
"uptime": "가동 시간",
1256
"upto": "${value}까지",
1257
"usb": "USB",
@@ -1334,6 +1326,30 @@
1326
"walletConnect": "WalletConnect",
1327
"wallets": "지갑",
1328
"warning": "경고",
1329
+ "wc_approve_request_title": "요청 승인",
1330
+ "wc_connect_request_title": "연결 요청",
1331
+ "wc_connected_to": "${name}에 연결됨",
1332
+ "wc_max_network_fee": "최대 네트워크 수수료",
1333
+ "wc_message_to_sign": "서명하라는 메시지",
1334
+ "wc_network_fee": "네트워크 수수료",
1335
+ "wc_not_verified": "확인되지 않음",
1336
+ "wc_pairing_list_header_subtitle": "WalletConnect로 지갑을 연결하거나 기존 앱을 관리하세요.",
1337
+ "wc_paste_link": "WalletConnect 링크 붙여넣기",
1338
+ "wc_permission_other": "기타: ${method}",
1339
+ "wc_permission_request_approval": "거래 승인 요청",
1340
+ "wc_permission_sign_messages": "메시지 및 입력된 데이터에 서명",
1341
+ "wc_permission_switch_chains": "EVM 체인 전환 및 추가",
1342
+ "wc_permission_view_balance": "지갑 잔액 및 활동 보기",
1343
+ "wc_scam_warning_message": "이 요청은 알려진 사기에서 나온 것 같습니다. 주의해서 진행하시기 바랍니다.",
1344
+ "wc_scam_warning_title": "경고!",
1345
+ "wc_scan_qr": "QR 스캔",
1346
+ "wc_sign_all_count": "${count}개의 메시지 모두 서명",
1347
+ "wc_signing_request_title": "서명 요청",
1348
+ "wc_swipe_to_approve": "스와이프하여 승인",
1349
+ "wc_swipe_to_sign": "스와이프하여 서명하세요",
1350
+ "wc_verified": "확인됨",
1351
+ "wc_would_like_to_connect_to": "${name}님이 연결하고 싶어합니다",
1352
+ "wc_would_like_to_sign": "${name}님이 서명하고 싶어합니다",
1353
"website": "웹사이트",
1354
"welcome": "환영합니다",
1355
"welcome_subtitle_new_wallet": "새로 시작하려면 아래에서 새 지갑 만들기를 탭하면 바로 시작할 수 있습니다.",
res/values/strings_my.arb
+24
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "ကင်မရာအသုံးပြုခွင့် လိုအပ်ပါသည်။\nအက်ပ်ဆက်တင်များမှ ၎င်းကို ဖွင့်ပေးပါ။",
157
"cancel": "ပယ်ဖျက်",
158
"cannot_manage_accounts_during_sync": "ပိုက်ဆံအိတ်ကို စင့်ခ်လုပ်နေစဉ် အကောင့်များကို စီမံခန့်ခွဲလို့ မရပါ။ နောက်မှ ထပ်စမ်းကြည့်ပါ။",
159
- "cannot_verify": "စစ်ဆေးအတည်ပြု၍မရပါ",
160
- "cannot_verify_description": "ဤဒိုမိန်းကို အတည်ပြု၍ မရပါ။ အတည်ပြုမီ တောင်းဆိုချက်ကို သေချာစွာ စစ်ဆေးပါ။",
159
"card_address": "လိပ်စာ:",
160
"card_order_reset_desc": "ကတ်အစီအစဉ်ကို မူလဆက်တင်များသို့ ပြန်ထားမလား။",
161
"card_style": "ကတ်ပုံစံ",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "ဘက်ထရီ အကောင်းဆုံးပြုလုပ်မှုကို ပိတ်ပါ",
349
"disableBatteryOptimizationDescription": "နောက်ခံထပ်တူပြုခြင်းကို ပိုမိုလွတ်လပ်ပြီး ချောမွေ့စွာ လုပ်ဆောင်နိုင်ရန် ဘက်ထရီ အကောင်းဆုံးပြုလုပ်မှု (battery optimization) ကို ပိတ်လိုပါသလား။",
350
"disabled": "ပိတ်ထားသည်",
353
- "disconnect_session": "Session ကို ချိတ်ဆက်မှုဖြုတ်ရန်",
351
"discount": "${value}% သက်သာ",
352
"dismiss": "ပိတ်ရန်",
353
"display": "ပြသမှု",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "ဒါကို နောက်ထပ် မပြပါနဲ့",
360
"do_not_show_me": "ဒီကို နောက်တစ်ခါ မပြပါနဲ့",
361
"domain_looks_up": "ဒိုမိန်းရှာဖွေမှုများ",
365
- "domain_mismatch": "ဒိုမိန်း မကိုက်ညီ",
366
- "domain_mismatch_description": "ဤဝဘ်ဆိုက်၏ ဒိုမိန်းသည် ဤတောင်းဆိုမှုကို ပေးပို့သူနှင့် မကိုက်ညီပါ။ အတည်ပြုပါက ရန်ပုံငွေများ ဆုံးရှုံးနိုင်သည်။",
362
"donation": "လှူဒါန်းမှု",
363
"donation_link_details": "လှူဒါန်းရန် လင့်ခ် အသေးစိတ်",
364
"done": "ပြီးပြီ",
@@ -892,8 +887,6 @@
887
"second_intro_title": "အားလုံးကို အုပ်စိုးမယ့် အီမိုဂျီလိပ်စာတစ်ခု",
888
"security": "လုံခြုံရေး",
889
"security_and_backup": "လုံခြုံရေးနှင့် အရန်သိမ်းဆည်းမှု",
895
- "security_risk": "လုံခြုံရေးအန္တရာယ်",
896
- "security_risk_description": "ဤဒိုမိန်းကို လုံခြုံရေးဝန်ဆောင်မှုပေးသူများအများအပြားက မလုံခြုံသောအဖြစ် သတ်မှတ်ထားသည်။ သင်၏ပိုင်ဆိုင်မှုများကို ကာကွယ်ရန် ချက်ချင်း ထွက်ခွာပါ။",
890
"seed_alert_back": "နောက်သို့ ပြန်သွားပါ",
891
"seed_alert_content": "Seed စကားဝှက်သည် သင့်ပိုက်ဆံအိတ်ကို ပြန်လည်ရယူရန် တစ်ခုတည်းသောနည်းလမ်းဖြစ်သည်။ သင် ရေးမှတ်ပြီးပြီလား။",
892
"seed_alert_title": "သတိပြုရန်",
@@ -1258,7 +1251,6 @@
1251
"unspent_coins_details_title": "မသုံးရသေးသော ကွိုင်များ၏ အသေးစိတ်",
1252
"unspent_coins_title": "မသုံးရသေးသော ကွိုင်များ",
1253
"unsupported_asset": "ဤပိုင်ဆိုင်မှုအတွက် ဤလုပ်ဆောင်ချက်ကို ကျွန်ုပ်တို့ မပံ့ပိုးပါ။ ကျေးဇူးပြု၍ ပံ့ပိုးထားသော ပိုင်ဆိုင်မှုအမျိုးအစားရှိ ပိုက်ဆံအိတ်ကို ဖန်တီးပါ သို့မဟုတ် ထိုအမျိုးအစားရှိ ပိုက်ဆံအိတ်သို့ ပြောင်းပါ။",
1261
- "update_session": "စက်ရှင်ကို အပ်ဒိတ်လုပ်ပါ",
1254
"uptime": "လည်ပတ်ချိန်",
1255
"upto": "${value} အထိ",
1256
"usb": "USB",
@@ -1333,6 +1325,30 @@
1325
"walletConnect": "WalletConnect",
1326
"wallets": "ဝေါလက်များ",
1327
"warning": "သတိပေးချက်",
1328
+ "wc_approve_request_title": "တောင်းဆိုချက်ကို အတည်ပြုပါ။",
1329
+ "wc_connect_request_title": "တောင်းဆိုချက်ကို ချိတ်ဆက်ပါ။",
1330
+ "wc_connected_to": "${name} သို့ ချိတ်ဆက်ထားသည်",
1331
+ "wc_max_network_fee": "အများဆုံးကွန်ရက်အခကြေးငွေ",
1332
+ "wc_message_to_sign": "လက်မှတ်ထိုးရန် မက်ဆေ့ချ်",
1333
+ "wc_network_fee": "ကွန်ရက်ကြေး",
1334
+ "wc_not_verified": "အတည်မပြုရသေးပါ။",
1335
+ "wc_pairing_list_header_subtitle": "WalletConnect ဖြင့် သင့်ပိုက်ဆံအိတ်ကို ချိတ်ဆက်ပါ သို့မဟုတ် လက်ရှိအက်ပ်များကို စီမံခန့်ခွဲပါ။",
1336
+ "wc_paste_link": "WalletConnect လင့်ခ်ကို ကူးထည့်ပါ။",
1337
+ "wc_permission_other": "အခြား- ${method}",
1338
+ "wc_permission_request_approval": "အရောင်းအ၀ယ်များအတွက် အတည်ပြုချက်တောင်းခံပါ။",
1339
+ "wc_permission_sign_messages": "မက်ဆေ့ချ်များကို လက်မှတ်ထိုးပြီး ဒေတာကို ရိုက်ထည့်ပါ။",
1340
+ "wc_permission_switch_chains": "ပြောင်းပြီး EVM ကြိုးများကို ထည့်ပါ။",
1341
+ "wc_permission_view_balance": "သင့်ပိုက်ဆံအိတ်လက်ကျန်ငွေနှင့် လုပ်ဆောင်ချက်ကို ကြည့်ရှုပါ။",
1342
+ "wc_scam_warning_message": "ဤတောင်းဆိုချက်သည် လူသိများသော လိမ်လည်မှုတစ်ခုမှ ဖြစ်ပုံရသည်။ ကျေးဇူးပြု၍ သတိဖြင့် ဆက်လုပ်ပါ။",
1343
+ "wc_scam_warning_title": "သတိပေးချက်။",
1344
+ "wc_scan_qr": "QR ကိုစကင်န်ဖတ်ပါ။",
1345
+ "wc_sign_all_count": "${count} မက်ဆေ့ဂျ်များအားလုံးကို လက်မှတ်ထိုးပါ။",
1346
+ "wc_signing_request_title": "လက်မှတ်ရေးထိုးတောင်းဆိုခြင်း။",
1347
+ "wc_swipe_to_approve": "အတည်ပြုရန် ပွတ်ဆွဲပါ။",
1348
+ "wc_swipe_to_sign": "လက်မှတ်ထိုးရန် ပွတ်ဆွဲပါ။",
1349
+ "wc_verified": "စိစစ်ပြီး",
1350
+ "wc_would_like_to_connect_to": "${name} ချိတ်ဆက်လိုပါသည်။",
1351
+ "wc_would_like_to_sign": "${name} က လက်မှတ်ထိုးလိုပါသည်။",
1352
"website": "ဝဘ်ဆိုဒ်",
1353
"welcome": "ကြိုဆိုပါတယ်",
1354
"welcome_subtitle_new_wallet": "အသစ်စတင်လိုပါက အောက်က “ပိုက်ဆံအိတ်အသစ် ဖန်တီးရန်” ကိုနှိပ်ပါ။ ချက်ချင်း စတင်အသုံးပြုနိုင်ပါပြီ။",
res/values/strings_nl.arb
+24
-8
@@ -155,8 +155,6 @@
155
"camera_permission_is_required": "Cameratoestemming is vereist.\nSchakel dit in via de app-instellingen.",
156
"cancel": "Annuleren",
157
"cannot_manage_accounts_during_sync": "Je kunt geen accounts beheren terwijl de wallet nog bezig is met synchroniseren. Probeer het later opnieuw.",
158
- "cannot_verify": "Kan niet verifiëren",
159
- "cannot_verify_description": "Dit domein kan niet worden geverifieerd. Controleer het verzoek zorgvuldig voordat je het goedkeurt.",
158
"card_address": "Adres:",
159
"card_order_reset_desc": "Kaartvolgorde herstellen naar de standaardinstellingen?",
160
"card_style": "Kaartstijl",
@@ -348,7 +346,6 @@
346
"disableBatteryOptimization": "Schakel de batterijoptimalisatie uit",
347
"disableBatteryOptimizationDescription": "Wil je de batterijoptimalisatie uitschakelen zodat achtergrondsynchronisatie vrijer en soepeler kan werken?",
348
"disabled": "Uitgeschakeld",
351
- "disconnect_session": "Koppel de sessie los",
349
"discount": "Bespaar ${value}%",
350
"dismiss": "Sluiten",
351
"display": "Weergave",
@@ -360,8 +357,6 @@
357
"do_not_show_anymore": "Niet meer weergeven",
358
"do_not_show_me": "Laat me dit niet opnieuw zien",
359
"domain_looks_up": "Domein opzoeken",
363
- "domain_mismatch": "Domein komt niet overeen",
364
- "domain_mismatch_description": "Deze website heeft een domein dat niet overeenkomt met de afzender van dit verzoek. Goedkeuring kan leiden tot verlies van fondsen.",
360
"donation": "Donatie",
361
"donation_link_details": "Details van de donatielink",
362
"done": "Klaar",
@@ -889,8 +884,6 @@
884
"second_intro_title": "Eén emoji-adres om ze allemaal te beheren",
885
"security": "Beveiliging",
886
"security_and_backup": "Beveiliging en back-up",
892
- "security_risk": "Beveiligingsrisico",
893
- "security_risk_description": "Dit domein wordt door meerdere beveiligingsproviders gemarkeerd als onveilig. Vertrek onmiddellijk om je fondsen te beschermen.",
887
"seed_alert_back": "Ga terug",
888
"seed_alert_content": "Het seed is de enige manier om je wallet te herstellen. Heb je het opgeschreven?",
889
"seed_alert_title": "Aandacht",
@@ -1255,7 +1248,6 @@
1248
"unspent_coins_details_title": "Details van niet-uitgegeven saldo",
1249
"unspent_coins_title": "Niet-uitgegeven saldo",
1250
"unsupported_asset": "We ondersteunen deze actie niet voor deze coin. Maak een wallet van een ondersteund activatype aan of schakel ernaar over.",
1258
- "update_session": "Updatesessie",
1251
"uptime": "Uptime",
1252
"upto": "tot ${value}",
1253
"usb": "USB",
@@ -1331,6 +1323,30 @@
1323
"walletConnect": "WalletConnect",
1324
"wallets": "Wallets",
1325
"warning": "Waarschuwing",
1326
+ "wc_approve_request_title": "Aanvraag goedkeuren",
1327
+ "wc_connect_request_title": "Verbind verzoek",
1328
+ "wc_connected_to": "Verbonden met ${name}",
1329
+ "wc_max_network_fee": "Maximale netwerkkosten",
1330
+ "wc_message_to_sign": "Bericht om te ondertekenen",
1331
+ "wc_network_fee": "Netwerk vergoeding",
1332
+ "wc_not_verified": "Niet geverifieerd",
1333
+ "wc_pairing_list_header_subtitle": "Verbind uw portemonnee met WalletConnect of beheer bestaande apps.",
1334
+ "wc_paste_link": "Plak de WalletConnect-link",
1335
+ "wc_permission_other": "Anders: ${method}",
1336
+ "wc_permission_request_approval": "Goedkeuring aanvragen voor transacties",
1337
+ "wc_permission_sign_messages": "Onderteken berichten en getypte gegevens",
1338
+ "wc_permission_switch_chains": "Schakel over en voeg EVM-ketens toe",
1339
+ "wc_permission_view_balance": "Bekijk uw portemonneesaldo en activiteit",
1340
+ "wc_scam_warning_message": "Dit verzoek lijkt afkomstig te zijn van een bekende oplichting. Ga alstublieft voorzichtig te werk.",
1341
+ "wc_scam_warning_title": "WAARSCHUWING!",
1342
+ "wc_scan_qr": "QR scannen",
1343
+ "wc_sign_all_count": "Onderteken alle ${count} berichten",
1344
+ "wc_signing_request_title": "Ondertekeningsverzoek",
1345
+ "wc_swipe_to_approve": "Veeg om goed te keuren",
1346
+ "wc_swipe_to_sign": "Veeg om te ondertekenen",
1347
+ "wc_verified": "Geverifieerd",
1348
+ "wc_would_like_to_connect_to": "${name} wil graag verbinding maken",
1349
+ "wc_would_like_to_sign": "${name} wil graag ondertekenen",
1350
"website": "Website",
1351
"welcome": "Welkom",
1352
"welcome_subtitle_new_wallet": "Als je opnieuw wilt beginnen, tik je op Nieuwe Wallet hieronder en je kunt meteen aan de slag.",
res/values/strings_pl.arb
+24
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "Wymagane jest uprawnienie do korzystania z aparatu. \nWłącz je w ustawieniach aplikacji.",
157
"cancel": "Anuluj",
158
"cannot_manage_accounts_during_sync": "Nie możesz zarządzać kontami, gdy portfel nadal się synchronizuje. Spróbuj ponownie później.",
159
- "cannot_verify": "Nie można zweryfikować",
160
- "cannot_verify_description": "Nie można zweryfikować tej domeny. Przed zatwierdzeniem dokładnie sprawdź żądanie.",
159
"card_address": "Adres:",
160
"card_order_reset_desc": "Przywrócić kolejność kart do ustawień domyślnych?",
161
"card_style": "Styl karty",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "Wyłącz optymalizację baterii",
349
"disableBatteryOptimizationDescription": "Czy chcesz wyłączyć optymalizację baterii, aby synchronizacja w tle działała swobodniej i płynniej?",
350
"disabled": "Wyłączone",
353
- "disconnect_session": "Rozłącz sesję",
351
"discount": "Oszczędź ${value}%",
352
"dismiss": "Odrzuć",
353
"display": "Wyświetlanie",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "Nie pokazuj tego ponownie",
360
"do_not_show_me": "Nie pokazuj tego ponownie",
361
"domain_looks_up": "Wyszukiwanie domen",
365
- "domain_mismatch": "Niezgodność domeny",
366
- "domain_mismatch_description": "Ta witryna ma domenę, która nie pasuje do nadawcy tego żądania. Zatwierdzenie może prowadzić do utraty środków.",
362
"donation": "Darowizna",
363
"donation_link_details": "Szczegóły linku do darowizny",
364
"done": "Gotowe",
@@ -891,8 +886,6 @@
886
"second_intro_title": "Jeden emoji‑adres, by rządzić nimi wszystkimi",
887
"security": "Bezpieczeństwo",
888
"security_and_backup": "Bezpieczeństwo i kopia zapasowa",
894
- "security_risk": "Ryzyko bezpieczeństwa",
895
- "security_risk_description": "Ta domena została oznaczona jako niebezpieczna przez wielu dostawców usług bezpieczeństwa. Opuść ją natychmiast, aby chronić swoje aktywa.",
889
"seed_alert_back": "Wróć",
890
"seed_alert_content": "Seed to jedyny sposób na odzyskanie portfela. Czy zapisałeś go?",
891
"seed_alert_title": "Uwaga",
@@ -1257,7 +1250,6 @@
1250
"unspent_coins_details_title": "Szczegóły niewydanych monet",
1251
"unspent_coins_title": "Niewydane monety",
1252
"unsupported_asset": "Nie obsługujemy tej czynności dla tego aktywa. Utwórz lub przełącz się na portfel obsługiwanego typu aktywów.",
1260
- "update_session": "Zaktualizuj sesję",
1253
"uptime": "Czas działania",
1254
"upto": "do ${value}",
1255
"usb": "USB",
@@ -1332,6 +1324,30 @@
1324
"walletConnect": "WalletConnect",
1325
"wallets": "Portfele",
1326
"warning": "Ostrzeżenie",
1327
+ "wc_approve_request_title": "Zatwierdź żądanie",
1328
+ "wc_connect_request_title": "Połącz żądanie",
1329
+ "wc_connected_to": "Połączono z ${name}",
1330
+ "wc_max_network_fee": "Maksymalna opłata sieciowa",
1331
+ "wc_message_to_sign": "Wiadomość do podpisania",
1332
+ "wc_network_fee": "Opłata sieciowa",
1333
+ "wc_not_verified": "Nie zweryfikowano",
1334
+ "wc_pairing_list_header_subtitle": "Połącz swój portfel z WalletConnect lub zarządzaj istniejącymi aplikacjami.",
1335
+ "wc_paste_link": "Wklej link do WalletConnect",
1336
+ "wc_permission_other": "Inne: ${method}",
1337
+ "wc_permission_request_approval": "Poproś o zatwierdzenie transakcji",
1338
+ "wc_permission_sign_messages": "Podpisuj wiadomości i wpisywane dane",
1339
+ "wc_permission_switch_chains": "Przełącz i dodaj łańcuchy EVM",
1340
+ "wc_permission_view_balance": "Sprawdź saldo i aktywność swojego portfela",
1341
+ "wc_scam_warning_message": "Wygląda na to, że to żądanie pochodzi ze znanego oszustwa. Proszę postępować ostrożnie.",
1342
+ "wc_scam_warning_title": "OSTRZEŻENIE!",
1343
+ "wc_scan_qr": "Zeskanuj kod QR",
1344
+ "wc_sign_all_count": "Podpisz wszystkie wiadomości ${count}",
1345
+ "wc_signing_request_title": "Prośba o podpisanie",
1346
+ "wc_swipe_to_approve": "Przesuń, aby zatwierdzić",
1347
+ "wc_swipe_to_sign": "Przesuń, aby podpisać",
1348
+ "wc_verified": "Zweryfikowano",
1349
+ "wc_would_like_to_connect_to": "${name} chce się połączyć",
1350
+ "wc_would_like_to_sign": "${name} chce się podpisać",
1351
"website": "Strona internetowa",
1352
"welcome": "Witamy",
1353
"welcome_subtitle_new_wallet": "Jeśli chcesz zacząć od nowa, stuknij poniżej „Utwórz nowy portfel” i gotowe.",
res/values/strings_pt.arb
+24
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "A permissão da câmera é necessária.\nAtive-a nas configurações do aplicativo.",
157
"cancel": "Cancelar",
158
"cannot_manage_accounts_during_sync": "Você não pode gerenciar contas enquanto a carteira ainda estiver sincronizando. Tente novamente mais tarde.",
159
- "cannot_verify": "Não é possível verificar",
160
- "cannot_verify_description": "Este domínio não pode ser verificado. Verifique cuidadosamente a solicitação antes de aprovar.",
159
"card_address": "Endereço:",
160
"card_order_reset_desc": "Restaurar a ordem do cartão para as definições padrão?",
161
"card_style": "Estilo do cartão",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "Desativar a otimização da bateria",
349
"disableBatteryOptimizationDescription": "Deseja desativar a otimização da bateria para que a sincronização em segundo plano funcione de forma mais livre e suave?",
350
"disabled": "Desativado",
353
- "disconnect_session": "Desconectar sessão",
351
"discount": "Economize ${value}%",
352
"dismiss": "Dispensar",
353
"display": "Exibição",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "Não mostrar novamente",
360
"do_not_show_me": "Não me mostre isso novamente",
361
"domain_looks_up": "Consultas de domínio",
365
- "domain_mismatch": "Incompatibilidade de domínio",
366
- "domain_mismatch_description": "Este site tem um domínio que não corresponde ao remetente desta solicitação. Aprovar pode levar à perda de fundos.",
362
"donation": "Doação",
363
"donation_link_details": "Detalhes do link de doação",
364
"done": "Concluído",
@@ -894,8 +889,6 @@
889
"second_intro_title": "Um endereço com emoji para governar todos",
890
"security": "Segurança",
891
"security_and_backup": "Segurança e backup",
897
- "security_risk": "Risco de segurança",
898
- "security_risk_description": "Este domínio foi sinalizado como inseguro por vários provedores de segurança. Saia imediatamente para proteger seus ativos.",
892
"seed_alert_back": "Voltar",
893
"seed_alert_content": "A seed é a única forma de recuperar sua carteira. Você a anotou?",
894
"seed_alert_title": "Atenção",
@@ -1260,7 +1253,6 @@
1253
"unspent_coins_details_title": "Detalhes das moedas não gastas",
1254
"unspent_coins_title": "Moedas não gastas",
1255
"unsupported_asset": "Não oferecemos suporte a esta ação para este ativo. Crie ou alterne para uma carteira de um tipo de ativo compatível.",
1263
- "update_session": "Atualizar sessão",
1256
"uptime": "Tempo de atividade",
1257
"upto": "até ${value}",
1258
"usb": "USB",
@@ -1336,6 +1328,30 @@
1328
"walletConnect": "WalletConnect",
1329
"wallets": "Carteiras",
1330
"warning": "Aviso",
1331
+ "wc_approve_request_title": "Aprovar solicitação",
1332
+ "wc_connect_request_title": "Solicitação de conexão",
1333
+ "wc_connected_to": "Conectado a ${name}",
1334
+ "wc_max_network_fee": "Taxa máxima de rede",
1335
+ "wc_message_to_sign": "Mensagem para assinar",
1336
+ "wc_network_fee": "Taxa de rede",
1337
+ "wc_not_verified": "Não verificado",
1338
+ "wc_pairing_list_header_subtitle": "Conecte sua carteira ao WalletConnect ou gerencie aplicativos existentes.",
1339
+ "wc_paste_link": "Colar link do WalletConnect",
1340
+ "wc_permission_other": "Outro: ${method}",
1341
+ "wc_permission_request_approval": "Solicitar aprovação para transações",
1342
+ "wc_permission_sign_messages": "Assinar mensagens e dados digitados",
1343
+ "wc_permission_switch_chains": "Alternar e adicionar cadeias EVM",
1344
+ "wc_permission_view_balance": "Veja o saldo e a atividade da sua carteira",
1345
+ "wc_scam_warning_message": "Esta solicitação parece ser de um golpe conhecido. Por favor, proceda com cautela.",
1346
+ "wc_scam_warning_title": "AVISO!",
1347
+ "wc_scan_qr": "Digitalize QR",
1348
+ "wc_sign_all_count": "Assine todas as ${count} mensagens",
1349
+ "wc_signing_request_title": "Solicitação de assinatura",
1350
+ "wc_swipe_to_approve": "Deslize para aprovar",
1351
+ "wc_swipe_to_sign": "Deslize para assinar",
1352
+ "wc_verified": "Verificado",
1353
+ "wc_would_like_to_connect_to": "${name} gostaria de se conectar",
1354
+ "wc_would_like_to_sign": "${name} gostaria de assinar",
1355
"website": "Website",
1356
"welcome": "Bem-vindo",
1357
"welcome_subtitle_new_wallet": "Se você quiser começar do zero, toque em Criar Nova Carteira abaixo e pronto.",
res/values/strings_pt_BR.arb
+24
-8
@@ -155,8 +155,6 @@
155
"camera_permission_is_required": "É necessária a permissão da câmera.\nAtive-a nas configurações do aplicativo.",
156
"cancel": "Cancelar",
157
"cannot_manage_accounts_during_sync": "Você não pode gerenciar contas enquanto a carteira está sincronizando. Tente novamente mais tarde.",
158
- "cannot_verify": "Não é possível verificar",
159
- "cannot_verify_description": "Este domínio não pode ser verificado. Verifique a solicitação com cuidado antes de aprovar.",
158
"card_address": "Endereço:",
159
"card_order_reset_desc": "Restaurar a ordem dos cartões para as configurações padrão?",
160
"card_style": "Estilo do cartão",
@@ -348,7 +346,6 @@
346
"disableBatteryOptimization": "Desativar otimização de bateria",
347
"disableBatteryOptimizationDescription": "Deseja desativar a otimização de bateria para que a sincronização em segundo plano funcione melhor?",
348
"disabled": "Desativado",
351
- "disconnect_session": "Desconectar sessão",
349
"discount": "Economize ${value}%",
350
"dismiss": "Dispensar",
351
"display": "Exibição",
@@ -360,8 +357,6 @@
357
"do_not_show_anymore": "Não mostrar novamente",
358
"do_not_show_me": "Não mostrar isso novamente",
359
"domain_looks_up": "Consultas de domínio",
363
- "domain_mismatch": "Incompatibilidade de domínio",
364
- "domain_mismatch_description": "Este site tem um domínio que não corresponde ao remetente desta solicitação. Aprovar pode resultar em perda de fundos.",
360
"donation": "Doação",
361
"donation_link_details": "Detalhes do link de doação",
362
"done": "Concluído",
@@ -888,8 +883,6 @@
883
"second_intro_title": "Um endereço de emoji para governar todos",
884
"security": "Segurança",
885
"security_and_backup": "Segurança e backup",
891
- "security_risk": "Risco de segurança",
892
- "security_risk_description": "Este domínio foi sinalizado como inseguro por vários provedores de segurança. Saia imediatamente para proteger seus ativos.",
886
"seed_alert_back": "Voltar",
887
"seed_alert_content": "A seed é a única forma de recuperar sua carteira. Você a anotou?",
888
"seed_alert_title": "Atenção",
@@ -1253,7 +1246,6 @@
1246
"unspent_coins_details_title": "Detalhes de moedas não gastas",
1247
"unspent_coins_title": "Moedas não gastas",
1248
"unsupported_asset": "Não oferecemos suporte a esta ação para este ativo. Crie ou mude para uma carteira de um tipo de ativo compatível.",
1256
- "update_session": "Atualizar sessão",
1249
"uptime": "Tempo de atividade",
1250
"upto": "até ${value}",
1251
"usb": "USB",
@@ -1328,6 +1320,30 @@
1320
"walletConnect": "WalletConnect",
1321
"wallets": "Carteiras",
1322
"warning": "Aviso",
1323
+ "wc_approve_request_title": "Aprovar solicitação",
1324
+ "wc_connect_request_title": "Solicitação de conexão",
1325
+ "wc_connected_to": "Conectado a ${name}",
1326
+ "wc_not_verified": "Não verificado",
1327
+ "wc_max_network_fee": "Taxa máxima de rede",
1328
+ "wc_message_to_sign": "Mensagem para assinar",
1329
+ "wc_network_fee": "Taxa de rede",
1330
+ "wc_pairing_list_header_subtitle": "Conecte sua carteira ao WalletConnect ou gerencie aplicativos existentes.",
1331
+ "wc_paste_link": "Colar link do WalletConnect",
1332
+ "wc_permission_other": "Outro: ${method}",
1333
+ "wc_permission_request_approval": "Solicitar aprovação para transações",
1334
+ "wc_permission_sign_messages": "Assinar mensagens e dados digitados",
1335
+ "wc_permission_switch_chains": "Alternar e adicionar cadeias EVM",
1336
+ "wc_permission_view_balance": "Veja o saldo e a atividade da sua carteira",
1337
+ "wc_scam_warning_message": "Esta solicitação parece ser de um golpe conhecido. Por favor, proceda com cautela.",
1338
+ "wc_scam_warning_title": "AVISO!",
1339
+ "wc_scan_qr": "Digitalize QR",
1340
+ "wc_sign_all_count": "Assine todas as ${count} mensagens",
1341
+ "wc_signing_request_title": "Solicitação de assinatura",
1342
+ "wc_swipe_to_approve": "Deslize para aprovar",
1343
+ "wc_swipe_to_sign": "Deslize para assinar",
1344
+ "wc_verified": "Verificado",
1345
+ "wc_would_like_to_connect_to": "${name} gostaria de se conectar",
1346
+ "wc_would_like_to_sign": "${name} gostaria de assinar",
1347
"website": "Website",
1348
"welcome": "Bem-vindo",
1349
"welcome_subtitle_new_wallet": "Se deseja começar do zero, toque em Criar Nova Carteira abaixo.",
res/values/strings_ru.arb
+24
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "Требуется разрешение на использование камеры.\nПожалуйста, включите его в настройках приложения.",
157
"cancel": "Отменить",
158
"cannot_manage_accounts_during_sync": "Вы не можете управлять аккаунтами, пока кошелек все еще синхронизируется. Пожалуйста, повторите попытку позже.",
159
- "cannot_verify": "Не удаётся проверить",
160
- "cannot_verify_description": "Этот домен не может быть проверен. Внимательно проверьте запрос перед подтверждением.",
159
"card_address": "Адрес:",
160
"card_order_reset_desc": "Восстановить порядок карточек по умолчанию?",
161
"card_style": "Стиль карточки",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "Отключить оптимизацию батареи",
349
"disableBatteryOptimizationDescription": "Вы хотите отключить оптимизацию батареи, чтобы фоновая синхронизация работала более свободно и плавно?",
350
"disabled": "Отключено",
353
- "disconnect_session": "Отключить сеанс",
351
"discount": "Сэкономьте ${value}%",
352
"dismiss": "Закрыть",
353
"display": "Отображение",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "Больше не показывать",
360
"do_not_show_me": "Больше не показывать",
361
"domain_looks_up": "Поиск доменов",
365
- "domain_mismatch": "Несоответствие домена",
366
- "domain_mismatch_description": "У этого веб-сайта домен не совпадает с отправителем этого запроса. Подтверждение может привести к потере средств.",
362
"donation": "Пожертвование",
363
"donation_link_details": "Детали ссылки для пожертвований",
364
"done": "Готово",
@@ -893,8 +888,6 @@
888
"second_intro_title": "Один адрес с эмодзи, чтобы править ими всеми",
889
"security": "Безопасность",
890
"security_and_backup": "Безопасность и резервное копирование",
896
- "security_risk": "Риск безопасности",
897
- "security_risk_description": "Этот домен помечен как небезопасный несколькими поставщиками услуг безопасности. Немедленно покиньте его, чтобы защитить свои активы.",
891
"seed_alert_back": "Назад",
892
"seed_alert_content": "Сид-фраза — единственный способ восстановить ваш кошелек. Вы записали ее?",
893
"seed_alert_title": "Внимание",
@@ -1259,7 +1252,6 @@
1252
"unspent_coins_details_title": "Сведения о неизрасходованных монетах",
1253
"unspent_coins_title": "Непотраченные монеты",
1254
"unsupported_asset": "Мы не поддерживаем это действие для этого актива. Пожалуйста, создайте или переключитесь на кошелек поддерживаемого типа актива.",
1262
- "update_session": "Обновить сессию",
1255
"uptime": "Время работы",
1256
"upto": "до ${value}",
1257
"usb": "USB",
@@ -1334,6 +1326,30 @@
1326
"walletConnect": "WalletConnect",
1327
"wallets": "Кошельки",
1328
"warning": "Предупреждение",
1329
+ "wc_approve_request_title": "Утвердить запрос",
1330
+ "wc_connect_request_title": "Запрос на подключение",
1331
+ "wc_connected_to": "Подключено к ${name}",
1332
+ "wc_max_network_fee": "Максимальная плата за сеть",
1333
+ "wc_message_to_sign": "Сообщение для подписи",
1334
+ "wc_network_fee": "Сетевая плата",
1335
+ "wc_not_verified": "Не проверено",
1336
+ "wc_pairing_list_header_subtitle": "Подключите свой кошелек к WalletConnect или управляйте существующими приложениями.",
1337
+ "wc_paste_link": "Вставьте ссылку на WalletConnect",
1338
+ "wc_permission_other": "Другое: ${method}",
1339
+ "wc_permission_request_approval": "Запросить одобрение транзакций",
1340
+ "wc_permission_sign_messages": "Подписывать сообщения и вводимые данные",
1341
+ "wc_permission_switch_chains": "Переключение и добавление цепочек EVM",
1342
+ "wc_permission_view_balance": "Просматривайте баланс и активность своего кошелька",
1343
+ "wc_scam_warning_message": "Судя по всему, этот запрос поступил от известного мошенника. Пожалуйста, действуйте осторожно.",
1344
+ "wc_scam_warning_title": "ПРЕДУПРЕЖДЕНИЕ!",
1345
+ "wc_scan_qr": "Сканировать QR-код",
1346
+ "wc_sign_all_count": "Подпишите все сообщения (${count})",
1347
+ "wc_signing_request_title": "Запрос на подпись",
1348
+ "wc_swipe_to_approve": "Проведите пальцем, чтобы одобрить",
1349
+ "wc_swipe_to_sign": "Проведите, чтобы подписать",
1350
+ "wc_verified": "Проверено",
1351
+ "wc_would_like_to_connect_to": "${name} хотел бы подключиться",
1352
+ "wc_would_like_to_sign": "${name} хотел бы подписать",
1353
"website": "Веб-сайт",
1354
"welcome": "Добро пожаловать",
1355
"welcome_subtitle_new_wallet": "Если вы хотите начать с чистого листа, нажмите ниже «Создать новый кошелек», и вы будете готовы к старту.",
res/values/strings_th.arb
+24
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "ต้องได้รับอนุญาตให้เข้าถึงกล้อง \nโปรดเปิดใช้งานจากการตั้งค่าแอป",
157
"cancel": "ยกเลิก",
158
"cannot_manage_accounts_during_sync": "คุณไม่สามารถจัดการบัญชีได้ในขณะที่กระเป๋าสตางค์ยังซิงค์อยู่ โปรดลองอีกครั้งในภายหลัง",
159
- "cannot_verify": "ไม่สามารถยืนยันได้",
160
- "cannot_verify_description": "ไม่สามารถยืนยันโดเมนนี้ได้ โปรดตรวจสอบคำขออย่างละเอียดก่อนอนุมัติ",
159
"card_address": "ที่อยู่:",
160
"card_order_reset_desc": "คืนค่าลำดับบัตรเป็นค่าเริ่มต้นหรือไม่?",
161
"card_style": "รูปแบบการ์ด",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "ปิดใช้งานการปรับแต่งแบตเตอรี่",
349
"disableBatteryOptimizationDescription": "คุณต้องการปิดการเพิ่มประสิทธิภาพแบตเตอรี่เพื่อให้การซิงค์ในเบื้องหลังทำงานได้อย่างอิสระและราบรื่นมากขึ้นหรือไม่?",
350
"disabled": "ปิดใช้งาน",
353
- "disconnect_session": "ตัดการเชื่อมต่อเซสชัน",
351
"discount": "ประหยัด ${value}%",
352
"dismiss": "ปิด",
353
"display": "การแสดงผล",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "ไม่ต้องแสดงอีก",
360
"do_not_show_me": "ไม่ต้องแสดงอีก",
361
"domain_looks_up": "การค้นหาโดเมน",
365
- "domain_mismatch": "โดเมนไม่ตรงกัน",
366
- "domain_mismatch_description": "เว็บไซต์นี้มีโดเมนที่ไม่ตรงกับผู้ส่งคำขอนี้ การอนุมัติอาจทำให้สูญเสียเงินทุนได้",
362
"donation": "การบริจาค",
363
"donation_link_details": "รายละเอียดลิงก์บริจาค",
364
"done": "เสร็จสิ้น",
@@ -892,8 +887,6 @@
887
"second_intro_title": "ที่อยู่อีโมจิเพียงหนึ่งเดียวที่ครองทั้งหมด",
888
"security": "ความปลอดภัย",
889
"security_and_backup": "ความปลอดภัยและการสำรองข้อมูล",
895
- "security_risk": "ความเสี่ยงด้านความปลอดภัย",
896
- "security_risk_description": "โดเมนนี้ถูกระบุว่าไม่ปลอดภัยโดยผู้ให้บริการด้านความปลอดภัยหลายราย ออกจากหน้านี้ทันทีเพื่อปกป้องสินทรัพย์ของคุณ",
890
"seed_alert_back": "ย้อนกลับ",
891
"seed_alert_content": "Seed เป็นวิธีเดียวในการกู้คืนกระเป๋าเงินของคุณ คุณได้จดไว้แล้วหรือยัง?",
892
"seed_alert_title": "โปรดทราบ",
@@ -1258,7 +1251,6 @@
1251
"unspent_coins_details_title": "รายละเอียดเหรียญที่ยังไม่ได้ใช้",
1252
"unspent_coins_title": "เหรียญที่ยังไม่ได้ใช้",
1253
"unsupported_asset": "เราไม่รองรับการดำเนินการนี้สำหรับสินทรัพย์นี้ โปรดสร้างหรือสลับไปยังกระเป๋าเงินของประเภทสินทรัพย์ที่รองรับ",
1261
- "update_session": "อัปเดตเซสชัน",
1254
"uptime": "ระยะเวลาทำงาน",
1255
"upto": "สูงสุด ${value}",
1256
"usb": "USB",
@@ -1333,6 +1325,30 @@
1325
"walletConnect": "WalletConnect",
1326
"wallets": "กระเป๋าเงิน",
1327
"warning": "คำเตือน",
1328
+ "wc_approve_request_title": "อนุมัติคำขอ",
1329
+ "wc_connect_request_title": "เชื่อมต่อคำขอ",
1330
+ "wc_connected_to": "เชื่อมต่อกับ ${name}",
1331
+ "wc_max_network_fee": "ค่าธรรมเนียมเครือข่ายสูงสุด",
1332
+ "wc_message_to_sign": "ข้อความที่จะลงนาม",
1333
+ "wc_network_fee": "ค่าธรรมเนียมเครือข่าย",
1334
+ "wc_not_verified": "ไม่ได้รับการยืนยัน",
1335
+ "wc_pairing_list_header_subtitle": "เชื่อมต่อกระเป๋าเงินของคุณด้วย WalletConnect หรือจัดการแอพที่มีอยู่",
1336
+ "wc_paste_link": "วางลิงก์ WalletConnect",
1337
+ "wc_permission_other": "อื่นๆ: ${method}",
1338
+ "wc_permission_request_approval": "ขออนุมัติการทำธุรกรรม",
1339
+ "wc_permission_sign_messages": "เซ็นข้อความและพิมพ์ข้อมูล",
1340
+ "wc_permission_switch_chains": "สลับและเพิ่มเชน EVM",
1341
+ "wc_permission_view_balance": "ดูยอดคงเหลือในกระเป๋าสตางค์และกิจกรรมของคุณ",
1342
+ "wc_scam_warning_message": "ดูเหมือนว่าคำขอนี้มาจากกลโกงที่ทราบ โปรดดำเนินการด้วยความระมัดระวัง",
1343
+ "wc_scam_warning_title": "คำเตือน!",
1344
+ "wc_scan_qr": "สแกนคิวอาร์",
1345
+ "wc_sign_all_count": "ลงนามข้อความทั้งหมด ${count}",
1346
+ "wc_signing_request_title": "คำขอลงนาม",
1347
+ "wc_swipe_to_approve": "ปัดเพื่ออนุมัติ",
1348
+ "wc_swipe_to_sign": "ปัดเพื่อลงนาม",
1349
+ "wc_verified": "ตรวจสอบแล้ว",
1350
+ "wc_would_like_to_connect_to": "${name} ต้องการเชื่อมต่อ",
1351
+ "wc_would_like_to_sign": "${name} ต้องการลงนาม",
1352
"website": "เว็บไซต์",
1353
"welcome": "ยินดีต้อนรับ",
1354
"welcome_subtitle_new_wallet": "หากคุณต้องการเริ่มต้นใหม่ ให้แตะ “สร้างกระเป๋าเงินใหม่” ด้านล่าง แล้วคุณก็พร้อมลุยได้ทันที",
res/values/strings_tl.arb
+24
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "Kinakailangan ang pahintulot sa camera.\nPaki-enable ito sa mga setting ng app.",
157
"cancel": "Kanselahin",
158
"cannot_manage_accounts_during_sync": "Hindi mo mapapamahalaan ang mga account habang nagsi-sync pa ang wallet. Pakisubukang muli mamaya.",
159
- "cannot_verify": "Hindi ma-verify",
160
- "cannot_verify_description": "Hindi ma-verify ang domain na ito. Suriing mabuti ang kahilingan bago aprubahan.",
159
"card_address": "Address:",
160
"card_order_reset_desc": "Ibalik ang pagkakasunud-sunod ng card sa mga default na setting?",
161
"card_style": "Estilo ng Card",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "I-disable ang Pag-optimize ng Baterya",
349
"disableBatteryOptimizationDescription": "Gusto mo bang i-disable ang battery optimization para mas malaya at mas maayos na tumakbo ang background sync?",
350
"disabled": "Naka-disable",
353
- "disconnect_session": "Idiskonekta ang Session",
351
"discount": "Makatipid ng ${value}%",
352
"dismiss": "Isara",
353
"display": "Display",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "Huwag na itong ipakita muli",
360
"do_not_show_me": "Huwag itong ipakita muli",
361
"domain_looks_up": "Mga pag-lookup ng domain",
365
- "domain_mismatch": "Hindi Tugma ang Domain",
366
- "domain_mismatch_description": "Ang website na ito ay may domain na hindi tumutugma sa nagpadala ng kahilingang ito. Ang pag-apruba ay maaaring humantong sa pagkawala ng mga pondo.",
362
"donation": "Donasyon",
363
"donation_link_details": "Mga detalye ng link ng donasyon",
364
"done": "Tapos",
@@ -892,8 +887,6 @@
887
"second_intro_title": "Isang emoji address para mamuno sa kanilang lahat",
888
"security": "Seguridad",
889
"security_and_backup": "Seguridad at pag-backup",
895
- "security_risk": "Panganib sa Seguridad",
896
- "security_risk_description": "Ang domain na ito ay na-flag bilang hindi ligtas ng maraming security provider. Umalis kaagad upang maprotektahan ang iyong mga asset.",
890
"seed_alert_back": "Bumalik",
891
"seed_alert_content": "Ang seed ang tanging paraan para ma-recover ang iyong wallet. Naisulat mo na ba ito?",
892
"seed_alert_title": "Paalala",
@@ -1258,7 +1251,6 @@
1251
"unspent_coins_details_title": "Mga detalye ng mga hindi nagastos na coin",
1252
"unspent_coins_title": "Mga hindi nagastos na coin",
1253
"unsupported_asset": "Hindi namin sinusuportahan ang aksyong ito para sa asset na ito. Mangyaring gumawa o lumipat sa isang wallet na may suportadong uri ng asset.",
1261
- "update_session": "I-update ang Session",
1254
"uptime": "Uptime",
1255
"upto": "hanggang ${value}",
1256
"usb": "USB",
@@ -1333,6 +1325,30 @@
1325
"walletConnect": "WalletConnect",
1326
"wallets": "Mga Wallet",
1327
"warning": "Babala",
1328
+ "wc_approve_request_title": "Aprubahan ang kahilingan",
1329
+ "wc_connect_request_title": "Ikonekta ang kahilingan",
1330
+ "wc_connected_to": "Nakakonekta sa ${name}",
1331
+ "wc_max_network_fee": "Pinakamataas na bayad sa network",
1332
+ "wc_message_to_sign": "Mensahe para pirmahan",
1333
+ "wc_network_fee": "Bayad sa network",
1334
+ "wc_not_verified": "Hindi Na-verify",
1335
+ "wc_pairing_list_header_subtitle": "Ikonekta ang iyong wallet sa WalletConnect o pamahalaan ang mga kasalukuyang app.",
1336
+ "wc_paste_link": "I-paste ang link ng WalletConnect",
1337
+ "wc_permission_other": "Iba pa: ${method}",
1338
+ "wc_permission_request_approval": "Humiling ng pag-apruba para sa mga transaksyon",
1339
+ "wc_permission_sign_messages": "Mag-sign ng mga mensahe at nai-type na data",
1340
+ "wc_permission_switch_chains": "Lumipat at magdagdag ng mga EVM chain",
1341
+ "wc_permission_view_balance": "Tingnan ang balanse at aktibidad ng iyong wallet",
1342
+ "wc_scam_warning_message": "Mukhang mula sa isang kilalang scam ang kahilingang ito. Mangyaring magpatuloy nang may pag-iingat.",
1343
+ "wc_scam_warning_title": "BABALA!",
1344
+ "wc_scan_qr": "I-scan ang QR",
1345
+ "wc_sign_all_count": "Lagdaan ang lahat ng ${count} na mensahe",
1346
+ "wc_signing_request_title": "Kahilingan sa pagpirma",
1347
+ "wc_swipe_to_approve": "Mag-swipe para aprubahan",
1348
+ "wc_swipe_to_sign": "Mag-swipe para lagdaan",
1349
+ "wc_verified": "Na-verify",
1350
+ "wc_would_like_to_connect_to": "Gustong kumonekta ni ${name}.",
1351
+ "wc_would_like_to_sign": "Gustong lagdaan ni ${name}.",
1352
"website": "Website",
1353
"welcome": "Maligayang pagdating",
1354
"welcome_subtitle_new_wallet": "Kung gusto mong magsimula muli, i-tap ang Lumikha ng Bagong Wallet sa ibaba at handa ka nang magsimula.",
res/values/strings_tr.arb
+24
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "Kamera izni gereklidir.\nLütfen uygulama ayarlarından etkinleştirin.",
157
"cancel": "İptal",
158
"cannot_manage_accounts_during_sync": "Cüzdan hâlâ senkronize olurken hesapları yönetemezsiniz. Lütfen daha sonra tekrar deneyin.",
159
- "cannot_verify": "Doğrulanamıyor",
160
- "cannot_verify_description": "Bu alan adı doğrulanamıyor. Onaylamadan önce isteği dikkatlice kontrol edin.",
159
"card_address": "Adres:",
160
"card_order_reset_desc": "Kart sırası varsayılan ayarlara geri yüklensin mi?",
161
"card_style": "Kart stili",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "Pil optimizasyonunu devre dışı bırakın",
349
"disableBatteryOptimizationDescription": "Arka plan senkronizasyonunun daha serbest ve sorunsuz çalışması için pil optimizasyonunu devre dışı bırakmak ister misiniz?",
350
"disabled": "Devre dışı",
353
- "disconnect_session": "Oturumu Sonlandır",
351
"discount": "${value}% tasarruf et",
352
"dismiss": "Kapat",
353
"display": "Görüntü",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "Bunu bir daha gösterme",
360
"do_not_show_me": "Bunu bir daha gösterme",
361
"domain_looks_up": "Alan adı sorgulamaları",
365
- "domain_mismatch": "Alan Adı Uyuşmazlığı",
366
- "domain_mismatch_description": "Bu web sitesinin alan adı, bu isteğin göndericisiyle eşleşmiyor. Onaylamak, fon kaybına yol açabilir.",
362
"donation": "Bağış",
363
"donation_link_details": "Bağış bağlantısı ayrıntıları",
364
"done": "Bitti",
@@ -892,8 +887,6 @@
887
"second_intro_title": "Hepsini yöneten tek bir emoji adresi",
888
"security": "Güvenlik",
889
"security_and_backup": "Güvenlik ve yedekleme",
895
- "security_risk": "Güvenlik Riski",
896
- "security_risk_description": "Bu alan adı, birden fazla güvenlik sağlayıcısı tarafından güvensiz olarak işaretlendi. Varlıklarınızı korumak için hemen ayrılın.",
890
"seed_alert_back": "Geri dön",
891
"seed_alert_content": "Seed, cüzdanınızı kurtarmanın tek yoludur. Seed'i yazdınız mı?",
892
"seed_alert_title": "Dikkat",
@@ -1258,7 +1251,6 @@
1251
"unspent_coins_details_title": "Harcanmamış coin detayları",
1252
"unspent_coins_title": "Harcanmamış coinler",
1253
"unsupported_asset": "Bu varlık için bu eylemi desteklemiyoruz. Lütfen desteklenen bir varlık türüne sahip bir cüzdan oluşturun veya o cüzdana geçiş yapın.",
1261
- "update_session": "Oturumu Güncelle",
1254
"uptime": "Çalışma süresi",
1255
"upto": "${value} değerine kadar",
1256
"usb": "USB",
@@ -1333,6 +1325,30 @@
1325
"walletConnect": "WalletConnect",
1326
"wallets": "Cüzdanlar",
1327
"warning": "Uyarı",
1328
+ "wc_approve_request_title": "İsteği onayla",
1329
+ "wc_connect_request_title": "Bağlantı isteği",
1330
+ "wc_connected_to": "${name} ile bağlantı kuruldu",
1331
+ "wc_max_network_fee": "Maksimum ağ ücreti",
1332
+ "wc_message_to_sign": "İmzalanacak mesaj",
1333
+ "wc_network_fee": "Ağ ücreti",
1334
+ "wc_not_verified": "Doğrulanmadı",
1335
+ "wc_pairing_list_header_subtitle": "Cüzdanınızı WalletConnect'e bağlayın veya mevcut uygulamaları yönetin.",
1336
+ "wc_paste_link": "WalletConnect bağlantısını yapıştırın",
1337
+ "wc_permission_other": "Diğer: ${method}",
1338
+ "wc_permission_request_approval": "İşlemler için onay isteyin",
1339
+ "wc_permission_sign_messages": "Mesajları ve yazılan verileri imzalayın",
1340
+ "wc_permission_switch_chains": "EVM zincirlerini değiştirin ve ekleyin",
1341
+ "wc_permission_view_balance": "Cüzdan bakiyenizi ve etkinliğinizi görüntüleyin",
1342
+ "wc_scam_warning_message": "Bu isteğin bilinen bir dolandırıcılıktan geldiği anlaşılıyor. Lütfen dikkatli bir şekilde ilerleyin.",
1343
+ "wc_scam_warning_title": "UYARI!",
1344
+ "wc_scan_qr": "QR'yi tara",
1345
+ "wc_sign_all_count": "${count} mesajın tümünü imzala",
1346
+ "wc_signing_request_title": "İmza isteği",
1347
+ "wc_swipe_to_approve": "Onaylamak için kaydırın",
1348
+ "wc_swipe_to_sign": "İmzalamak için kaydırın",
1349
+ "wc_verified": "Doğrulandı",
1350
+ "wc_would_like_to_connect_to": "${name} bağlanmak istiyor",
1351
+ "wc_would_like_to_sign": "${name} imzalamak istiyor",
1352
"website": "Web sitesi",
1353
"welcome": "Hoş geldiniz",
1354
"welcome_subtitle_new_wallet": "Sıfırdan başlamak istiyorsanız, aşağıdaki Yeni Cüzdan Oluştur’a dokunun ve hemen başlayın.",
res/values/strings_uk.arb
+24
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "Потрібен дозвіл на використання камери.\nУвімкніть його в налаштуваннях програми.",
157
"cancel": "Скасувати",
158
"cannot_manage_accounts_during_sync": "Ви не можете керувати обліковими записами, поки гаманець ще синхронізується. Будь ласка, спробуйте пізніше.",
159
- "cannot_verify": "Не вдається перевірити",
160
- "cannot_verify_description": "Цей домен неможливо перевірити. Ретельно перевірте запит перед схваленням.",
159
"card_address": "Адреса:",
160
"card_order_reset_desc": "Відновити порядок карток до налаштувань за замовчуванням?",
161
"card_style": "Стиль картки",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "Вимкнути оптимізацію батареї",
349
"disableBatteryOptimizationDescription": "Ви хочете вимкнути оптимізацію акумулятора, щоб фонова синхронізація працювала вільніше та плавніше?",
350
"disabled": "Вимкнено",
353
- "disconnect_session": "Від’єднати сеанс",
351
"discount": "Заощадьте ${value}%",
352
"dismiss": "Закрити",
353
"display": "Екран",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "Більше не показувати",
360
"do_not_show_me": "Більше не показувати це",
361
"domain_looks_up": "Пошук доменів",
365
- "domain_mismatch": "Невідповідність домену",
366
- "domain_mismatch_description": "Цей вебсайт має домен, який не відповідає відправнику цього запиту. Підтвердження може призвести до втрати коштів.",
362
"donation": "Пожертва",
363
"donation_link_details": "Деталі посилання для донатів",
364
"done": "Готово",
@@ -893,8 +888,6 @@
888
"second_intro_title": "Одна емодзі-адреса, щоб керувати всіма",
889
"security": "Безпека",
890
"security_and_backup": "Безпека та резервне копіювання",
896
- "security_risk": "Ризик безпеки",
897
- "security_risk_description": "Цей домен позначено як небезпечний кількома постачальниками засобів безпеки. Негайно залиште його, щоб захистити свої активи.",
891
"seed_alert_back": "Назад",
892
"seed_alert_content": "Сід-фраза — єдиний спосіб відновити ваш гаманець. Ви записали її?",
893
"seed_alert_title": "Увага",
@@ -1259,7 +1252,6 @@
1252
"unspent_coins_details_title": "Деталі невитрачених монет",
1253
"unspent_coins_title": "Невитрачені монети",
1254
"unsupported_asset": "Ми не підтримуємо цю дію для цього активу. Будь ласка, створіть або перемкніться на гаманець підтримуваного типу активів.",
1262
- "update_session": "Оновити сесію",
1255
"uptime": "Час безвідмовної роботи",
1256
"upto": "до ${value}",
1257
"usb": "USB",
@@ -1334,6 +1326,30 @@
1326
"walletConnect": "WalletConnect",
1327
"wallets": "Гаманці",
1328
"warning": "Попередження",
1329
+ "wc_approve_request_title": "Підтвердити запит",
1330
+ "wc_connect_request_title": "Запит на підключення",
1331
+ "wc_connected_to": "Підключено до ${name}",
1332
+ "wc_max_network_fee": "Максимальна мережева плата",
1333
+ "wc_message_to_sign": "Повідомлення для підпису",
1334
+ "wc_network_fee": "Плата за мережу",
1335
+ "wc_not_verified": "Не перевірено",
1336
+ "wc_pairing_list_header_subtitle": "Підключіть свій гаманець до WalletConnect або керуйте існуючими програмами.",
1337
+ "wc_paste_link": "Вставте посилання WalletConnect",
1338
+ "wc_permission_other": "Інше: ${method}",
1339
+ "wc_permission_request_approval": "Запит на схвалення транзакцій",
1340
+ "wc_permission_sign_messages": "Підписуйте повідомлення та введені дані",
1341
+ "wc_permission_switch_chains": "Перемикайте та додавайте ланцюжки EVM",
1342
+ "wc_permission_view_balance": "Перегляньте свій баланс гаманця та активність",
1343
+ "wc_scam_warning_message": "Схоже, цей запит надійшов від відомого шахрая. Будь ласка, будьте обережні.",
1344
+ "wc_scam_warning_title": "УВАГА!",
1345
+ "wc_scan_qr": "Сканувати QR",
1346
+ "wc_sign_all_count": "Підпишіть усі ${count} повідомлень",
1347
+ "wc_signing_request_title": "Підписання запиту",
1348
+ "wc_swipe_to_approve": "Проведіть пальцем, щоб підтвердити",
1349
+ "wc_swipe_to_sign": "Проведіть пальцем, щоб підписати",
1350
+ "wc_verified": "Перевірено",
1351
+ "wc_would_like_to_connect_to": "${name} хоче підключитися",
1352
+ "wc_would_like_to_sign": "${name} хоче підписати",
1353
"website": "Вебсайт",
1354
"welcome": "Ласкаво просимо",
1355
"welcome_subtitle_new_wallet": "Якщо ви хочете почати з чистого аркуша, торкніться «Створити новий гаманець» нижче — і вперед.",
res/values/strings_ur.arb
+24
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "کیمرہ کی اجازت درکار ہے۔ \nبراہ کرم اسے ایپ کی سیٹنگز سے فعال کریں۔",
157
"cancel": "منسوخ کریں",
158
"cannot_manage_accounts_during_sync": "جب تک بٹوہ ہم آہنگ ہو رہا ہے، آپ اکاؤنٹس کا نظم نہیں کر سکتے۔ براہ کرم بعد میں دوبارہ کوشش کریں۔",
159
- "cannot_verify": "تصدیق نہیں ہو سکتی",
160
- "cannot_verify_description": "اس ڈومین کی تصدیق نہیں کی جا سکتی۔ منظوری دینے سے پہلے درخواست کو غور سے چیک کریں۔",
159
"card_address": "پتہ:",
160
"card_order_reset_desc": "کارڈ کی ترتیب کو پہلے سے طے شدہ ترتیبات پر بحال کریں؟",
161
"card_style": "کارڈ کا انداز",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "بیٹری آپٹیمائزیشن کو غیر فعال کریں",
349
"disableBatteryOptimizationDescription": "کیا آپ پس منظر میں ہم آہنگی کو زیادہ آزادانہ اور ہموار طریقے سے چلانے کے لیے بیٹری آپٹیمائزیشن کو غیر فعال کرنا چاہتے ہیں؟",
350
"disabled": "غیر فعال",
353
- "disconnect_session": "سیشن منقطع کریں",
351
"discount": "${value}% بچائیں",
352
"dismiss": "برخاست کریں",
353
"display": "ڈسپلے",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "یہ دوبارہ نہ دکھائیں",
360
"do_not_show_me": "یہ مجھے دوبارہ نہ دکھائیں",
361
"domain_looks_up": "ڈومین تلاش",
365
- "domain_mismatch": "ڈومین میں عدم مطابقت",
366
- "domain_mismatch_description": "اس ویب سائٹ کا ڈومین اس درخواست کے بھیجنے والے سے مطابقت نہیں رکھتا۔ منظوری دینے سے فنڈز ضائع ہو سکتے ہیں۔",
362
"donation": "عطیہ",
363
"donation_link_details": "ڈونیشن لنک کی تفصیلات",
364
"done": "ہو گیا",
@@ -894,8 +889,6 @@
889
"second_intro_title": "سب پر حکمرانی کے لیے ایک ایموجی ایڈریس",
890
"security": "سیکیورٹی",
891
"security_and_backup": "سیکیورٹی اور بیک اپ",
897
- "security_risk": "سیکیورٹی کا خطرہ",
898
- "security_risk_description": "اس ڈومین کو متعدد سیکیورٹی فراہم کنندگان نے غیر محفوظ قرار دیا ہے۔ اپنے اثاثوں کی حفاظت کے لیے فوراً یہاں سے نکل جائیں۔",
892
"seed_alert_back": "واپس جائیں",
893
"seed_alert_content": "سیڈ آپ کے والیٹ کو بحال کرنے کا واحد طریقہ ہے۔ کیا آپ نے اسے لکھ لیا ہے؟",
894
"seed_alert_title": "توجہ",
@@ -1260,7 +1253,6 @@
1253
"unspent_coins_details_title": "غیر خرچ شدہ کوائنز کی تفصیلات",
1254
"unspent_coins_title": "غیر خرچ شدہ سکے",
1255
"unsupported_asset": "ہم اس اثاثے کے لیے اس کارروائی کی حمایت نہیں کرتے۔ براہِ کرم کسی معاون اثاثہ قسم کا والیٹ بنائیں یا اس پر سوئچ کریں۔",
1263
- "update_session": "سیشن اپ ڈیٹ کریں",
1256
"uptime": "اپ ٹائم",
1257
"upto": "${value} تک",
1258
"usb": "USB",
@@ -1335,6 +1327,30 @@
1327
"walletConnect": "WalletConnect",
1328
"wallets": "والٹس",
1329
"warning": "انتباہ",
1330
+ "wc_approve_request_title": "درخواست منظور کریں۔",
1331
+ "wc_connect_request_title": "رابطہ کی درخواست",
1332
+ "wc_connected_to": "${name} سے منسلک",
1333
+ "wc_max_network_fee": "زیادہ سے زیادہ نیٹ ورک فیس",
1334
+ "wc_message_to_sign": "دستخط کرنے کا پیغام",
1335
+ "wc_network_fee": "نیٹ ورک فیس",
1336
+ "wc_not_verified": "تصدیق شدہ نہیں۔",
1337
+ "wc_pairing_list_header_subtitle": "اپنے بٹوے کو WalletConnect کے ساتھ مربوط کریں یا موجودہ ایپس کا نظم کریں۔",
1338
+ "wc_paste_link": "WalletConnect لنک پیسٹ کریں۔",
1339
+ "wc_permission_other": "دیگر: ${method}",
1340
+ "wc_permission_request_approval": "لین دین کے لیے منظوری کی درخواست کریں۔",
1341
+ "wc_permission_sign_messages": "پیغامات پر دستخط کریں اور ڈیٹا ٹائپ کریں۔",
1342
+ "wc_permission_switch_chains": "ای وی ایم چینز کو تبدیل کریں اور شامل کریں۔",
1343
+ "wc_permission_view_balance": "اپنے بٹوے کا بیلنس اور سرگرمی دیکھیں",
1344
+ "wc_scam_warning_message": "یہ درخواست کسی معروف اسکام کی طرف سے معلوم ہوتی ہے۔ براہ کرم احتیاط کے ساتھ آگے بڑھیں۔",
1345
+ "wc_scam_warning_title": "وارننگ!",
1346
+ "wc_scan_qr": "QR اسکین کریں۔",
1347
+ "wc_sign_all_count": "تمام ${count} پیغامات پر دستخط کریں۔",
1348
+ "wc_signing_request_title": "درخواست پر دستخط کرنا",
1349
+ "wc_swipe_to_approve": "منظور کرنے کے لیے سوائپ کریں۔",
1350
+ "wc_swipe_to_sign": "دستخط کرنے کے لیے سوائپ کریں۔",
1351
+ "wc_verified": "تصدیق شدہ",
1352
+ "wc_would_like_to_connect_to": "${name} جڑنا چاہتا ہے۔",
1353
+ "wc_would_like_to_sign": "${name} دستخط کرنا چاہیں گے۔",
1354
"website": "ویب سائٹ",
1355
"welcome": "خوش آمدید",
1356
"welcome_subtitle_new_wallet": "اگر آپ نئے سرے سے شروع کرنا چاہتے ہیں تو نیچے \"نیا والیٹ بنائیں\" پر تھپتھپائیں اور آپ فوراً شروع کر دیں گے۔",
res/values/strings_vi.arb
+24
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "Cần có quyền truy cập máy ảnh. \nVui lòng bật quyền này trong cài đặt ứng dụng.",
157
"cancel": "Hủy",
158
"cannot_manage_accounts_during_sync": "Bạn không thể quản lý tài khoản khi ví vẫn đang đồng bộ. Vui lòng thử lại sau.",
159
- "cannot_verify": "Không thể xác minh",
160
- "cannot_verify_description": "Không thể xác minh miền này. Hãy kiểm tra kỹ yêu cầu trước khi phê duyệt.",
159
"card_address": "Địa chỉ:",
160
"card_order_reset_desc": "Khôi phục thứ tự thẻ về cài đặt mặc định?",
161
"card_style": "Kiểu thẻ",
@@ -349,7 +347,6 @@
347
"disableBatteryOptimization": "Tắt tối ưu hóa pin",
348
"disableBatteryOptimizationDescription": "Bạn có muốn tắt tối ưu hóa pin để đồng bộ hóa nền chạy tự do và mượt mà hơn không?",
349
"disabled": "Đã tắt",
352
- "disconnect_session": "Ngắt kết nối phiên",
350
"discount": "Tiết kiệm ${value}%",
351
"dismiss": "Bỏ qua",
352
"display": "Hiển thị",
@@ -361,8 +358,6 @@
358
"do_not_show_anymore": "Không hiển thị lại nữa",
359
"do_not_show_me": "Không hiển thị lại",
360
"domain_looks_up": "Tra cứu tên miền",
364
- "domain_mismatch": "Tên miền không khớp",
365
- "domain_mismatch_description": "Trang web này có tên miền không khớp với người gửi yêu cầu này. Việc phê duyệt có thể dẫn đến mất tiền.",
361
"donation": "Quyên góp",
362
"donation_link_details": "Chi tiết liên kết quyên góp",
363
"done": "Xong",
@@ -890,8 +885,6 @@
885
"second_intro_title": "Một địa chỉ emoji thống trị tất cả",
886
"security": "Bảo mật",
887
"security_and_backup": "Bảo mật và sao lưu",
893
- "security_risk": "Rủi ro bảo mật",
894
- "security_risk_description": "Tên miền này đã bị nhiều nhà cung cấp bảo mật gắn cờ là không an toàn. Hãy rời khỏi ngay để bảo vệ tài sản của bạn.",
888
"seed_alert_back": "Quay lại",
889
"seed_alert_content": "Cụm từ khôi phục là cách duy nhất để khôi phục ví của bạn. Bạn đã ghi lại chưa?",
890
"seed_alert_title": "Chú ý",
@@ -1255,7 +1248,6 @@
1248
"unspent_coins_details_title": "Chi tiết coin chưa chi tiêu",
1249
"unspent_coins_title": "Các coin chưa sử dụng",
1250
"unsupported_asset": "Chúng tôi không hỗ trợ hành động này cho tài sản này. Vui lòng tạo hoặc chuyển sang ví thuộc loại tài sản được hỗ trợ.",
1258
- "update_session": "Cập nhật phiên",
1251
"uptime": "Thời gian hoạt động",
1252
"upto": "tối đa ${value}",
1253
"usb": "USB",
@@ -1330,6 +1322,30 @@
1322
"walletConnect": "WalletConnect",
1323
"wallets": "Ví",
1324
"warning": "Cảnh báo",
1325
+ "wc_approve_request_title": "Phê duyệt yêu cầu",
1326
+ "wc_connect_request_title": "Yêu cầu kết nối",
1327
+ "wc_connected_to": "Đã kết nối với ${name}",
1328
+ "wc_max_network_fee": "Phí mạng tối đa",
1329
+ "wc_message_to_sign": "Tin nhắn để ký",
1330
+ "wc_network_fee": "Phí mạng",
1331
+ "wc_not_verified": "Chưa được xác minh",
1332
+ "wc_pairing_list_header_subtitle": "Kết nối ví của bạn với WalletConnect hoặc quản lý các ứng dụng hiện có.",
1333
+ "wc_paste_link": "Dán liên kết WalletConnect",
1334
+ "wc_permission_other": "Khác: ${method}",
1335
+ "wc_permission_request_approval": "Yêu cầu phê duyệt giao dịch",
1336
+ "wc_permission_sign_messages": "Ký tin nhắn và đánh máy dữ liệu",
1337
+ "wc_permission_switch_chains": "Chuyển đổi và thêm chuỗi EVM",
1338
+ "wc_permission_view_balance": "Xem số dư và hoạt động ví của bạn",
1339
+ "wc_scam_warning_message": "Yêu cầu này có vẻ là từ một trò lừa đảo đã biết. Hãy tiến hành thận trọng.",
1340
+ "wc_scam_warning_title": "CẢNH BÁO!",
1341
+ "wc_scan_qr": "Quét QR",
1342
+ "wc_sign_all_count": "Ký tất cả tin nhắn ${count}",
1343
+ "wc_signing_request_title": "Yêu cầu ký",
1344
+ "wc_swipe_to_approve": "Vuốt để phê duyệt",
1345
+ "wc_swipe_to_sign": "Vuốt để ký",
1346
+ "wc_verified": "Đã xác minh",
1347
+ "wc_would_like_to_connect_to": "${name} muốn kết nối",
1348
+ "wc_would_like_to_sign": "${name} muốn ký",
1349
"website": "Trang web",
1350
"welcome": "Chào mừng",
1351
"welcome_subtitle_new_wallet": "Nếu bạn muốn bắt đầu lại từ đầu, hãy nhấn Tạo ví mới bên dưới và bạn sẽ sẵn sàng bắt đầu.",
res/values/strings_yo.arb
+24
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "A nilo igbanilaaye kamẹra.\nJọwọ mu un ṣiṣẹ lati inu eto app.",
157
"cancel": "Fagilé",
158
"cannot_manage_accounts_during_sync": "O ko le ṣakoso awọn akọọlẹ lakoko ti apamọwọ ṣi n ṣe ìbámu. Jọwọ gbiyanju lẹẹkansi nígbà míì.",
159
- "cannot_verify": "Ko le jẹrisi",
160
- "cannot_verify_description": "A ko le jẹrisi domain yii. Ṣayẹwo ìbéèrè náà dáadáa kí o tó fọwọ́sí.",
159
"card_address": "Àdírẹ́sì:",
160
"card_order_reset_desc": "Ṣe o fẹ́ tún ìtòlẹ́sẹẹsẹ kaadi padà sí àwọn eto aiyipada?",
161
"card_style": "Ara kaadi",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "Pa Imudára Batiri Dúró",
349
"disableBatteryOptimizationDescription": "Ṣe o fẹ́ pa ìmúdàgba batiri (battery optimization) kí ìbámuṣiṣẹ́pọ̀ abẹ́lẹ̀ lè ṣiṣẹ́ ní òmìnira àti láìsí ìdènà?",
350
"disabled": "Ti wa ni pipa",
353
- "disconnect_session": "Ge asopọ igba",
351
"discount": "Fipamọ́ ${value}%",
352
"dismiss": "Pa a",
353
"display": "Ifihan",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "Ma ṣe fi eyi han mọ",
360
"do_not_show_me": "Má ṣe fi èyí hàn mí mọ́",
361
"domain_looks_up": "Ìwádìí domain",
365
- "domain_mismatch": "Àìbámu Dómẹ́ẹ̀nì",
366
- "domain_mismatch_description": "Oju opo wẹẹbu yii ni domain kan tí kò bá olùránṣẹ́ ìbéèrè yìí mu. Fífi àṣẹ sí i lè fa ìpàdánù owó.",
362
"donation": "Àfikúnrẹ́rẹ́",
363
"donation_link_details": "Awọn alaye ìjápọ̀ ẹ̀bùn",
364
"done": "Ti parí",
@@ -893,8 +888,6 @@
888
"second_intro_title": "Àdírẹ́sì emoji kan láti ṣàkóso gbogbo wọn",
889
"security": "Aàbò",
890
"security_and_backup": "Ààbò àti ẹ̀dà afẹ́yinti",
896
- "security_risk": "Ewu Aabo",
897
- "security_risk_description": "Aaye yii ni a ti samisi gẹ́gẹ́ bí aláìlábòóbo nípasẹ̀ ọ̀pọ̀ àwọn olùpèsè ààbò. Kúrò níbẹ̀ lẹ́sẹ̀kẹsẹ̀ láti dáàbò bo àwọn ohun-ini rẹ.",
891
"seed_alert_back": "Padà sẹ́yìn",
892
"seed_alert_content": "Gbolohun ìrùgbìn (seed) ni ọ̀nà kan ṣoṣo láti gba àpamọ́wọ́ rẹ padà. Ṣé o ti kọ ọ sílẹ̀?",
893
"seed_alert_title": "Ìkìlọ̀",
@@ -1259,7 +1252,6 @@
1252
"unspent_coins_details_title": "Àlàyé àwọn owó ẹyọ tí a kò tíì ná",
1253
"unspent_coins_title": "Àwọn owó ẹyọ tí a kò tíì na",
1254
"unsupported_asset": "A ko ṣe atilẹyin ìṣe yìí fún dukia yìí. Jọwọ ṣẹda tàbí yípadà sí apamọwọ ti iru dukia tí a ṣe atilẹyin.",
1262
- "update_session": "Ṣàtúnṣe ìpàdé",
1255
"uptime": "Akoko tí ó ti ń ṣiṣẹ́",
1256
"upto": "títí dé ${value}",
1257
"usb": "USB",
@@ -1334,6 +1326,30 @@
1326
"walletConnect": "WalletConnect",
1327
"wallets": "Àwọn wálẹ́ẹ̀tì",
1328
"warning": "Ìkìlọ̀",
1329
+ "wc_approve_request_title": "fọwọsi ìbéèrè",
1330
+ "wc_connect_request_title": "Sopọ ìbéèrè",
1331
+ "wc_connected_to": "Sopọ si ${name}",
1332
+ "wc_max_network_fee": "Max owo nẹtiwọki",
1333
+ "wc_message_to_sign": "Ifiranṣẹ lati wole",
1334
+ "wc_network_fee": "Nẹtiwọki ọya",
1335
+ "wc_not_verified": "Ko Ṣewadii",
1336
+ "wc_pairing_list_header_subtitle": "So apamọwọ rẹ pọ pẹlu WalletConnect tabi ṣakoso awọn ohun elo to wa tẹlẹ.",
1337
+ "wc_paste_link": "Lẹẹmọ WalletConnect ọna asopọ",
1338
+ "wc_permission_other": "Omiiran: ${method}",
1339
+ "wc_permission_request_approval": "Beere alakosile fun awọn idunadura",
1340
+ "wc_permission_sign_messages": "Wole awọn ifiranṣẹ ati titẹ data",
1341
+ "wc_permission_switch_chains": "Yipada ki o si fi EVM dè",
1342
+ "wc_permission_view_balance": "Wo iwọntunwọnsi apamọwọ rẹ ati iṣẹ ṣiṣe",
1343
+ "wc_scam_warning_message": "Ibeere yii han lati wa lati itanjẹ ti a mọ. Jọwọ tẹsiwaju pẹlu iṣọra.",
1344
+ "wc_scam_warning_title": "IKILO!",
1345
+ "wc_scan_qr": "Ṣayẹwo QR",
1346
+ "wc_sign_all_count": "Wole gbogbo awọn ifiranṣẹ ${count}",
1347
+ "wc_signing_request_title": "Ìbéèrè wíwọlé",
1348
+ "wc_swipe_to_approve": "Ra lati fọwọsi",
1349
+ "wc_swipe_to_sign": "Ra lati wole",
1350
+ "wc_verified": "Jẹrisi",
1351
+ "wc_would_like_to_connect_to": "${name} yoo fẹ lati sopọ",
1352
+ "wc_would_like_to_sign": "${name} yoo fẹ lati fowo si",
1353
"website": "Oju opo wẹẹbu",
1354
"welcome": "Kaabọ",
1355
"welcome_subtitle_new_wallet": "Tí o bá fẹ́ bẹ̀rẹ̀ láti ìbẹ̀rẹ̀, tẹ Ṣẹda Apamọwọ Tuntun ní isalẹ, ìwọ yóò sì ti bẹ̀rẹ̀ lẹ́sẹ̀kẹsẹ̀.",
res/values/strings_zh.arb
+24
-8
@@ -156,8 +156,6 @@
156
"camera_permission_is_required": "需要相机权限。\n请在应用设置中启用。",
157
"cancel": "取消",
158
"cannot_manage_accounts_during_sync": "钱包仍在同步时,您无法管理账户。请稍后再试。",
159
- "cannot_verify": "无法验证",
160
- "cannot_verify_description": "无法验证此域名。批准前请仔细检查请求。",
159
"card_address": "地址:",
160
"card_order_reset_desc": "将卡片顺序恢复为默认设置?",
161
"card_style": "卡片样式",
@@ -350,7 +348,6 @@
348
"disableBatteryOptimization": "关闭电池优化",
349
"disableBatteryOptimizationDescription": "您是否要禁用电池优化,以便让后台同步运行得更自由、更顺畅?",
350
"disabled": "已禁用",
353
- "disconnect_session": "断开会话",
351
"discount": "节省 ${value}%",
352
"dismiss": "关闭",
353
"display": "显示",
@@ -362,8 +359,6 @@
359
"do_not_show_anymore": "不再显示",
360
"do_not_show_me": "不再显示此提示",
361
"domain_looks_up": "域名查询",
365
- "domain_mismatch": "域名不匹配",
366
- "domain_mismatch_description": "该网站的域名与此请求的发送方不匹配。批准可能导致资金损失。",
362
"donation": "捐赠",
363
"donation_link_details": "捐赠链接详情",
364
"done": "完成",
@@ -892,8 +887,6 @@
887
"second_intro_title": "一个表情符号地址,统领所有地址",
888
"security": "安全",
889
"security_and_backup": "安全与备份",
895
- "security_risk": "安全风险",
896
- "security_risk_description": "该域名已被多家安全服务提供商标记为不安全。请立即离开以保护您的资产。",
890
"seed_alert_back": "返回",
891
"seed_alert_content": "助记词是恢复钱包的唯一方式。您是否已将其写下?",
892
"seed_alert_title": "注意",
@@ -1258,7 +1251,6 @@
1251
"unspent_coins_details_title": "未花费币详情",
1252
"unspent_coins_title": "未花费币",
1253
"unsupported_asset": "我们不支持对该资产执行此操作。请创建或切换到受支持的资产类型的钱包。",
1261
- "update_session": "更新会话",
1254
"uptime": "正常运行时间",
1255
"upto": "最高可达 ${value}",
1256
"usb": "USB",
@@ -1333,6 +1325,30 @@
1325
"walletConnect": "WalletConnect",
1326
"wallets": "钱包",
1327
"warning": "警告",
1328
+ "wc_approve_request_title": "批准请求",
1329
+ "wc_connect_request_title": "连接请求",
1330
+ "wc_connected_to": "连接到${name}",
1331
+ "wc_max_network_fee": "最高网络费用",
1332
+ "wc_message_to_sign": "留言要签名",
1333
+ "wc_network_fee": "网络费",
1334
+ "wc_not_verified": "未驗證",
1335
+ "wc_pairing_list_header_subtitle": "将您的钱包与 WalletConnect 连接或管理现有应用程序。",
1336
+ "wc_paste_link": "粘贴 WalletConnect 链接",
1337
+ "wc_permission_other": "其他:${method}",
1338
+ "wc_permission_request_approval": "请求批准交易",
1339
+ "wc_permission_sign_messages": "签署消息和键入的数据",
1340
+ "wc_permission_switch_chains": "切换并添加EVM链",
1341
+ "wc_permission_view_balance": "查看您的钱包余额和活动",
1342
+ "wc_scam_warning_message": "此请求似乎来自一个已知的骗局。请谨慎行事。",
1343
+ "wc_scam_warning_title": "警告!",
1344
+ "wc_scan_qr": "扫描二维码",
1345
+ "wc_sign_all_count": "签署所有 ${count} 条消息",
1346
+ "wc_signing_request_title": "签署请求",
1347
+ "wc_swipe_to_approve": "滑动即可批准",
1348
+ "wc_swipe_to_sign": "滑动即可签名",
1349
+ "wc_verified": "已验证",
1350
+ "wc_would_like_to_connect_to": "${name} 想要连接",
1351
+ "wc_would_like_to_sign": "${name} 想要签名",
1352
"website": "网站",
1353
"welcome": "欢迎",
1354
"welcome_subtitle_new_wallet": "如果你想重新开始,请点击下方的【创建新钱包】,即可立即开始。",
res/values/strings_zh_tw.arb
+24
-8
@@ -132,8 +132,6 @@
132
"camera_consent": "您的相機將由 ${provider} 用於拍攝影像,以供身分識別之用。詳情請查看他們的隱私權政策。",
133
"camera_permission_is_required": "需要相機權限。\n請在應用程式設定中啟用。",
134
"cancel": "取消",
135
- "cannot_verify": "無法驗證",
136
- "cannot_verify_description": "此網域無法驗證。核准之前,請仔細檢查請求內容。",
135
"card_address": "地址:",
136
"cardholder_agreement": "持卡人協議",
137
"cards": "卡片",
@@ -301,7 +299,6 @@
299
"disableBatteryOptimization": "停用電池最佳化",
300
"disableBatteryOptimizationDescription": "您是否要停用電池最佳化,以便讓背景同步更自由、更順暢地執行?",
301
"disabled": "已停用",
304
- "disconnect_session": "中斷連線階段",
302
"discount": "省下 ${value}%",
303
"display_settings": "顯示設定",
304
"displayable": "可顯示",
@@ -310,8 +307,6 @@
307
"do_not_share_warning_text": "請勿與任何人分享這些資訊,包括客服支援。\n\n您的資金可能而且一定會被盜!",
308
"do_not_show_me": "不再顯示此訊息",
309
"domain_looks_up": "網域查詢",
313
- "domain_mismatch": "網域不符",
314
- "domain_mismatch_description": "此網站的網域與此請求的發送者不相符。核准可能導致資金損失。",
310
"donation_link_details": "捐款連結詳情",
311
"done": "完成",
312
"duress_pin_description": "這將設定胁迫 PIN,這是一項大多數使用者不應使用的進階功能。此 PIN 碼僅應在您身處危險時使用。使用此 PIN 碼後,您的所有錢包都將被刪除,因此請在使用前確保已備份所有助記詞。",
@@ -771,8 +766,6 @@
766
"second_intro_title": "一個表情符號地址,統御所有地址",
767
"security": "安全性",
768
"security_and_backup": "安全性與備份",
774
- "security_risk": "安全風險",
775
- "security_risk_description": "此網域已被多家安全服務提供者標記為不安全。請立即離開以保護您的資產。",
769
"seed_alert_back": "返回",
770
"seed_alert_content": "助記詞是恢復錢包的唯一方式。您已經把它寫下來了嗎?",
771
"seed_alert_title": "注意",
@@ -1080,7 +1073,6 @@
1073
"unspent_coins_details_title": "未花費幣詳細資訊",
1074
"unspent_coins_title": "未花費幣",
1075
"unsupported_asset": "我們不支援對此資產執行此操作。請建立或切換至支援的資產類型錢包。",
1083
- "update_session": "更新會話",
1076
"uptime": "正常運行時間",
1077
"upto": "最高可達 ${value}",
1078
"usb": "USB",
@@ -1144,6 +1136,30 @@
1136
"walletConnect": "WalletConnect",
1137
"wallets": "錢包",
1138
"warning": "警告",
1139
+ "wc_approve_request_title": "批准請求",
1140
+ "wc_connect_request_title": "連線請求",
1141
+ "wc_connected_to": "已連線至 ${name}",
1142
+ "wc_not_verified": "未驗證",
1143
+ "wc_max_network_fee": "最高網路費用",
1144
+ "wc_message_to_sign": "要簽署的訊息",
1145
+ "wc_network_fee": "網路費用",
1146
+ "wc_pairing_list_header_subtitle": "將您的錢包與 WalletConnect 連接或管理現有應用程式。",
1147
+ "wc_paste_link": "貼上 WalletConnect 連結",
1148
+ "wc_permission_other": "其他:${method}",
1149
+ "wc_permission_request_approval": "請求批准交易",
1150
+ "wc_permission_sign_messages": "簽署訊息和類型化資料",
1151
+ "wc_permission_switch_chains": "切換並新增 EVM 鏈",
1152
+ "wc_permission_view_balance": "查看您的錢包餘額和活動",
1153
+ "wc_scam_warning_message": "此請求似乎來自已知的詐騙。請謹慎處理。",
1154
+ "wc_scam_warning_title": "警告!",
1155
+ "wc_scan_qr": "掃描 QR Code",
1156
+ "wc_sign_all_count": "簽署全部 ${count} 條訊息",
1157
+ "wc_signing_request_title": "簽署請求",
1158
+ "wc_swipe_to_approve": "滑動以批准",
1159
+ "wc_swipe_to_sign": "滑動以簽署",
1160
+ "wc_verified": "已驗證",
1161
+ "wc_would_like_to_connect_to": "${name} 想要連線",
1162
+ "wc_would_like_to_sign": "${name} 想要簽署",
1163
"website": "網站",
1164
"welcome": "歡迎",
1165
"welcome_subtitle_new_wallet": "如果你想重新開始,點擊下方的【建立新錢包】,馬上就能開始。",