mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-02-25 20:40:40 +00:00
WIP: CW-665 Implement AirGapped Monero Transactions (#1535)
* replace qr scanner with fast_scanner * bump java version * fix qr code scanning * add flashlight and camera switch * airgap work * commitTransactionUR * bump fast_scanner, fix configure script * add option to restore wallet from NERO qr format * fixes to the flow and logic use gsed or otherwise it fails? * remove Expanded() to fix URQR on release builds * cache key to allow app updates * rename cache key * [skip ci] cache key.jks in cache_dependencies * update fast_scanner to work on ios, with light mlkit dependency * ui fixes * error handling fix * update fast_scanner to drop iOS dependency * changes from review * Update lib/entities/qr_scanner.dart * changes from review * remove useless commit * don't set state multiple times remove return Container() for non monero wallets * return on fail don't handle empty qr codes * set node as trusted display primary address in seed screen * fix wow and haven * migrate node to trusted * - update trusted node for existing users - update locales - fix conflicts - move menu item --------- Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
This commit is contained in:
parent
8e12fb1ad9
commit
cea3084bb3
84 changed files with 1318 additions and 141 deletions
.github/workflows
android
assets
cw_bitcoin/lib
cw_bitcoin_cash/lib/src
cw_core/lib
cw_evm/lib
cw_haven/lib
cw_monero/lib
cw_nano/lib
cw_shared_external
cw_solana/lib
cw_tron/lib
cw_wownero/lib
lib
di.dart
entities
main.dartmonero
router.dartroutes.dartsrc
screens
cake_pay/cards
dashboard/widgets
exchange_trade
send
settings/desktop_settings
transaction_details
ur
wallet_connect
widgets
view_model
linux/flutter
macos
pubspec_base.yamlres/values
strings_ar.arbstrings_bg.arbstrings_cs.arbstrings_de.arbstrings_en.arbstrings_es.arbstrings_fr.arbstrings_ha.arbstrings_hi.arbstrings_hr.arbstrings_hy.arbstrings_id.arbstrings_it.arbstrings_ja.arbstrings_ko.arbstrings_my.arbstrings_nl.arbstrings_pl.arbstrings_pt.arbstrings_ru.arbstrings_th.arbstrings_tl.arbstrings_tr.arbstrings_uk.arbstrings_ur.arbstrings_vi.arbstrings_yo.arbstrings_zh.arb
scripts/macos
tool
windows/flutter
3
.github/workflows/cache_dependencies.yml
vendored
3
.github/workflows/cache_dependencies.yml
vendored
|
@ -62,10 +62,9 @@ jobs:
|
||||||
/opt/android/cake_wallet/cw_haven/android/.cxx
|
/opt/android/cake_wallet/cw_haven/android/.cxx
|
||||||
/opt/android/cake_wallet/scripts/monero_c/release
|
/opt/android/cake_wallet/scripts/monero_c/release
|
||||||
key: ${{ hashFiles('**/prepare_moneroc.sh' ,'**/build_monero_all.sh' ,'**/cache_dependencies.yml') }}
|
key: ${{ hashFiles('**/prepare_moneroc.sh' ,'**/build_monero_all.sh' ,'**/cache_dependencies.yml') }}
|
||||||
|
|
||||||
- if: ${{ steps.cache-externals.outputs.cache-hit != 'true' }}
|
- if: ${{ steps.cache-externals.outputs.cache-hit != 'true' }}
|
||||||
name: Generate Externals
|
name: Generate Externals
|
||||||
run: |
|
run: |
|
||||||
cd /opt/android/cake_wallet/scripts/android/
|
cd /opt/android/cake_wallet/scripts/android/
|
||||||
source ./app_env.sh cakewallet
|
source ./app_env.sh cakewallet
|
||||||
./build_monero_all.sh
|
./build_monero_all.sh
|
4
.github/workflows/pr_test_build_android.yml
vendored
4
.github/workflows/pr_test_build_android.yml
vendored
|
@ -82,7 +82,8 @@ jobs:
|
||||||
path: |
|
path: |
|
||||||
/opt/android/cake_wallet/cw_haven/android/.cxx
|
/opt/android/cake_wallet/cw_haven/android/.cxx
|
||||||
/opt/android/cake_wallet/scripts/monero_c/release
|
/opt/android/cake_wallet/scripts/monero_c/release
|
||||||
key: ${{ hashFiles('**/prepare_moneroc.sh' ,'**/build_monero_all.sh' ,'**/cache_dependencies.yml') }}
|
/opt/android/cake_wallet/android/app/key.jks
|
||||||
|
key: android_${{ hashFiles('**/prepare_moneroc.sh' ,'**/build_monero_all.sh' ,'**/cache_dependencies.yml') }}
|
||||||
|
|
||||||
- if: ${{ steps.cache-externals.outputs.cache-hit != 'true' }}
|
- if: ${{ steps.cache-externals.outputs.cache-hit != 'true' }}
|
||||||
name: Generate Externals
|
name: Generate Externals
|
||||||
|
@ -116,6 +117,7 @@ jobs:
|
||||||
./build_mwebd.sh --dont-install
|
./build_mwebd.sh --dont-install
|
||||||
|
|
||||||
- name: Generate KeyStore
|
- name: Generate KeyStore
|
||||||
|
if: ${{ steps.cache-externals.outputs.cache-hit != 'true' }}
|
||||||
run: |
|
run: |
|
||||||
cd /opt/android/cake_wallet/android/app
|
cd /opt/android/cake_wallet/android/app
|
||||||
keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias testKey -noprompt -dname "CN=CakeWallet, OU=CakeWallet, O=CakeWallet, L=Florida, S=America, C=USA" -storepass $STORE_PASS -keypass $KEY_PASS
|
keytool -genkey -v -keystore key.jks -keyalg RSA -keysize 2048 -validity 10000 -alias testKey -noprompt -dname "CN=CakeWallet, OU=CakeWallet, O=CakeWallet, L=Florida, S=America, C=USA" -storepass $STORE_PASS -keypass $KEY_PASS
|
||||||
|
|
|
@ -92,3 +92,8 @@ dependencies {
|
||||||
androidTestImplementation 'androidx.test:runner:1.3.0'
|
androidTestImplementation 'androidx.test:runner:1.3.0'
|
||||||
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
|
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
|
||||||
}
|
}
|
||||||
|
configurations {
|
||||||
|
implementation.exclude module:'proto-google-common-protos'
|
||||||
|
implementation.exclude module:'protolite-well-known-types'
|
||||||
|
implementation.exclude module:'protobuf-javalite'
|
||||||
|
}
|
|
@ -1,4 +1,4 @@
|
||||||
org.gradle.jvmargs=-Xmx1536M
|
org.gradle.jvmargs=-Xmx3072M
|
||||||
android.enableR8=true
|
android.enableR8=true
|
||||||
android.useAndroidX=true
|
android.useAndroidX=true
|
||||||
android.enableJetifier=true
|
android.enableJetifier=true
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
-
|
-
|
||||||
uri: xmr-node.cakewallet.com:18081
|
uri: xmr-node.cakewallet.com:18081
|
||||||
is_default: true
|
is_default: true
|
||||||
|
trusted: true
|
||||||
-
|
-
|
||||||
uri: cakexmrl7bonq7ovjka5kuwuyd3f7qnkz6z6s6dmsy3uckwra7bvggyd.onion:18081
|
uri: cakexmrl7bonq7ovjka5kuwuyd3f7qnkz6z6s6dmsy3uckwra7bvggyd.onion:18081
|
||||||
is_default: false
|
is_default: false
|
||||||
|
|
|
@ -153,4 +153,9 @@ class PendingBitcoinTransaction with PendingTransaction {
|
||||||
inputAddresses: _tx.inputs.map((input) => input.txId).toList(),
|
inputAddresses: _tx.inputs.map((input) => input.txId).toList(),
|
||||||
outputAddresses: outputAddresses,
|
outputAddresses: outputAddresses,
|
||||||
fee: fee);
|
fee: fee);
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<String?> commitUR() {
|
||||||
|
throw UnimplementedError();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -85,4 +85,8 @@ class PendingBitcoinCashTransaction with PendingTransaction {
|
||||||
fee: fee,
|
fee: fee,
|
||||||
isReplaced: false,
|
isReplaced: false,
|
||||||
);
|
);
|
||||||
|
@override
|
||||||
|
Future<String?> commitUR() {
|
||||||
|
throw UnimplementedError();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
class MoneroWalletKeys {
|
class MoneroWalletKeys {
|
||||||
const MoneroWalletKeys(
|
const MoneroWalletKeys(
|
||||||
{required this.privateSpendKey,
|
{required this.primaryAddress,
|
||||||
|
required this.privateSpendKey,
|
||||||
required this.privateViewKey,
|
required this.privateViewKey,
|
||||||
required this.publicSpendKey,
|
required this.publicSpendKey,
|
||||||
required this.publicViewKey});
|
required this.publicViewKey});
|
||||||
|
|
||||||
|
final String primaryAddress;
|
||||||
final String publicViewKey;
|
final String publicViewKey;
|
||||||
final String privateViewKey;
|
final String privateViewKey;
|
||||||
final String publicSpendKey;
|
final String publicSpendKey;
|
||||||
|
|
|
@ -14,5 +14,8 @@ mixin PendingTransaction {
|
||||||
int? get outputCount => null;
|
int? get outputCount => null;
|
||||||
PendingChange? change;
|
PendingChange? change;
|
||||||
|
|
||||||
|
bool shouldCommitUR() => false;
|
||||||
|
|
||||||
Future<void> commit();
|
Future<void> commit();
|
||||||
|
Future<String?> commitUR();
|
||||||
}
|
}
|
||||||
|
|
|
@ -47,4 +47,9 @@ class PendingEVMChainTransaction with PendingTransaction {
|
||||||
|
|
||||||
return '0x${Hex.HEX.encode(txid)}';
|
return '0x${Hex.HEX.encode(txid)}';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<String?> commitUR() {
|
||||||
|
throw UnimplementedError();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,4 +2,9 @@ class WalletRestoreFromKeysException implements Exception {
|
||||||
WalletRestoreFromKeysException({required this.message});
|
WalletRestoreFromKeysException({required this.message});
|
||||||
|
|
||||||
final String message;
|
final String message;
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
return message;
|
||||||
|
}
|
||||||
}
|
}
|
|
@ -73,6 +73,7 @@ abstract class HavenWalletBase
|
||||||
|
|
||||||
@override
|
@override
|
||||||
MoneroWalletKeys get keys => MoneroWalletKeys(
|
MoneroWalletKeys get keys => MoneroWalletKeys(
|
||||||
|
primaryAddress: haven_wallet.getAddress(accountIndex: 0, addressIndex: 0),
|
||||||
privateSpendKey: haven_wallet.getSecretSpendKey(),
|
privateSpendKey: haven_wallet.getSecretSpendKey(),
|
||||||
privateViewKey: haven_wallet.getSecretViewKey(),
|
privateViewKey: haven_wallet.getSecretViewKey(),
|
||||||
publicSpendKey: haven_wallet.getPublicSpendKey(),
|
publicSpendKey: haven_wallet.getPublicSpendKey(),
|
||||||
|
|
|
@ -48,4 +48,9 @@ class PendingHavenTransaction with PendingTransaction {
|
||||||
rethrow;
|
rethrow;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<String?> commitUR() {
|
||||||
|
throw UnimplementedError();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@ import 'package:cw_monero/api/wallet.dart';
|
||||||
import 'package:monero/monero.dart' as monero;
|
import 'package:monero/monero.dart' as monero;
|
||||||
|
|
||||||
monero.wallet? wptr = null;
|
monero.wallet? wptr = null;
|
||||||
|
bool get isViewOnly => int.tryParse(monero.Wallet_secretSpendKey(wptr!)) == 0;
|
||||||
|
|
||||||
int _wlptrForW = 0;
|
int _wlptrForW = 0;
|
||||||
monero.WalletListener? _wlptr = null;
|
monero.WalletListener? _wlptr = null;
|
||||||
|
|
|
@ -13,7 +13,13 @@ import 'package:mutex/mutex.dart';
|
||||||
|
|
||||||
|
|
||||||
String getTxKey(String txId) {
|
String getTxKey(String txId) {
|
||||||
return monero.Wallet_getTxKey(wptr!, txid: txId);
|
final txKey = monero.Wallet_getTxKey(wptr!, txid: txId);
|
||||||
|
final status = monero.Wallet_status(wptr!);
|
||||||
|
if (status != 0) {
|
||||||
|
final error = monero.Wallet_errorString(wptr!);
|
||||||
|
return txId+"_"+error;
|
||||||
|
}
|
||||||
|
return txKey;
|
||||||
}
|
}
|
||||||
final txHistoryMutex = Mutex();
|
final txHistoryMutex = Mutex();
|
||||||
monero.TransactionHistory? txhistory;
|
monero.TransactionHistory? txhistory;
|
||||||
|
@ -178,12 +184,13 @@ PendingTransactionDescription createTransactionMultDestSync(
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
void commitTransactionFromPointerAddress({required int address}) =>
|
String? commitTransactionFromPointerAddress({required int address, required bool useUR}) =>
|
||||||
commitTransaction(transactionPointer: monero.PendingTransaction.fromAddress(address));
|
commitTransaction(transactionPointer: monero.PendingTransaction.fromAddress(address), useUR: useUR);
|
||||||
|
|
||||||
void commitTransaction({required monero.PendingTransaction transactionPointer}) {
|
String? commitTransaction({required monero.PendingTransaction transactionPointer, required bool useUR}) {
|
||||||
|
final txCommit = useUR
|
||||||
final txCommit = monero.PendingTransaction_commit(transactionPointer, filename: '', overwrite: false);
|
? monero.PendingTransaction_commitUR(transactionPointer, 120)
|
||||||
|
: monero.PendingTransaction_commit(transactionPointer, filename: '', overwrite: false);
|
||||||
|
|
||||||
final String? error = (() {
|
final String? error = (() {
|
||||||
final status = monero.PendingTransaction_status(transactionPointer.cast());
|
final status = monero.PendingTransaction_status(transactionPointer.cast());
|
||||||
|
@ -196,6 +203,11 @@ void commitTransaction({required monero.PendingTransaction transactionPointer})
|
||||||
if (error != null) {
|
if (error != null) {
|
||||||
throw CreationTransactionException(message: error);
|
throw CreationTransactionException(message: error);
|
||||||
}
|
}
|
||||||
|
if (useUR) {
|
||||||
|
return txCommit as String?;
|
||||||
|
} else {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<PendingTransactionDescription> _createTransactionSync(Map args) async {
|
Future<PendingTransactionDescription> _createTransactionSync(Map args) async {
|
||||||
|
|
|
@ -425,3 +425,5 @@ Future<void> restoreFromSpendKey(
|
||||||
});
|
});
|
||||||
|
|
||||||
bool isWalletExist({required String path}) => _isWalletExist(path);
|
bool isWalletExist({required String path}) => _isWalletExist(path);
|
||||||
|
|
||||||
|
bool isViewOnlyBySpendKey() => int.tryParse(monero.Wallet_secretSpendKey(wptr!)) == 0;
|
|
@ -19,6 +19,7 @@ import 'package:cw_core/transaction_direction.dart';
|
||||||
import 'package:cw_core/unspent_coins_info.dart';
|
import 'package:cw_core/unspent_coins_info.dart';
|
||||||
import 'package:cw_core/wallet_base.dart';
|
import 'package:cw_core/wallet_base.dart';
|
||||||
import 'package:cw_core/wallet_info.dart';
|
import 'package:cw_core/wallet_info.dart';
|
||||||
|
import 'package:cw_monero/api/account_list.dart';
|
||||||
import 'package:cw_monero/api/coins_info.dart';
|
import 'package:cw_monero/api/coins_info.dart';
|
||||||
import 'package:cw_monero/api/monero_output.dart';
|
import 'package:cw_monero/api/monero_output.dart';
|
||||||
import 'package:cw_monero/api/structs/pending_transaction.dart';
|
import 'package:cw_monero/api/structs/pending_transaction.dart';
|
||||||
|
@ -121,6 +122,7 @@ abstract class MoneroWalletBase extends WalletBase<MoneroBalance,
|
||||||
|
|
||||||
@override
|
@override
|
||||||
MoneroWalletKeys get keys => MoneroWalletKeys(
|
MoneroWalletKeys get keys => MoneroWalletKeys(
|
||||||
|
primaryAddress: monero_wallet.getAddress(accountIndex: 0, addressIndex: 0),
|
||||||
privateSpendKey: monero_wallet.getSecretSpendKey(),
|
privateSpendKey: monero_wallet.getSecretSpendKey(),
|
||||||
privateViewKey: monero_wallet.getSecretViewKey(),
|
privateViewKey: monero_wallet.getSecretViewKey(),
|
||||||
publicSpendKey: monero_wallet.getPublicSpendKey(),
|
publicSpendKey: monero_wallet.getPublicSpendKey(),
|
||||||
|
@ -230,6 +232,36 @@ abstract class MoneroWalletBase extends WalletBase<MoneroBalance,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<bool> submitTransactionUR(String ur) async {
|
||||||
|
final retStatus = monero.Wallet_submitTransactionUR(wptr!, ur);
|
||||||
|
final status = monero.Wallet_status(wptr!);
|
||||||
|
if (status != 0) {
|
||||||
|
final err = monero.Wallet_errorString(wptr!);
|
||||||
|
throw MoneroTransactionCreationException("unable to broadcast signed transaction: $err");
|
||||||
|
}
|
||||||
|
return retStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool importKeyImagesUR(String ur) {
|
||||||
|
final retStatus = monero.Wallet_importKeyImagesUR(wptr!, ur);
|
||||||
|
final status = monero.Wallet_status(wptr!);
|
||||||
|
if (status != 0) {
|
||||||
|
final err = monero.Wallet_errorString(wptr!);
|
||||||
|
throw Exception("unable to import key images: $err");
|
||||||
|
}
|
||||||
|
return retStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
String exportOutputsUR(bool all) {
|
||||||
|
final str = monero.Wallet_exportOutputsUR(wptr!, all: all);
|
||||||
|
final status = monero.Wallet_status(wptr!);
|
||||||
|
if (status != 0) {
|
||||||
|
final err = monero.Wallet_errorString(wptr!);
|
||||||
|
throw MoneroTransactionCreationException("unable to export UR: $err");
|
||||||
|
}
|
||||||
|
return str;
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<PendingTransaction> createTransaction(Object credentials) async {
|
Future<PendingTransaction> createTransaction(Object credentials) async {
|
||||||
final _credentials = credentials as MoneroTransactionCreationCredentials;
|
final _credentials = credentials as MoneroTransactionCreationCredentials;
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import 'package:cw_monero/api/account_list.dart';
|
||||||
import 'package:cw_monero/api/structs/pending_transaction.dart';
|
import 'package:cw_monero/api/structs/pending_transaction.dart';
|
||||||
import 'package:cw_monero/api/transaction_history.dart'
|
import 'package:cw_monero/api/transaction_history.dart'
|
||||||
as monero_transaction_history;
|
as monero_transaction_history;
|
||||||
|
@ -35,11 +36,32 @@ class PendingMoneroTransaction with PendingTransaction {
|
||||||
String get feeFormatted => AmountConverter.amountIntToString(
|
String get feeFormatted => AmountConverter.amountIntToString(
|
||||||
CryptoCurrency.xmr, pendingTransactionDescription.fee);
|
CryptoCurrency.xmr, pendingTransactionDescription.fee);
|
||||||
|
|
||||||
|
bool shouldCommitUR() => isViewOnly;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<void> commit() async {
|
Future<void> commit() async {
|
||||||
try {
|
try {
|
||||||
monero_transaction_history.commitTransactionFromPointerAddress(
|
monero_transaction_history.commitTransactionFromPointerAddress(
|
||||||
address: pendingTransactionDescription.pointerAddress);
|
address: pendingTransactionDescription.pointerAddress,
|
||||||
|
useUR: false);
|
||||||
|
} catch (e) {
|
||||||
|
final message = e.toString();
|
||||||
|
|
||||||
|
if (message.contains('Reason: double spend')) {
|
||||||
|
throw DoubleSpendException();
|
||||||
|
}
|
||||||
|
|
||||||
|
rethrow;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<String?> commitUR() async {
|
||||||
|
try {
|
||||||
|
final ret = monero_transaction_history.commitTransactionFromPointerAddress(
|
||||||
|
address: pendingTransactionDescription.pointerAddress,
|
||||||
|
useUR: true);
|
||||||
|
return ret;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
final message = e.toString();
|
final message = e.toString();
|
||||||
|
|
||||||
|
|
|
@ -37,4 +37,9 @@ class PendingNanoTransaction with PendingTransaction {
|
||||||
await nanoClient.processBlock(block, "send");
|
await nanoClient.processBlock(block, "send");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<String?> commitUR() {
|
||||||
|
throw UnimplementedError();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
189
cw_shared_external/pubspec.lock
Normal file
189
cw_shared_external/pubspec.lock
Normal file
|
@ -0,0 +1,189 @@
|
||||||
|
# Generated by pub
|
||||||
|
# See https://dart.dev/tools/pub/glossary#lockfile
|
||||||
|
packages:
|
||||||
|
async:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: async
|
||||||
|
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.11.0"
|
||||||
|
boolean_selector:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: boolean_selector
|
||||||
|
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.1.1"
|
||||||
|
characters:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: characters
|
||||||
|
sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.3.0"
|
||||||
|
clock:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: clock
|
||||||
|
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.1.1"
|
||||||
|
collection:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: collection
|
||||||
|
sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.18.0"
|
||||||
|
fake_async:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: fake_async
|
||||||
|
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.3.1"
|
||||||
|
flutter:
|
||||||
|
dependency: "direct main"
|
||||||
|
description: flutter
|
||||||
|
source: sdk
|
||||||
|
version: "0.0.0"
|
||||||
|
flutter_test:
|
||||||
|
dependency: "direct dev"
|
||||||
|
description: flutter
|
||||||
|
source: sdk
|
||||||
|
version: "0.0.0"
|
||||||
|
leak_tracker:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: leak_tracker
|
||||||
|
sha256: "7f0df31977cb2c0b88585095d168e689669a2cc9b97c309665e3386f3e9d341a"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "10.0.4"
|
||||||
|
leak_tracker_flutter_testing:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: leak_tracker_flutter_testing
|
||||||
|
sha256: "06e98f569d004c1315b991ded39924b21af84cf14cc94791b8aea337d25b57f8"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.0.3"
|
||||||
|
leak_tracker_testing:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: leak_tracker_testing
|
||||||
|
sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "3.0.1"
|
||||||
|
matcher:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: matcher
|
||||||
|
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.12.16+1"
|
||||||
|
material_color_utilities:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: material_color_utilities
|
||||||
|
sha256: "0e0a020085b65b6083975e499759762399b4475f766c21668c4ecca34ea74e5a"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.8.0"
|
||||||
|
meta:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: meta
|
||||||
|
sha256: "7687075e408b093f36e6bbf6c91878cc0d4cd10f409506f7bc996f68220b9136"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.12.0"
|
||||||
|
path:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: path
|
||||||
|
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.9.0"
|
||||||
|
sky_engine:
|
||||||
|
dependency: transitive
|
||||||
|
description: flutter
|
||||||
|
source: sdk
|
||||||
|
version: "0.0.99"
|
||||||
|
source_span:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: source_span
|
||||||
|
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.10.0"
|
||||||
|
stack_trace:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: stack_trace
|
||||||
|
sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.11.1"
|
||||||
|
stream_channel:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: stream_channel
|
||||||
|
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.1.2"
|
||||||
|
string_scanner:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: string_scanner
|
||||||
|
sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.2.0"
|
||||||
|
term_glyph:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: term_glyph
|
||||||
|
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "1.2.1"
|
||||||
|
test_api:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: test_api
|
||||||
|
sha256: "9955ae474176f7ac8ee4e989dadfb411a58c30415bcfb648fa04b2b8a03afa7f"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "0.7.0"
|
||||||
|
vector_math:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: vector_math
|
||||||
|
sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "2.1.4"
|
||||||
|
vm_service:
|
||||||
|
dependency: transitive
|
||||||
|
description:
|
||||||
|
name: vm_service
|
||||||
|
sha256: "3923c89304b715fb1eb6423f017651664a03bf5f4b29983627c4da791f74a4ec"
|
||||||
|
url: "https://pub.dev"
|
||||||
|
source: hosted
|
||||||
|
version: "14.2.1"
|
||||||
|
sdks:
|
||||||
|
dart: ">=3.3.0 <4.0.0"
|
||||||
|
flutter: ">=3.18.0-18.0.pre.54"
|
|
@ -40,4 +40,9 @@ class PendingSolanaTransaction with PendingTransaction {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get id => '';
|
String get id => '';
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<String?> commitUR() {
|
||||||
|
throw UnimplementedError();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -30,4 +30,9 @@ class PendingTronTransaction with PendingTransaction {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
String get id => '';
|
String get id => '';
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<String?> commitUR() {
|
||||||
|
throw UnimplementedError();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,5 +3,6 @@ class WalletRestoreFromKeysException implements Exception {
|
||||||
|
|
||||||
final String message;
|
final String message;
|
||||||
|
|
||||||
|
@override
|
||||||
String toString() => message;
|
String toString() => message;
|
||||||
}
|
}
|
|
@ -50,4 +50,9 @@ class PendingWowneroTransaction with PendingTransaction {
|
||||||
rethrow;
|
rethrow;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<String?> commitUR() {
|
||||||
|
throw UnimplementedError();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -120,6 +120,7 @@ abstract class WowneroWalletBase
|
||||||
|
|
||||||
@override
|
@override
|
||||||
MoneroWalletKeys get keys => MoneroWalletKeys(
|
MoneroWalletKeys get keys => MoneroWalletKeys(
|
||||||
|
primaryAddress: wownero_wallet.getAddress(accountIndex: 0, addressIndex: 0),
|
||||||
privateSpendKey: wownero_wallet.getSecretSpendKey(),
|
privateSpendKey: wownero_wallet.getSecretSpendKey(),
|
||||||
privateViewKey: wownero_wallet.getSecretViewKey(),
|
privateViewKey: wownero_wallet.getSecretViewKey(),
|
||||||
publicSpendKey: wownero_wallet.getPublicSpendKey(),
|
publicSpendKey: wownero_wallet.getPublicSpendKey(),
|
||||||
|
|
|
@ -125,6 +125,7 @@ import 'package:cake_wallet/src/screens/subaddress/address_edit_or_create_page.d
|
||||||
import 'package:cake_wallet/src/screens/support/support_page.dart';
|
import 'package:cake_wallet/src/screens/support/support_page.dart';
|
||||||
import 'package:cake_wallet/src/screens/support_chat/support_chat_page.dart';
|
import 'package:cake_wallet/src/screens/support_chat/support_chat_page.dart';
|
||||||
import 'package:cake_wallet/src/screens/support_other_links/support_other_links_page.dart';
|
import 'package:cake_wallet/src/screens/support_other_links/support_other_links_page.dart';
|
||||||
|
import 'package:cake_wallet/src/screens/ur/animated_ur_page.dart';
|
||||||
import 'package:cake_wallet/src/screens/wallet/wallet_edit_page.dart';
|
import 'package:cake_wallet/src/screens/wallet/wallet_edit_page.dart';
|
||||||
import 'package:cake_wallet/src/screens/wallet_connect/wc_connections_listing_view.dart';
|
import 'package:cake_wallet/src/screens/wallet_connect/wc_connections_listing_view.dart';
|
||||||
import 'package:cake_wallet/src/screens/wallet_unlock/wallet_unlock_arguments.dart';
|
import 'package:cake_wallet/src/screens/wallet_unlock/wallet_unlock_arguments.dart';
|
||||||
|
@ -134,6 +135,7 @@ import 'package:cake_wallet/utils/device_info.dart';
|
||||||
import 'package:cake_wallet/store/anonpay/anonpay_transactions_store.dart';
|
import 'package:cake_wallet/store/anonpay/anonpay_transactions_store.dart';
|
||||||
import 'package:cake_wallet/utils/payment_request.dart';
|
import 'package:cake_wallet/utils/payment_request.dart';
|
||||||
import 'package:cake_wallet/utils/responsive_layout_util.dart';
|
import 'package:cake_wallet/utils/responsive_layout_util.dart';
|
||||||
|
import 'package:cake_wallet/view_model/animated_ur_model.dart';
|
||||||
import 'package:cake_wallet/view_model/dashboard/desktop_sidebar_view_model.dart';
|
import 'package:cake_wallet/view_model/dashboard/desktop_sidebar_view_model.dart';
|
||||||
import 'package:cake_wallet/view_model/anon_invoice_page_view_model.dart';
|
import 'package:cake_wallet/view_model/anon_invoice_page_view_model.dart';
|
||||||
import 'package:cake_wallet/view_model/anonpay_details_view_model.dart';
|
import 'package:cake_wallet/view_model/anonpay_details_view_model.dart';
|
||||||
|
@ -903,6 +905,11 @@ Future<void> setup({
|
||||||
getIt.registerFactory(() => WalletKeysViewModel(getIt.get<AppStore>()));
|
getIt.registerFactory(() => WalletKeysViewModel(getIt.get<AppStore>()));
|
||||||
|
|
||||||
getIt.registerFactory(() => WalletKeysPage(getIt.get<WalletKeysViewModel>()));
|
getIt.registerFactory(() => WalletKeysPage(getIt.get<WalletKeysViewModel>()));
|
||||||
|
|
||||||
|
getIt.registerFactory(() => AnimatedURModel(getIt.get<AppStore>()));
|
||||||
|
|
||||||
|
getIt.registerFactoryParam<AnimatedURPage, String, void>((String urQr, _) =>
|
||||||
|
AnimatedURPage(getIt.get<AnimatedURModel>(), urQr: urQr));
|
||||||
|
|
||||||
getIt.registerFactoryParam<ContactViewModel, ContactRecord?, void>(
|
getIt.registerFactoryParam<ContactViewModel, ContactRecord?, void>(
|
||||||
(ContactRecord? contact, _) => ContactViewModel(_contactSource, contact: contact));
|
(ContactRecord? contact, _) => ContactViewModel(_contactSource, contact: contact));
|
||||||
|
|
|
@ -259,6 +259,10 @@ Future<void> defaultSettingsMigration(
|
||||||
case 42:
|
case 42:
|
||||||
updateBtcElectrumNodeToUseSSL(nodes, sharedPreferences);
|
updateBtcElectrumNodeToUseSSL(nodes, sharedPreferences);
|
||||||
break;
|
break;
|
||||||
|
case 43:
|
||||||
|
_updateCakeXmrNode(nodes);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -273,6 +277,15 @@ Future<void> defaultSettingsMigration(
|
||||||
await sharedPreferences.setInt(PreferencesKey.currentDefaultSettingsMigrationVersion, version);
|
await sharedPreferences.setInt(PreferencesKey.currentDefaultSettingsMigrationVersion, version);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void _updateCakeXmrNode(Box<Node> nodes) {
|
||||||
|
final node = nodes.values.firstWhereOrNull((element) => element.uriRaw == newCakeWalletMoneroUri);
|
||||||
|
|
||||||
|
if (node != null && !node.trusted) {
|
||||||
|
node.trusted = true;
|
||||||
|
node.save();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void updateBtcElectrumNodeToUseSSL(Box<Node> nodes, SharedPreferences sharedPreferences) {
|
void updateBtcElectrumNodeToUseSSL(Box<Node> nodes, SharedPreferences sharedPreferences) {
|
||||||
final btcElectrumNode = nodes.values.firstWhereOrNull((element) => element.uriRaw == newCakeWalletBitcoinUri);
|
final btcElectrumNode = nodes.values.firstWhereOrNull((element) => element.uriRaw == newCakeWalletBitcoinUri);
|
||||||
|
|
||||||
|
@ -843,7 +856,7 @@ Future<void> changeDefaultMoneroNode(
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
final newCakeWalletNode = Node(uri: newCakeWalletMoneroUri, type: WalletType.monero);
|
final newCakeWalletNode = Node(uri: newCakeWalletMoneroUri, type: WalletType.monero, trusted: true);
|
||||||
|
|
||||||
await nodeSource.add(newCakeWalletNode);
|
await nodeSource.add(newCakeWalletNode);
|
||||||
|
|
||||||
|
|
|
@ -1,15 +1,376 @@
|
||||||
import 'package:barcode_scan2/barcode_scan2.dart';
|
import 'dart:math';
|
||||||
|
|
||||||
|
import 'package:cake_wallet/generated/i18n.dart';
|
||||||
|
import 'package:cake_wallet/main.dart';
|
||||||
|
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
|
||||||
|
import 'package:cake_wallet/src/widgets/alert_with_two_actions.dart';
|
||||||
|
import 'package:cake_wallet/utils/show_pop_up.dart';
|
||||||
|
import 'package:fast_scanner/fast_scanner.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/scheduler.dart';
|
||||||
|
|
||||||
var isQrScannerShown = false;
|
var isQrScannerShown = false;
|
||||||
|
|
||||||
Future<String> presentQRScanner() async {
|
Future<String> presentQRScanner(BuildContext context) async {
|
||||||
isQrScannerShown = true;
|
isQrScannerShown = true;
|
||||||
try {
|
try {
|
||||||
final result = await BarcodeScanner.scan();
|
final result = await Navigator.of(context).push<String>(
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder:(context) {
|
||||||
|
return BarcodeScannerSimple();
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
isQrScannerShown = false;
|
isQrScannerShown = false;
|
||||||
return result.rawContent.trim();
|
return result??'';
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
isQrScannerShown = false;
|
isQrScannerShown = false;
|
||||||
rethrow;
|
rethrow;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// https://github.com/MrCyjaneK/fast_scanner/blob/master/example/lib/barcode_scanner_simple.dart
|
||||||
|
class BarcodeScannerSimple extends StatefulWidget {
|
||||||
|
const BarcodeScannerSimple({super.key});
|
||||||
|
|
||||||
|
@override
|
||||||
|
State<BarcodeScannerSimple> createState() => _BarcodeScannerSimpleState();
|
||||||
|
}
|
||||||
|
|
||||||
|
class _BarcodeScannerSimpleState extends State<BarcodeScannerSimple> {
|
||||||
|
Barcode? _barcode;
|
||||||
|
bool popped = false;
|
||||||
|
|
||||||
|
List<String> urCodes = [];
|
||||||
|
late var ur = URQRToURQRData(urCodes);
|
||||||
|
|
||||||
|
void _handleBarcode(BarcodeCapture barcodes) {
|
||||||
|
try {
|
||||||
|
_handleBarcodeInternal(barcodes);
|
||||||
|
} catch (e) {
|
||||||
|
showPopUp<void>(
|
||||||
|
context: context,
|
||||||
|
builder: (context) {
|
||||||
|
return AlertWithOneAction(
|
||||||
|
alertTitle: S.of(context).error,
|
||||||
|
alertContent: S.of(context).error_dialog_content,
|
||||||
|
buttonText: 'ok',
|
||||||
|
buttonAction: () {
|
||||||
|
Navigator.of(context).pop();
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
print(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void _handleBarcodeInternal(BarcodeCapture barcodes) {
|
||||||
|
for (final barcode in barcodes.barcodes) {
|
||||||
|
// don't handle unknown QR codes
|
||||||
|
if (barcode.rawValue?.trim().isEmpty??false == false) continue;
|
||||||
|
if (barcode.rawValue!.startsWith("ur:")) {
|
||||||
|
if (urCodes.contains(barcode.rawValue)) continue;
|
||||||
|
setState(() {
|
||||||
|
urCodes.add(barcode.rawValue!);
|
||||||
|
ur = URQRToURQRData(urCodes);
|
||||||
|
});
|
||||||
|
if (ur.progress == 1) {
|
||||||
|
setState(() {
|
||||||
|
popped = true;
|
||||||
|
});
|
||||||
|
SchedulerBinding.instance.addPostFrameCallback((_) {
|
||||||
|
Navigator.of(context).pop(ur.inputs.join("\n"));
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (urCodes.isNotEmpty) return;
|
||||||
|
if (mounted) {
|
||||||
|
setState(() {
|
||||||
|
_barcode = barcodes.barcodes.firstOrNull;
|
||||||
|
});
|
||||||
|
if (_barcode != null && popped != true) {
|
||||||
|
setState(() {
|
||||||
|
popped = true;
|
||||||
|
});
|
||||||
|
SchedulerBinding.instance.addPostFrameCallback((_) {
|
||||||
|
Navigator.of(context).pop(_barcode?.rawValue ?? "");
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
final MobileScannerController ctrl = MobileScannerController();
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Scaffold(
|
||||||
|
appBar: AppBar(
|
||||||
|
title: const Text('Scan'),
|
||||||
|
actions: [
|
||||||
|
SwitchCameraButton(controller: ctrl),
|
||||||
|
ToggleFlashlightButton(controller: ctrl),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
backgroundColor: Colors.black,
|
||||||
|
body: Stack(
|
||||||
|
children: [
|
||||||
|
MobileScanner(
|
||||||
|
onDetect: _handleBarcode,
|
||||||
|
controller: ctrl,
|
||||||
|
),
|
||||||
|
if (ur.inputs.length != 0)
|
||||||
|
Center(child:
|
||||||
|
Text(
|
||||||
|
"${ur.inputs.length}/${ur.count}",
|
||||||
|
style: Theme.of(context).textTheme.displayLarge?.copyWith(color: Colors.white)
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(
|
||||||
|
child: Center(
|
||||||
|
child: SizedBox(
|
||||||
|
width: 250,
|
||||||
|
height: 250,
|
||||||
|
child: CustomPaint(
|
||||||
|
painter: ProgressPainter(
|
||||||
|
urQrProgress: URQrProgress(
|
||||||
|
expectedPartCount: ur.count - 1,
|
||||||
|
processedPartsCount: ur.inputs.length,
|
||||||
|
receivedPartIndexes: _urParts(),
|
||||||
|
percentage: ur.progress,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<int> _urParts() {
|
||||||
|
List<int> l = [];
|
||||||
|
for (var inp in ur.inputs) {
|
||||||
|
try {
|
||||||
|
l.add(int.parse(inp.split("/")[1].split("-")[0]));
|
||||||
|
} catch (e) {}
|
||||||
|
}
|
||||||
|
return l;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class ToggleFlashlightButton extends StatelessWidget {
|
||||||
|
const ToggleFlashlightButton({required this.controller, super.key});
|
||||||
|
|
||||||
|
final MobileScannerController controller;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return ValueListenableBuilder(
|
||||||
|
valueListenable: controller,
|
||||||
|
builder: (context, state, child) {
|
||||||
|
if (!state.isInitialized || !state.isRunning) {
|
||||||
|
return const SizedBox.shrink();
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (state.torchState) {
|
||||||
|
case TorchState.auto:
|
||||||
|
return IconButton(
|
||||||
|
iconSize: 32.0,
|
||||||
|
icon: const Icon(Icons.flash_auto),
|
||||||
|
onPressed: () async {
|
||||||
|
await controller.toggleTorch();
|
||||||
|
},
|
||||||
|
);
|
||||||
|
case TorchState.off:
|
||||||
|
return IconButton(
|
||||||
|
iconSize: 32.0,
|
||||||
|
icon: const Icon(Icons.flash_off),
|
||||||
|
onPressed: () async {
|
||||||
|
await controller.toggleTorch();
|
||||||
|
},
|
||||||
|
);
|
||||||
|
case TorchState.on:
|
||||||
|
return IconButton(
|
||||||
|
iconSize: 32.0,
|
||||||
|
icon: const Icon(Icons.flash_on),
|
||||||
|
onPressed: () async {
|
||||||
|
await controller.toggleTorch();
|
||||||
|
},
|
||||||
|
);
|
||||||
|
case TorchState.unavailable:
|
||||||
|
return const Icon(
|
||||||
|
Icons.no_flash,
|
||||||
|
color: Colors.grey,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class SwitchCameraButton extends StatelessWidget {
|
||||||
|
const SwitchCameraButton({required this.controller, super.key});
|
||||||
|
|
||||||
|
final MobileScannerController controller;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return ValueListenableBuilder(
|
||||||
|
valueListenable: controller,
|
||||||
|
builder: (context, state, child) {
|
||||||
|
if (!state.isInitialized || !state.isRunning) {
|
||||||
|
return const SizedBox.shrink();
|
||||||
|
}
|
||||||
|
|
||||||
|
final int? availableCameras = state.availableCameras;
|
||||||
|
|
||||||
|
if (availableCameras != null && availableCameras < 2) {
|
||||||
|
return const SizedBox.shrink();
|
||||||
|
}
|
||||||
|
|
||||||
|
final Widget icon;
|
||||||
|
|
||||||
|
switch (state.cameraDirection) {
|
||||||
|
case CameraFacing.front:
|
||||||
|
icon = const Icon(Icons.camera_front);
|
||||||
|
case CameraFacing.back:
|
||||||
|
icon = const Icon(Icons.camera_rear);
|
||||||
|
}
|
||||||
|
|
||||||
|
return IconButton(
|
||||||
|
iconSize: 32.0,
|
||||||
|
icon: icon,
|
||||||
|
onPressed: () async {
|
||||||
|
await controller.switchCamera();
|
||||||
|
},
|
||||||
|
);
|
||||||
|
},
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class URQRData {
|
||||||
|
URQRData(
|
||||||
|
{required this.tag,
|
||||||
|
required this.str,
|
||||||
|
required this.progress,
|
||||||
|
required this.count,
|
||||||
|
required this.error,
|
||||||
|
required this.inputs});
|
||||||
|
final String tag;
|
||||||
|
final String str;
|
||||||
|
final double progress;
|
||||||
|
final int count;
|
||||||
|
final String error;
|
||||||
|
final List<String> inputs;
|
||||||
|
Map<String, dynamic> toJson() {
|
||||||
|
return {
|
||||||
|
"tag": tag,
|
||||||
|
"str": str,
|
||||||
|
"progress": progress,
|
||||||
|
"count": count,
|
||||||
|
"error": error,
|
||||||
|
"inputs": inputs,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
URQRData URQRToURQRData(List<String> urqr_) {
|
||||||
|
final urqr = urqr_.toSet().toList();
|
||||||
|
urqr.sort((s1, s2) {
|
||||||
|
final s1s = s1.split("/");
|
||||||
|
final s1frameStr = s1s[1].split("-");
|
||||||
|
final s1curFrame = int.parse(s1frameStr[0]);
|
||||||
|
final s2s = s2.split("/");
|
||||||
|
final s2frameStr = s2s[1].split("-");
|
||||||
|
final s2curFrame = int.parse(s2frameStr[0]);
|
||||||
|
return s1curFrame - s2curFrame;
|
||||||
|
});
|
||||||
|
|
||||||
|
String tag = '';
|
||||||
|
int count = 0;
|
||||||
|
String bw = '';
|
||||||
|
for (var elm in urqr) {
|
||||||
|
final s = elm.substring(elm.indexOf(":") + 1); // strip down ur: prefix
|
||||||
|
final s2 = s.split("/");
|
||||||
|
tag = s2[0];
|
||||||
|
final frameStr = s2[1].split("-");
|
||||||
|
// final curFrame = int.parse(frameStr[0]);
|
||||||
|
count = int.parse(frameStr[1]);
|
||||||
|
final byteWords = s2[2];
|
||||||
|
bw += byteWords;
|
||||||
|
}
|
||||||
|
String? error;
|
||||||
|
|
||||||
|
return URQRData(
|
||||||
|
tag: tag,
|
||||||
|
str: bw,
|
||||||
|
progress: count == 0 ? 0 : (urqr.length / count),
|
||||||
|
count: count,
|
||||||
|
error: error ?? "",
|
||||||
|
inputs: urqr,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
class ProgressPainter extends CustomPainter {
|
||||||
|
final URQrProgress urQrProgress;
|
||||||
|
|
||||||
|
ProgressPainter({required this.urQrProgress});
|
||||||
|
|
||||||
|
@override
|
||||||
|
void paint(Canvas canvas, Size size) {
|
||||||
|
final c = Offset(size.width / 2.0, size.height / 2.0);
|
||||||
|
final radius = size.width * 0.9;
|
||||||
|
final rect = Rect.fromCenter(center: c, width: radius, height: radius);
|
||||||
|
const fullAngle = 360.0;
|
||||||
|
var startAngle = 0.0;
|
||||||
|
for (int i = 0; i < urQrProgress.expectedPartCount.toInt(); i++) {
|
||||||
|
var sweepAngle =
|
||||||
|
(1 / urQrProgress.expectedPartCount) * fullAngle * pi / 180.0;
|
||||||
|
drawSector(canvas, urQrProgress.receivedPartIndexes.contains(i), rect,
|
||||||
|
startAngle, sweepAngle);
|
||||||
|
startAngle += sweepAngle;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void drawSector(Canvas canvas, bool isActive, Rect rect, double startAngle,
|
||||||
|
double sweepAngle) {
|
||||||
|
final paint = Paint()
|
||||||
|
..style = PaintingStyle.stroke
|
||||||
|
..strokeWidth = 8
|
||||||
|
..strokeCap = StrokeCap.round
|
||||||
|
..strokeJoin = StrokeJoin.round
|
||||||
|
..color = isActive ? const Color(0xffff6600) : Colors.white70;
|
||||||
|
canvas.drawArc(rect, startAngle, sweepAngle, false, paint);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool shouldRepaint(covariant ProgressPainter oldDelegate) {
|
||||||
|
return urQrProgress != oldDelegate.urQrProgress;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class URQrProgress {
|
||||||
|
int expectedPartCount;
|
||||||
|
int processedPartsCount;
|
||||||
|
List<int> receivedPartIndexes;
|
||||||
|
double percentage;
|
||||||
|
|
||||||
|
URQrProgress({
|
||||||
|
required this.expectedPartCount,
|
||||||
|
required this.processedPartsCount,
|
||||||
|
required this.receivedPartIndexes,
|
||||||
|
required this.percentage,
|
||||||
|
});
|
||||||
|
|
||||||
|
bool equals(URQrProgress? progress) {
|
||||||
|
if (progress == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return processedPartsCount == progress.processedPartsCount;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -204,7 +204,7 @@ Future<void> initializeAppConfigs() async {
|
||||||
transactionDescriptions: transactionDescriptions,
|
transactionDescriptions: transactionDescriptions,
|
||||||
secureStorage: secureStorage,
|
secureStorage: secureStorage,
|
||||||
anonpayInvoiceInfo: anonpayInvoiceInfo,
|
anonpayInvoiceInfo: anonpayInvoiceInfo,
|
||||||
initialMigrationVersion: 42,
|
initialMigrationVersion: 43,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -248,6 +248,7 @@ class CWMonero extends Monero {
|
||||||
final moneroWallet = wallet as MoneroWallet;
|
final moneroWallet = wallet as MoneroWallet;
|
||||||
final keys = moneroWallet.keys;
|
final keys = moneroWallet.keys;
|
||||||
return <String, String>{
|
return <String, String>{
|
||||||
|
'primaryAddress': keys.primaryAddress,
|
||||||
'privateSpendKey': keys.privateSpendKey,
|
'privateSpendKey': keys.privateSpendKey,
|
||||||
'privateViewKey': keys.privateViewKey,
|
'privateViewKey': keys.privateViewKey,
|
||||||
'publicSpendKey': keys.publicSpendKey,
|
'publicSpendKey': keys.publicSpendKey,
|
||||||
|
@ -357,9 +358,32 @@ class CWMonero extends Monero {
|
||||||
Future<int> getCurrentHeight() async {
|
Future<int> getCurrentHeight() async {
|
||||||
return monero_wallet_api.getCurrentHeight();
|
return monero_wallet_api.getCurrentHeight();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
bool importKeyImagesUR(Object wallet, String ur) {
|
||||||
|
final moneroWallet = wallet as MoneroWallet;
|
||||||
|
return moneroWallet.importKeyImagesUR(ur);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<bool> commitTransactionUR(Object wallet, String ur) {
|
||||||
|
final moneroWallet = wallet as MoneroWallet;
|
||||||
|
return moneroWallet.submitTransactionUR(ur);
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String exportOutputsUR(Object wallet, bool all) {
|
||||||
|
final moneroWallet = wallet as MoneroWallet;
|
||||||
|
return moneroWallet.exportOutputsUR(all);
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void monerocCheck() {
|
void monerocCheck() {
|
||||||
checkIfMoneroCIsFine();
|
checkIfMoneroCIsFine();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool isViewOnly() {
|
||||||
|
return isViewOnlyBySpendKey();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,6 +96,7 @@ import 'package:cake_wallet/src/screens/transaction_details/rbf_details_page.dar
|
||||||
import 'package:cake_wallet/src/screens/transaction_details/transaction_details_page.dart';
|
import 'package:cake_wallet/src/screens/transaction_details/transaction_details_page.dart';
|
||||||
import 'package:cake_wallet/src/screens/unspent_coins/unspent_coins_details_page.dart';
|
import 'package:cake_wallet/src/screens/unspent_coins/unspent_coins_details_page.dart';
|
||||||
import 'package:cake_wallet/src/screens/unspent_coins/unspent_coins_list_page.dart';
|
import 'package:cake_wallet/src/screens/unspent_coins/unspent_coins_list_page.dart';
|
||||||
|
import 'package:cake_wallet/src/screens/ur/animated_ur_page.dart';
|
||||||
import 'package:cake_wallet/src/screens/wallet/wallet_edit_page.dart';
|
import 'package:cake_wallet/src/screens/wallet/wallet_edit_page.dart';
|
||||||
import 'package:cake_wallet/src/screens/wallet_connect/wc_connections_listing_view.dart';
|
import 'package:cake_wallet/src/screens/wallet_connect/wc_connections_listing_view.dart';
|
||||||
import 'package:cake_wallet/src/screens/wallet_keys/wallet_keys_page.dart';
|
import 'package:cake_wallet/src/screens/wallet_keys/wallet_keys_page.dart';
|
||||||
|
@ -732,6 +733,9 @@ Route<dynamic> createRoute(RouteSettings settings) {
|
||||||
case Routes.setup2faInfoPage:
|
case Routes.setup2faInfoPage:
|
||||||
return MaterialPageRoute<void>(builder: (_) => getIt.get<Setup2FAInfoPage>());
|
return MaterialPageRoute<void>(builder: (_) => getIt.get<Setup2FAInfoPage>());
|
||||||
|
|
||||||
|
case Routes.urqrAnimatedPage:
|
||||||
|
return MaterialPageRoute<void>(builder: (_) => getIt.get<AnimatedURPage>(param1: settings.arguments));
|
||||||
|
|
||||||
case Routes.homeSettings:
|
case Routes.homeSettings:
|
||||||
return CupertinoPageRoute<void>(
|
return CupertinoPageRoute<void>(
|
||||||
builder: (_) => getIt.get<HomeSettingsPage>(param1: settings.arguments),
|
builder: (_) => getIt.get<HomeSettingsPage>(param1: settings.arguments),
|
||||||
|
|
|
@ -108,6 +108,7 @@ class Routes {
|
||||||
|
|
||||||
static const signPage = '/sign_page';
|
static const signPage = '/sign_page';
|
||||||
static const connectDevices = '/device/connect';
|
static const connectDevices = '/device/connect';
|
||||||
|
static const urqrAnimatedPage = '/urqr/animated_page';
|
||||||
static const walletGroupsDisplayPage = '/wallet_groups_display_page';
|
static const walletGroupsDisplayPage = '/wallet_groups_display_page';
|
||||||
static const walletGroupDescription = '/wallet_group_description';
|
static const walletGroupDescription = '/wallet_group_description';
|
||||||
}
|
}
|
||||||
|
|
|
@ -347,8 +347,8 @@ class CakePayBuyCardDetailPage extends BasePage {
|
||||||
rightButtonText: S.of(popupContext).send,
|
rightButtonText: S.of(popupContext).send,
|
||||||
leftButtonText: S.of(popupContext).cancel,
|
leftButtonText: S.of(popupContext).cancel,
|
||||||
actionRightButton: () async {
|
actionRightButton: () async {
|
||||||
Navigator.of(popupContext).pop();
|
Navigator.of(context).pop();
|
||||||
await cakePayPurchaseViewModel.sendViewModel.commitTransaction();
|
await cakePayPurchaseViewModel.sendViewModel.commitTransaction(context);
|
||||||
},
|
},
|
||||||
actionLeftButton: () => Navigator.of(popupContext).pop()));
|
actionLeftButton: () => Navigator.of(popupContext).pop()));
|
||||||
},
|
},
|
||||||
|
|
|
@ -101,6 +101,9 @@ class MenuWidgetState extends State<MenuWidget> {
|
||||||
if (!widget.dashboardViewModel.hasSilentPayments) {
|
if (!widget.dashboardViewModel.hasSilentPayments) {
|
||||||
items.removeWhere((element) => element.name(context) == S.of(context).silent_payments_settings);
|
items.removeWhere((element) => element.name(context) == S.of(context).silent_payments_settings);
|
||||||
}
|
}
|
||||||
|
if (!widget.dashboardViewModel.isMoneroViewOnly) {
|
||||||
|
items.removeWhere((element) => element.name(context) == S.of(context).export_outputs);
|
||||||
|
}
|
||||||
if (!widget.dashboardViewModel.hasMweb) {
|
if (!widget.dashboardViewModel.hasMweb) {
|
||||||
items.removeWhere((element) => element.name(context) == S.of(context).litecoin_mweb_settings);
|
items.removeWhere((element) => element.name(context) == S.of(context).litecoin_mweb_settings);
|
||||||
}
|
}
|
||||||
|
@ -189,7 +192,6 @@ class MenuWidgetState extends State<MenuWidget> {
|
||||||
index--;
|
index--;
|
||||||
|
|
||||||
final item = items[index];
|
final item = items[index];
|
||||||
|
|
||||||
final isLastTile = index == itemCount - 1;
|
final isLastTile = index == itemCount - 1;
|
||||||
|
|
||||||
return SettingActionButton(
|
return SettingActionButton(
|
||||||
|
|
|
@ -277,7 +277,7 @@ class ExchangeTradeState extends State<ExchangeTradeForm> {
|
||||||
actionRightButton: () async {
|
actionRightButton: () async {
|
||||||
Navigator.of(popupContext).pop();
|
Navigator.of(popupContext).pop();
|
||||||
await widget.exchangeTradeViewModel.sendViewModel
|
await widget.exchangeTradeViewModel.sendViewModel
|
||||||
.commitTransaction();
|
.commitTransaction(context);
|
||||||
transactionStatePopup();
|
transactionStatePopup();
|
||||||
},
|
},
|
||||||
actionLeftButton: () => Navigator.of(popupContext).pop(),
|
actionLeftButton: () => Navigator.of(popupContext).pop(),
|
||||||
|
|
|
@ -498,7 +498,7 @@ class SendPage extends BasePage {
|
||||||
ValueKey('send_page_confirm_sending_dialog_cancel_button_key'),
|
ValueKey('send_page_confirm_sending_dialog_cancel_button_key'),
|
||||||
actionRightButton: () async {
|
actionRightButton: () async {
|
||||||
Navigator.of(_dialogContext).pop();
|
Navigator.of(_dialogContext).pop();
|
||||||
sendViewModel.commitTransaction();
|
sendViewModel.commitTransaction(context);
|
||||||
await showPopUp<void>(
|
await showPopUp<void>(
|
||||||
context: context,
|
context: context,
|
||||||
builder: (BuildContext _dialogContext) {
|
builder: (BuildContext _dialogContext) {
|
||||||
|
|
|
@ -4,6 +4,7 @@ import 'package:cake_wallet/src/widgets/setting_action_button.dart';
|
||||||
import 'package:cake_wallet/src/widgets/setting_actions.dart';
|
import 'package:cake_wallet/src/widgets/setting_actions.dart';
|
||||||
import 'package:cake_wallet/typography.dart';
|
import 'package:cake_wallet/typography.dart';
|
||||||
import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
|
import 'package:cake_wallet/view_model/dashboard/dashboard_view_model.dart';
|
||||||
|
import 'package:cw_core/wallet_type.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:cake_wallet/router.dart' as Router;
|
import 'package:cake_wallet/router.dart' as Router;
|
||||||
import 'package:cake_wallet/themes/extensions/menu_theme.dart';
|
import 'package:cake_wallet/themes/extensions/menu_theme.dart';
|
||||||
|
@ -60,8 +61,10 @@ class _DesktopSettingsPageState extends State<DesktopSettingsPage> {
|
||||||
return Container();
|
return Container();
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!widget.dashboardViewModel.hasMweb &&
|
if ((!widget.dashboardViewModel.isMoneroViewOnly &&
|
||||||
item.name(context) == S.of(context).litecoin_mweb_settings) {
|
item.name(context) == S.of(context).export_outputs) ||
|
||||||
|
(!widget.dashboardViewModel.hasMweb &&
|
||||||
|
item.name(context) == S.of(context).litecoin_mweb_settings)) {
|
||||||
return Container();
|
return Container();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -168,7 +168,7 @@ class RBFDetailsPage extends BasePage {
|
||||||
leftButtonText: S.of(popupContext).cancel,
|
leftButtonText: S.of(popupContext).cancel,
|
||||||
actionRightButton: () async {
|
actionRightButton: () async {
|
||||||
Navigator.of(popupContext).pop();
|
Navigator.of(popupContext).pop();
|
||||||
await transactionDetailsViewModel.sendViewModel.commitTransaction();
|
await transactionDetailsViewModel.sendViewModel.commitTransaction(context);
|
||||||
try {
|
try {
|
||||||
Navigator.of(popupContext).pop();
|
Navigator.of(popupContext).pop();
|
||||||
} catch (_) {}
|
} catch (_) {}
|
||||||
|
|
184
lib/src/screens/ur/animated_ur_page.dart
Normal file
184
lib/src/screens/ur/animated_ur_page.dart
Normal file
|
@ -0,0 +1,184 @@
|
||||||
|
import 'dart:async';
|
||||||
|
|
||||||
|
import 'package:cake_wallet/di.dart';
|
||||||
|
import 'package:cake_wallet/entities/qr_scanner.dart';
|
||||||
|
import 'package:cake_wallet/generated/i18n.dart';
|
||||||
|
import 'package:cake_wallet/monero/monero.dart';
|
||||||
|
import 'package:cake_wallet/src/screens/base_page.dart';
|
||||||
|
import 'package:cake_wallet/src/screens/receive/widgets/qr_image.dart';
|
||||||
|
import 'package:cake_wallet/src/screens/send/widgets/confirm_sending_alert.dart';
|
||||||
|
import 'package:cake_wallet/src/widgets/alert_with_one_action.dart';
|
||||||
|
import 'package:cake_wallet/src/widgets/primary_button.dart';
|
||||||
|
import 'package:cake_wallet/utils/show_pop_up.dart';
|
||||||
|
import 'package:cake_wallet/view_model/animated_ur_model.dart';
|
||||||
|
import 'package:cake_wallet/view_model/dashboard/wallet_balance.dart';
|
||||||
|
import 'package:cw_core/balance.dart';
|
||||||
|
import 'package:cw_core/transaction_history.dart';
|
||||||
|
import 'package:cw_core/transaction_info.dart';
|
||||||
|
import 'package:cw_core/wallet_base.dart';
|
||||||
|
import 'package:flutter/foundation.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
|
|
||||||
|
// ur:xmr-txunsigned - unsigned transaction
|
||||||
|
// should show a scanner afterwards.
|
||||||
|
|
||||||
|
class AnimatedURPage extends BasePage {
|
||||||
|
final bool isAll;
|
||||||
|
AnimatedURPage(this.animatedURmodel, {required String urQr, this.isAll = false}) {
|
||||||
|
if (urQr == "export-outputs") {
|
||||||
|
this.urQr = monero!.exportOutputsUR(animatedURmodel.wallet, false);
|
||||||
|
} else if (urQr == "export-outputs-all") {
|
||||||
|
this.urQr = monero!.exportOutputsUR(animatedURmodel.wallet, true);
|
||||||
|
} else {
|
||||||
|
this.urQr = urQr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
late String urQr;
|
||||||
|
|
||||||
|
final AnimatedURModel animatedURmodel;
|
||||||
|
|
||||||
|
String get urQrType {
|
||||||
|
final first = urQr.trim().split("\n")[0];
|
||||||
|
return first.split('/')[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget body(BuildContext context) {
|
||||||
|
return Column(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
children: [
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.only(top: 64.0),
|
||||||
|
child: URQR(
|
||||||
|
frames: urQr.trim().split("\n"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(height: 32),
|
||||||
|
if (urQrType == "ur:xmr-txunsigned" || urQrType == "ur:xmr-output")
|
||||||
|
Padding(
|
||||||
|
padding: const EdgeInsets.symmetric(horizontal: 16.0),
|
||||||
|
child: SizedBox(
|
||||||
|
width: double.maxFinite,
|
||||||
|
child: PrimaryButton(
|
||||||
|
onPressed: () => _continue(context),
|
||||||
|
text: "Continue",
|
||||||
|
color: Theme.of(context).primaryColor,
|
||||||
|
textColor: Colors.white,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
SizedBox(height: 32),
|
||||||
|
if (urQrType == "ur:xmr-output" && !isAll) Padding(
|
||||||
|
padding: const EdgeInsets.symmetric(horizontal: 16.0),
|
||||||
|
child: SizedBox(
|
||||||
|
width: double.maxFinite,
|
||||||
|
child: PrimaryButton(
|
||||||
|
onPressed: () => _exportAll(context),
|
||||||
|
text: "Export all",
|
||||||
|
color: Theme.of(context).colorScheme.secondary,
|
||||||
|
textColor: Colors.white,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
void _exportAll(BuildContext context) {
|
||||||
|
Navigator.of(context).pushReplacement(
|
||||||
|
MaterialPageRoute(
|
||||||
|
builder: (context) {
|
||||||
|
return AnimatedURPage(animatedURmodel, urQr: "export-outputs-all", isAll: true);
|
||||||
|
},
|
||||||
|
),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
Future<void> _continue(BuildContext context) async {
|
||||||
|
try {
|
||||||
|
switch (urQrType) {
|
||||||
|
case "ur:xmr-txunsigned": // ur:xmr-txsigned
|
||||||
|
final ur = await presentQRScanner(context);
|
||||||
|
final result = await monero!.commitTransactionUR(animatedURmodel.wallet, ur);
|
||||||
|
if (result) {
|
||||||
|
Navigator.of(context).pop(true);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case "ur:xmr-output": // xmr-keyimage
|
||||||
|
final ur = await presentQRScanner(context);
|
||||||
|
final result = await monero!.importKeyImagesUR(animatedURmodel.wallet, ur);
|
||||||
|
if (result) {
|
||||||
|
Navigator.of(context).pop(true);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw UnimplementedError("unable to handle UR: ${urQrType}");
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
await showPopUp<void>(
|
||||||
|
context: context,
|
||||||
|
builder: (BuildContext context) {
|
||||||
|
return AlertWithOneAction(
|
||||||
|
alertTitle: S.of(context).error,
|
||||||
|
alertContent: e.toString(),
|
||||||
|
buttonText: S.of(context).ok,
|
||||||
|
buttonAction: () => Navigator.pop(context, true));
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class URQR extends StatefulWidget {
|
||||||
|
URQR({super.key, required this.frames});
|
||||||
|
|
||||||
|
List<String> frames;
|
||||||
|
|
||||||
|
@override
|
||||||
|
// ignore: library_private_types_in_public_api
|
||||||
|
_URQRState createState() => _URQRState();
|
||||||
|
}
|
||||||
|
|
||||||
|
const urFrameTime = 1000 ~/ 5;
|
||||||
|
|
||||||
|
class _URQRState extends State<URQR> {
|
||||||
|
Timer? t;
|
||||||
|
int frame = 0;
|
||||||
|
@override
|
||||||
|
void initState() {
|
||||||
|
super.initState();
|
||||||
|
setState(() {
|
||||||
|
t = Timer.periodic(const Duration(milliseconds: urFrameTime), (timer) {
|
||||||
|
_nextFrame();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void _nextFrame() {
|
||||||
|
setState(() {
|
||||||
|
frame++;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void dispose() {
|
||||||
|
t?.cancel();
|
||||||
|
super.dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Column(
|
||||||
|
mainAxisSize: MainAxisSize.min,
|
||||||
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
|
children: [
|
||||||
|
Center(
|
||||||
|
child: QrImage(
|
||||||
|
data: widget.frames[frame % widget.frames.length], version: -1,
|
||||||
|
size: 400,
|
||||||
|
),
|
||||||
|
),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
|
@ -65,7 +65,7 @@ class WCPairingsWidget extends BasePage {
|
||||||
bool isCameraPermissionGranted =
|
bool isCameraPermissionGranted =
|
||||||
await PermissionHandler.checkPermission(Permission.camera, context);
|
await PermissionHandler.checkPermission(Permission.camera, context);
|
||||||
if (!isCameraPermissionGranted) return;
|
if (!isCameraPermissionGranted) return;
|
||||||
uri = await presentQRScanner();
|
uri = await presentQRScanner(context);
|
||||||
} else {
|
} else {
|
||||||
uri = await _showEnterWalletConnectURIPopUp(context);
|
uri = await _showEnterWalletConnectURIPopUp(context);
|
||||||
}
|
}
|
||||||
|
|
|
@ -231,7 +231,7 @@ class AddressTextField extends StatelessWidget {
|
||||||
bool isCameraPermissionGranted =
|
bool isCameraPermissionGranted =
|
||||||
await PermissionHandler.checkPermission(Permission.camera, context);
|
await PermissionHandler.checkPermission(Permission.camera, context);
|
||||||
if (!isCameraPermissionGranted) return;
|
if (!isCameraPermissionGranted) return;
|
||||||
final code = await presentQRScanner();
|
final code = await presentQRScanner(context);
|
||||||
if (code.isEmpty) {
|
if (code.isEmpty) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -21,6 +21,7 @@ class SettingActions {
|
||||||
addressBookSettingAction,
|
addressBookSettingAction,
|
||||||
silentPaymentsSettingAction,
|
silentPaymentsSettingAction,
|
||||||
litecoinMwebSettingAction,
|
litecoinMwebSettingAction,
|
||||||
|
exportOutputsAction,
|
||||||
securityBackupSettingAction,
|
securityBackupSettingAction,
|
||||||
privacySettingAction,
|
privacySettingAction,
|
||||||
displaySettingAction,
|
displaySettingAction,
|
||||||
|
@ -50,6 +51,16 @@ class SettingActions {
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
static SettingActions exportOutputsAction = SettingActions._(
|
||||||
|
key: ValueKey('dashboard_page_menu_widget_export_outputs_settings_button_key'),
|
||||||
|
name: (context) => S.of(context).export_outputs,
|
||||||
|
image: 'assets/images/monero_menu.png',
|
||||||
|
onTap: (BuildContext context) {
|
||||||
|
Navigator.pop(context);
|
||||||
|
Navigator.of(context).pushNamed(Routes.urqrAnimatedPage, arguments: 'export-outputs');
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
static SettingActions litecoinMwebSettingAction = SettingActions._(
|
static SettingActions litecoinMwebSettingAction = SettingActions._(
|
||||||
key: ValueKey('dashboard_page_menu_widget_litecoin_mweb_settings_button_key'),
|
key: ValueKey('dashboard_page_menu_widget_litecoin_mweb_settings_button_key'),
|
||||||
name: (context) => S.of(context).litecoin_mweb_settings,
|
name: (context) => S.of(context).litecoin_mweb_settings,
|
||||||
|
|
10
lib/view_model/animated_ur_model.dart
Normal file
10
lib/view_model/animated_ur_model.dart
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
import 'package:cake_wallet/store/app_store.dart';
|
||||||
|
import 'package:cw_core/wallet_base.dart';
|
||||||
|
import 'package:mobx/mobx.dart';
|
||||||
|
|
||||||
|
class AnimatedURModel with Store {
|
||||||
|
AnimatedURModel(this.appStore)
|
||||||
|
: wallet = appStore.wallet!;
|
||||||
|
final AppStore appStore;
|
||||||
|
final WalletBase wallet;
|
||||||
|
}
|
|
@ -393,6 +393,12 @@ abstract class DashboardViewModelBase with Store {
|
||||||
wallet.type == WalletType.wownero ||
|
wallet.type == WalletType.wownero ||
|
||||||
wallet.type == WalletType.haven;
|
wallet.type == WalletType.haven;
|
||||||
|
|
||||||
|
@computed
|
||||||
|
bool get isMoneroViewOnly {
|
||||||
|
if (wallet.type != WalletType.monero) return false;
|
||||||
|
return monero!.isViewOnly();
|
||||||
|
}
|
||||||
|
|
||||||
@computed
|
@computed
|
||||||
String? get getMoneroError {
|
String? get getMoneroError {
|
||||||
if (wallet.type != WalletType.monero) return null;
|
if (wallet.type != WalletType.monero) return null;
|
||||||
|
|
|
@ -213,7 +213,7 @@ abstract class NodeCreateOrEditViewModelBase with Store {
|
||||||
bool isCameraPermissionGranted =
|
bool isCameraPermissionGranted =
|
||||||
await PermissionHandler.checkPermission(Permission.camera, context);
|
await PermissionHandler.checkPermission(Permission.camera, context);
|
||||||
if (!isCameraPermissionGranted) return;
|
if (!isCameraPermissionGranted) return;
|
||||||
String code = await presentQRScanner();
|
String code = await presentQRScanner(context);
|
||||||
|
|
||||||
if (code.isEmpty) {
|
if (code.isEmpty) {
|
||||||
throw Exception('Unexpected scan QR code value: value is empty');
|
throw Exception('Unexpected scan QR code value: value is empty');
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:cake_wallet/view_model/restore/restore_mode.dart';
|
import 'package:cake_wallet/view_model/restore/restore_mode.dart';
|
||||||
import 'package:cw_core/wallet_type.dart';
|
import 'package:cw_core/wallet_type.dart';
|
||||||
|
|
||||||
|
@ -32,6 +34,16 @@ class RestoredWallet {
|
||||||
final String? privateKey;
|
final String? privateKey;
|
||||||
|
|
||||||
factory RestoredWallet.fromKey(Map<String, dynamic> json) {
|
factory RestoredWallet.fromKey(Map<String, dynamic> json) {
|
||||||
|
try {
|
||||||
|
final codeParsed = jsonDecode(json['raw_qr'].toString());
|
||||||
|
if (codeParsed["version"] == 0) {
|
||||||
|
json['address'] = codeParsed["primaryAddress"];
|
||||||
|
json['view_key'] = codeParsed["privateViewKey"];
|
||||||
|
json['height'] = codeParsed["restoreHeight"].toString();
|
||||||
|
}
|
||||||
|
} catch (e) {
|
||||||
|
// fine, we don't care, it is only for monero anyway
|
||||||
|
}
|
||||||
final height = json['height'] as String?;
|
final height = json['height'] as String?;
|
||||||
return RestoredWallet(
|
return RestoredWallet(
|
||||||
restoreMode: json['mode'] as WalletRestoreMode,
|
restoreMode: json['mode'] as WalletRestoreMode,
|
||||||
|
@ -39,7 +51,7 @@ class RestoredWallet {
|
||||||
address: json['address'] as String?,
|
address: json['address'] as String?,
|
||||||
spendKey: json['spend_key'] as String?,
|
spendKey: json['spend_key'] as String?,
|
||||||
viewKey: json['view_key'] as String?,
|
viewKey: json['view_key'] as String?,
|
||||||
height: height != null ? int.parse(height) : 0,
|
height: height != null ? int.tryParse(height)??0 : 0,
|
||||||
privateKey: json['private_key'] as String?,
|
privateKey: json['private_key'] as String?,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
import 'dart:convert';
|
||||||
|
|
||||||
import 'package:cake_wallet/core/seed_validator.dart';
|
import 'package:cake_wallet/core/seed_validator.dart';
|
||||||
import 'package:cake_wallet/entities/parse_address_from_domain.dart';
|
import 'package:cake_wallet/entities/parse_address_from_domain.dart';
|
||||||
import 'package:cake_wallet/entities/qr_scanner.dart';
|
import 'package:cake_wallet/entities/qr_scanner.dart';
|
||||||
|
@ -48,6 +50,17 @@ class WalletRestoreFromQRCode {
|
||||||
|
|
||||||
final extracted = sortedKeys.firstWhereOrNull((key) => code.toLowerCase().contains(key));
|
final extracted = sortedKeys.firstWhereOrNull((key) => code.toLowerCase().contains(key));
|
||||||
|
|
||||||
|
if (extracted == null) {
|
||||||
|
// Special case for view-only monero wallet
|
||||||
|
final codeParsed = json.decode(code);
|
||||||
|
if (codeParsed["version"] == 0 &&
|
||||||
|
codeParsed["primaryAddress"] != null &&
|
||||||
|
codeParsed["privateViewKey"] != null &&
|
||||||
|
codeParsed["restoreHeight"] != null) {
|
||||||
|
return WalletType.monero;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return _walletTypeMap[extracted];
|
return _walletTypeMap[extracted];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -75,7 +88,7 @@ class WalletRestoreFromQRCode {
|
||||||
}
|
}
|
||||||
|
|
||||||
static Future<RestoredWallet> scanQRCodeForRestoring(BuildContext context) async {
|
static Future<RestoredWallet> scanQRCodeForRestoring(BuildContext context) async {
|
||||||
String code = await presentQRScanner();
|
String code = await presentQRScanner(context);
|
||||||
if (code.isEmpty) throw Exception('Unexpected scan QR code value: value is empty');
|
if (code.isEmpty) throw Exception('Unexpected scan QR code value: value is empty');
|
||||||
|
|
||||||
WalletType? walletType;
|
WalletType? walletType;
|
||||||
|
@ -109,7 +122,7 @@ class WalletRestoreFromQRCode {
|
||||||
queryParameters['address'] = _extractAddressFromUrl(code, walletType!);
|
queryParameters['address'] = _extractAddressFromUrl(code, walletType!);
|
||||||
}
|
}
|
||||||
|
|
||||||
Map<String, dynamic> credentials = {'type': walletType, ...queryParameters};
|
Map<String, dynamic> credentials = {'type': walletType, ...queryParameters, 'raw_qr': code};
|
||||||
|
|
||||||
credentials['mode'] = _determineWalletRestoreMode(credentials);
|
credentials['mode'] = _determineWalletRestoreMode(credentials);
|
||||||
|
|
||||||
|
@ -205,6 +218,17 @@ class WalletRestoreFromQRCode {
|
||||||
return WalletRestoreMode.keys;
|
return WalletRestoreMode.keys;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (type == WalletType.monero) {
|
||||||
|
final codeParsed = json.decode(credentials['raw_qr'].toString());
|
||||||
|
if (codeParsed["version"] != 0) throw UnimplementedError("Found view-only restore with unsupported version");
|
||||||
|
if (codeParsed["primaryAddress"] == null ||
|
||||||
|
codeParsed["privateViewKey"] == null ||
|
||||||
|
codeParsed["restoreHeight"] == null) {
|
||||||
|
throw UnimplementedError("Missing one or more attributes in the JSON");
|
||||||
|
}
|
||||||
|
return WalletRestoreMode.keys;
|
||||||
|
}
|
||||||
|
|
||||||
throw Exception('Unexpected restore mode: restore params are invalid');
|
throw Exception('Unexpected restore mode: restore params are invalid');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,3 +1,4 @@
|
||||||
|
import 'package:cake_wallet/di.dart';
|
||||||
import 'package:cake_wallet/entities/contact.dart';
|
import 'package:cake_wallet/entities/contact.dart';
|
||||||
import 'package:cake_wallet/entities/priority_for_wallet_type.dart';
|
import 'package:cake_wallet/entities/priority_for_wallet_type.dart';
|
||||||
import 'package:cake_wallet/entities/transaction_description.dart';
|
import 'package:cake_wallet/entities/transaction_description.dart';
|
||||||
|
@ -10,7 +11,9 @@ import 'package:cake_wallet/entities/contact_record.dart';
|
||||||
import 'package:cake_wallet/entities/wallet_contact.dart';
|
import 'package:cake_wallet/entities/wallet_contact.dart';
|
||||||
import 'package:cake_wallet/polygon/polygon.dart';
|
import 'package:cake_wallet/polygon/polygon.dart';
|
||||||
import 'package:cake_wallet/reactions/wallet_connect.dart';
|
import 'package:cake_wallet/reactions/wallet_connect.dart';
|
||||||
|
import 'package:cake_wallet/routes.dart';
|
||||||
import 'package:cake_wallet/solana/solana.dart';
|
import 'package:cake_wallet/solana/solana.dart';
|
||||||
|
import 'package:cake_wallet/src/screens/ur/animated_ur_page.dart';
|
||||||
import 'package:cake_wallet/store/app_store.dart';
|
import 'package:cake_wallet/store/app_store.dart';
|
||||||
import 'package:cake_wallet/tron/tron.dart';
|
import 'package:cake_wallet/tron/tron.dart';
|
||||||
import 'package:cake_wallet/view_model/contact_list/contact_list_view_model.dart';
|
import 'package:cake_wallet/view_model/contact_list/contact_list_view_model.dart';
|
||||||
|
@ -23,6 +26,7 @@ import 'package:cw_core/transaction_priority.dart';
|
||||||
import 'package:cw_core/unspent_coin_type.dart';
|
import 'package:cw_core/unspent_coin_type.dart';
|
||||||
import 'package:cake_wallet/view_model/send/output.dart';
|
import 'package:cake_wallet/view_model/send/output.dart';
|
||||||
import 'package:cake_wallet/view_model/send/send_template_view_model.dart';
|
import 'package:cake_wallet/view_model/send/send_template_view_model.dart';
|
||||||
|
import 'package:flutter/material.dart';
|
||||||
import 'package:hive/hive.dart';
|
import 'package:hive/hive.dart';
|
||||||
import 'package:mobx/mobx.dart';
|
import 'package:mobx/mobx.dart';
|
||||||
import 'package:cake_wallet/entities/template.dart';
|
import 'package:cake_wallet/entities/template.dart';
|
||||||
|
@ -457,7 +461,7 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
|
||||||
}
|
}
|
||||||
|
|
||||||
@action
|
@action
|
||||||
Future<void> commitTransaction() async {
|
Future<void> commitTransaction(BuildContext context) async {
|
||||||
if (pendingTransaction == null) {
|
if (pendingTransaction == null) {
|
||||||
throw Exception("Pending transaction doesn't exist. It should not be happened.");
|
throw Exception("Pending transaction doesn't exist. It should not be happened.");
|
||||||
}
|
}
|
||||||
|
@ -476,7 +480,17 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
|
||||||
|
|
||||||
try {
|
try {
|
||||||
state = TransactionCommitting();
|
state = TransactionCommitting();
|
||||||
await pendingTransaction!.commit();
|
|
||||||
|
if (pendingTransaction!.shouldCommitUR()) {
|
||||||
|
final urstr = await pendingTransaction!.commitUR();
|
||||||
|
final result = await Navigator.of(context).pushNamed(Routes.urqrAnimatedPage, arguments: urstr);
|
||||||
|
if (result == null) {
|
||||||
|
state = FailureState("Canceled by user");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
await pendingTransaction!.commit();
|
||||||
|
}
|
||||||
|
|
||||||
if (walletType == WalletType.nano) {
|
if (walletType == WalletType.nano) {
|
||||||
nano!.updateTransactions(wallet);
|
nano!.updateTransactions(wallet);
|
||||||
|
|
|
@ -72,6 +72,10 @@ abstract class WalletKeysViewModelBase with Store {
|
||||||
final keys = monero!.getKeys(_appStore.wallet!);
|
final keys = monero!.getKeys(_appStore.wallet!);
|
||||||
|
|
||||||
items.addAll([
|
items.addAll([
|
||||||
|
if (keys['primaryAddress'] != null)
|
||||||
|
StandartListItem(
|
||||||
|
title: S.current.primary_address,
|
||||||
|
value: keys['primaryAddress']!),
|
||||||
if (keys['publicSpendKey'] != null)
|
if (keys['publicSpendKey'] != null)
|
||||||
StandartListItem(
|
StandartListItem(
|
||||||
key: ValueKey('${_walletName}_wallet_public_spend_key_item_key'),
|
key: ValueKey('${_walletName}_wallet_public_spend_key_item_key'),
|
||||||
|
@ -131,6 +135,10 @@ abstract class WalletKeysViewModelBase with Store {
|
||||||
final keys = haven!.getKeys(_appStore.wallet!);
|
final keys = haven!.getKeys(_appStore.wallet!);
|
||||||
|
|
||||||
items.addAll([
|
items.addAll([
|
||||||
|
if (keys['primaryAddress'] != null)
|
||||||
|
StandartListItem(
|
||||||
|
title: S.current.primary_address,
|
||||||
|
value: keys['primaryAddress']!),
|
||||||
if (keys['publicSpendKey'] != null)
|
if (keys['publicSpendKey'] != null)
|
||||||
StandartListItem(
|
StandartListItem(
|
||||||
key: ValueKey('${_walletName}_wallet_public_spend_key_item_key'),
|
key: ValueKey('${_walletName}_wallet_public_spend_key_item_key'),
|
||||||
|
@ -168,6 +176,10 @@ abstract class WalletKeysViewModelBase with Store {
|
||||||
final keys = wownero!.getKeys(_appStore.wallet!);
|
final keys = wownero!.getKeys(_appStore.wallet!);
|
||||||
|
|
||||||
items.addAll([
|
items.addAll([
|
||||||
|
if (keys['primaryAddress'] != null)
|
||||||
|
StandartListItem(
|
||||||
|
title: S.current.primary_address,
|
||||||
|
value: keys['primaryAddress']!),
|
||||||
if (keys['publicSpendKey'] != null)
|
if (keys['publicSpendKey'] != null)
|
||||||
StandartListItem(
|
StandartListItem(
|
||||||
key: ValueKey('${_walletName}_wallet_public_spend_key_item_key'),
|
key: ValueKey('${_walletName}_wallet_public_spend_key_item_key'),
|
||||||
|
|
|
@ -10,7 +10,6 @@ list(APPEND FLUTTER_PLUGIN_LIST
|
||||||
)
|
)
|
||||||
|
|
||||||
list(APPEND FLUTTER_FFI_PLUGIN_LIST
|
list(APPEND FLUTTER_FFI_PLUGIN_LIST
|
||||||
sp_scanner
|
|
||||||
)
|
)
|
||||||
|
|
||||||
set(PLUGIN_BUNDLED_LIBRARIES)
|
set(PLUGIN_BUNDLED_LIBRARIES)
|
||||||
|
|
|
@ -6,9 +6,9 @@ import FlutterMacOS
|
||||||
import Foundation
|
import Foundation
|
||||||
|
|
||||||
import connectivity_plus
|
import connectivity_plus
|
||||||
import cw_mweb
|
|
||||||
import device_info_plus
|
import device_info_plus
|
||||||
import devicelocale
|
import devicelocale
|
||||||
|
import fast_scanner
|
||||||
import flutter_inappwebview_macos
|
import flutter_inappwebview_macos
|
||||||
import flutter_local_authentication
|
import flutter_local_authentication
|
||||||
import flutter_secure_storage_macos
|
import flutter_secure_storage_macos
|
||||||
|
@ -23,9 +23,9 @@ import wakelock_plus
|
||||||
|
|
||||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||||
ConnectivityPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlugin"))
|
ConnectivityPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlugin"))
|
||||||
CwMwebPlugin.register(with: registry.registrar(forPlugin: "CwMwebPlugin"))
|
|
||||||
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
|
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
|
||||||
DevicelocalePlugin.register(with: registry.registrar(forPlugin: "DevicelocalePlugin"))
|
DevicelocalePlugin.register(with: registry.registrar(forPlugin: "DevicelocalePlugin"))
|
||||||
|
MobileScannerPlugin.register(with: registry.registrar(forPlugin: "MobileScannerPlugin"))
|
||||||
InAppWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "InAppWebViewFlutterPlugin"))
|
InAppWebViewFlutterPlugin.register(with: registry.registrar(forPlugin: "InAppWebViewFlutterPlugin"))
|
||||||
FlutterLocalAuthenticationPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalAuthenticationPlugin"))
|
FlutterLocalAuthenticationPlugin.register(with: registry.registrar(forPlugin: "FlutterLocalAuthenticationPlugin"))
|
||||||
FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin"))
|
FlutterSecureStoragePlugin.register(with: registry.registrar(forPlugin: "FlutterSecureStoragePlugin"))
|
||||||
|
|
|
@ -8,6 +8,8 @@ PODS:
|
||||||
- FlutterMacOS
|
- FlutterMacOS
|
||||||
- devicelocale (0.0.1):
|
- devicelocale (0.0.1):
|
||||||
- FlutterMacOS
|
- FlutterMacOS
|
||||||
|
- fast_scanner (5.1.1):
|
||||||
|
- FlutterMacOS
|
||||||
- flutter_inappwebview_macos (0.0.1):
|
- flutter_inappwebview_macos (0.0.1):
|
||||||
- FlutterMacOS
|
- FlutterMacOS
|
||||||
- OrderedSet (~> 5.0)
|
- OrderedSet (~> 5.0)
|
||||||
|
@ -42,6 +44,7 @@ DEPENDENCIES:
|
||||||
- cw_mweb (from `Flutter/ephemeral/.symlinks/plugins/cw_mweb/macos`)
|
- cw_mweb (from `Flutter/ephemeral/.symlinks/plugins/cw_mweb/macos`)
|
||||||
- device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`)
|
- device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`)
|
||||||
- devicelocale (from `Flutter/ephemeral/.symlinks/plugins/devicelocale/macos`)
|
- devicelocale (from `Flutter/ephemeral/.symlinks/plugins/devicelocale/macos`)
|
||||||
|
- fast_scanner (from `Flutter/ephemeral/.symlinks/plugins/fast_scanner/macos`)
|
||||||
- flutter_inappwebview_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_inappwebview_macos/macos`)
|
- flutter_inappwebview_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_inappwebview_macos/macos`)
|
||||||
- flutter_local_authentication (from `Flutter/ephemeral/.symlinks/plugins/flutter_local_authentication/macos`)
|
- flutter_local_authentication (from `Flutter/ephemeral/.symlinks/plugins/flutter_local_authentication/macos`)
|
||||||
- flutter_secure_storage_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos`)
|
- flutter_secure_storage_macos (from `Flutter/ephemeral/.symlinks/plugins/flutter_secure_storage_macos/macos`)
|
||||||
|
@ -69,6 +72,8 @@ EXTERNAL SOURCES:
|
||||||
:path: Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos
|
:path: Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos
|
||||||
devicelocale:
|
devicelocale:
|
||||||
:path: Flutter/ephemeral/.symlinks/plugins/devicelocale/macos
|
:path: Flutter/ephemeral/.symlinks/plugins/devicelocale/macos
|
||||||
|
fast_scanner:
|
||||||
|
:path: Flutter/ephemeral/.symlinks/plugins/fast_scanner/macos
|
||||||
flutter_inappwebview_macos:
|
flutter_inappwebview_macos:
|
||||||
:path: Flutter/ephemeral/.symlinks/plugins/flutter_inappwebview_macos/macos
|
:path: Flutter/ephemeral/.symlinks/plugins/flutter_inappwebview_macos/macos
|
||||||
flutter_local_authentication:
|
flutter_local_authentication:
|
||||||
|
@ -99,6 +104,7 @@ SPEC CHECKSUMS:
|
||||||
cw_mweb: 7440b12ead811dda972a9918442ea2a458e8742c
|
cw_mweb: 7440b12ead811dda972a9918442ea2a458e8742c
|
||||||
device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f
|
device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f
|
||||||
devicelocale: 9f0f36ac651cabae2c33f32dcff4f32b61c38225
|
devicelocale: 9f0f36ac651cabae2c33f32dcff4f32b61c38225
|
||||||
|
fast_scanner: d31bae07e2653403a69dac99fb710c1722b16a97
|
||||||
flutter_inappwebview_macos: 9600c9df9fdb346aaa8933812009f8d94304203d
|
flutter_inappwebview_macos: 9600c9df9fdb346aaa8933812009f8d94304203d
|
||||||
flutter_local_authentication: 85674893931e1c9cfa7c9e4f5973cb8c56b018b0
|
flutter_local_authentication: 85674893931e1c9cfa7c9e4f5973cb8c56b018b0
|
||||||
flutter_secure_storage_macos: d56e2d218c1130b262bef8b4a7d64f88d7f9c9ea
|
flutter_secure_storage_macos: d56e2d218c1130b262bef8b4a7d64f88d7f9c9ea
|
||||||
|
|
|
@ -14,8 +14,10 @@ dependencies:
|
||||||
# provider: ^6.0.3
|
# provider: ^6.0.3
|
||||||
rxdart: ^0.28.0
|
rxdart: ^0.28.0
|
||||||
yaml: ^3.1.1
|
yaml: ^3.1.1
|
||||||
#barcode_scan: any
|
fast_scanner:
|
||||||
barcode_scan2: ^4.2.1
|
git:
|
||||||
|
url: https://github.com/MrCyjaneK/fast_scanner
|
||||||
|
ref: c8311b46cc67dd02250970a54d2a4526168187f3
|
||||||
http: ^1.1.0
|
http: ^1.1.0
|
||||||
path_provider: ^2.0.11
|
path_provider: ^2.0.11
|
||||||
mobx: ^2.1.4
|
mobx: ^2.1.4
|
||||||
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "رابط Clearnet",
|
"clearnet_link": "رابط Clearnet",
|
||||||
"close": "يغلق",
|
"close": "يغلق",
|
||||||
"coin_control": "التحكم في العملة (اختياري)",
|
"coin_control": "التحكم في العملة (اختياري)",
|
||||||
"cold_or_recover_wallet": "أضف محفظة باردة أو استعد محفظة ورقية",
|
"cold_or_recover_wallet": "أضف محفظة للقراءة فقط من Cupcake أو محفظة باردة أو استعاد محفظة ورقية",
|
||||||
"color_theme": "سمة اللون",
|
"color_theme": "سمة اللون",
|
||||||
"commit_transaction_amount_fee": "تنفيذ الصفقة\nالمبلغ: ${amount}\nالرسوم: ${fee}",
|
"commit_transaction_amount_fee": "تنفيذ الصفقة\nالمبلغ: ${amount}\nالرسوم: ${fee}",
|
||||||
"confirm": "تأكيد",
|
"confirm": "تأكيد",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "جهات الاتصال",
|
"contact_list_contacts": "جهات الاتصال",
|
||||||
"contact_list_wallets": "محافظ",
|
"contact_list_wallets": "محافظ",
|
||||||
"contact_name": "اسم جهة الاتصال",
|
"contact_name": "اسم جهة الاتصال",
|
||||||
|
"contact_name_exists": " .ﻒﻠﺘﺨﻣ ﻢﺳﺍ ﺭﺎﻴﺘﺧﺍ ءﺎﺟﺮﻟﺍ .ﻞﻌﻔﻟﺎﺑ ﺓﺩﻮﺟﻮﻣ ﻢﺳﻻﺍ ﺍﺬﻬﺑ ﻝﺎﺼﺗﺍ ﺔﻬﺟ",
|
||||||
"contact_support": "اتصل بالدعم",
|
"contact_support": "اتصل بالدعم",
|
||||||
"continue_text": "التالي",
|
"continue_text": "التالي",
|
||||||
"contract_warning": "تم وضع علامة على عنوان العقد هذا على أنه احتيالي محتمل. يرجى المعالجة بحذر.",
|
"contract_warning": "تم وضع علامة على عنوان العقد هذا على أنه احتيالي محتمل. يرجى المعالجة بحذر.",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "انتهاء الصلاحية والصلاحية",
|
"expiry_and_validity": "انتهاء الصلاحية والصلاحية",
|
||||||
"export_backup": "تصدير نسخة احتياطية",
|
"export_backup": "تصدير نسخة احتياطية",
|
||||||
"export_logs": "سجلات التصدير",
|
"export_logs": "سجلات التصدير",
|
||||||
|
"export_outputs": "مخرجات التصدير",
|
||||||
"extra_id": "معرف إضافي:",
|
"extra_id": "معرف إضافي:",
|
||||||
"extracted_address_content": "سوف ترسل الأموال إلى\n${recipient_name}",
|
"extracted_address_content": "سوف ترسل الأموال إلى\n${recipient_name}",
|
||||||
"failed_authentication": "${state_error} فشل المصادقة.",
|
"failed_authentication": "${state_error} فشل المصادقة.",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven بواسطة Cake Wallet",
|
"haven_app": "Haven بواسطة Cake Wallet",
|
||||||
"haven_app_wallet_text": "محفظة رائعة ل Haven",
|
"haven_app_wallet_text": "محفظة رائعة ل Haven",
|
||||||
"help": "مساعده",
|
"help": "مساعده",
|
||||||
|
"hidden_addresses": "العناوين المخفية",
|
||||||
"hidden_balance": "الميزان الخفي",
|
"hidden_balance": "الميزان الخفي",
|
||||||
|
"hide": "يخفي",
|
||||||
"hide_details": "أخف التفاصيل",
|
"hide_details": "أخف التفاصيل",
|
||||||
"high_contrast_theme": "موضوع عالي التباين",
|
"high_contrast_theme": "موضوع عالي التباين",
|
||||||
"home_screen_settings": "إعدادات الشاشة الرئيسية",
|
"home_screen_settings": "إعدادات الشاشة الرئيسية",
|
||||||
|
@ -500,6 +504,7 @@
|
||||||
"pre_seed_title": "مهم",
|
"pre_seed_title": "مهم",
|
||||||
"prepaid_cards": "البطاقات المدفوعة مسبقا",
|
"prepaid_cards": "البطاقات المدفوعة مسبقا",
|
||||||
"prevent_screenshots": "منع لقطات الشاشة وتسجيل الشاشة",
|
"prevent_screenshots": "منع لقطات الشاشة وتسجيل الشاشة",
|
||||||
|
"primary_address": "العنوان الأساسي",
|
||||||
"privacy": "خصوصية",
|
"privacy": "خصوصية",
|
||||||
"privacy_policy": "سياسة الخصوصية",
|
"privacy_policy": "سياسة الخصوصية",
|
||||||
"privacy_settings": "إعدادات الخصوصية",
|
"privacy_settings": "إعدادات الخصوصية",
|
||||||
|
@ -696,6 +701,7 @@
|
||||||
"share": "يشارك",
|
"share": "يشارك",
|
||||||
"share_address": "شارك العنوان",
|
"share_address": "شارك العنوان",
|
||||||
"shared_seed_wallet_groups": "مجموعات محفظة البذور المشتركة",
|
"shared_seed_wallet_groups": "مجموعات محفظة البذور المشتركة",
|
||||||
|
"show": "يعرض",
|
||||||
"show_details": "اظهر التفاصيل",
|
"show_details": "اظهر التفاصيل",
|
||||||
"show_keys": "اظهار السييد / المفاتيح",
|
"show_keys": "اظهار السييد / المفاتيح",
|
||||||
"show_market_place": "إظهار السوق",
|
"show_market_place": "إظهار السوق",
|
||||||
|
@ -942,6 +948,5 @@
|
||||||
"you_pay": "انت تدفع",
|
"you_pay": "انت تدفع",
|
||||||
"you_will_get": "حول الى",
|
"you_will_get": "حول الى",
|
||||||
"you_will_send": "تحويل من",
|
"you_will_send": "تحويل من",
|
||||||
"yy": "YY",
|
"yy": "YY"
|
||||||
"contact_name_exists": " .ﻒﻠﺘﺨﻣ ﻢﺳﺍ ﺭﺎﻴﺘﺧﺍ ءﺎﺟﺮﻟﺍ .ﻞﻌﻔﻟﺎﺑ ﺓﺩﻮﺟﻮﻣ ﻢﺳﻻﺍ ﺍﺬﻬﺑ ﻝﺎﺼﺗﺍ ﺔﻬﺟ"
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "Clearnet връзка",
|
"clearnet_link": "Clearnet връзка",
|
||||||
"close": "затвори",
|
"close": "затвори",
|
||||||
"coin_control": "Управление на монетите (не е задължително)",
|
"coin_control": "Управление на монетите (не е задължително)",
|
||||||
"cold_or_recover_wallet": "Добавете студен портфейл или възстановете хартиен портфейл",
|
"cold_or_recover_wallet": "Добавете портфейл само за четене от Cupcake или студен портфейл или възстановете хартиен портфейл",
|
||||||
"color_theme": "Цвят",
|
"color_theme": "Цвят",
|
||||||
"commit_transaction_amount_fee": "Изпълняване на транзакция\nСума: ${amount}\nТакса: ${fee}",
|
"commit_transaction_amount_fee": "Изпълняване на транзакция\nСума: ${amount}\nТакса: ${fee}",
|
||||||
"confirm": "Потвърждаване",
|
"confirm": "Потвърждаване",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "Контакти",
|
"contact_list_contacts": "Контакти",
|
||||||
"contact_list_wallets": "Моите портфейли",
|
"contact_list_wallets": "Моите портфейли",
|
||||||
"contact_name": "Име на контакт",
|
"contact_name": "Име на контакт",
|
||||||
|
"contact_name_exists": "Вече съществува контакт с това име. Моля, изберете друго име.",
|
||||||
"contact_support": "Свържи се с отдел поддръжка",
|
"contact_support": "Свържи се с отдел поддръжка",
|
||||||
"continue_text": "Напред",
|
"continue_text": "Напред",
|
||||||
"contract_warning": "Този адрес на договора е маркиран като потенциално измамник. Моля, обработете с повишено внимание.",
|
"contract_warning": "Този адрес на договора е маркиран като потенциално измамник. Моля, обработете с повишено внимание.",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "Изтичане и валидност",
|
"expiry_and_validity": "Изтичане и валидност",
|
||||||
"export_backup": "Експортиране на резервно копие",
|
"export_backup": "Експортиране на резервно копие",
|
||||||
"export_logs": "Експортни дневници",
|
"export_logs": "Експортни дневници",
|
||||||
|
"export_outputs": "Експортни резултати",
|
||||||
"extra_id": "Допълнително ID:",
|
"extra_id": "Допълнително ID:",
|
||||||
"extracted_address_content": "Ще изпратите средства на \n${recipient_name}",
|
"extracted_address_content": "Ще изпратите средства на \n${recipient_name}",
|
||||||
"failed_authentication": "Неуспешно удостоверяване. ${state_error}",
|
"failed_authentication": "Неуспешно удостоверяване. ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven от Cake Wallet",
|
"haven_app": "Haven от Cake Wallet",
|
||||||
"haven_app_wallet_text": "Невероятен портфейл за Haven",
|
"haven_app_wallet_text": "Невероятен портфейл за Haven",
|
||||||
"help": "Помощ",
|
"help": "Помощ",
|
||||||
|
"hidden_addresses": "Скрити адреси",
|
||||||
"hidden_balance": "Скрит баланс",
|
"hidden_balance": "Скрит баланс",
|
||||||
|
"hide": "Скрий",
|
||||||
"hide_details": "Скриване на подробностите",
|
"hide_details": "Скриване на подробностите",
|
||||||
"high_contrast_theme": "Тема с висок контраст",
|
"high_contrast_theme": "Тема с висок контраст",
|
||||||
"home_screen_settings": "Настройки на началния екран",
|
"home_screen_settings": "Настройки на началния екран",
|
||||||
|
@ -500,6 +504,7 @@
|
||||||
"pre_seed_title": "ВАЖНО",
|
"pre_seed_title": "ВАЖНО",
|
||||||
"prepaid_cards": "Предплатени карти",
|
"prepaid_cards": "Предплатени карти",
|
||||||
"prevent_screenshots": "Предотвратете екранни снимки и запис на екрана",
|
"prevent_screenshots": "Предотвратете екранни снимки и запис на екрана",
|
||||||
|
"primary_address": "Първичен адрес",
|
||||||
"privacy": "Поверителност",
|
"privacy": "Поверителност",
|
||||||
"privacy_policy": "Политика за поверителността",
|
"privacy_policy": "Политика за поверителността",
|
||||||
"privacy_settings": "Настройки за поверителност",
|
"privacy_settings": "Настройки за поверителност",
|
||||||
|
@ -696,6 +701,7 @@
|
||||||
"share": "Дял",
|
"share": "Дял",
|
||||||
"share_address": "Сподели адрес",
|
"share_address": "Сподели адрес",
|
||||||
"shared_seed_wallet_groups": "Споделени групи за портфейли за семена",
|
"shared_seed_wallet_groups": "Споделени групи за портфейли за семена",
|
||||||
|
"show": "Показване",
|
||||||
"show_details": "Показване на подробностите",
|
"show_details": "Показване на подробностите",
|
||||||
"show_keys": "Покажи seed/keys",
|
"show_keys": "Покажи seed/keys",
|
||||||
"show_market_place": "Покажи пазар",
|
"show_market_place": "Покажи пазар",
|
||||||
|
@ -942,6 +948,5 @@
|
||||||
"you_pay": "Вие плащате",
|
"you_pay": "Вие плащате",
|
||||||
"you_will_get": "Обръщане в",
|
"you_will_get": "Обръщане в",
|
||||||
"you_will_send": "Обръщане от",
|
"you_will_send": "Обръщане от",
|
||||||
"yy": "гг",
|
"yy": "гг"
|
||||||
"contact_name_exists": "Вече съществува контакт с това име. Моля, изберете друго име."
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "Odkaz na Clearnet",
|
"clearnet_link": "Odkaz na Clearnet",
|
||||||
"close": "zavřít",
|
"close": "zavřít",
|
||||||
"coin_control": "Volba mincí (nepovinné)",
|
"coin_control": "Volba mincí (nepovinné)",
|
||||||
"cold_or_recover_wallet": "Přidejte studenou peněženku nebo obnovte papírovou peněženku",
|
"cold_or_recover_wallet": "Přidejte peněženku pouze pro čtení z Cupcake nebo studené peněženky nebo obnovte papírovou peněženku",
|
||||||
"color_theme": "Barevný motiv",
|
"color_theme": "Barevný motiv",
|
||||||
"commit_transaction_amount_fee": "Odeslat transakci\nČástka: ${amount}\nPoplatek: ${fee}",
|
"commit_transaction_amount_fee": "Odeslat transakci\nČástka: ${amount}\nPoplatek: ${fee}",
|
||||||
"confirm": "Potvrdit",
|
"confirm": "Potvrdit",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "Kontakty",
|
"contact_list_contacts": "Kontakty",
|
||||||
"contact_list_wallets": "Moje peněženky",
|
"contact_list_wallets": "Moje peněženky",
|
||||||
"contact_name": "Jméno kontaktu",
|
"contact_name": "Jméno kontaktu",
|
||||||
|
"contact_name_exists": "Kontakt s tímto jménem již existuje. Vyberte prosím jiný název.",
|
||||||
"contact_support": "Kontaktovat podporu",
|
"contact_support": "Kontaktovat podporu",
|
||||||
"continue_text": "Pokračovat",
|
"continue_text": "Pokračovat",
|
||||||
"contract_warning": "Tato adresa smlouvy byla označena jako potenciálně podvodná. Zpracovejte prosím opatrně.",
|
"contract_warning": "Tato adresa smlouvy byla označena jako potenciálně podvodná. Zpracovejte prosím opatrně.",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "Vypršení a platnost",
|
"expiry_and_validity": "Vypršení a platnost",
|
||||||
"export_backup": "Exportovat zálohu",
|
"export_backup": "Exportovat zálohu",
|
||||||
"export_logs": "Vývozní protokoly",
|
"export_logs": "Vývozní protokoly",
|
||||||
|
"export_outputs": "Vývozní výstupy",
|
||||||
"extra_id": "Extra ID:",
|
"extra_id": "Extra ID:",
|
||||||
"extracted_address_content": "Prostředky budete posílat na\n${recipient_name}",
|
"extracted_address_content": "Prostředky budete posílat na\n${recipient_name}",
|
||||||
"failed_authentication": "Ověřování selhalo. ${state_error}",
|
"failed_authentication": "Ověřování selhalo. ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven od Cake Wallet",
|
"haven_app": "Haven od Cake Wallet",
|
||||||
"haven_app_wallet_text": "Úžasná peněženka pro Haven",
|
"haven_app_wallet_text": "Úžasná peněženka pro Haven",
|
||||||
"help": "pomoc",
|
"help": "pomoc",
|
||||||
|
"hidden_addresses": "Skryté adresy",
|
||||||
"hidden_balance": "Skrytý zůstatek",
|
"hidden_balance": "Skrytý zůstatek",
|
||||||
|
"hide": "Skrýt",
|
||||||
"hide_details": "Skrýt detaily",
|
"hide_details": "Skrýt detaily",
|
||||||
"high_contrast_theme": "Téma s vysokým kontrastem",
|
"high_contrast_theme": "Téma s vysokým kontrastem",
|
||||||
"home_screen_settings": "Nastavení domovské obrazovky",
|
"home_screen_settings": "Nastavení domovské obrazovky",
|
||||||
|
@ -500,6 +504,7 @@
|
||||||
"pre_seed_title": "DŮLEŽITÉ",
|
"pre_seed_title": "DŮLEŽITÉ",
|
||||||
"prepaid_cards": "Předplacené karty",
|
"prepaid_cards": "Předplacené karty",
|
||||||
"prevent_screenshots": "Zabránit vytváření snímků obrazovky a nahrávání obrazovky",
|
"prevent_screenshots": "Zabránit vytváření snímků obrazovky a nahrávání obrazovky",
|
||||||
|
"primary_address": "Primární adresa",
|
||||||
"privacy": "Soukromí",
|
"privacy": "Soukromí",
|
||||||
"privacy_policy": "Zásady ochrany soukromí",
|
"privacy_policy": "Zásady ochrany soukromí",
|
||||||
"privacy_settings": "Nastavení soukromí",
|
"privacy_settings": "Nastavení soukromí",
|
||||||
|
@ -696,6 +701,7 @@
|
||||||
"share": "Podíl",
|
"share": "Podíl",
|
||||||
"share_address": "Sdílet adresu",
|
"share_address": "Sdílet adresu",
|
||||||
"shared_seed_wallet_groups": "Skupiny sdílených semen",
|
"shared_seed_wallet_groups": "Skupiny sdílených semen",
|
||||||
|
"show": "Show",
|
||||||
"show_details": "Zobrazit detaily",
|
"show_details": "Zobrazit detaily",
|
||||||
"show_keys": "Zobrazit seed/klíče",
|
"show_keys": "Zobrazit seed/klíče",
|
||||||
"show_market_place": "Zobrazit trh",
|
"show_market_place": "Zobrazit trh",
|
||||||
|
@ -942,6 +948,5 @@
|
||||||
"you_pay": "Zaplatíte",
|
"you_pay": "Zaplatíte",
|
||||||
"you_will_get": "Směnit na",
|
"you_will_get": "Směnit na",
|
||||||
"you_will_send": "Směnit z",
|
"you_will_send": "Směnit z",
|
||||||
"yy": "YY",
|
"yy": "YY"
|
||||||
"contact_name_exists": "Kontakt s tímto jménem již existuje. Vyberte prosím jiný název."
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "Clearnet-Link",
|
"clearnet_link": "Clearnet-Link",
|
||||||
"close": "Schließen",
|
"close": "Schließen",
|
||||||
"coin_control": "Coin Control (optional)",
|
"coin_control": "Coin Control (optional)",
|
||||||
"cold_or_recover_wallet": "Fügen Sie eine Cold Wallet hinzu oder stellen Sie eine Paper Wallet wieder her",
|
"cold_or_recover_wallet": "Fügen Sie eine schreibgeschützte Brieftasche von Cupcake oder eine kalte Brieftasche hinzu oder erholen Sie sich eine Brieftasche",
|
||||||
"color_theme": "Farbthema",
|
"color_theme": "Farbthema",
|
||||||
"commit_transaction_amount_fee": "Transaktion absenden\nBetrag: ${amount}\nGebühr: ${fee}",
|
"commit_transaction_amount_fee": "Transaktion absenden\nBetrag: ${amount}\nGebühr: ${fee}",
|
||||||
"confirm": "Bestätigen",
|
"confirm": "Bestätigen",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "Kontakte",
|
"contact_list_contacts": "Kontakte",
|
||||||
"contact_list_wallets": "Meine Wallets",
|
"contact_list_wallets": "Meine Wallets",
|
||||||
"contact_name": "Name des Kontakts",
|
"contact_name": "Name des Kontakts",
|
||||||
|
"contact_name_exists": "Ein Kontakt mit diesem Namen besteht bereits. Bitte wählen Sie einen anderen Namen.",
|
||||||
"contact_support": "Support kontaktieren",
|
"contact_support": "Support kontaktieren",
|
||||||
"continue_text": "Weiter",
|
"continue_text": "Weiter",
|
||||||
"contract_warning": "Diese Vertragsadresse wurde als potenziell betrügerisch gekennzeichnet. Bitte verarbeiten Sie mit Vorsicht.",
|
"contract_warning": "Diese Vertragsadresse wurde als potenziell betrügerisch gekennzeichnet. Bitte verarbeiten Sie mit Vorsicht.",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "Ablauf und Gültigkeit",
|
"expiry_and_validity": "Ablauf und Gültigkeit",
|
||||||
"export_backup": "Sicherung exportieren",
|
"export_backup": "Sicherung exportieren",
|
||||||
"export_logs": "Exportprotokolle",
|
"export_logs": "Exportprotokolle",
|
||||||
|
"export_outputs": "Exportausgaben",
|
||||||
"extra_id": "Extra ID:",
|
"extra_id": "Extra ID:",
|
||||||
"extracted_address_content": "Sie senden Geld an\n${recipient_name}",
|
"extracted_address_content": "Sie senden Geld an\n${recipient_name}",
|
||||||
"failed_authentication": "Authentifizierung fehlgeschlagen. ${state_error}",
|
"failed_authentication": "Authentifizierung fehlgeschlagen. ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven von Cake Wallet",
|
"haven_app": "Haven von Cake Wallet",
|
||||||
"haven_app_wallet_text": "Eine großartige Wallet für Haven",
|
"haven_app_wallet_text": "Eine großartige Wallet für Haven",
|
||||||
"help": "hilfe",
|
"help": "hilfe",
|
||||||
|
"hidden_addresses": "Versteckte Adressen",
|
||||||
"hidden_balance": "Verstecktes Guthaben",
|
"hidden_balance": "Verstecktes Guthaben",
|
||||||
|
"hide": "Verstecken",
|
||||||
"hide_details": "Details ausblenden",
|
"hide_details": "Details ausblenden",
|
||||||
"high_contrast_theme": "Kontrastreiches Thema",
|
"high_contrast_theme": "Kontrastreiches Thema",
|
||||||
"home_screen_settings": "Einstellungen für den Startbildschirm",
|
"home_screen_settings": "Einstellungen für den Startbildschirm",
|
||||||
|
@ -501,6 +505,7 @@
|
||||||
"pre_seed_title": "WICHTIG",
|
"pre_seed_title": "WICHTIG",
|
||||||
"prepaid_cards": "Karten mit Guthaben",
|
"prepaid_cards": "Karten mit Guthaben",
|
||||||
"prevent_screenshots": "Verhindern Sie Screenshots und Bildschirmaufzeichnungen",
|
"prevent_screenshots": "Verhindern Sie Screenshots und Bildschirmaufzeichnungen",
|
||||||
|
"primary_address": "Primäradresse",
|
||||||
"privacy": "Datenschutz",
|
"privacy": "Datenschutz",
|
||||||
"privacy_policy": "Datenschutzrichtlinie",
|
"privacy_policy": "Datenschutzrichtlinie",
|
||||||
"privacy_settings": "Datenschutzeinstellungen",
|
"privacy_settings": "Datenschutzeinstellungen",
|
||||||
|
@ -697,6 +702,7 @@
|
||||||
"share": "Teilen",
|
"share": "Teilen",
|
||||||
"share_address": "Adresse teilen ",
|
"share_address": "Adresse teilen ",
|
||||||
"shared_seed_wallet_groups": "Gemeinsame Walletsseed Gruppen",
|
"shared_seed_wallet_groups": "Gemeinsame Walletsseed Gruppen",
|
||||||
|
"show": "Zeigen",
|
||||||
"show_details": "Details anzeigen",
|
"show_details": "Details anzeigen",
|
||||||
"show_keys": "Seed/Schlüssel anzeigen",
|
"show_keys": "Seed/Schlüssel anzeigen",
|
||||||
"show_market_place": "Marktplatz anzeigen",
|
"show_market_place": "Marktplatz anzeigen",
|
||||||
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "Clearnet link",
|
"clearnet_link": "Clearnet link",
|
||||||
"close": "Close",
|
"close": "Close",
|
||||||
"coin_control": "Coin control (optional)",
|
"coin_control": "Coin control (optional)",
|
||||||
"cold_or_recover_wallet": "Add a cold wallet or recover a paper wallet",
|
"cold_or_recover_wallet": "Add a read-only wallet from Cupcake or a cold wallet or recover a paper wallet",
|
||||||
"color_theme": "Color theme",
|
"color_theme": "Color theme",
|
||||||
"commit_transaction_amount_fee": "Commit transaction\nAmount: ${amount}\nFee: ${fee}",
|
"commit_transaction_amount_fee": "Commit transaction\nAmount: ${amount}\nFee: ${fee}",
|
||||||
"confirm": "Confirm",
|
"confirm": "Confirm",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "Contacts",
|
"contact_list_contacts": "Contacts",
|
||||||
"contact_list_wallets": "My Wallets",
|
"contact_list_wallets": "My Wallets",
|
||||||
"contact_name": "Contact Name",
|
"contact_name": "Contact Name",
|
||||||
|
"contact_name_exists": "A contact with that name already exists. Please choose a different name.",
|
||||||
"contact_support": "Contact Support",
|
"contact_support": "Contact Support",
|
||||||
"continue_text": "Continue",
|
"continue_text": "Continue",
|
||||||
"contract_warning": "This contract address has been flagged as potentially fraudulent. Please process with caution.",
|
"contract_warning": "This contract address has been flagged as potentially fraudulent. Please process with caution.",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "Expiry and Validity",
|
"expiry_and_validity": "Expiry and Validity",
|
||||||
"export_backup": "Export backup",
|
"export_backup": "Export backup",
|
||||||
"export_logs": "Export logs",
|
"export_logs": "Export logs",
|
||||||
|
"export_outputs": "Export outputs",
|
||||||
"extra_id": "Extra ID:",
|
"extra_id": "Extra ID:",
|
||||||
"extracted_address_content": "You will be sending funds to\n${recipient_name}",
|
"extracted_address_content": "You will be sending funds to\n${recipient_name}",
|
||||||
"failed_authentication": "Failed authentication. ${state_error}",
|
"failed_authentication": "Failed authentication. ${state_error}",
|
||||||
|
@ -502,6 +504,7 @@
|
||||||
"pre_seed_title": "IMPORTANT",
|
"pre_seed_title": "IMPORTANT",
|
||||||
"prepaid_cards": "Prepaid Cards",
|
"prepaid_cards": "Prepaid Cards",
|
||||||
"prevent_screenshots": "Prevent screenshots and screen recording",
|
"prevent_screenshots": "Prevent screenshots and screen recording",
|
||||||
|
"primary_address": "Primary Address",
|
||||||
"privacy": "Privacy",
|
"privacy": "Privacy",
|
||||||
"privacy_policy": "Privacy Policy",
|
"privacy_policy": "Privacy Policy",
|
||||||
"privacy_settings": "Privacy settings",
|
"privacy_settings": "Privacy settings",
|
||||||
|
@ -945,6 +948,5 @@
|
||||||
"you_pay": "You Pay",
|
"you_pay": "You Pay",
|
||||||
"you_will_get": "Convert to",
|
"you_will_get": "Convert to",
|
||||||
"you_will_send": "Convert from",
|
"you_will_send": "Convert from",
|
||||||
"yy": "YY",
|
"yy": "YY"
|
||||||
"contact_name_exists": "A contact with that name already exists. Please choose a different name."
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "enlace Clearnet",
|
"clearnet_link": "enlace Clearnet",
|
||||||
"close": "Cerca",
|
"close": "Cerca",
|
||||||
"coin_control": "Control de monedas (opcional)",
|
"coin_control": "Control de monedas (opcional)",
|
||||||
"cold_or_recover_wallet": "Agrega una billetera fría o recupera una billetera de papel",
|
"cold_or_recover_wallet": "Agregue una billetera de solo lectura de Cupcake o una billetera en frío o recupere una billetera de papel",
|
||||||
"color_theme": "Tema de color",
|
"color_theme": "Tema de color",
|
||||||
"commit_transaction_amount_fee": "Confirmar transacción\nCantidad: ${amount}\nCuota: ${fee}",
|
"commit_transaction_amount_fee": "Confirmar transacción\nCantidad: ${amount}\nCuota: ${fee}",
|
||||||
"confirm": "Confirmar",
|
"confirm": "Confirmar",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "Contactos",
|
"contact_list_contacts": "Contactos",
|
||||||
"contact_list_wallets": "Mis billeteras",
|
"contact_list_wallets": "Mis billeteras",
|
||||||
"contact_name": "Nombre de contacto",
|
"contact_name": "Nombre de contacto",
|
||||||
|
"contact_name_exists": "Ya existe un contacto con ese nombre. Elija un nombre diferente.",
|
||||||
"contact_support": "Contactar con Soporte",
|
"contact_support": "Contactar con Soporte",
|
||||||
"continue_text": "Continuar",
|
"continue_text": "Continuar",
|
||||||
"contract_warning": "Esta dirección de contrato ha sido marcada como potencialmente fraudulenta. Por favor, procese con precaución.",
|
"contract_warning": "Esta dirección de contrato ha sido marcada como potencialmente fraudulenta. Por favor, procese con precaución.",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "Vencimiento y validez",
|
"expiry_and_validity": "Vencimiento y validez",
|
||||||
"export_backup": "Exportar copia de seguridad",
|
"export_backup": "Exportar copia de seguridad",
|
||||||
"export_logs": "Registros de exportación",
|
"export_logs": "Registros de exportación",
|
||||||
|
"export_outputs": "Exportaciones de exportación",
|
||||||
"extra_id": "ID adicional:",
|
"extra_id": "ID adicional:",
|
||||||
"extracted_address_content": "Enviará fondos a\n${recipient_name}",
|
"extracted_address_content": "Enviará fondos a\n${recipient_name}",
|
||||||
"failed_authentication": "Autenticación fallida. ${state_error}",
|
"failed_authentication": "Autenticación fallida. ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven by Cake Wallet",
|
"haven_app": "Haven by Cake Wallet",
|
||||||
"haven_app_wallet_text": "Increíble billetera para Haven",
|
"haven_app_wallet_text": "Increíble billetera para Haven",
|
||||||
"help": "ayuda",
|
"help": "ayuda",
|
||||||
|
"hidden_addresses": "Direcciones ocultas",
|
||||||
"hidden_balance": "Balance oculto",
|
"hidden_balance": "Balance oculto",
|
||||||
|
"hide": "Esconder",
|
||||||
"hide_details": "Ocultar detalles",
|
"hide_details": "Ocultar detalles",
|
||||||
"high_contrast_theme": "Tema de alto contraste",
|
"high_contrast_theme": "Tema de alto contraste",
|
||||||
"home_screen_settings": "Configuración de la pantalla de inicio",
|
"home_screen_settings": "Configuración de la pantalla de inicio",
|
||||||
|
@ -501,6 +505,7 @@
|
||||||
"pre_seed_title": "IMPORTANTE",
|
"pre_seed_title": "IMPORTANTE",
|
||||||
"prepaid_cards": "Tajetas prepagadas",
|
"prepaid_cards": "Tajetas prepagadas",
|
||||||
"prevent_screenshots": "Evitar capturas de pantalla y grabación de pantalla",
|
"prevent_screenshots": "Evitar capturas de pantalla y grabación de pantalla",
|
||||||
|
"primary_address": "Dirección principal",
|
||||||
"privacy": "Privacidad",
|
"privacy": "Privacidad",
|
||||||
"privacy_policy": "Política de privacidad",
|
"privacy_policy": "Política de privacidad",
|
||||||
"privacy_settings": "Configuración de privacidad",
|
"privacy_settings": "Configuración de privacidad",
|
||||||
|
@ -697,6 +702,7 @@
|
||||||
"share": "Compartir",
|
"share": "Compartir",
|
||||||
"share_address": "Compartir dirección",
|
"share_address": "Compartir dirección",
|
||||||
"shared_seed_wallet_groups": "Grupos de billetera de semillas compartidas",
|
"shared_seed_wallet_groups": "Grupos de billetera de semillas compartidas",
|
||||||
|
"show": "Espectáculo",
|
||||||
"show_details": "Mostrar detalles",
|
"show_details": "Mostrar detalles",
|
||||||
"show_keys": "Mostrar semilla/claves",
|
"show_keys": "Mostrar semilla/claves",
|
||||||
"show_market_place": "Mostrar mercado",
|
"show_market_place": "Mostrar mercado",
|
||||||
|
@ -943,6 +949,5 @@
|
||||||
"you_pay": "Tú pagas",
|
"you_pay": "Tú pagas",
|
||||||
"you_will_get": "Convertir a",
|
"you_will_get": "Convertir a",
|
||||||
"you_will_send": "Convertir de",
|
"you_will_send": "Convertir de",
|
||||||
"yy": "YY",
|
"yy": "YY"
|
||||||
"contact_name_exists": "Ya existe un contacto con ese nombre. Elija un nombre diferente."
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "Lien Clearnet",
|
"clearnet_link": "Lien Clearnet",
|
||||||
"close": "Fermer",
|
"close": "Fermer",
|
||||||
"coin_control": "Contrôle optionnel des pièces (coins)",
|
"coin_control": "Contrôle optionnel des pièces (coins)",
|
||||||
"cold_or_recover_wallet": "Ajoutez un portefeuille froid (cold wallet) ou récupérez un portefeuille papier (paper wallet)",
|
"cold_or_recover_wallet": "Ajoutez un portefeuille en lecture seule de Cupcake ou d'un portefeuille froid ou récupérez un portefeuille en papier",
|
||||||
"color_theme": "Thème",
|
"color_theme": "Thème",
|
||||||
"commit_transaction_amount_fee": "Valider la transaction\nMontant : ${amount}\nFrais : ${fee}",
|
"commit_transaction_amount_fee": "Valider la transaction\nMontant : ${amount}\nFrais : ${fee}",
|
||||||
"confirm": "Confirmer",
|
"confirm": "Confirmer",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "Contacts",
|
"contact_list_contacts": "Contacts",
|
||||||
"contact_list_wallets": "Mes portefeuilles (wallets)",
|
"contact_list_wallets": "Mes portefeuilles (wallets)",
|
||||||
"contact_name": "Nom de Contact",
|
"contact_name": "Nom de Contact",
|
||||||
|
"contact_name_exists": "Un contact portant ce nom existe déjà. Veuillez choisir un autre nom.",
|
||||||
"contact_support": "Contacter l'assistance",
|
"contact_support": "Contacter l'assistance",
|
||||||
"continue_text": "Continuer",
|
"continue_text": "Continuer",
|
||||||
"contract_warning": "Cette adresse contractuelle a été signalée comme potentiellement frauduleuse. Veuillez traiter avec prudence.",
|
"contract_warning": "Cette adresse contractuelle a été signalée comme potentiellement frauduleuse. Veuillez traiter avec prudence.",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "Expiration et validité",
|
"expiry_and_validity": "Expiration et validité",
|
||||||
"export_backup": "Exporter la sauvegarde",
|
"export_backup": "Exporter la sauvegarde",
|
||||||
"export_logs": "Journaux d'exportation",
|
"export_logs": "Journaux d'exportation",
|
||||||
|
"export_outputs": "Exportation des sorties",
|
||||||
"extra_id": "ID supplémentaire :",
|
"extra_id": "ID supplémentaire :",
|
||||||
"extracted_address_content": "Vous allez envoyer des fonds à\n${recipient_name}",
|
"extracted_address_content": "Vous allez envoyer des fonds à\n${recipient_name}",
|
||||||
"failed_authentication": "Échec d'authentification. ${state_error}",
|
"failed_authentication": "Échec d'authentification. ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven par Cake Wallet",
|
"haven_app": "Haven par Cake Wallet",
|
||||||
"haven_app_wallet_text": "Super portefeuille (wallet) pour Haven",
|
"haven_app_wallet_text": "Super portefeuille (wallet) pour Haven",
|
||||||
"help": "aide",
|
"help": "aide",
|
||||||
|
"hidden_addresses": "Adresses cachées",
|
||||||
"hidden_balance": "Solde Caché",
|
"hidden_balance": "Solde Caché",
|
||||||
|
"hide": "Cacher",
|
||||||
"hide_details": "Masquer les détails",
|
"hide_details": "Masquer les détails",
|
||||||
"high_contrast_theme": "Thème à contraste élevé",
|
"high_contrast_theme": "Thème à contraste élevé",
|
||||||
"home_screen_settings": "Paramètres de l'écran d'accueil",
|
"home_screen_settings": "Paramètres de l'écran d'accueil",
|
||||||
|
@ -500,6 +504,7 @@
|
||||||
"pre_seed_title": "IMPORTANT",
|
"pre_seed_title": "IMPORTANT",
|
||||||
"prepaid_cards": "Cartes prépayées",
|
"prepaid_cards": "Cartes prépayées",
|
||||||
"prevent_screenshots": "Empêcher les captures d'écran et l'enregistrement d'écran",
|
"prevent_screenshots": "Empêcher les captures d'écran et l'enregistrement d'écran",
|
||||||
|
"primary_address": "Adresse primaire",
|
||||||
"privacy": "Confidentialité",
|
"privacy": "Confidentialité",
|
||||||
"privacy_policy": "Politique de confidentialité",
|
"privacy_policy": "Politique de confidentialité",
|
||||||
"privacy_settings": "Paramètres de confidentialité",
|
"privacy_settings": "Paramètres de confidentialité",
|
||||||
|
@ -696,6 +701,7 @@
|
||||||
"share": "Partager",
|
"share": "Partager",
|
||||||
"share_address": "Partager l'adresse",
|
"share_address": "Partager l'adresse",
|
||||||
"shared_seed_wallet_groups": "Groupes de portefeuilles partagés",
|
"shared_seed_wallet_groups": "Groupes de portefeuilles partagés",
|
||||||
|
"show": "Montrer",
|
||||||
"show_details": "Afficher les détails",
|
"show_details": "Afficher les détails",
|
||||||
"show_keys": "Visualiser la phrase secrète (seed) et les clefs",
|
"show_keys": "Visualiser la phrase secrète (seed) et les clefs",
|
||||||
"show_market_place": "Afficher la place de marché",
|
"show_market_place": "Afficher la place de marché",
|
||||||
|
@ -942,6 +948,5 @@
|
||||||
"you_pay": "Vous payez",
|
"you_pay": "Vous payez",
|
||||||
"you_will_get": "Convertir vers",
|
"you_will_get": "Convertir vers",
|
||||||
"you_will_send": "Convertir depuis",
|
"you_will_send": "Convertir depuis",
|
||||||
"yy": "AA",
|
"yy": "AA"
|
||||||
"contact_name_exists": "Un contact portant ce nom existe déjà. Veuillez choisir un autre nom."
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "Lambar makomar kwayoyi",
|
"clearnet_link": "Lambar makomar kwayoyi",
|
||||||
"close": "Rufa",
|
"close": "Rufa",
|
||||||
"coin_control": "Sarrafa tsabar kuɗi (na zaɓi)",
|
"coin_control": "Sarrafa tsabar kuɗi (na zaɓi)",
|
||||||
"cold_or_recover_wallet": "Samun kashi na baya ko samun kashi na kasa",
|
"cold_or_recover_wallet": "Aara wani walat mai karanta-kawai Cupcake ko walat ɗin mai sanyi ko murmurewa takarda takarda",
|
||||||
"color_theme": "Jigon launi",
|
"color_theme": "Jigon launi",
|
||||||
"commit_transaction_amount_fee": "Aikata ciniki\nAdadi: ${amount}\nKuda: ${fee}",
|
"commit_transaction_amount_fee": "Aikata ciniki\nAdadi: ${amount}\nKuda: ${fee}",
|
||||||
"confirm": "Tabbatar",
|
"confirm": "Tabbatar",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "Lambobin sadarwa",
|
"contact_list_contacts": "Lambobin sadarwa",
|
||||||
"contact_list_wallets": "Wallets dina",
|
"contact_list_wallets": "Wallets dina",
|
||||||
"contact_name": "Sunan Tuntuɓi",
|
"contact_name": "Sunan Tuntuɓi",
|
||||||
|
"contact_name_exists": "An riga an sami lamba tare da wannan sunan. Da fatan za a zaɓi suna daban.",
|
||||||
"contact_support": "Tuntuɓi Support",
|
"contact_support": "Tuntuɓi Support",
|
||||||
"continue_text": "Ci gaba",
|
"continue_text": "Ci gaba",
|
||||||
"contract_warning": "An kafa wannan adireshin kwantaragin kwangilar yayin da yuwuwar zamba. Da fatan za a aiwatar da taka tsantsan.",
|
"contract_warning": "An kafa wannan adireshin kwantaragin kwangilar yayin da yuwuwar zamba. Da fatan za a aiwatar da taka tsantsan.",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "Karewa da inganci",
|
"expiry_and_validity": "Karewa da inganci",
|
||||||
"export_backup": "Ajiyayyen fitarwa",
|
"export_backup": "Ajiyayyen fitarwa",
|
||||||
"export_logs": "Injin fitarwa",
|
"export_logs": "Injin fitarwa",
|
||||||
|
"export_outputs": "Fitarwar fitarwa",
|
||||||
"extra_id": "Karin ID:",
|
"extra_id": "Karin ID:",
|
||||||
"extracted_address_content": "Za ku aika da kudade zuwa\n${recipient_name}",
|
"extracted_address_content": "Za ku aika da kudade zuwa\n${recipient_name}",
|
||||||
"failed_authentication": "Binne wajen shiga. ${state_error}",
|
"failed_authentication": "Binne wajen shiga. ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven da Cake Wallet",
|
"haven_app": "Haven da Cake Wallet",
|
||||||
"haven_app_wallet_text": "Aikace-aikacen e-wallet ga Haven",
|
"haven_app_wallet_text": "Aikace-aikacen e-wallet ga Haven",
|
||||||
"help": "taimako",
|
"help": "taimako",
|
||||||
|
"hidden_addresses": "Adireshin ɓoye",
|
||||||
"hidden_balance": "BOYE KUDI",
|
"hidden_balance": "BOYE KUDI",
|
||||||
|
"hide": "Ɓoye",
|
||||||
"hide_details": "Ɓoye cikakkun bayanai",
|
"hide_details": "Ɓoye cikakkun bayanai",
|
||||||
"high_contrast_theme": "Babban Jigon Kwatance",
|
"high_contrast_theme": "Babban Jigon Kwatance",
|
||||||
"home_screen_settings": "Saitunan allo na gida",
|
"home_screen_settings": "Saitunan allo na gida",
|
||||||
|
@ -502,6 +506,7 @@
|
||||||
"pre_seed_title": "MUHIMMANCI",
|
"pre_seed_title": "MUHIMMANCI",
|
||||||
"prepaid_cards": "Katunan shirye-shirye",
|
"prepaid_cards": "Katunan shirye-shirye",
|
||||||
"prevent_screenshots": "Fada lambobi da jarrabobi na kayan lambobi",
|
"prevent_screenshots": "Fada lambobi da jarrabobi na kayan lambobi",
|
||||||
|
"primary_address": "Adireshin farko",
|
||||||
"privacy": "Keɓantawa",
|
"privacy": "Keɓantawa",
|
||||||
"privacy_policy": "takardar kebantawa",
|
"privacy_policy": "takardar kebantawa",
|
||||||
"privacy_settings": "Saitunan sirri",
|
"privacy_settings": "Saitunan sirri",
|
||||||
|
@ -698,6 +703,7 @@
|
||||||
"share": "Raba",
|
"share": "Raba",
|
||||||
"share_address": "Raba adireshin",
|
"share_address": "Raba adireshin",
|
||||||
"shared_seed_wallet_groups": "Raba ƙungiya walat",
|
"shared_seed_wallet_groups": "Raba ƙungiya walat",
|
||||||
|
"show": "Nuna",
|
||||||
"show_details": "Nuna Cikakkun bayanai",
|
"show_details": "Nuna Cikakkun bayanai",
|
||||||
"show_keys": "Nuna iri/maɓallai",
|
"show_keys": "Nuna iri/maɓallai",
|
||||||
"show_market_place": "Nuna dan kasuwa",
|
"show_market_place": "Nuna dan kasuwa",
|
||||||
|
@ -944,6 +950,5 @@
|
||||||
"you_pay": "Ka Bayar",
|
"you_pay": "Ka Bayar",
|
||||||
"you_will_get": "Maida zuwa",
|
"you_will_get": "Maida zuwa",
|
||||||
"you_will_send": "Maida daga",
|
"you_will_send": "Maida daga",
|
||||||
"yy": "YY",
|
"yy": "YY"
|
||||||
"contact_name_exists": "An riga an sami lamba tare da wannan sunan. Da fatan za a zaɓi suna daban."
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "क्लियरनेट लिंक",
|
"clearnet_link": "क्लियरनेट लिंक",
|
||||||
"close": "बंद करना",
|
"close": "बंद करना",
|
||||||
"coin_control": "सिक्का नियंत्रण (वैकल्पिक)",
|
"coin_control": "सिक्का नियंत्रण (वैकल्पिक)",
|
||||||
"cold_or_recover_wallet": "कोल्ड वॉलेट जोड़ें या पेपर वॉलेट पुनर्प्राप्त करें",
|
"cold_or_recover_wallet": "Cupcake या एक कोल्ड वॉलेट से एक रीड-ओनली वॉलेट जोड़ें या एक पेपर वॉलेट को पुनर्प्राप्त करें",
|
||||||
"color_theme": "रंग विषय",
|
"color_theme": "रंग विषय",
|
||||||
"commit_transaction_amount_fee": "लेन-देन करें\nरकम: ${amount}\nशुल्क: ${fee}",
|
"commit_transaction_amount_fee": "लेन-देन करें\nरकम: ${amount}\nशुल्क: ${fee}",
|
||||||
"confirm": "की पुष्टि करें",
|
"confirm": "की पुष्टि करें",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "संपर्क",
|
"contact_list_contacts": "संपर्क",
|
||||||
"contact_list_wallets": "मेरा बटुआ",
|
"contact_list_wallets": "मेरा बटुआ",
|
||||||
"contact_name": "संपर्क नाम",
|
"contact_name": "संपर्क नाम",
|
||||||
|
"contact_name_exists": "उस नाम का एक संपर्क पहले से मौजूद है. कृपया कोई भिन्न नाम चुनें.",
|
||||||
"contact_support": "सहायता से संपर्क करें",
|
"contact_support": "सहायता से संपर्क करें",
|
||||||
"continue_text": "जारी रहना",
|
"continue_text": "जारी रहना",
|
||||||
"contract_warning": "इस अनुबंध के पते को संभावित रूप से धोखाधड़ी के रूप में चिह्नित किया गया है। कृपया सावधानी के साथ प्रक्रिया करें।",
|
"contract_warning": "इस अनुबंध के पते को संभावित रूप से धोखाधड़ी के रूप में चिह्नित किया गया है। कृपया सावधानी के साथ प्रक्रिया करें।",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "समाप्ति और वैधता",
|
"expiry_and_validity": "समाप्ति और वैधता",
|
||||||
"export_backup": "निर्यात बैकअप",
|
"export_backup": "निर्यात बैकअप",
|
||||||
"export_logs": "निर्यात लॉग",
|
"export_logs": "निर्यात लॉग",
|
||||||
|
"export_outputs": "निर्यात आउटपुट",
|
||||||
"extra_id": "अतिरिक्त आईडी:",
|
"extra_id": "अतिरिक्त आईडी:",
|
||||||
"extracted_address_content": "आपको धनराशि भेजी जाएगी\n${recipient_name}",
|
"extracted_address_content": "आपको धनराशि भेजी जाएगी\n${recipient_name}",
|
||||||
"failed_authentication": "प्रमाणीकरण विफल. ${state_error}",
|
"failed_authentication": "प्रमाणीकरण विफल. ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven by Cake Wallet",
|
"haven_app": "Haven by Cake Wallet",
|
||||||
"haven_app_wallet_text": "Awesome wallet for Haven",
|
"haven_app_wallet_text": "Awesome wallet for Haven",
|
||||||
"help": "मदद करना",
|
"help": "मदद करना",
|
||||||
|
"hidden_addresses": "छिपे हुए पते",
|
||||||
"hidden_balance": "छिपा हुआ संतुलन",
|
"hidden_balance": "छिपा हुआ संतुलन",
|
||||||
|
"hide": "छिपाना",
|
||||||
"hide_details": "विवरण छुपाएं",
|
"hide_details": "विवरण छुपाएं",
|
||||||
"high_contrast_theme": "उच्च कंट्रास्ट थीम",
|
"high_contrast_theme": "उच्च कंट्रास्ट थीम",
|
||||||
"home_screen_settings": "होम स्क्रीन सेटिंग्स",
|
"home_screen_settings": "होम स्क्रीन सेटिंग्स",
|
||||||
|
@ -501,6 +505,7 @@
|
||||||
"pre_seed_title": "महत्वपूर्ण",
|
"pre_seed_title": "महत्वपूर्ण",
|
||||||
"prepaid_cards": "पूर्वदत्त कार्ड",
|
"prepaid_cards": "पूर्वदत्त कार्ड",
|
||||||
"prevent_screenshots": "स्क्रीनशॉट और स्क्रीन रिकॉर्डिंग रोकें",
|
"prevent_screenshots": "स्क्रीनशॉट और स्क्रीन रिकॉर्डिंग रोकें",
|
||||||
|
"primary_address": "प्राथमिक पता",
|
||||||
"privacy": "गोपनीयता",
|
"privacy": "गोपनीयता",
|
||||||
"privacy_policy": "गोपनीयता नीति",
|
"privacy_policy": "गोपनीयता नीति",
|
||||||
"privacy_settings": "गोपनीयता सेटिंग्स",
|
"privacy_settings": "गोपनीयता सेटिंग्स",
|
||||||
|
@ -698,6 +703,7 @@
|
||||||
"share": "शेयर करना",
|
"share": "शेयर करना",
|
||||||
"share_address": "पता साझा करें",
|
"share_address": "पता साझा करें",
|
||||||
"shared_seed_wallet_groups": "साझा बीज बटुए समूह",
|
"shared_seed_wallet_groups": "साझा बीज बटुए समूह",
|
||||||
|
"show": "दिखाओ",
|
||||||
"show_details": "विवरण दिखाएं",
|
"show_details": "विवरण दिखाएं",
|
||||||
"show_keys": "बीज / कुंजियाँ दिखाएँ",
|
"show_keys": "बीज / कुंजियाँ दिखाएँ",
|
||||||
"show_market_place": "बाज़ार दिखाएँ",
|
"show_market_place": "बाज़ार दिखाएँ",
|
||||||
|
@ -944,6 +950,5 @@
|
||||||
"you_pay": "आप भुगतान करते हैं",
|
"you_pay": "आप भुगतान करते हैं",
|
||||||
"you_will_get": "में बदलें",
|
"you_will_get": "में बदलें",
|
||||||
"you_will_send": "से रूपांतरित करें",
|
"you_will_send": "से रूपांतरित करें",
|
||||||
"yy": "वाईवाई",
|
"yy": "वाईवाई"
|
||||||
"contact_name_exists": "उस नाम का एक संपर्क पहले से मौजूद है. कृपया कोई भिन्न नाम चुनें."
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "Clearnet veza",
|
"clearnet_link": "Clearnet veza",
|
||||||
"close": "Zatvoriti",
|
"close": "Zatvoriti",
|
||||||
"coin_control": "Kontrola novca (nije obavezno)",
|
"coin_control": "Kontrola novca (nije obavezno)",
|
||||||
"cold_or_recover_wallet": "Dodajte hladni novčanik ili povratite papirnati novčanik",
|
"cold_or_recover_wallet": "Dodajte novčanik samo za čitanje od Cupcake ili hladnog novčanika ili oporavite papirni novčanik",
|
||||||
"color_theme": "Shema boja",
|
"color_theme": "Shema boja",
|
||||||
"commit_transaction_amount_fee": "Izvrši transakciju \nAmount: ${amount}\nFee: ${fee}",
|
"commit_transaction_amount_fee": "Izvrši transakciju \nAmount: ${amount}\nFee: ${fee}",
|
||||||
"confirm": "Potvrdi",
|
"confirm": "Potvrdi",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "Kontakti",
|
"contact_list_contacts": "Kontakti",
|
||||||
"contact_list_wallets": "Moji novčanici",
|
"contact_list_wallets": "Moji novčanici",
|
||||||
"contact_name": "Ime kontakta",
|
"contact_name": "Ime kontakta",
|
||||||
|
"contact_name_exists": "Kontakt s tim imenom već postoji. Odaberite drugo ime.",
|
||||||
"contact_support": "Kontaktirajte podršku",
|
"contact_support": "Kontaktirajte podršku",
|
||||||
"continue_text": "Nastavak",
|
"continue_text": "Nastavak",
|
||||||
"contract_warning": "Ova adresa ugovora označena je kao potencijalno lažna. Molimo obradite s oprezom.",
|
"contract_warning": "Ova adresa ugovora označena je kao potencijalno lažna. Molimo obradite s oprezom.",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "Istek i valjanost",
|
"expiry_and_validity": "Istek i valjanost",
|
||||||
"export_backup": "Izvezi sigurnosnu kopiju",
|
"export_backup": "Izvezi sigurnosnu kopiju",
|
||||||
"export_logs": "Izvozni trupci",
|
"export_logs": "Izvozni trupci",
|
||||||
|
"export_outputs": "Izvoz izlaza",
|
||||||
"extra_id": "Dodatni ID:",
|
"extra_id": "Dodatni ID:",
|
||||||
"extracted_address_content": "Poslat ćete sredstva primatelju\n${recipient_name}",
|
"extracted_address_content": "Poslat ćete sredstva primatelju\n${recipient_name}",
|
||||||
"failed_authentication": "Autentifikacija neuspješna. ${state_error}",
|
"failed_authentication": "Autentifikacija neuspješna. ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven by Cake Wallet",
|
"haven_app": "Haven by Cake Wallet",
|
||||||
"haven_app_wallet_text": "Awesome wallet for Haven",
|
"haven_app_wallet_text": "Awesome wallet for Haven",
|
||||||
"help": "pomozite",
|
"help": "pomozite",
|
||||||
|
"hidden_addresses": "Skrivene adrese",
|
||||||
"hidden_balance": "Skriven iznos",
|
"hidden_balance": "Skriven iznos",
|
||||||
|
"hide": "Sakriti",
|
||||||
"hide_details": "Sakrij pojedinosti",
|
"hide_details": "Sakrij pojedinosti",
|
||||||
"high_contrast_theme": "Tema visokog kontrasta",
|
"high_contrast_theme": "Tema visokog kontrasta",
|
||||||
"home_screen_settings": "Postavke početnog zaslona",
|
"home_screen_settings": "Postavke početnog zaslona",
|
||||||
|
@ -500,6 +504,7 @@
|
||||||
"pre_seed_title": "VAŽNO",
|
"pre_seed_title": "VAŽNO",
|
||||||
"prepaid_cards": "Unaprijed plaćene kartice",
|
"prepaid_cards": "Unaprijed plaćene kartice",
|
||||||
"prevent_screenshots": "Spriječite snimke zaslona i snimanje zaslona",
|
"prevent_screenshots": "Spriječite snimke zaslona i snimanje zaslona",
|
||||||
|
"primary_address": "Primarna adresa",
|
||||||
"privacy": "Privatnost",
|
"privacy": "Privatnost",
|
||||||
"privacy_policy": "Pravila privatnosti",
|
"privacy_policy": "Pravila privatnosti",
|
||||||
"privacy_settings": "Postavke privatnosti",
|
"privacy_settings": "Postavke privatnosti",
|
||||||
|
@ -696,6 +701,7 @@
|
||||||
"share": "Udio",
|
"share": "Udio",
|
||||||
"share_address": "Podijeli adresu",
|
"share_address": "Podijeli adresu",
|
||||||
"shared_seed_wallet_groups": "Zajedničke grupe za sjeme novčanika",
|
"shared_seed_wallet_groups": "Zajedničke grupe za sjeme novčanika",
|
||||||
|
"show": "Pokazati",
|
||||||
"show_details": "Prikaži pojedinosti",
|
"show_details": "Prikaži pojedinosti",
|
||||||
"show_keys": "Prikaži pristupni izraz/ključ",
|
"show_keys": "Prikaži pristupni izraz/ključ",
|
||||||
"show_market_place": "Prikaži tržište",
|
"show_market_place": "Prikaži tržište",
|
||||||
|
@ -942,6 +948,5 @@
|
||||||
"you_pay": "Vi plaćate",
|
"you_pay": "Vi plaćate",
|
||||||
"you_will_get": "Razmijeni u",
|
"you_will_get": "Razmijeni u",
|
||||||
"you_will_send": "Razmijeni iz",
|
"you_will_send": "Razmijeni iz",
|
||||||
"yy": "GG",
|
"yy": "GG"
|
||||||
"contact_name_exists": "Kontakt s tim imenom već postoji. Odaberite drugo ime."
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "Բաց ցանցի հղում",
|
"clearnet_link": "Բաց ցանցի հղում",
|
||||||
"close": "Փակել",
|
"close": "Փակել",
|
||||||
"coin_control": "Մետաղադրամի վերահսկում (ըստ ցանկության)",
|
"coin_control": "Մետաղադրամի վերահսկում (ըստ ցանկության)",
|
||||||
"cold_or_recover_wallet": "Ավելացնել սառը դրամապանակ կամ վերականգնել թղթային դրամապանակ",
|
"cold_or_recover_wallet": "Cupcake կամ ցուրտ դրամապանակից ավելացնել միայն ընթերցված դրամապանակ կամ վերականգնել թղթի դրամապանակը",
|
||||||
"color_theme": "Գույների տեսք",
|
"color_theme": "Գույների տեսք",
|
||||||
"commit_transaction_amount_fee": "Հաստատել գործարքը\nՍկզբնական գումար. ${amount}\nՄիջնորդավճար. ${fee}",
|
"commit_transaction_amount_fee": "Հաստատել գործարքը\nՍկզբնական գումար. ${amount}\nՄիջնորդավճար. ${fee}",
|
||||||
"confirm": "Հաստատել",
|
"confirm": "Հաստատել",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "Կոնտակտներ",
|
"contact_list_contacts": "Կոնտակտներ",
|
||||||
"contact_list_wallets": "Իմ դրամապանակներ",
|
"contact_list_wallets": "Իմ դրամապանակներ",
|
||||||
"contact_name": "Կոնտակտի անուն",
|
"contact_name": "Կոնտակտի անուն",
|
||||||
|
"contact_name_exists": "Այդ անվանման հետ կապ կա արդեն: Խնդրում ենք ընտրել այլ անուն:",
|
||||||
"contact_support": "Հետադարձ կապ",
|
"contact_support": "Հետադարձ կապ",
|
||||||
"continue_text": "Շարունակել",
|
"continue_text": "Շարունակել",
|
||||||
"contract_warning": "Պայմանագրի այս հասցեն դրոշմել է որպես հնարավոր կեղծ: Խնդրում ենք զգուշությամբ մշակել:",
|
"contract_warning": "Պայմանագրի այս հասցեն դրոշմել է որպես հնարավոր կեղծ: Խնդրում ենք զգուշությամբ մշակել:",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "Վավերականություն և լրացում",
|
"expiry_and_validity": "Վավերականություն և լրացում",
|
||||||
"export_backup": "Արտահանել կրկնօրինակը",
|
"export_backup": "Արտահանել կրկնօրինակը",
|
||||||
"export_logs": "Արտահանման տեղեկամատյաններ",
|
"export_logs": "Արտահանման տեղեկամատյաններ",
|
||||||
|
"export_outputs": "Արտահանման արդյունքներ",
|
||||||
"extra_id": "Լրացուցիչ ID",
|
"extra_id": "Լրացուցիչ ID",
|
||||||
"extracted_address_content": "Դուք կուղարկեք գումար ${recipient_name}",
|
"extracted_address_content": "Դուք կուղարկեք գումար ${recipient_name}",
|
||||||
"failed_authentication": "Վավերացումը ձախողվեց. ${state_error}",
|
"failed_authentication": "Վավերացումը ձախողվեց. ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven ծրագիր",
|
"haven_app": "Haven ծրագիր",
|
||||||
"haven_app_wallet_text": "Հիանալի հաշվեհամար Haven համար",
|
"haven_app_wallet_text": "Հիանալի հաշվեհամար Haven համար",
|
||||||
"help": "Օգնություն",
|
"help": "Օգնություն",
|
||||||
|
"hidden_addresses": "Թաքնված հասցեներ",
|
||||||
"hidden_balance": "Թաքնված մնացորդ",
|
"hidden_balance": "Թաքնված մնացորդ",
|
||||||
|
"hide": "Թաքցնել",
|
||||||
"hide_details": "Թաքցնել մանրամասները",
|
"hide_details": "Թաքցնել մանրամասները",
|
||||||
"high_contrast_theme": "Բարձր հակադրության տեսք",
|
"high_contrast_theme": "Բարձր հակադրության տեսք",
|
||||||
"home_screen_settings": "Գլխավոր էկրանի կարգավորումներ",
|
"home_screen_settings": "Գլխավոր էկրանի կարգավորումներ",
|
||||||
|
@ -366,14 +370,22 @@
|
||||||
"ledger_error_wrong_app": "Խնդրում ենք համոզվել, որ դուք բացել եք ճիշտ ծրագիրը ձեր Ledger-ում",
|
"ledger_error_wrong_app": "Խնդրում ենք համոզվել, որ դուք բացել եք ճիշտ ծրագիրը ձեր Ledger-ում",
|
||||||
"ledger_please_enable_bluetooth": "Խնդրում ենք միացնել Bluetooth-ը ձեր Ledger-ը հայտնաբերելու համար",
|
"ledger_please_enable_bluetooth": "Խնդրում ենք միացնել Bluetooth-ը ձեր Ledger-ը հայտնաբերելու համար",
|
||||||
"light_theme": "Լուսավոր",
|
"light_theme": "Լուսավոր",
|
||||||
|
"litecoin_enable_mweb_sync": "Միացնել MWEB սկան",
|
||||||
|
"litecoin_mweb": "Մուեբ",
|
||||||
|
"litecoin_mweb_always_scan": "Սահմանեք Mweb Միշտ սկանավորում",
|
||||||
"litecoin_mweb_description": "Mweb- ը նոր արձանագրություն է, որը բերում է ավելի արագ, ավելի էժան եւ ավելի մասնավոր գործարքներ դեպի LITECOIN",
|
"litecoin_mweb_description": "Mweb- ը նոր արձանագրություն է, որը բերում է ավելի արագ, ավելի էժան եւ ավելի մասնավոր գործարքներ դեպի LITECOIN",
|
||||||
"litecoin_mweb_dismiss": "Հեռացնել",
|
"litecoin_mweb_dismiss": "Հեռացնել",
|
||||||
|
"litecoin_mweb_display_card": "Show ույց տալ Mweb քարտը",
|
||||||
"litecoin_mweb_enable": "Միացնել Mweb- ը",
|
"litecoin_mweb_enable": "Միացնել Mweb- ը",
|
||||||
"litecoin_mweb_enable_later": "Կարող եք ընտրել Mweb- ը կրկին միացնել ցուցադրման պարամետրերը:",
|
"litecoin_mweb_enable_later": "Կարող եք ընտրել Mweb- ը կրկին միացնել ցուցադրման պարամետրերը:",
|
||||||
"litecoin_mweb_logs": "Mweb տեղեկամատյաններ",
|
"litecoin_mweb_logs": "Mweb տեղեկամատյաններ",
|
||||||
"litecoin_mweb_node": "Mweb հանգույց",
|
"litecoin_mweb_node": "Mweb հանգույց",
|
||||||
"litecoin_mweb_pegin": "Peg in",
|
"litecoin_mweb_pegin": "Peg in",
|
||||||
"litecoin_mweb_pegout": "Հափշտակել",
|
"litecoin_mweb_pegout": "Հափշտակել",
|
||||||
|
"litecoin_mweb_scanning": "Mweb սկանավորում",
|
||||||
|
"litecoin_mweb_settings": "Mweb- ի պարամետրերը",
|
||||||
|
"litecoin_mweb_warning": "Mweb- ի օգտագործումը սկզբում ներբեռնվի 600 ՄԲ տվյալներ եւ կարող է տեւել 30 րոպե, կախված ցանցի արագությունից: Այս նախնական տվյալները միայն մեկ անգամ ներբեռնելու են եւ հասանելի կլինեն բոլոր Litecoin դրամապանակների համար",
|
||||||
|
"litecoin_what_is_mweb": "Ինչ է Mweb- ը:",
|
||||||
"live_fee_rates": "Ապակի վարձավճարներ API- ի միջոցով",
|
"live_fee_rates": "Ապակի վարձավճարներ API- ի միջոցով",
|
||||||
"load_more": "Բեռնել ավելին",
|
"load_more": "Բեռնել ավելին",
|
||||||
"loading_your_wallet": "Ձեր հաշվեհամարը բեռնում է",
|
"loading_your_wallet": "Ձեր հաշվեհամարը բեռնում է",
|
||||||
|
@ -492,6 +504,7 @@
|
||||||
"pre_seed_title": "ԿԱՐԵՎՈՐ",
|
"pre_seed_title": "ԿԱՐԵՎՈՐ",
|
||||||
"prepaid_cards": "Նախավճարային քարտեր",
|
"prepaid_cards": "Նախավճարային քարտեր",
|
||||||
"prevent_screenshots": "Կանխել էկրանի պատկերները և տեսագրությունը",
|
"prevent_screenshots": "Կանխել էկրանի պատկերները և տեսագրությունը",
|
||||||
|
"primary_address": "Առաջնային հասցե",
|
||||||
"privacy": "Գաղտնիություն",
|
"privacy": "Գաղտնիություն",
|
||||||
"privacy_policy": "Գաղտնիության քաղաքականություն",
|
"privacy_policy": "Գաղտնիության քաղաքականություն",
|
||||||
"privacy_settings": "Գաղտնիության կարգավորումներ",
|
"privacy_settings": "Գաղտնիության կարգավորումներ",
|
||||||
|
@ -688,6 +701,7 @@
|
||||||
"share": "Կիսվել",
|
"share": "Կիսվել",
|
||||||
"share_address": "Կիսվել հասցեով",
|
"share_address": "Կիսվել հասցեով",
|
||||||
"shared_seed_wallet_groups": "Համօգտագործված սերմերի դրամապանակների խմբեր",
|
"shared_seed_wallet_groups": "Համօգտագործված սերմերի դրամապանակների խմբեր",
|
||||||
|
"show": "Ցուցահանդես",
|
||||||
"show_details": "Ցուցադրել մանրամասներ",
|
"show_details": "Ցուցադրել մանրամասներ",
|
||||||
"show_keys": "Ցուցադրել բանալիներ",
|
"show_keys": "Ցուցադրել բանալիներ",
|
||||||
"show_market_place": "Ցուցադրել շուկան",
|
"show_market_place": "Ցուցադրել շուկան",
|
||||||
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "Tautan clearnet",
|
"clearnet_link": "Tautan clearnet",
|
||||||
"close": "Menutup",
|
"close": "Menutup",
|
||||||
"coin_control": "Kontrol koin (opsional)",
|
"coin_control": "Kontrol koin (opsional)",
|
||||||
"cold_or_recover_wallet": "Tambahkan dompet dingin atau pulihkan dompet kertas",
|
"cold_or_recover_wallet": "Tambahkan dompet hanya baca dari Cupcake atau dompet dingin atau memulihkan dompet kertas",
|
||||||
"color_theme": "Tema warna",
|
"color_theme": "Tema warna",
|
||||||
"commit_transaction_amount_fee": "Lakukan transaksi\nJumlah: ${amount}\nBiaya: ${fee}",
|
"commit_transaction_amount_fee": "Lakukan transaksi\nJumlah: ${amount}\nBiaya: ${fee}",
|
||||||
"confirm": "Konfirmasi",
|
"confirm": "Konfirmasi",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "Kontak",
|
"contact_list_contacts": "Kontak",
|
||||||
"contact_list_wallets": "Dompet Saya",
|
"contact_list_wallets": "Dompet Saya",
|
||||||
"contact_name": "Nama Kontak",
|
"contact_name": "Nama Kontak",
|
||||||
|
"contact_name_exists": "Kontak dengan nama tersebut sudah ada. Silakan pilih nama lain.",
|
||||||
"contact_support": "Hubungi Dukungan",
|
"contact_support": "Hubungi Dukungan",
|
||||||
"continue_text": "Lanjutkan",
|
"continue_text": "Lanjutkan",
|
||||||
"contract_warning": "Alamat kontrak ini telah ditandai sebagai berpotensi curang. Silakan memproses dengan hati -hati.",
|
"contract_warning": "Alamat kontrak ini telah ditandai sebagai berpotensi curang. Silakan memproses dengan hati -hati.",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "Kedaluwarsa dan validitas",
|
"expiry_and_validity": "Kedaluwarsa dan validitas",
|
||||||
"export_backup": "Ekspor cadangan",
|
"export_backup": "Ekspor cadangan",
|
||||||
"export_logs": "Log ekspor",
|
"export_logs": "Log ekspor",
|
||||||
|
"export_outputs": "Ekspor output",
|
||||||
"extra_id": "ID tambahan:",
|
"extra_id": "ID tambahan:",
|
||||||
"extracted_address_content": "Anda akan mengirim dana ke\n${recipient_name}",
|
"extracted_address_content": "Anda akan mengirim dana ke\n${recipient_name}",
|
||||||
"failed_authentication": "Otentikasi gagal. ${state_error}",
|
"failed_authentication": "Otentikasi gagal. ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven Oleh Cake Wallet",
|
"haven_app": "Haven Oleh Cake Wallet",
|
||||||
"haven_app_wallet_text": "Dompet luar biasa untuk Haven",
|
"haven_app_wallet_text": "Dompet luar biasa untuk Haven",
|
||||||
"help": "bantuan",
|
"help": "bantuan",
|
||||||
|
"hidden_addresses": "Alamat tersembunyi",
|
||||||
"hidden_balance": "Saldo Tersembunyi",
|
"hidden_balance": "Saldo Tersembunyi",
|
||||||
|
"hide": "Bersembunyi",
|
||||||
"hide_details": "Sembunyikan Rincian",
|
"hide_details": "Sembunyikan Rincian",
|
||||||
"high_contrast_theme": "Tema Kontras Tinggi",
|
"high_contrast_theme": "Tema Kontras Tinggi",
|
||||||
"home_screen_settings": "Pengaturan layar awal",
|
"home_screen_settings": "Pengaturan layar awal",
|
||||||
|
@ -502,6 +506,7 @@
|
||||||
"pre_seed_title": "PENTING",
|
"pre_seed_title": "PENTING",
|
||||||
"prepaid_cards": "Kartu prabayar",
|
"prepaid_cards": "Kartu prabayar",
|
||||||
"prevent_screenshots": "Cegah tangkapan layar dan perekaman layar",
|
"prevent_screenshots": "Cegah tangkapan layar dan perekaman layar",
|
||||||
|
"primary_address": "Alamat utama",
|
||||||
"privacy": "Privasi",
|
"privacy": "Privasi",
|
||||||
"privacy_policy": "Kebijakan Privasi",
|
"privacy_policy": "Kebijakan Privasi",
|
||||||
"privacy_settings": "Pengaturan privasi",
|
"privacy_settings": "Pengaturan privasi",
|
||||||
|
@ -699,6 +704,7 @@
|
||||||
"share": "Membagikan",
|
"share": "Membagikan",
|
||||||
"share_address": "Bagikan alamat",
|
"share_address": "Bagikan alamat",
|
||||||
"shared_seed_wallet_groups": "Kelompok dompet benih bersama",
|
"shared_seed_wallet_groups": "Kelompok dompet benih bersama",
|
||||||
|
"show": "Menunjukkan",
|
||||||
"show_details": "Tampilkan Rincian",
|
"show_details": "Tampilkan Rincian",
|
||||||
"show_keys": "Tampilkan seed/kunci",
|
"show_keys": "Tampilkan seed/kunci",
|
||||||
"show_market_place": "Tampilkan Pasar",
|
"show_market_place": "Tampilkan Pasar",
|
||||||
|
@ -945,6 +951,5 @@
|
||||||
"you_pay": "Anda Membayar",
|
"you_pay": "Anda Membayar",
|
||||||
"you_will_get": "Konversi ke",
|
"you_will_get": "Konversi ke",
|
||||||
"you_will_send": "Konversi dari",
|
"you_will_send": "Konversi dari",
|
||||||
"yy": "YY",
|
"yy": "YY"
|
||||||
"contact_name_exists": "Kontak dengan nama tersebut sudah ada. Silakan pilih nama lain."
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "Collegamento Clearnet",
|
"clearnet_link": "Collegamento Clearnet",
|
||||||
"close": "Chiudere",
|
"close": "Chiudere",
|
||||||
"coin_control": "Controllo monete (opzionale)",
|
"coin_control": "Controllo monete (opzionale)",
|
||||||
"cold_or_recover_wallet": "Aggiungi un cold wallet o recupera un paper wallet",
|
"cold_or_recover_wallet": "Aggiungi un portafoglio di sola lettura da Cupcake o un portafoglio freddo o recupera un portafoglio di carta",
|
||||||
"color_theme": "Colore tema",
|
"color_theme": "Colore tema",
|
||||||
"commit_transaction_amount_fee": "Invia transazione\nAmmontare: ${amount}\nCommissione: ${fee}",
|
"commit_transaction_amount_fee": "Invia transazione\nAmmontare: ${amount}\nCommissione: ${fee}",
|
||||||
"confirm": "Conferma",
|
"confirm": "Conferma",
|
||||||
|
@ -162,6 +162,7 @@
|
||||||
"contact_list_contacts": "Contatti",
|
"contact_list_contacts": "Contatti",
|
||||||
"contact_list_wallets": "I miei portafogli",
|
"contact_list_wallets": "I miei portafogli",
|
||||||
"contact_name": "Nome Contatto",
|
"contact_name": "Nome Contatto",
|
||||||
|
"contact_name_exists": "Esiste già un contatto con quel nome. Scegli un nome diverso.",
|
||||||
"contact_support": "Contatta l'assistenza",
|
"contact_support": "Contatta l'assistenza",
|
||||||
"continue_text": "Continua",
|
"continue_text": "Continua",
|
||||||
"contract_warning": "Questo indirizzo del contratto è stato contrassegnato come potenzialmente fraudolento. Si prega di elaborare con cautela.",
|
"contract_warning": "Questo indirizzo del contratto è stato contrassegnato come potenzialmente fraudolento. Si prega di elaborare con cautela.",
|
||||||
|
@ -297,6 +298,7 @@
|
||||||
"expiry_and_validity": "Scadenza e validità",
|
"expiry_and_validity": "Scadenza e validità",
|
||||||
"export_backup": "Esporta backup",
|
"export_backup": "Esporta backup",
|
||||||
"export_logs": "Registri di esportazione",
|
"export_logs": "Registri di esportazione",
|
||||||
|
"export_outputs": "Output di esportazione",
|
||||||
"extra_id": "Extra ID:",
|
"extra_id": "Extra ID:",
|
||||||
"extracted_address_content": "Invierai i tuoi fondi a\n${recipient_name}",
|
"extracted_address_content": "Invierai i tuoi fondi a\n${recipient_name}",
|
||||||
"failed_authentication": "Autenticazione fallita. ${state_error}",
|
"failed_authentication": "Autenticazione fallita. ${state_error}",
|
||||||
|
@ -337,7 +339,9 @@
|
||||||
"haven_app": "Haven by Cake Wallet",
|
"haven_app": "Haven by Cake Wallet",
|
||||||
"haven_app_wallet_text": "Portafoglio fantastico per Haven",
|
"haven_app_wallet_text": "Portafoglio fantastico per Haven",
|
||||||
"help": "aiuto",
|
"help": "aiuto",
|
||||||
|
"hidden_addresses": "Indirizzi nascosti",
|
||||||
"hidden_balance": "Saldo Nascosto",
|
"hidden_balance": "Saldo Nascosto",
|
||||||
|
"hide": "Nascondere",
|
||||||
"hide_details": "Nascondi dettagli",
|
"hide_details": "Nascondi dettagli",
|
||||||
"high_contrast_theme": "Tema ad alto contrasto",
|
"high_contrast_theme": "Tema ad alto contrasto",
|
||||||
"home_screen_settings": "Impostazioni della schermata iniziale",
|
"home_screen_settings": "Impostazioni della schermata iniziale",
|
||||||
|
@ -502,6 +506,7 @@
|
||||||
"pre_seed_title": "IMPORTANTE",
|
"pre_seed_title": "IMPORTANTE",
|
||||||
"prepaid_cards": "Carte prepagata",
|
"prepaid_cards": "Carte prepagata",
|
||||||
"prevent_screenshots": "Impedisci screenshot e registrazione dello schermo",
|
"prevent_screenshots": "Impedisci screenshot e registrazione dello schermo",
|
||||||
|
"primary_address": "Indirizzo primario",
|
||||||
"privacy": "Privacy",
|
"privacy": "Privacy",
|
||||||
"privacy_policy": "Informativa sulla privacy",
|
"privacy_policy": "Informativa sulla privacy",
|
||||||
"privacy_settings": "Impostazioni privacy",
|
"privacy_settings": "Impostazioni privacy",
|
||||||
|
@ -698,6 +703,7 @@
|
||||||
"share": "Condividere",
|
"share": "Condividere",
|
||||||
"share_address": "Condividi indirizzo",
|
"share_address": "Condividi indirizzo",
|
||||||
"shared_seed_wallet_groups": "Gruppi di portafoglio di semi condivisi",
|
"shared_seed_wallet_groups": "Gruppi di portafoglio di semi condivisi",
|
||||||
|
"show": "Spettacolo",
|
||||||
"show_details": "Mostra dettagli",
|
"show_details": "Mostra dettagli",
|
||||||
"show_keys": "Mostra seme/chiavi",
|
"show_keys": "Mostra seme/chiavi",
|
||||||
"show_market_place": "Mostra mercato",
|
"show_market_place": "Mostra mercato",
|
||||||
|
@ -945,6 +951,5 @@
|
||||||
"you_pay": "Tu paghi",
|
"you_pay": "Tu paghi",
|
||||||
"you_will_get": "Converti a",
|
"you_will_get": "Converti a",
|
||||||
"you_will_send": "Conveti da",
|
"you_will_send": "Conveti da",
|
||||||
"yy": "YY",
|
"yy": "YY"
|
||||||
"contact_name_exists": "Esiste già un contatto con quel nome. Scegli un nome diverso."
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "クリアネット リンク",
|
"clearnet_link": "クリアネット リンク",
|
||||||
"close": "近い",
|
"close": "近い",
|
||||||
"coin_control": "コインコントロール(オプション)",
|
"coin_control": "コインコントロール(オプション)",
|
||||||
"cold_or_recover_wallet": "コールド ウォレットを追加するか、ペーパー ウォレットを復元する",
|
"cold_or_recover_wallet": "Cupcakeまたはコールドウォレットから読み取り専用ウォレットを追加するか、紙の財布を回収する",
|
||||||
"color_theme": "カラーテーマ",
|
"color_theme": "カラーテーマ",
|
||||||
"commit_transaction_amount_fee": "トランザクションをコミット\n量: ${amount}\n費用: ${fee}",
|
"commit_transaction_amount_fee": "トランザクションをコミット\n量: ${amount}\n費用: ${fee}",
|
||||||
"confirm": "確認する",
|
"confirm": "確認する",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "連絡先",
|
"contact_list_contacts": "連絡先",
|
||||||
"contact_list_wallets": "マイウォレット",
|
"contact_list_wallets": "マイウォレット",
|
||||||
"contact_name": "連絡先",
|
"contact_name": "連絡先",
|
||||||
|
"contact_name_exists": "その名前の連絡先はすでに存在します。別の名前を選択してください。",
|
||||||
"contact_support": "サポートに連絡する",
|
"contact_support": "サポートに連絡する",
|
||||||
"continue_text": "持続する",
|
"continue_text": "持続する",
|
||||||
"contract_warning": "この契約住所は、潜在的に不正としてフラグが立てられています。注意して処理してください。",
|
"contract_warning": "この契約住所は、潜在的に不正としてフラグが立てられています。注意して処理してください。",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "有効期限と有効性",
|
"expiry_and_validity": "有効期限と有効性",
|
||||||
"export_backup": "バックアップのエクスポート",
|
"export_backup": "バックアップのエクスポート",
|
||||||
"export_logs": "ログをエクスポートします",
|
"export_logs": "ログをエクスポートします",
|
||||||
|
"export_outputs": "エクスポート出力",
|
||||||
"extra_id": "追加ID:",
|
"extra_id": "追加ID:",
|
||||||
"extracted_address_content": "に送金します\n${recipient_name}",
|
"extracted_address_content": "に送金します\n${recipient_name}",
|
||||||
"failed_authentication": "認証失敗. ${state_error}",
|
"failed_authentication": "認証失敗. ${state_error}",
|
||||||
|
@ -337,7 +339,9 @@
|
||||||
"haven_app": "Haven by Cake Wallet",
|
"haven_app": "Haven by Cake Wallet",
|
||||||
"haven_app_wallet_text": "Awesome wallet for Haven",
|
"haven_app_wallet_text": "Awesome wallet for Haven",
|
||||||
"help": "ヘルプ",
|
"help": "ヘルプ",
|
||||||
|
"hidden_addresses": "隠されたアドレス",
|
||||||
"hidden_balance": "隠れたバランス",
|
"hidden_balance": "隠れたバランス",
|
||||||
|
"hide": "隠れる",
|
||||||
"hide_details": "詳細を非表示",
|
"hide_details": "詳細を非表示",
|
||||||
"high_contrast_theme": "ハイコントラストテーマ",
|
"high_contrast_theme": "ハイコントラストテーマ",
|
||||||
"home_screen_settings": "ホーム画面の設定",
|
"home_screen_settings": "ホーム画面の設定",
|
||||||
|
@ -501,6 +505,7 @@
|
||||||
"pre_seed_title": "重要",
|
"pre_seed_title": "重要",
|
||||||
"prepaid_cards": "プリペイドカード",
|
"prepaid_cards": "プリペイドカード",
|
||||||
"prevent_screenshots": "スクリーンショットと画面録画を防止する",
|
"prevent_screenshots": "スクリーンショットと画面録画を防止する",
|
||||||
|
"primary_address": "主なアドレス",
|
||||||
"privacy": "プライバシー",
|
"privacy": "プライバシー",
|
||||||
"privacy_policy": "プライバシーポリシー",
|
"privacy_policy": "プライバシーポリシー",
|
||||||
"privacy_settings": "プライバシー設定",
|
"privacy_settings": "プライバシー設定",
|
||||||
|
@ -697,6 +702,7 @@
|
||||||
"share": "共有",
|
"share": "共有",
|
||||||
"share_address": "住所を共有する",
|
"share_address": "住所を共有する",
|
||||||
"shared_seed_wallet_groups": "共有シードウォレットグループ",
|
"shared_seed_wallet_groups": "共有シードウォレットグループ",
|
||||||
|
"show": "見せる",
|
||||||
"show_details": "詳細を表示",
|
"show_details": "詳細を表示",
|
||||||
"show_keys": "シード/キーを表示する",
|
"show_keys": "シード/キーを表示する",
|
||||||
"show_market_place": "マーケットプレイスを表示",
|
"show_market_place": "マーケットプレイスを表示",
|
||||||
|
@ -943,6 +949,5 @@
|
||||||
"you_pay": "あなたが支払う",
|
"you_pay": "あなたが支払う",
|
||||||
"you_will_get": "に変換",
|
"you_will_get": "に変換",
|
||||||
"you_will_send": "から変換",
|
"you_will_send": "から変換",
|
||||||
"yy": "YY",
|
"yy": "YY"
|
||||||
"contact_name_exists": "その名前の連絡先はすでに存在します。別の名前を選択してください。"
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "클리어넷 링크",
|
"clearnet_link": "클리어넷 링크",
|
||||||
"close": "닫다",
|
"close": "닫다",
|
||||||
"coin_control": "코인 제어 (옵션)",
|
"coin_control": "코인 제어 (옵션)",
|
||||||
"cold_or_recover_wallet": "콜드 지갑 추가 또는 종이 지갑 복구",
|
"cold_or_recover_wallet": "Cupcake 또는 차가운 지갑에서 읽기 전용 지갑을 추가하거나 종이 지갑을 복구하십시오.",
|
||||||
"color_theme": "색상 테마",
|
"color_theme": "색상 테마",
|
||||||
"commit_transaction_amount_fee": "커밋 거래\n양: ${amount}\n보수: ${fee}",
|
"commit_transaction_amount_fee": "커밋 거래\n양: ${amount}\n보수: ${fee}",
|
||||||
"confirm": "확인",
|
"confirm": "확인",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "콘택트 렌즈",
|
"contact_list_contacts": "콘택트 렌즈",
|
||||||
"contact_list_wallets": "내 지갑",
|
"contact_list_wallets": "내 지갑",
|
||||||
"contact_name": "담당자 이름",
|
"contact_name": "담당자 이름",
|
||||||
|
"contact_name_exists": "해당 이름을 가진 연락처가 이미 존재합니다. 다른 이름을 선택하세요.",
|
||||||
"contact_support": "지원팀에 문의",
|
"contact_support": "지원팀에 문의",
|
||||||
"continue_text": "잇다",
|
"continue_text": "잇다",
|
||||||
"contract_warning": "이 계약 주소는 잠재적으로 사기성으로 표시되었습니다. 주의해서 처리하십시오.",
|
"contract_warning": "이 계약 주소는 잠재적으로 사기성으로 표시되었습니다. 주의해서 처리하십시오.",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "만료와 타당성",
|
"expiry_and_validity": "만료와 타당성",
|
||||||
"export_backup": "백업 내보내기",
|
"export_backup": "백업 내보내기",
|
||||||
"export_logs": "내보내기 로그",
|
"export_logs": "내보내기 로그",
|
||||||
|
"export_outputs": "내보내기 출력",
|
||||||
"extra_id": "추가 ID:",
|
"extra_id": "추가 ID:",
|
||||||
"extracted_address_content": "당신은에 자금을 보낼 것입니다\n${recipient_name}",
|
"extracted_address_content": "당신은에 자금을 보낼 것입니다\n${recipient_name}",
|
||||||
"failed_authentication": "인증 실패. ${state_error}",
|
"failed_authentication": "인증 실패. ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven by Cake Wallet",
|
"haven_app": "Haven by Cake Wallet",
|
||||||
"haven_app_wallet_text": "Awesome wallet for Haven",
|
"haven_app_wallet_text": "Awesome wallet for Haven",
|
||||||
"help": "돕다",
|
"help": "돕다",
|
||||||
|
"hidden_addresses": "숨겨진 주소",
|
||||||
"hidden_balance": "숨겨진 균형",
|
"hidden_balance": "숨겨진 균형",
|
||||||
|
"hide": "숨다",
|
||||||
"hide_details": "세부 정보 숨기기",
|
"hide_details": "세부 정보 숨기기",
|
||||||
"high_contrast_theme": "고대비 테마",
|
"high_contrast_theme": "고대비 테마",
|
||||||
"home_screen_settings": "홈 화면 설정",
|
"home_screen_settings": "홈 화면 설정",
|
||||||
|
@ -501,6 +505,7 @@
|
||||||
"pre_seed_title": "중대한",
|
"pre_seed_title": "중대한",
|
||||||
"prepaid_cards": "선불 카드",
|
"prepaid_cards": "선불 카드",
|
||||||
"prevent_screenshots": "스크린샷 및 화면 녹화 방지",
|
"prevent_screenshots": "스크린샷 및 화면 녹화 방지",
|
||||||
|
"primary_address": "기본 주소",
|
||||||
"privacy": "프라이버시",
|
"privacy": "프라이버시",
|
||||||
"privacy_policy": "개인 정보 보호 정책",
|
"privacy_policy": "개인 정보 보호 정책",
|
||||||
"privacy_settings": "개인정보 설정",
|
"privacy_settings": "개인정보 설정",
|
||||||
|
@ -697,6 +702,7 @@
|
||||||
"share": "공유하다",
|
"share": "공유하다",
|
||||||
"share_address": "주소 공유",
|
"share_address": "주소 공유",
|
||||||
"shared_seed_wallet_groups": "공유 종자 지갑 그룹",
|
"shared_seed_wallet_groups": "공유 종자 지갑 그룹",
|
||||||
|
"show": "보여주다",
|
||||||
"show_details": "세부정보 표시",
|
"show_details": "세부정보 표시",
|
||||||
"show_keys": "시드 / 키 표시",
|
"show_keys": "시드 / 키 표시",
|
||||||
"show_market_place": "마켓플레이스 표시",
|
"show_market_place": "마켓플레이스 표시",
|
||||||
|
@ -944,6 +950,5 @@
|
||||||
"you_will_get": "로 변환하다",
|
"you_will_get": "로 변환하다",
|
||||||
"you_will_send": "다음에서 변환",
|
"you_will_send": "다음에서 변환",
|
||||||
"YY": "YY",
|
"YY": "YY",
|
||||||
"yy": "YY",
|
"yy": "YY"
|
||||||
"contact_name_exists": "해당 이름을 가진 연락처가 이미 존재합니다. 다른 이름을 선택하세요."
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "Clearnet လင့်ခ်",
|
"clearnet_link": "Clearnet လင့်ခ်",
|
||||||
"close": "အနီးကပ်",
|
"close": "အနီးကပ်",
|
||||||
"coin_control": "အကြွေစေ့ထိန်းချုပ်မှု (ချန်လှပ်ထားနိုင်သည်)",
|
"coin_control": "အကြွေစေ့ထိန်းချုပ်မှု (ချန်လှပ်ထားနိုင်သည်)",
|
||||||
"cold_or_recover_wallet": "အေးသောပိုက်ဆံအိတ်ထည့်ပါ သို့မဟုတ် စက္ကူပိုက်ဆံအိတ်ကို ပြန်ယူပါ။",
|
"cold_or_recover_wallet": "Cupcake သို့မဟုတ်အအေးပိုက်ဆံအိတ်မှဖတ်ရန်သာပိုက်ဆံအိတ်တစ်ခုထည့်ပါသို့မဟုတ်စက္ကူပိုက်ဆံအိတ်ကိုပြန်လည်ရယူပါ",
|
||||||
"color_theme": "အရောင်အပြင်အဆင်",
|
"color_theme": "အရောင်အပြင်အဆင်",
|
||||||
"commit_transaction_amount_fee": "ငွေလွှဲခြင်း\nပမာဏ- ${amount}\nအခကြေးငွေ- ${fee}",
|
"commit_transaction_amount_fee": "ငွေလွှဲခြင်း\nပမာဏ- ${amount}\nအခကြေးငွေ- ${fee}",
|
||||||
"confirm": "အတည်ပြုပါ။",
|
"confirm": "အတည်ပြုပါ။",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "အဆက်အသွယ်များ",
|
"contact_list_contacts": "အဆက်အသွယ်များ",
|
||||||
"contact_list_wallets": "ကျွန်ုပ်၏ ပိုက်ဆံအိတ်များ",
|
"contact_list_wallets": "ကျွန်ုပ်၏ ပိုက်ဆံအိတ်များ",
|
||||||
"contact_name": "ဆက်သွယ်ရန်အမည်",
|
"contact_name": "ဆက်သွယ်ရန်အမည်",
|
||||||
|
"contact_name_exists": "ထိုအမည်နှင့် အဆက်အသွယ်တစ်ခု ရှိနှင့်ပြီးဖြစ်သည်။ အခြားအမည်တစ်ခုကို ရွေးပါ။",
|
||||||
"contact_support": "ပံ့ပိုးကူညီမှုထံ ဆက်သွယ်ပါ။",
|
"contact_support": "ပံ့ပိုးကူညီမှုထံ ဆက်သွယ်ပါ။",
|
||||||
"continue_text": "ဆက်လက်",
|
"continue_text": "ဆက်လက်",
|
||||||
"contract_warning": "ဒီစာချုပ်လိပ်စာအလားအလာအလားအလာအလားအလာအလံများကိုအလံလွှင့်တင်ခဲ့သည်။ ကျေးဇူးပြုပြီးသတိဖြင့်လုပ်ငန်းစဉ်။",
|
"contract_warning": "ဒီစာချုပ်လိပ်စာအလားအလာအလားအလာအလားအလာအလံများကိုအလံလွှင့်တင်ခဲ့သည်။ ကျေးဇူးပြုပြီးသတိဖြင့်လုပ်ငန်းစဉ်။",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "သက်တမ်းကုန်ဆုံးခြင်းနှင့်တရားဝင်မှု",
|
"expiry_and_validity": "သက်တမ်းကုန်ဆုံးခြင်းနှင့်တရားဝင်မှု",
|
||||||
"export_backup": "အရန်ကူးထုတ်ရန်",
|
"export_backup": "အရန်ကူးထုတ်ရန်",
|
||||||
"export_logs": "ပို့ကုန်မှတ်တမ်းများ",
|
"export_logs": "ပို့ကုန်မှတ်တမ်းများ",
|
||||||
|
"export_outputs": "ပို့ကုန်ထုတ်ကုန်များ",
|
||||||
"extra_id": "အပို ID-",
|
"extra_id": "အပို ID-",
|
||||||
"extracted_address_content": "သင်သည် \n${recipient_name} သို့ ရန်ပုံငွေများ ပေးပို့ပါမည်",
|
"extracted_address_content": "သင်သည် \n${recipient_name} သို့ ရန်ပုံငွေများ ပေးပို့ပါမည်",
|
||||||
"failed_authentication": "အထောက်အထားစိစစ်ခြင်း မအောင်မြင်ပါ။. ${state_error}",
|
"failed_authentication": "အထောက်အထားစိစစ်ခြင်း မအောင်မြင်ပါ။. ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "ဟေးဗင် ကိတ် ဝေါလက်",
|
"haven_app": "ဟေးဗင် ကိတ် ဝေါလက်",
|
||||||
"haven_app_wallet_text": "ဟေဗင်အတွက် အံ့ဩစရာကောင်းတဲ့ ပိုက်ဆံအုံး",
|
"haven_app_wallet_text": "ဟေဗင်အတွက် အံ့ဩစရာကောင်းတဲ့ ပိုက်ဆံအုံး",
|
||||||
"help": "ကူညီပါ",
|
"help": "ကူညီပါ",
|
||||||
|
"hidden_addresses": "လျှို့ဝှက်လိပ်စာများ",
|
||||||
"hidden_balance": "Hidden Balance",
|
"hidden_balance": "Hidden Balance",
|
||||||
|
"hide": "သားရေ",
|
||||||
"hide_details": "အသေးစိတ်ကို ဝှက်ပါ။",
|
"hide_details": "အသေးစိတ်ကို ဝှက်ပါ။",
|
||||||
"high_contrast_theme": "အလင်းအမှောင် မြင့်မားသော အပြင်အဆင်",
|
"high_contrast_theme": "အလင်းအမှောင် မြင့်မားသော အပြင်အဆင်",
|
||||||
"home_screen_settings": "ပင်မစခရင် ဆက်တင်များ",
|
"home_screen_settings": "ပင်မစခရင် ဆက်တင်များ",
|
||||||
|
@ -500,6 +504,7 @@
|
||||||
"pre_seed_title": "အရေးကြီးသည်။",
|
"pre_seed_title": "အရေးကြီးသည်။",
|
||||||
"prepaid_cards": "ကြိုတင်ငွေဖြည့်ကဒ်များ",
|
"prepaid_cards": "ကြိုတင်ငွေဖြည့်ကဒ်များ",
|
||||||
"prevent_screenshots": "ဖန်သားပြင်ဓာတ်ပုံများနှင့် မျက်နှာပြင်ရိုက်ကူးခြင်းကို တားဆီးပါ။",
|
"prevent_screenshots": "ဖန်သားပြင်ဓာတ်ပုံများနှင့် မျက်နှာပြင်ရိုက်ကူးခြင်းကို တားဆီးပါ။",
|
||||||
|
"primary_address": "အဓိကလိပ်စာ",
|
||||||
"privacy": "ကိုယ်ရေးကိုယ်တာ",
|
"privacy": "ကိုယ်ရေးကိုယ်တာ",
|
||||||
"privacy_policy": "ကိုယ်ရေးအချက်အလက်မူဝါဒ",
|
"privacy_policy": "ကိုယ်ရေးအချက်အလက်မူဝါဒ",
|
||||||
"privacy_settings": "Privacy settings တွေကို",
|
"privacy_settings": "Privacy settings တွေကို",
|
||||||
|
@ -696,6 +701,7 @@
|
||||||
"share": "မျှဝေပါ။",
|
"share": "မျှဝေပါ။",
|
||||||
"share_address": "လိပ်စာမျှဝေပါ။",
|
"share_address": "လိပ်စာမျှဝေပါ။",
|
||||||
"shared_seed_wallet_groups": "shared မျိုးစေ့ပိုက်ဆံအိတ်အုပ်စုများ",
|
"shared_seed_wallet_groups": "shared မျိုးစေ့ပိုက်ဆံအိတ်အုပ်စုများ",
|
||||||
|
"show": "ပြသ",
|
||||||
"show_details": "အသေးစိတ်ပြ",
|
"show_details": "အသေးစိတ်ပြ",
|
||||||
"show_keys": "မျိုးစေ့ /သော့များကို ပြပါ။",
|
"show_keys": "မျိုးစေ့ /သော့များကို ပြပါ။",
|
||||||
"show_market_place": "စျေးကွက်ကိုပြသပါ။",
|
"show_market_place": "စျေးကွက်ကိုပြသပါ။",
|
||||||
|
@ -942,6 +948,5 @@
|
||||||
"you_pay": "သင်ပေးချေပါ။",
|
"you_pay": "သင်ပေးချေပါ။",
|
||||||
"you_will_get": "သို့ပြောင်းပါ။",
|
"you_will_get": "သို့ပြောင်းပါ။",
|
||||||
"you_will_send": "မှပြောင်းပါ။",
|
"you_will_send": "မှပြောင်းပါ။",
|
||||||
"yy": "YY",
|
"yy": "YY"
|
||||||
"contact_name_exists": "ထိုအမည်နှင့် အဆက်အသွယ်တစ်ခု ရှိနှင့်ပြီးဖြစ်သည်။ အခြားအမည်တစ်ခုကို ရွေးပါ။"
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "Clearnet-link",
|
"clearnet_link": "Clearnet-link",
|
||||||
"close": "Dichtbij",
|
"close": "Dichtbij",
|
||||||
"coin_control": "Muntcontrole (optioneel)",
|
"coin_control": "Muntcontrole (optioneel)",
|
||||||
"cold_or_recover_wallet": "Voeg een cold wallet toe of herstel een paper wallet",
|
"cold_or_recover_wallet": "Voeg een alleen-lezen portemonnee toe van Cupcake of een koude portemonnee of herstel een papieren portemonnee",
|
||||||
"color_theme": "Kleur thema",
|
"color_theme": "Kleur thema",
|
||||||
"commit_transaction_amount_fee": "Verricht transactie\nBedrag: ${amount}\nhonorarium: ${fee}",
|
"commit_transaction_amount_fee": "Verricht transactie\nBedrag: ${amount}\nhonorarium: ${fee}",
|
||||||
"confirm": "Bevestigen",
|
"confirm": "Bevestigen",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "Contacten",
|
"contact_list_contacts": "Contacten",
|
||||||
"contact_list_wallets": "Mijn portefeuilles",
|
"contact_list_wallets": "Mijn portefeuilles",
|
||||||
"contact_name": "Contactnaam",
|
"contact_name": "Contactnaam",
|
||||||
|
"contact_name_exists": "Er bestaat al een contact met die naam. Kies een andere naam.",
|
||||||
"contact_support": "Contact opnemen met ondersteuning",
|
"contact_support": "Contact opnemen met ondersteuning",
|
||||||
"continue_text": "Doorgaan met",
|
"continue_text": "Doorgaan met",
|
||||||
"contract_warning": "Dit contractadres is gemarkeerd als mogelijk frauduleus. Verwerk met voorzichtigheid.",
|
"contract_warning": "Dit contractadres is gemarkeerd als mogelijk frauduleus. Verwerk met voorzichtigheid.",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "Vervallen en geldigheid",
|
"expiry_and_validity": "Vervallen en geldigheid",
|
||||||
"export_backup": "Back-up exporteren",
|
"export_backup": "Back-up exporteren",
|
||||||
"export_logs": "Exporteer logboeken",
|
"export_logs": "Exporteer logboeken",
|
||||||
|
"export_outputs": "Exportuitgangen exporteren",
|
||||||
"extra_id": "Extra ID:",
|
"extra_id": "Extra ID:",
|
||||||
"extracted_address_content": "U stuurt geld naar\n${recipient_name}",
|
"extracted_address_content": "U stuurt geld naar\n${recipient_name}",
|
||||||
"failed_authentication": "Mislukte authenticatie. ${state_error}",
|
"failed_authentication": "Mislukte authenticatie. ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven by Cake Wallet",
|
"haven_app": "Haven by Cake Wallet",
|
||||||
"haven_app_wallet_text": "Awesome wallet for Haven",
|
"haven_app_wallet_text": "Awesome wallet for Haven",
|
||||||
"help": "helpen",
|
"help": "helpen",
|
||||||
|
"hidden_addresses": "Verborgen adressen",
|
||||||
"hidden_balance": "Verborgen balans",
|
"hidden_balance": "Verborgen balans",
|
||||||
|
"hide": "Verbergen",
|
||||||
"hide_details": "Details verbergen",
|
"hide_details": "Details verbergen",
|
||||||
"high_contrast_theme": "Thema met hoog contrast",
|
"high_contrast_theme": "Thema met hoog contrast",
|
||||||
"home_screen_settings": "Instellingen voor het startscherm",
|
"home_screen_settings": "Instellingen voor het startscherm",
|
||||||
|
@ -500,6 +504,7 @@
|
||||||
"pre_seed_title": "BELANGRIJK",
|
"pre_seed_title": "BELANGRIJK",
|
||||||
"prepaid_cards": "Prepaid-kaarten",
|
"prepaid_cards": "Prepaid-kaarten",
|
||||||
"prevent_screenshots": "Voorkom screenshots en schermopname",
|
"prevent_screenshots": "Voorkom screenshots en schermopname",
|
||||||
|
"primary_address": "Primair adres",
|
||||||
"privacy": "Privacy",
|
"privacy": "Privacy",
|
||||||
"privacy_policy": "Privacybeleid",
|
"privacy_policy": "Privacybeleid",
|
||||||
"privacy_settings": "Privacy-instellingen",
|
"privacy_settings": "Privacy-instellingen",
|
||||||
|
@ -696,6 +701,7 @@
|
||||||
"share": "Deel",
|
"share": "Deel",
|
||||||
"share_address": "Deel adres",
|
"share_address": "Deel adres",
|
||||||
"shared_seed_wallet_groups": "Gedeelde zaadportelgroepen",
|
"shared_seed_wallet_groups": "Gedeelde zaadportelgroepen",
|
||||||
|
"show": "Show",
|
||||||
"show_details": "Toon details",
|
"show_details": "Toon details",
|
||||||
"show_keys": "Toon zaad/sleutels",
|
"show_keys": "Toon zaad/sleutels",
|
||||||
"show_market_place": "Toon Marktplaats",
|
"show_market_place": "Toon Marktplaats",
|
||||||
|
@ -943,6 +949,5 @@
|
||||||
"you_pay": "U betaalt",
|
"you_pay": "U betaalt",
|
||||||
"you_will_get": "Converteren naar",
|
"you_will_get": "Converteren naar",
|
||||||
"you_will_send": "Converteren van",
|
"you_will_send": "Converteren van",
|
||||||
"yy": "JJ",
|
"yy": "JJ"
|
||||||
"contact_name_exists": "Er bestaat al een contact met die naam. Kies een andere naam."
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "łącze Clearnet",
|
"clearnet_link": "łącze Clearnet",
|
||||||
"close": "Zamknąć",
|
"close": "Zamknąć",
|
||||||
"coin_control": "Kontrola monet (opcjonalnie)",
|
"coin_control": "Kontrola monet (opcjonalnie)",
|
||||||
"cold_or_recover_wallet": "Dodaj zimny portfel lub odzyskaj portfel papierowy",
|
"cold_or_recover_wallet": "Dodaj portfel tylko do odczytu od Cupcake lub zimnego portfela lub odzyskaj papierowy portfel",
|
||||||
"color_theme": "Motyw kolorystyczny",
|
"color_theme": "Motyw kolorystyczny",
|
||||||
"commit_transaction_amount_fee": "Zatwierdź transakcję\nIlość: ${amount}\nOpłata: ${fee}",
|
"commit_transaction_amount_fee": "Zatwierdź transakcję\nIlość: ${amount}\nOpłata: ${fee}",
|
||||||
"confirm": "Potwierdzać",
|
"confirm": "Potwierdzać",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "Łączność",
|
"contact_list_contacts": "Łączność",
|
||||||
"contact_list_wallets": "Moje portfele",
|
"contact_list_wallets": "Moje portfele",
|
||||||
"contact_name": "Nazwa Kontaktu",
|
"contact_name": "Nazwa Kontaktu",
|
||||||
|
"contact_name_exists": "Kontakt o tej nazwie już istnieje. Proszę wybrać inną nazwę.",
|
||||||
"contact_support": "Skontaktuj się z pomocą techniczną",
|
"contact_support": "Skontaktuj się z pomocą techniczną",
|
||||||
"continue_text": "Dalej",
|
"continue_text": "Dalej",
|
||||||
"contract_warning": "Ten adres umowy został oznaczony jako potencjalnie nieuczciwy. Prosimy o ostrożność.",
|
"contract_warning": "Ten adres umowy został oznaczony jako potencjalnie nieuczciwy. Prosimy o ostrożność.",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "Wygaśnięcie i ważność",
|
"expiry_and_validity": "Wygaśnięcie i ważność",
|
||||||
"export_backup": "Eksportuj kopię zapasową",
|
"export_backup": "Eksportuj kopię zapasową",
|
||||||
"export_logs": "Dzienniki eksportu",
|
"export_logs": "Dzienniki eksportu",
|
||||||
|
"export_outputs": "Wyjścia eksportowe",
|
||||||
"extra_id": "Dodatkowy ID:",
|
"extra_id": "Dodatkowy ID:",
|
||||||
"extracted_address_content": "Wysyłasz środki na\n${recipient_name}",
|
"extracted_address_content": "Wysyłasz środki na\n${recipient_name}",
|
||||||
"failed_authentication": "Nieudane uwierzytelnienie. ${state_error}",
|
"failed_authentication": "Nieudane uwierzytelnienie. ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven by Cake Wallet",
|
"haven_app": "Haven by Cake Wallet",
|
||||||
"haven_app_wallet_text": "Awesome wallet for Haven",
|
"haven_app_wallet_text": "Awesome wallet for Haven",
|
||||||
"help": "pomoc",
|
"help": "pomoc",
|
||||||
|
"hidden_addresses": "Ukryte adresy",
|
||||||
"hidden_balance": "Ukryte saldo",
|
"hidden_balance": "Ukryte saldo",
|
||||||
|
"hide": "Ukrywać",
|
||||||
"hide_details": "Ukryj szczegóły",
|
"hide_details": "Ukryj szczegóły",
|
||||||
"high_contrast_theme": "Motyw o wysokim kontraście",
|
"high_contrast_theme": "Motyw o wysokim kontraście",
|
||||||
"home_screen_settings": "Ustawienia ekranu głównego",
|
"home_screen_settings": "Ustawienia ekranu głównego",
|
||||||
|
@ -500,6 +504,7 @@
|
||||||
"pre_seed_title": "WAŻNY",
|
"pre_seed_title": "WAŻNY",
|
||||||
"prepaid_cards": "Karty przedpłacone",
|
"prepaid_cards": "Karty przedpłacone",
|
||||||
"prevent_screenshots": "Zapobiegaj zrzutom ekranu i nagrywaniu ekranu",
|
"prevent_screenshots": "Zapobiegaj zrzutom ekranu i nagrywaniu ekranu",
|
||||||
|
"primary_address": "Adres podstawowy",
|
||||||
"privacy": "Prywatność",
|
"privacy": "Prywatność",
|
||||||
"privacy_policy": "Polityka prywatności",
|
"privacy_policy": "Polityka prywatności",
|
||||||
"privacy_settings": "Ustawienia prywatności",
|
"privacy_settings": "Ustawienia prywatności",
|
||||||
|
@ -696,6 +701,7 @@
|
||||||
"share": "Udział",
|
"share": "Udział",
|
||||||
"share_address": "Udostępnij adres",
|
"share_address": "Udostępnij adres",
|
||||||
"shared_seed_wallet_groups": "Wspólne grupy portfeli nasion",
|
"shared_seed_wallet_groups": "Wspólne grupy portfeli nasion",
|
||||||
|
"show": "Pokazywać",
|
||||||
"show_details": "Pokaż szczegóły",
|
"show_details": "Pokaż szczegóły",
|
||||||
"show_keys": "Pokaż seed/klucze",
|
"show_keys": "Pokaż seed/klucze",
|
||||||
"show_market_place": "Pokaż rynek",
|
"show_market_place": "Pokaż rynek",
|
||||||
|
@ -942,6 +948,5 @@
|
||||||
"you_pay": "Płacisz",
|
"you_pay": "Płacisz",
|
||||||
"you_will_get": "Konwertuj na",
|
"you_will_get": "Konwertuj na",
|
||||||
"you_will_send": "Konwertuj z",
|
"you_will_send": "Konwertuj z",
|
||||||
"yy": "RR",
|
"yy": "RR"
|
||||||
"contact_name_exists": "Kontakt o tej nazwie już istnieje. Proszę wybrać inną nazwę."
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "link clear net",
|
"clearnet_link": "link clear net",
|
||||||
"close": "Fechar",
|
"close": "Fechar",
|
||||||
"coin_control": "Controle de moedas (opcional)",
|
"coin_control": "Controle de moedas (opcional)",
|
||||||
"cold_or_recover_wallet": "Adicione uma cold wallet ou recupere uma paper wallet",
|
"cold_or_recover_wallet": "Adicione uma carteira somente leitura de Cupcake ou uma carteira fria ou recupere uma carteira de papel",
|
||||||
"color_theme": "Tema de cor",
|
"color_theme": "Tema de cor",
|
||||||
"commit_transaction_amount_fee": "Confirmar transação\nQuantia: ${amount}\nTaxa: ${fee}",
|
"commit_transaction_amount_fee": "Confirmar transação\nQuantia: ${amount}\nTaxa: ${fee}",
|
||||||
"confirm": "Confirmar",
|
"confirm": "Confirmar",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "Contatos",
|
"contact_list_contacts": "Contatos",
|
||||||
"contact_list_wallets": "minhas carteiras",
|
"contact_list_wallets": "minhas carteiras",
|
||||||
"contact_name": "Nome do contato",
|
"contact_name": "Nome do contato",
|
||||||
|
"contact_name_exists": "Um contato com esse nome já existe. Escolha um nome diferente.",
|
||||||
"contact_support": "Contatar Suporte",
|
"contact_support": "Contatar Suporte",
|
||||||
"continue_text": "Continuar",
|
"continue_text": "Continuar",
|
||||||
"contract_warning": "Este endereço do contrato foi sinalizado como potencialmente fraudulento. Por favor, processe com cautela.",
|
"contract_warning": "Este endereço do contrato foi sinalizado como potencialmente fraudulento. Por favor, processe com cautela.",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "Expiração e validade",
|
"expiry_and_validity": "Expiração e validade",
|
||||||
"export_backup": "Backup de exportação",
|
"export_backup": "Backup de exportação",
|
||||||
"export_logs": "Exportar logs",
|
"export_logs": "Exportar logs",
|
||||||
|
"export_outputs": "Saídas de exportação",
|
||||||
"extra_id": "ID extra:",
|
"extra_id": "ID extra:",
|
||||||
"extracted_address_content": "Você enviará fundos para\n${recipient_name}",
|
"extracted_address_content": "Você enviará fundos para\n${recipient_name}",
|
||||||
"failed_authentication": "Falha na autenticação. ${state_error}",
|
"failed_authentication": "Falha na autenticação. ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven by Cake Wallet",
|
"haven_app": "Haven by Cake Wallet",
|
||||||
"haven_app_wallet_text": "Awesome wallet for Haven",
|
"haven_app_wallet_text": "Awesome wallet for Haven",
|
||||||
"help": "ajuda",
|
"help": "ajuda",
|
||||||
|
"hidden_addresses": "Endereços ocultos",
|
||||||
"hidden_balance": "Saldo escondido",
|
"hidden_balance": "Saldo escondido",
|
||||||
|
"hide": "Esconder",
|
||||||
"hide_details": "Ocultar detalhes",
|
"hide_details": "Ocultar detalhes",
|
||||||
"high_contrast_theme": "Tema de alto contraste",
|
"high_contrast_theme": "Tema de alto contraste",
|
||||||
"home_screen_settings": "Configurações da tela inicial",
|
"home_screen_settings": "Configurações da tela inicial",
|
||||||
|
@ -502,6 +506,7 @@
|
||||||
"pre_seed_title": "IMPORTANTE",
|
"pre_seed_title": "IMPORTANTE",
|
||||||
"prepaid_cards": "Cartões pré-pagos",
|
"prepaid_cards": "Cartões pré-pagos",
|
||||||
"prevent_screenshots": "Evite capturas de tela e gravação de tela",
|
"prevent_screenshots": "Evite capturas de tela e gravação de tela",
|
||||||
|
"primary_address": "Endereço primário",
|
||||||
"privacy": "Privacidade",
|
"privacy": "Privacidade",
|
||||||
"privacy_policy": "Política de privacidade",
|
"privacy_policy": "Política de privacidade",
|
||||||
"privacy_settings": "Configurações de privacidade",
|
"privacy_settings": "Configurações de privacidade",
|
||||||
|
@ -698,6 +703,7 @@
|
||||||
"share": "Compartilhar",
|
"share": "Compartilhar",
|
||||||
"share_address": "Compartilhar endereço",
|
"share_address": "Compartilhar endereço",
|
||||||
"shared_seed_wallet_groups": "Grupos de carteira de sementes compartilhados",
|
"shared_seed_wallet_groups": "Grupos de carteira de sementes compartilhados",
|
||||||
|
"show": "Mostrar",
|
||||||
"show_details": "Mostrar detalhes",
|
"show_details": "Mostrar detalhes",
|
||||||
"show_keys": "Mostrar semente/chaves",
|
"show_keys": "Mostrar semente/chaves",
|
||||||
"show_market_place": "Mostrar mercado",
|
"show_market_place": "Mostrar mercado",
|
||||||
|
@ -946,4 +952,4 @@
|
||||||
"you_will_get": "Converter para",
|
"you_will_get": "Converter para",
|
||||||
"you_will_send": "Converter de",
|
"you_will_send": "Converter de",
|
||||||
"yy": "aa"
|
"yy": "aa"
|
||||||
}
|
}
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "Клирнет ссылка",
|
"clearnet_link": "Клирнет ссылка",
|
||||||
"close": "Закрывать",
|
"close": "Закрывать",
|
||||||
"coin_control": "Контроль монет (необязательно)",
|
"coin_control": "Контроль монет (необязательно)",
|
||||||
"cold_or_recover_wallet": "Добавьте холодный кошелек или восстановите бумажный кошелек",
|
"cold_or_recover_wallet": "Добавить кошелек только для чтения из Cupcake или холодный кошелек или восстановить бумажный кошелек",
|
||||||
"color_theme": "Цветовая тема",
|
"color_theme": "Цветовая тема",
|
||||||
"commit_transaction_amount_fee": "Подтвердить транзакцию \nСумма: ${amount}\nКомиссия: ${fee}",
|
"commit_transaction_amount_fee": "Подтвердить транзакцию \nСумма: ${amount}\nКомиссия: ${fee}",
|
||||||
"confirm": "Подтвердить",
|
"confirm": "Подтвердить",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "Контакты",
|
"contact_list_contacts": "Контакты",
|
||||||
"contact_list_wallets": "Мои кошельки",
|
"contact_list_wallets": "Мои кошельки",
|
||||||
"contact_name": "Имя контакта",
|
"contact_name": "Имя контакта",
|
||||||
|
"contact_name_exists": "Контакт с таким именем уже существует. Пожалуйста, выберите другое имя.",
|
||||||
"contact_support": "Связаться со службой поддержки",
|
"contact_support": "Связаться со службой поддержки",
|
||||||
"continue_text": "Продолжить",
|
"continue_text": "Продолжить",
|
||||||
"contract_warning": "Этот адрес контракта был отмечен как потенциально мошеннический. Пожалуйста, обработайтесь с осторожностью.",
|
"contract_warning": "Этот адрес контракта был отмечен как потенциально мошеннический. Пожалуйста, обработайтесь с осторожностью.",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "Истечение и достоверность",
|
"expiry_and_validity": "Истечение и достоверность",
|
||||||
"export_backup": "Экспорт резервной копии",
|
"export_backup": "Экспорт резервной копии",
|
||||||
"export_logs": "Экспортные журналы",
|
"export_logs": "Экспортные журналы",
|
||||||
|
"export_outputs": "Экспортные выходы",
|
||||||
"extra_id": "Дополнительный ID:",
|
"extra_id": "Дополнительный ID:",
|
||||||
"extracted_address_content": "Вы будете отправлять средства\n${recipient_name}",
|
"extracted_address_content": "Вы будете отправлять средства\n${recipient_name}",
|
||||||
"failed_authentication": "Ошибка аутентификации. ${state_error}",
|
"failed_authentication": "Ошибка аутентификации. ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven by Cake Wallet",
|
"haven_app": "Haven by Cake Wallet",
|
||||||
"haven_app_wallet_text": "Awesome wallet for Haven",
|
"haven_app_wallet_text": "Awesome wallet for Haven",
|
||||||
"help": "помощь",
|
"help": "помощь",
|
||||||
|
"hidden_addresses": "Скрытые адреса",
|
||||||
"hidden_balance": "Скрытый баланс",
|
"hidden_balance": "Скрытый баланс",
|
||||||
|
"hide": "Скрывать",
|
||||||
"hide_details": "Скрыть детали",
|
"hide_details": "Скрыть детали",
|
||||||
"high_contrast_theme": "Высококонтрастная тема",
|
"high_contrast_theme": "Высококонтрастная тема",
|
||||||
"home_screen_settings": "Настройки главного экрана",
|
"home_screen_settings": "Настройки главного экрана",
|
||||||
|
@ -501,6 +505,7 @@
|
||||||
"pre_seed_title": "ВАЖНО",
|
"pre_seed_title": "ВАЖНО",
|
||||||
"prepaid_cards": "Предоплаченные карты",
|
"prepaid_cards": "Предоплаченные карты",
|
||||||
"prevent_screenshots": "Предотвратить скриншоты и запись экрана",
|
"prevent_screenshots": "Предотвратить скриншоты и запись экрана",
|
||||||
|
"primary_address": "Первичный адрес",
|
||||||
"privacy": "Конфиденциальность",
|
"privacy": "Конфиденциальность",
|
||||||
"privacy_policy": "Политика конфиденциальности",
|
"privacy_policy": "Политика конфиденциальности",
|
||||||
"privacy_settings": "Настройки конфиденциальности",
|
"privacy_settings": "Настройки конфиденциальности",
|
||||||
|
@ -697,6 +702,7 @@
|
||||||
"share": "Делиться",
|
"share": "Делиться",
|
||||||
"share_address": "Поделиться адресом",
|
"share_address": "Поделиться адресом",
|
||||||
"shared_seed_wallet_groups": "Общие группы кошелька семян",
|
"shared_seed_wallet_groups": "Общие группы кошелька семян",
|
||||||
|
"show": "Показывать",
|
||||||
"show_details": "Показать детали",
|
"show_details": "Показать детали",
|
||||||
"show_keys": "Показать мнемоническую фразу/ключи",
|
"show_keys": "Показать мнемоническую фразу/ключи",
|
||||||
"show_market_place": "Показать торговую площадку",
|
"show_market_place": "Показать торговую площадку",
|
||||||
|
@ -943,6 +949,5 @@
|
||||||
"you_pay": "Вы платите",
|
"you_pay": "Вы платите",
|
||||||
"you_will_get": "Конвертировать в",
|
"you_will_get": "Конвертировать в",
|
||||||
"you_will_send": "Конвертировать из",
|
"you_will_send": "Конвертировать из",
|
||||||
"yy": "ГГ",
|
"yy": "ГГ"
|
||||||
"contact_name_exists": "Контакт с таким именем уже существует. Пожалуйста, выберите другое имя."
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "ลิงค์เคลียร์เน็ต",
|
"clearnet_link": "ลิงค์เคลียร์เน็ต",
|
||||||
"close": "ปิด",
|
"close": "ปิด",
|
||||||
"coin_control": "การควบคุมเหรียญ (ตัวเลือก)",
|
"coin_control": "การควบคุมเหรียญ (ตัวเลือก)",
|
||||||
"cold_or_recover_wallet": "เพิ่มกระเป๋าเงินเย็นหรือกู้คืนกระเป๋าเงินกระดาษ",
|
"cold_or_recover_wallet": "เพิ่มกระเป๋าเงินแบบอ่านอย่างเดียวจาก Cupcake หรือกระเป๋าเงินเย็นหรือกู้คืนกระเป๋ากระดาษ",
|
||||||
"color_theme": "ธีมสี",
|
"color_theme": "ธีมสี",
|
||||||
"commit_transaction_amount_fee": "ยืนยันธุรกรรม\nจำนวน: ${amount}\nค่าธรรมเนียม: ${fee}",
|
"commit_transaction_amount_fee": "ยืนยันธุรกรรม\nจำนวน: ${amount}\nค่าธรรมเนียม: ${fee}",
|
||||||
"confirm": "ยืนยัน",
|
"confirm": "ยืนยัน",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "ติดต่อ",
|
"contact_list_contacts": "ติดต่อ",
|
||||||
"contact_list_wallets": "กระเป๋าเงินของฉัน",
|
"contact_list_wallets": "กระเป๋าเงินของฉัน",
|
||||||
"contact_name": "ชื่อผู้ติดต่อ",
|
"contact_name": "ชื่อผู้ติดต่อ",
|
||||||
|
"contact_name_exists": "มีผู้ติดต่อชื่อนั้นอยู่แล้ว โปรดเลือกชื่ออื่น",
|
||||||
"contact_support": "ติดต่อฝ่ายสนับสนุน",
|
"contact_support": "ติดต่อฝ่ายสนับสนุน",
|
||||||
"continue_text": "ดำเนินการต่อ",
|
"continue_text": "ดำเนินการต่อ",
|
||||||
"contract_warning": "ที่อยู่สัญญานี้ได้รับการตั้งค่าสถานะว่าเป็นการฉ้อโกง กรุณาดำเนินการด้วยความระมัดระวัง",
|
"contract_warning": "ที่อยู่สัญญานี้ได้รับการตั้งค่าสถานะว่าเป็นการฉ้อโกง กรุณาดำเนินการด้วยความระมัดระวัง",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "หมดอายุและถูกต้อง",
|
"expiry_and_validity": "หมดอายุและถูกต้อง",
|
||||||
"export_backup": "ส่งออกข้อมูลสำรอง",
|
"export_backup": "ส่งออกข้อมูลสำรอง",
|
||||||
"export_logs": "บันทึกการส่งออก",
|
"export_logs": "บันทึกการส่งออก",
|
||||||
|
"export_outputs": "เอาต์พุตส่งออก",
|
||||||
"extra_id": "ไอดีเพิ่มเติม:",
|
"extra_id": "ไอดีเพิ่มเติม:",
|
||||||
"extracted_address_content": "คุณกำลังจะส่งเงินไปยัง\n${recipient_name}",
|
"extracted_address_content": "คุณกำลังจะส่งเงินไปยัง\n${recipient_name}",
|
||||||
"failed_authentication": "การยืนยันสิทธิ์ล้มเหลว ${state_error}",
|
"failed_authentication": "การยืนยันสิทธิ์ล้มเหลว ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven ของ Cake Wallet",
|
"haven_app": "Haven ของ Cake Wallet",
|
||||||
"haven_app_wallet_text": "กระเป๋าสตางค์ที่สวยงามสำหรับ Haven",
|
"haven_app_wallet_text": "กระเป๋าสตางค์ที่สวยงามสำหรับ Haven",
|
||||||
"help": "ช่วยเหลือ",
|
"help": "ช่วยเหลือ",
|
||||||
|
"hidden_addresses": "ที่อยู่ที่ซ่อนอยู่",
|
||||||
"hidden_balance": "ยอดคงเหลือซ่อนอยู่",
|
"hidden_balance": "ยอดคงเหลือซ่อนอยู่",
|
||||||
|
"hide": "ซ่อน",
|
||||||
"hide_details": "ซ่อนรายละเอียด",
|
"hide_details": "ซ่อนรายละเอียด",
|
||||||
"high_contrast_theme": "ธีมความคมชัดสูง",
|
"high_contrast_theme": "ธีมความคมชัดสูง",
|
||||||
"home_screen_settings": "การตั้งค่าหน้าจอหลัก",
|
"home_screen_settings": "การตั้งค่าหน้าจอหลัก",
|
||||||
|
@ -500,6 +504,7 @@
|
||||||
"pre_seed_title": "สำคัญ",
|
"pre_seed_title": "สำคัญ",
|
||||||
"prepaid_cards": "บัตรเติมเงิน",
|
"prepaid_cards": "บัตรเติมเงิน",
|
||||||
"prevent_screenshots": "ป้องกันภาพหน้าจอและการบันทึกหน้าจอ",
|
"prevent_screenshots": "ป้องกันภาพหน้าจอและการบันทึกหน้าจอ",
|
||||||
|
"primary_address": "ที่อยู่ปฐมภูมิ",
|
||||||
"privacy": "ความเป็นส่วนตัว",
|
"privacy": "ความเป็นส่วนตัว",
|
||||||
"privacy_policy": "นโยบายความเป็นส่วนตัว",
|
"privacy_policy": "นโยบายความเป็นส่วนตัว",
|
||||||
"privacy_settings": "การตั้งค่าความเป็นส่วนตัว",
|
"privacy_settings": "การตั้งค่าความเป็นส่วนตัว",
|
||||||
|
@ -696,6 +701,7 @@
|
||||||
"share": "แบ่งปัน",
|
"share": "แบ่งปัน",
|
||||||
"share_address": "แชร์ที่อยู่",
|
"share_address": "แชร์ที่อยู่",
|
||||||
"shared_seed_wallet_groups": "กลุ่มกระเป๋าเงินที่ใช้ร่วมกัน",
|
"shared_seed_wallet_groups": "กลุ่มกระเป๋าเงินที่ใช้ร่วมกัน",
|
||||||
|
"show": "แสดง",
|
||||||
"show_details": "แสดงรายละเอียด",
|
"show_details": "แสดงรายละเอียด",
|
||||||
"show_keys": "แสดงซีด/คีย์",
|
"show_keys": "แสดงซีด/คีย์",
|
||||||
"show_market_place": "แสดงตลาดกลาง",
|
"show_market_place": "แสดงตลาดกลาง",
|
||||||
|
@ -942,6 +948,5 @@
|
||||||
"you_pay": "คุณจ่าย",
|
"you_pay": "คุณจ่าย",
|
||||||
"you_will_get": "แปลงเป็น",
|
"you_will_get": "แปลงเป็น",
|
||||||
"you_will_send": "แปลงจาก",
|
"you_will_send": "แปลงจาก",
|
||||||
"yy": "ปี",
|
"yy": "ปี"
|
||||||
"contact_name_exists": "มีผู้ติดต่อชื่อนั้นอยู่แล้ว โปรดเลือกชื่ออื่น"
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "Link ng Clearnet",
|
"clearnet_link": "Link ng Clearnet",
|
||||||
"close": "Isara",
|
"close": "Isara",
|
||||||
"coin_control": "Coin control (opsyonal)",
|
"coin_control": "Coin control (opsyonal)",
|
||||||
"cold_or_recover_wallet": "Magdagdag ng isang cold wallet o mabawi ang isang paper wallet",
|
"cold_or_recover_wallet": "Magdagdag ng isang basahin lamang na pitaka mula sa Cupcake o isang malamig na pitaka o mabawi ang isang wallet ng papel",
|
||||||
"color_theme": "Color theme",
|
"color_theme": "Color theme",
|
||||||
"commit_transaction_amount_fee": "Gumawa ng transaksyon\nHalaga: ${amount}\nFee: ${fee}",
|
"commit_transaction_amount_fee": "Gumawa ng transaksyon\nHalaga: ${amount}\nFee: ${fee}",
|
||||||
"confirm": "Kumpirmahin",
|
"confirm": "Kumpirmahin",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "Mga Contact",
|
"contact_list_contacts": "Mga Contact",
|
||||||
"contact_list_wallets": "Mga Wallet Ko",
|
"contact_list_wallets": "Mga Wallet Ko",
|
||||||
"contact_name": "Pangalan ng Contact",
|
"contact_name": "Pangalan ng Contact",
|
||||||
|
"contact_name_exists": "Ang isang pakikipag -ugnay sa pangalang iyon ay mayroon na. Mangyaring pumili ng ibang pangalan.",
|
||||||
"contact_support": "Makipag-ugnay sa Suporta",
|
"contact_support": "Makipag-ugnay sa Suporta",
|
||||||
"continue_text": "Magpatuloy",
|
"continue_text": "Magpatuloy",
|
||||||
"contract_warning": "Ang address ng kontrata na ito ay na -flag bilang potensyal na mapanlinlang. Mangyaring iproseso nang may pag -iingat.",
|
"contract_warning": "Ang address ng kontrata na ito ay na -flag bilang potensyal na mapanlinlang. Mangyaring iproseso nang may pag -iingat.",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "Pag-expire at Bisa",
|
"expiry_and_validity": "Pag-expire at Bisa",
|
||||||
"export_backup": "I-export ang backup",
|
"export_backup": "I-export ang backup",
|
||||||
"export_logs": "Mga log ng pag -export",
|
"export_logs": "Mga log ng pag -export",
|
||||||
|
"export_outputs": "Mga output ng pag -export",
|
||||||
"extra_id": "Dagdag na ID:",
|
"extra_id": "Dagdag na ID:",
|
||||||
"extracted_address_content": "Magpapadala ka ng pondo sa\n${recipient_name}",
|
"extracted_address_content": "Magpapadala ka ng pondo sa\n${recipient_name}",
|
||||||
"failed_authentication": "Nabigo ang pagpapatunay. ${state_error}",
|
"failed_authentication": "Nabigo ang pagpapatunay. ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven by Cake Wallet",
|
"haven_app": "Haven by Cake Wallet",
|
||||||
"haven_app_wallet_text": "Kahanga-hangang wallet para sa Haven",
|
"haven_app_wallet_text": "Kahanga-hangang wallet para sa Haven",
|
||||||
"help": "Tulong",
|
"help": "Tulong",
|
||||||
|
"hidden_addresses": "Nakatagong mga address",
|
||||||
"hidden_balance": "Nakatagong Balanse",
|
"hidden_balance": "Nakatagong Balanse",
|
||||||
|
"hide": "Itago",
|
||||||
"hide_details": "Itago ang mga detalye",
|
"hide_details": "Itago ang mga detalye",
|
||||||
"high_contrast_theme": "High Contrast Theme",
|
"high_contrast_theme": "High Contrast Theme",
|
||||||
"home_screen_settings": "Mga setting ng home screen",
|
"home_screen_settings": "Mga setting ng home screen",
|
||||||
|
@ -500,6 +504,7 @@
|
||||||
"pre_seed_title": "Mahalaga",
|
"pre_seed_title": "Mahalaga",
|
||||||
"prepaid_cards": "Mga Prepaid Card",
|
"prepaid_cards": "Mga Prepaid Card",
|
||||||
"prevent_screenshots": "Maiwasan ang mga screenshot at pag -record ng screen",
|
"prevent_screenshots": "Maiwasan ang mga screenshot at pag -record ng screen",
|
||||||
|
"primary_address": "Pangunahing address",
|
||||||
"privacy": "Privacy",
|
"privacy": "Privacy",
|
||||||
"privacy_policy": "Patakaran sa Pagkapribado",
|
"privacy_policy": "Patakaran sa Pagkapribado",
|
||||||
"privacy_settings": "Settings para sa pagsasa-pribado",
|
"privacy_settings": "Settings para sa pagsasa-pribado",
|
||||||
|
@ -696,6 +701,7 @@
|
||||||
"share": "Ibahagi",
|
"share": "Ibahagi",
|
||||||
"share_address": "Ibahagi ang address",
|
"share_address": "Ibahagi ang address",
|
||||||
"shared_seed_wallet_groups": "Ibinahaging mga pangkat ng pitaka ng binhi",
|
"shared_seed_wallet_groups": "Ibinahaging mga pangkat ng pitaka ng binhi",
|
||||||
|
"show": "Ipakita",
|
||||||
"show_details": "Ipakita ang mga detalye",
|
"show_details": "Ipakita ang mga detalye",
|
||||||
"show_keys": "Ipakita ang mga seed/key",
|
"show_keys": "Ipakita ang mga seed/key",
|
||||||
"show_market_place": "Ipakita ang Marketplace",
|
"show_market_place": "Ipakita ang Marketplace",
|
||||||
|
@ -943,4 +949,4 @@
|
||||||
"you_will_get": "I-convert sa",
|
"you_will_get": "I-convert sa",
|
||||||
"you_will_send": "I-convert mula sa",
|
"you_will_send": "I-convert mula sa",
|
||||||
"yy": "YY"
|
"yy": "YY"
|
||||||
}
|
}
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "Net bağlantı",
|
"clearnet_link": "Net bağlantı",
|
||||||
"close": "Kapalı",
|
"close": "Kapalı",
|
||||||
"coin_control": "Koin kontrolü (isteğe bağlı)",
|
"coin_control": "Koin kontrolü (isteğe bağlı)",
|
||||||
"cold_or_recover_wallet": "Soğuk bir cüzdan ekleyin veya bir kağıt cüzdanı kurtarın",
|
"cold_or_recover_wallet": "Cupcake veya soğuk bir cüzdandan salt okunur bir cüzdan ekleyin veya bir kağıt cüzdanı kurtar",
|
||||||
"color_theme": "Renk teması",
|
"color_theme": "Renk teması",
|
||||||
"commit_transaction_amount_fee": "Transferi gerçekleştir\nMiktar: ${amount}\nKomisyon: ${fee}",
|
"commit_transaction_amount_fee": "Transferi gerçekleştir\nMiktar: ${amount}\nKomisyon: ${fee}",
|
||||||
"confirm": "Onayla",
|
"confirm": "Onayla",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "Rehberim",
|
"contact_list_contacts": "Rehberim",
|
||||||
"contact_list_wallets": "Cüzdanlarım",
|
"contact_list_wallets": "Cüzdanlarım",
|
||||||
"contact_name": "Kişi ismi",
|
"contact_name": "Kişi ismi",
|
||||||
|
"contact_name_exists": "Bu isimde bir kişi zaten mevcut. Lütfen farklı bir ad seçin.",
|
||||||
"contact_support": "Destek ile İletişime Geç",
|
"contact_support": "Destek ile İletişime Geç",
|
||||||
"continue_text": "Devam et",
|
"continue_text": "Devam et",
|
||||||
"contract_warning": "Bu sözleşme adresi potansiyel olarak hileli olarak işaretlenmiştir. Lütfen dikkatle işleyin.",
|
"contract_warning": "Bu sözleşme adresi potansiyel olarak hileli olarak işaretlenmiştir. Lütfen dikkatle işleyin.",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "Sona erme ve geçerlilik",
|
"expiry_and_validity": "Sona erme ve geçerlilik",
|
||||||
"export_backup": "Yedeği dışa aktar",
|
"export_backup": "Yedeği dışa aktar",
|
||||||
"export_logs": "Dışa aktarma günlükleri",
|
"export_logs": "Dışa aktarma günlükleri",
|
||||||
|
"export_outputs": "İhracat çıktıları",
|
||||||
"extra_id": "Ekstra ID:",
|
"extra_id": "Ekstra ID:",
|
||||||
"extracted_address_content": "Parayı buraya gönderceksin:\n${recipient_name}",
|
"extracted_address_content": "Parayı buraya gönderceksin:\n${recipient_name}",
|
||||||
"failed_authentication": "Doğrulama başarısız oldu. ${state_error}",
|
"failed_authentication": "Doğrulama başarısız oldu. ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Cake Wallet tarafından Haven",
|
"haven_app": "Cake Wallet tarafından Haven",
|
||||||
"haven_app_wallet_text": "Haven için harika cüzdan ",
|
"haven_app_wallet_text": "Haven için harika cüzdan ",
|
||||||
"help": "yardım",
|
"help": "yardım",
|
||||||
|
"hidden_addresses": "Gizli adresler",
|
||||||
"hidden_balance": "Gizli Bakiye",
|
"hidden_balance": "Gizli Bakiye",
|
||||||
|
"hide": "Saklamak",
|
||||||
"hide_details": "Detayları Gizle",
|
"hide_details": "Detayları Gizle",
|
||||||
"high_contrast_theme": "Yüksek Kontrastlı Tema",
|
"high_contrast_theme": "Yüksek Kontrastlı Tema",
|
||||||
"home_screen_settings": "Ana ekran ayarları",
|
"home_screen_settings": "Ana ekran ayarları",
|
||||||
|
@ -500,6 +504,7 @@
|
||||||
"pre_seed_title": "UYARI",
|
"pre_seed_title": "UYARI",
|
||||||
"prepaid_cards": "Ön ödemeli kartlar",
|
"prepaid_cards": "Ön ödemeli kartlar",
|
||||||
"prevent_screenshots": "Ekran görüntülerini ve ekran kaydını önleyin",
|
"prevent_screenshots": "Ekran görüntülerini ve ekran kaydını önleyin",
|
||||||
|
"primary_address": "Birincil adres",
|
||||||
"privacy": "Gizlilik",
|
"privacy": "Gizlilik",
|
||||||
"privacy_policy": "Gizlilik Politikası",
|
"privacy_policy": "Gizlilik Politikası",
|
||||||
"privacy_settings": "Gizlilik ayarları",
|
"privacy_settings": "Gizlilik ayarları",
|
||||||
|
@ -696,6 +701,7 @@
|
||||||
"share": "Paylaşmak",
|
"share": "Paylaşmak",
|
||||||
"share_address": "Adresi paylaş",
|
"share_address": "Adresi paylaş",
|
||||||
"shared_seed_wallet_groups": "Paylaşılan tohum cüzdan grupları",
|
"shared_seed_wallet_groups": "Paylaşılan tohum cüzdan grupları",
|
||||||
|
"show": "Göstermek",
|
||||||
"show_details": "Detayları Göster",
|
"show_details": "Detayları Göster",
|
||||||
"show_keys": "Tohumları/anahtarları göster",
|
"show_keys": "Tohumları/anahtarları göster",
|
||||||
"show_market_place": "Pazar Yerini Göster",
|
"show_market_place": "Pazar Yerini Göster",
|
||||||
|
@ -942,6 +948,5 @@
|
||||||
"you_pay": "Şu kadar ödeyeceksin: ",
|
"you_pay": "Şu kadar ödeyeceksin: ",
|
||||||
"you_will_get": "Biçimine dönüştür:",
|
"you_will_get": "Biçimine dönüştür:",
|
||||||
"you_will_send": "Biçiminden dönüştür:",
|
"you_will_send": "Biçiminden dönüştür:",
|
||||||
"yy": "YY",
|
"yy": "YY"
|
||||||
"contact_name_exists": "Bu isimde bir kişi zaten mevcut. Lütfen farklı bir ad seçin."
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "Посилання Clearnet",
|
"clearnet_link": "Посилання Clearnet",
|
||||||
"close": "Закрити",
|
"close": "Закрити",
|
||||||
"coin_control": "Контроль монет (необов’язково)",
|
"coin_control": "Контроль монет (необов’язково)",
|
||||||
"cold_or_recover_wallet": "Додайте холодний гаманець або відновіть паперовий гаманець",
|
"cold_or_recover_wallet": "Додайте гаманець лише для читання від Cupcake або холодного гаманця або відновіть паперовий гаманець",
|
||||||
"color_theme": "Кольорова тема",
|
"color_theme": "Кольорова тема",
|
||||||
"commit_transaction_amount_fee": "Підтвердити транзакцію \nСума: ${amount}\nКомісія: ${fee}",
|
"commit_transaction_amount_fee": "Підтвердити транзакцію \nСума: ${amount}\nКомісія: ${fee}",
|
||||||
"confirm": "Підтвердити",
|
"confirm": "Підтвердити",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "Контакти",
|
"contact_list_contacts": "Контакти",
|
||||||
"contact_list_wallets": "Мої гаманці",
|
"contact_list_wallets": "Мої гаманці",
|
||||||
"contact_name": "Ім'я контакту",
|
"contact_name": "Ім'я контакту",
|
||||||
|
"contact_name_exists": "Контакт із такою назвою вже існує. Виберіть інше ім'я.",
|
||||||
"contact_support": "Звернутися до служби підтримки",
|
"contact_support": "Звернутися до служби підтримки",
|
||||||
"continue_text": "Продовжити",
|
"continue_text": "Продовжити",
|
||||||
"contract_warning": "Ця адреса контракту була позначена як потенційно шахрайська. Будь ласка, обробляйте обережно.",
|
"contract_warning": "Ця адреса контракту була позначена як потенційно шахрайська. Будь ласка, обробляйте обережно.",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "Закінчення та обгрунтованість",
|
"expiry_and_validity": "Закінчення та обгрунтованість",
|
||||||
"export_backup": "Експортувати резервну копію",
|
"export_backup": "Експортувати резервну копію",
|
||||||
"export_logs": "Експортні журнали",
|
"export_logs": "Експортні журнали",
|
||||||
|
"export_outputs": "Експортні результати",
|
||||||
"extra_id": "Додатковий ID:",
|
"extra_id": "Додатковий ID:",
|
||||||
"extracted_address_content": "Ви будете відправляти кошти\n${recipient_name}",
|
"extracted_address_content": "Ви будете відправляти кошти\n${recipient_name}",
|
||||||
"failed_authentication": "Помилка аутентифікації. ${state_error}",
|
"failed_authentication": "Помилка аутентифікації. ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven by Cake Wallet",
|
"haven_app": "Haven by Cake Wallet",
|
||||||
"haven_app_wallet_text": "Awesome wallet for Haven",
|
"haven_app_wallet_text": "Awesome wallet for Haven",
|
||||||
"help": "допомога",
|
"help": "допомога",
|
||||||
|
"hidden_addresses": "Приховані адреси",
|
||||||
"hidden_balance": "Прихований баланс",
|
"hidden_balance": "Прихований баланс",
|
||||||
|
"hide": "Сховати",
|
||||||
"hide_details": "Приховати деталі",
|
"hide_details": "Приховати деталі",
|
||||||
"high_contrast_theme": "Тема високої контрастності",
|
"high_contrast_theme": "Тема високої контрастності",
|
||||||
"home_screen_settings": "Налаштування головного екрана",
|
"home_screen_settings": "Налаштування головного екрана",
|
||||||
|
@ -500,6 +504,7 @@
|
||||||
"pre_seed_title": "ВАЖЛИВО",
|
"pre_seed_title": "ВАЖЛИВО",
|
||||||
"prepaid_cards": "Передплачені картки",
|
"prepaid_cards": "Передплачені картки",
|
||||||
"prevent_screenshots": "Запобігати знімкам екрана та запису екрана",
|
"prevent_screenshots": "Запобігати знімкам екрана та запису екрана",
|
||||||
|
"primary_address": "Первинна адреса",
|
||||||
"privacy": "Конфіденційність",
|
"privacy": "Конфіденційність",
|
||||||
"privacy_policy": "Політика конфіденційності",
|
"privacy_policy": "Політика конфіденційності",
|
||||||
"privacy_settings": "Налаштування конфіденційності",
|
"privacy_settings": "Налаштування конфіденційності",
|
||||||
|
@ -697,6 +702,7 @@
|
||||||
"share": "Поділіться",
|
"share": "Поділіться",
|
||||||
"share_address": "Поділитися адресою",
|
"share_address": "Поділитися адресою",
|
||||||
"shared_seed_wallet_groups": "Спільні групи насіннєвих гаманців",
|
"shared_seed_wallet_groups": "Спільні групи насіннєвих гаманців",
|
||||||
|
"show": "Показувати",
|
||||||
"show_details": "Показати деталі",
|
"show_details": "Показати деталі",
|
||||||
"show_keys": "Показати мнемонічну фразу/ключі",
|
"show_keys": "Показати мнемонічну фразу/ключі",
|
||||||
"show_market_place": "Відображати маркетплейс",
|
"show_market_place": "Відображати маркетплейс",
|
||||||
|
@ -943,6 +949,5 @@
|
||||||
"you_pay": "Ви платите",
|
"you_pay": "Ви платите",
|
||||||
"you_will_get": "Конвертувати в",
|
"you_will_get": "Конвертувати в",
|
||||||
"you_will_send": "Конвертувати з",
|
"you_will_send": "Конвертувати з",
|
||||||
"yy": "YY",
|
"yy": "YY"
|
||||||
"contact_name_exists": "Контакт із такою назвою вже існує. Виберіть інше ім'я."
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "کلیرنیٹ لنک",
|
"clearnet_link": "کلیرنیٹ لنک",
|
||||||
"close": "بند کریں",
|
"close": "بند کریں",
|
||||||
"coin_control": "سکے کنٹرول (اختیاری)",
|
"coin_control": "سکے کنٹرول (اختیاری)",
|
||||||
"cold_or_recover_wallet": "ٹھنڈا پرس ڈالیں یا کاغذ کا پرس بازیافت کریں",
|
"cold_or_recover_wallet": "Cupcake یا سرد بٹوے سے صرف ایک پڑھنے والا پرس شامل کریں یا کاغذ کا پرس بازیافت کریں",
|
||||||
"color_theme": "رنگین تھیم",
|
"color_theme": "رنگین تھیم",
|
||||||
"commit_transaction_amount_fee": "لین دین کا ارتکاب کریں\\nرقم: ${amount}\\nفیس: ${fee}",
|
"commit_transaction_amount_fee": "لین دین کا ارتکاب کریں\\nرقم: ${amount}\\nفیس: ${fee}",
|
||||||
"confirm": "تصدیق کریں۔",
|
"confirm": "تصدیق کریں۔",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "رابطے",
|
"contact_list_contacts": "رابطے",
|
||||||
"contact_list_wallets": "میرے بٹوے",
|
"contact_list_wallets": "میرے بٹوے",
|
||||||
"contact_name": "رابطے کا نام",
|
"contact_name": "رابطے کا نام",
|
||||||
|
"contact_name_exists": " ۔ﮟﯾﺮﮐ ﺐﺨﺘﻨﻣ ﻡﺎﻧ ﻒﻠﺘﺨﻣ ﮏﯾﺍ ﻡﺮﮐ ﮦﺍﺮﺑ ۔ﮯﮨ ﺩﻮﺟﻮﻣ ﮯﺳ ﮯﻠﮩﭘ ﮧﻄﺑﺍﺭ ﮏﯾﺍ ﮫﺗﺎﺳ ﮯﮐ ﻡﺎﻧ ﺱﺍ",
|
||||||
"contact_support": "سپورٹ سے رابطہ کریں۔",
|
"contact_support": "سپورٹ سے رابطہ کریں۔",
|
||||||
"continue_text": "جاری رہے",
|
"continue_text": "جاری رہے",
|
||||||
"contract_warning": "اس معاہدے کے پتے کو ممکنہ طور پر جعلی قرار دیا گیا ہے۔ براہ کرم احتیاط کے ساتھ کارروائی کریں۔",
|
"contract_warning": "اس معاہدے کے پتے کو ممکنہ طور پر جعلی قرار دیا گیا ہے۔ براہ کرم احتیاط کے ساتھ کارروائی کریں۔",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "میعاد ختم اور صداقت",
|
"expiry_and_validity": "میعاد ختم اور صداقت",
|
||||||
"export_backup": "بیک اپ برآمد کریں۔",
|
"export_backup": "بیک اپ برآمد کریں۔",
|
||||||
"export_logs": "نوشتہ جات برآمد کریں",
|
"export_logs": "نوشتہ جات برآمد کریں",
|
||||||
|
"export_outputs": "برآمد کے نتائج",
|
||||||
"extra_id": "اضافی ID:",
|
"extra_id": "اضافی ID:",
|
||||||
"extracted_address_content": "آپ فنڈز بھیج رہے ہوں گے\n${recipient_name}",
|
"extracted_address_content": "آپ فنڈز بھیج رہے ہوں گے\n${recipient_name}",
|
||||||
"failed_authentication": "ناکام تصدیق۔ ${state_error}",
|
"failed_authentication": "ناکام تصدیق۔ ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven از Cake والیٹ",
|
"haven_app": "Haven از Cake والیٹ",
|
||||||
"haven_app_wallet_text": "Havek کے لیے زبردست پرس",
|
"haven_app_wallet_text": "Havek کے لیے زبردست پرس",
|
||||||
"help": "مدد",
|
"help": "مدد",
|
||||||
|
"hidden_addresses": "پوشیدہ پتے",
|
||||||
"hidden_balance": "پوشیدہ بیلنس",
|
"hidden_balance": "پوشیدہ بیلنس",
|
||||||
|
"hide": "چھپائیں",
|
||||||
"hide_details": "تفصیلات چھپائیں۔",
|
"hide_details": "تفصیلات چھپائیں۔",
|
||||||
"high_contrast_theme": "ہائی کنٹراسٹ تھیم",
|
"high_contrast_theme": "ہائی کنٹراسٹ تھیم",
|
||||||
"home_screen_settings": "ہوم اسکرین کی ترتیبات",
|
"home_screen_settings": "ہوم اسکرین کی ترتیبات",
|
||||||
|
@ -502,6 +506,7 @@
|
||||||
"pre_seed_title": "اہم",
|
"pre_seed_title": "اہم",
|
||||||
"prepaid_cards": "پری پیڈ کارڈز",
|
"prepaid_cards": "پری پیڈ کارڈز",
|
||||||
"prevent_screenshots": "اسکرین شاٹس اور اسکرین ریکارڈنگ کو روکیں۔",
|
"prevent_screenshots": "اسکرین شاٹس اور اسکرین ریکارڈنگ کو روکیں۔",
|
||||||
|
"primary_address": "بنیادی پتہ",
|
||||||
"privacy": "رازداری",
|
"privacy": "رازداری",
|
||||||
"privacy_policy": "رازداری کی پالیسی",
|
"privacy_policy": "رازداری کی پالیسی",
|
||||||
"privacy_settings": "رازداری کی ترتیبات",
|
"privacy_settings": "رازداری کی ترتیبات",
|
||||||
|
@ -698,6 +703,7 @@
|
||||||
"share": "بانٹیں",
|
"share": "بانٹیں",
|
||||||
"share_address": "پتہ شیئر کریں۔",
|
"share_address": "پتہ شیئر کریں۔",
|
||||||
"shared_seed_wallet_groups": "مشترکہ بیج پرس گروپ",
|
"shared_seed_wallet_groups": "مشترکہ بیج پرس گروپ",
|
||||||
|
"show": "دکھائیں",
|
||||||
"show_details": "تفصیلات دکھائیں",
|
"show_details": "تفصیلات دکھائیں",
|
||||||
"show_keys": "بیج / چابیاں دکھائیں۔",
|
"show_keys": "بیج / چابیاں دکھائیں۔",
|
||||||
"show_market_place": "بازار دکھائیں۔",
|
"show_market_place": "بازار دکھائیں۔",
|
||||||
|
@ -944,6 +950,5 @@
|
||||||
"you_pay": "تم ادا کرو",
|
"you_pay": "تم ادا کرو",
|
||||||
"you_will_get": "میں تبدیل کریں۔",
|
"you_will_get": "میں تبدیل کریں۔",
|
||||||
"you_will_send": "سے تبدیل کریں۔",
|
"you_will_send": "سے تبدیل کریں۔",
|
||||||
"yy": "YY",
|
"yy": "YY"
|
||||||
"contact_name_exists": " ۔ﮟﯾﺮﮐ ﺐﺨﺘﻨﻣ ﻡﺎﻧ ﻒﻠﺘﺨﻣ ﮏﯾﺍ ﻡﺮﮐ ﮦﺍﺮﺑ ۔ﮯﮨ ﺩﻮﺟﻮﻣ ﮯﺳ ﮯﻠﮩﭘ ﮧﻄﺑﺍﺭ ﮏﯾﺍ ﮫﺗﺎﺳ ﮯﮐ ﻡﺎﻧ ﺱﺍ"
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "Liên kết Clearnet",
|
"clearnet_link": "Liên kết Clearnet",
|
||||||
"close": "Đóng",
|
"close": "Đóng",
|
||||||
"coin_control": "Kiểm soát đồng xu (tùy chọn)",
|
"coin_control": "Kiểm soát đồng xu (tùy chọn)",
|
||||||
"cold_or_recover_wallet": "Thêm ví lạnh hoặc khôi phục ví giấy",
|
"cold_or_recover_wallet": "Thêm ví chỉ đọc từ Cupcake hoặc ví lạnh hoặc thu hồi ví giấy",
|
||||||
"color_theme": "Chủ đề màu sắc",
|
"color_theme": "Chủ đề màu sắc",
|
||||||
"commit_transaction_amount_fee": "Cam kết giao dịch\nSố tiền: ${amount}\nPhí: ${fee}",
|
"commit_transaction_amount_fee": "Cam kết giao dịch\nSố tiền: ${amount}\nPhí: ${fee}",
|
||||||
"confirm": "Xác nhận",
|
"confirm": "Xác nhận",
|
||||||
|
@ -162,6 +162,7 @@
|
||||||
"contact_list_contacts": "Danh bạ",
|
"contact_list_contacts": "Danh bạ",
|
||||||
"contact_list_wallets": "Ví của tôi",
|
"contact_list_wallets": "Ví của tôi",
|
||||||
"contact_name": "Tên liên hệ",
|
"contact_name": "Tên liên hệ",
|
||||||
|
"contact_name_exists": "Một liên hệ với cái tên đó đã tồn tại. Vui lòng chọn một tên khác.",
|
||||||
"contact_support": "Liên hệ Hỗ trợ",
|
"contact_support": "Liên hệ Hỗ trợ",
|
||||||
"continue_text": "Tiếp tục",
|
"continue_text": "Tiếp tục",
|
||||||
"contract_warning": "Địa chỉ hợp đồng này đã được gắn cờ là có khả năng lừa đảo. Vui lòng xử lý một cách thận trọng.",
|
"contract_warning": "Địa chỉ hợp đồng này đã được gắn cờ là có khả năng lừa đảo. Vui lòng xử lý một cách thận trọng.",
|
||||||
|
@ -297,6 +298,7 @@
|
||||||
"expiry_and_validity": "Hạn và hiệu lực",
|
"expiry_and_validity": "Hạn và hiệu lực",
|
||||||
"export_backup": "Xuất sao lưu",
|
"export_backup": "Xuất sao lưu",
|
||||||
"export_logs": "Nhật ký xuất khẩu",
|
"export_logs": "Nhật ký xuất khẩu",
|
||||||
|
"export_outputs": "Đầu ra xuất khẩu",
|
||||||
"extra_id": "ID bổ sung:",
|
"extra_id": "ID bổ sung:",
|
||||||
"extracted_address_content": "Bạn sẽ gửi tiền cho\n${recipient_name}",
|
"extracted_address_content": "Bạn sẽ gửi tiền cho\n${recipient_name}",
|
||||||
"failed_authentication": "Xác thực không thành công. ${state_error}",
|
"failed_authentication": "Xác thực không thành công. ${state_error}",
|
||||||
|
@ -337,7 +339,9 @@
|
||||||
"haven_app": "Haven bởi Cake Wallet",
|
"haven_app": "Haven bởi Cake Wallet",
|
||||||
"haven_app_wallet_text": "Ví tuyệt vời cho Haven",
|
"haven_app_wallet_text": "Ví tuyệt vời cho Haven",
|
||||||
"help": "Trợ giúp",
|
"help": "Trợ giúp",
|
||||||
|
"hidden_addresses": "Địa chỉ ẩn",
|
||||||
"hidden_balance": "Số dư ẩn",
|
"hidden_balance": "Số dư ẩn",
|
||||||
|
"hide": "Trốn",
|
||||||
"hide_details": "Ẩn chi tiết",
|
"hide_details": "Ẩn chi tiết",
|
||||||
"high_contrast_theme": "Chủ đề độ tương phản cao",
|
"high_contrast_theme": "Chủ đề độ tương phản cao",
|
||||||
"home_screen_settings": "Cài đặt màn hình chính",
|
"home_screen_settings": "Cài đặt màn hình chính",
|
||||||
|
@ -367,14 +371,22 @@
|
||||||
"ledger_error_wrong_app": "Vui lòng đảm bảo bạn đã mở đúng ứng dụng trên Ledger của mình",
|
"ledger_error_wrong_app": "Vui lòng đảm bảo bạn đã mở đúng ứng dụng trên Ledger của mình",
|
||||||
"ledger_please_enable_bluetooth": "Vui lòng bật Bluetooth để phát hiện Ledger của bạn",
|
"ledger_please_enable_bluetooth": "Vui lòng bật Bluetooth để phát hiện Ledger của bạn",
|
||||||
"light_theme": "Chủ đề sáng",
|
"light_theme": "Chủ đề sáng",
|
||||||
|
"litecoin_enable_mweb_sync": "Bật quét MWEB",
|
||||||
|
"litecoin_mweb": "Mweb",
|
||||||
|
"litecoin_mweb_always_scan": "Đặt MWEB luôn quét",
|
||||||
"litecoin_mweb_description": "MWEB là một giao thức mới mang lại các giao dịch nhanh hơn, rẻ hơn và riêng tư hơn cho Litecoin",
|
"litecoin_mweb_description": "MWEB là một giao thức mới mang lại các giao dịch nhanh hơn, rẻ hơn và riêng tư hơn cho Litecoin",
|
||||||
"litecoin_mweb_dismiss": "Miễn nhiệm",
|
"litecoin_mweb_dismiss": "Miễn nhiệm",
|
||||||
|
"litecoin_mweb_display_card": "Hiển thị thẻ MWEB",
|
||||||
"litecoin_mweb_enable": "Bật MWEB",
|
"litecoin_mweb_enable": "Bật MWEB",
|
||||||
"litecoin_mweb_enable_later": "Bạn có thể chọn bật lại MWEB trong cài đặt hiển thị.",
|
"litecoin_mweb_enable_later": "Bạn có thể chọn bật lại MWEB trong cài đặt hiển thị.",
|
||||||
"litecoin_mweb_logs": "Nhật ký MWEB",
|
"litecoin_mweb_logs": "Nhật ký MWEB",
|
||||||
"litecoin_mweb_node": "Nút MWEB",
|
"litecoin_mweb_node": "Nút MWEB",
|
||||||
"litecoin_mweb_pegin": "Chốt vào",
|
"litecoin_mweb_pegin": "Chốt vào",
|
||||||
"litecoin_mweb_pegout": "Chốt ra",
|
"litecoin_mweb_pegout": "Chốt ra",
|
||||||
|
"litecoin_mweb_scanning": "Quét MWEB",
|
||||||
|
"litecoin_mweb_settings": "Cài đặt MWEB",
|
||||||
|
"litecoin_mweb_warning": "Sử dụng MWEB ban đầu sẽ tải xuống ~ 600MB dữ liệu và có thể mất tới 30 phút tùy thuộc vào tốc độ mạng. Dữ liệu ban đầu này sẽ chỉ tải xuống một lần và có sẵn cho tất cả các ví Litecoin",
|
||||||
|
"litecoin_what_is_mweb": "MWEB là gì?",
|
||||||
"live_fee_rates": "Tỷ lệ phí hiện tại qua API",
|
"live_fee_rates": "Tỷ lệ phí hiện tại qua API",
|
||||||
"load_more": "Tải thêm",
|
"load_more": "Tải thêm",
|
||||||
"loading_your_wallet": "Đang tải ví của bạn",
|
"loading_your_wallet": "Đang tải ví của bạn",
|
||||||
|
@ -493,6 +505,7 @@
|
||||||
"pre_seed_title": "QUAN TRỌNG",
|
"pre_seed_title": "QUAN TRỌNG",
|
||||||
"prepaid_cards": "Thẻ trả trước",
|
"prepaid_cards": "Thẻ trả trước",
|
||||||
"prevent_screenshots": "Ngăn chặn ảnh chụp màn hình và ghi hình màn hình",
|
"prevent_screenshots": "Ngăn chặn ảnh chụp màn hình và ghi hình màn hình",
|
||||||
|
"primary_address": "Địa chỉ chính",
|
||||||
"privacy": "Quyền riêng tư",
|
"privacy": "Quyền riêng tư",
|
||||||
"privacy_policy": "Chính sách quyền riêng tư",
|
"privacy_policy": "Chính sách quyền riêng tư",
|
||||||
"privacy_settings": "Cài đặt quyền riêng tư",
|
"privacy_settings": "Cài đặt quyền riêng tư",
|
||||||
|
@ -689,6 +702,7 @@
|
||||||
"share": "Chia sẻ",
|
"share": "Chia sẻ",
|
||||||
"share_address": "Chia sẻ địa chỉ",
|
"share_address": "Chia sẻ địa chỉ",
|
||||||
"shared_seed_wallet_groups": "Nhóm ví hạt được chia sẻ",
|
"shared_seed_wallet_groups": "Nhóm ví hạt được chia sẻ",
|
||||||
|
"show": "Trình diễn",
|
||||||
"show_details": "Hiển thị chi tiết",
|
"show_details": "Hiển thị chi tiết",
|
||||||
"show_keys": "Hiển thị hạt giống/khóa",
|
"show_keys": "Hiển thị hạt giống/khóa",
|
||||||
"show_market_place": "Hiển thị Thị trường",
|
"show_market_place": "Hiển thị Thị trường",
|
||||||
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "Kọja ilọ oke",
|
"clearnet_link": "Kọja ilọ oke",
|
||||||
"close": "sunmo",
|
"close": "sunmo",
|
||||||
"coin_control": "Ìdarí owó ẹyọ (ìyàn nìyí)",
|
"coin_control": "Ìdarí owó ẹyọ (ìyàn nìyí)",
|
||||||
"cold_or_recover_wallet": "Fi owo aisan tabi yiyewo owo iwe iwe",
|
"cold_or_recover_wallet": "Ṣafikun apamọwọ kika-nikan lati Cupcake tabi apamọwọ tutu tabi gba owo apamọwọ iwe kan",
|
||||||
"color_theme": "Àwọn ààtò àwọ̀",
|
"color_theme": "Àwọn ààtò àwọ̀",
|
||||||
"commit_transaction_amount_fee": "Jẹ́rìí sí àránṣẹ́\nOwó: ${amount}\nIye àfikún: ${fee}",
|
"commit_transaction_amount_fee": "Jẹ́rìí sí àránṣẹ́\nOwó: ${amount}\nIye àfikún: ${fee}",
|
||||||
"confirm": "Jẹ́rìísí",
|
"confirm": "Jẹ́rìísí",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "Àwọn olùbásọ̀rọ̀",
|
"contact_list_contacts": "Àwọn olùbásọ̀rọ̀",
|
||||||
"contact_list_wallets": "Àwọn àpamọ́wọ́ mi",
|
"contact_list_wallets": "Àwọn àpamọ́wọ́ mi",
|
||||||
"contact_name": "Orúkọ olùbásọ̀rọ̀",
|
"contact_name": "Orúkọ olùbásọ̀rọ̀",
|
||||||
|
"contact_name_exists": "Olubasọrọ pẹlu orukọ yẹn ti wa tẹlẹ. Jọwọ yan orukọ ti o yatọ.",
|
||||||
"contact_support": "Bá ìranlọ́wọ́ sọ̀rọ̀",
|
"contact_support": "Bá ìranlọ́wọ́ sọ̀rọ̀",
|
||||||
"continue_text": "Tẹ̀síwájú",
|
"continue_text": "Tẹ̀síwájú",
|
||||||
"contract_warning": "Adirẹsi adehun adehun yii ti samisi bi arekereke. Jọwọ ṣe ilana pẹlu iṣọra.",
|
"contract_warning": "Adirẹsi adehun adehun yii ti samisi bi arekereke. Jọwọ ṣe ilana pẹlu iṣọra.",
|
||||||
|
@ -297,6 +298,7 @@
|
||||||
"expiry_and_validity": "Ipari ati idaniloju",
|
"expiry_and_validity": "Ipari ati idaniloju",
|
||||||
"export_backup": "Sún ẹ̀dà nípamọ́ síta",
|
"export_backup": "Sún ẹ̀dà nípamọ́ síta",
|
||||||
"export_logs": "Wọle si okeere",
|
"export_logs": "Wọle si okeere",
|
||||||
|
"export_outputs": "Agbohunlu okeere",
|
||||||
"extra_id": "Àmì ìdánimọ̀ tó fikún:",
|
"extra_id": "Àmì ìdánimọ̀ tó fikún:",
|
||||||
"extracted_address_content": "Ẹ máa máa fi owó ránṣẹ́ sí\n${recipient_name}",
|
"extracted_address_content": "Ẹ máa máa fi owó ránṣẹ́ sí\n${recipient_name}",
|
||||||
"failed_authentication": "Ìfẹ̀rílàdí pipòfo. ${state_error}",
|
"failed_authentication": "Ìfẹ̀rílàdí pipòfo. ${state_error}",
|
||||||
|
@ -337,7 +339,9 @@
|
||||||
"haven_app": "Haven latí ọwọ́ Cake Wallet",
|
"haven_app": "Haven latí ọwọ́ Cake Wallet",
|
||||||
"haven_app_wallet_text": "Àpamọ́wọ́ Haven wà pa",
|
"haven_app_wallet_text": "Àpamọ́wọ́ Haven wà pa",
|
||||||
"help": "ìranlọ́wọ́",
|
"help": "ìranlọ́wọ́",
|
||||||
|
"hidden_addresses": "Awọn adirẹsi ti o farapamọ",
|
||||||
"hidden_balance": "Ìyókù owó dídé",
|
"hidden_balance": "Ìyókù owó dídé",
|
||||||
|
"hide": "Pamọ",
|
||||||
"hide_details": "Dé ìsọfúnni kékeré",
|
"hide_details": "Dé ìsọfúnni kékeré",
|
||||||
"high_contrast_theme": "Akori Iyatọ giga",
|
"high_contrast_theme": "Akori Iyatọ giga",
|
||||||
"home_screen_settings": "Awọn eto iboju ile",
|
"home_screen_settings": "Awọn eto iboju ile",
|
||||||
|
@ -501,6 +505,7 @@
|
||||||
"pre_seed_title": "Ó TI ṢE PÀTÀKÌ",
|
"pre_seed_title": "Ó TI ṢE PÀTÀKÌ",
|
||||||
"prepaid_cards": "Awọn kaadi ti a ti sanwo",
|
"prepaid_cards": "Awọn kaadi ti a ti sanwo",
|
||||||
"prevent_screenshots": "Pese asapọ ti awọn ẹrọ eto aṣa",
|
"prevent_screenshots": "Pese asapọ ti awọn ẹrọ eto aṣa",
|
||||||
|
"primary_address": "Adirẹsi akọkọ",
|
||||||
"privacy": "Ìdáwà",
|
"privacy": "Ìdáwà",
|
||||||
"privacy_policy": "Òfin Aládàáni",
|
"privacy_policy": "Òfin Aládàáni",
|
||||||
"privacy_settings": "Ààtò àdáni",
|
"privacy_settings": "Ààtò àdáni",
|
||||||
|
@ -697,6 +702,7 @@
|
||||||
"share": "Pinpin",
|
"share": "Pinpin",
|
||||||
"share_address": "Pín àdírẹ́sì",
|
"share_address": "Pín àdírẹ́sì",
|
||||||
"shared_seed_wallet_groups": "Awọn ẹgbẹ ti a pin irugbin",
|
"shared_seed_wallet_groups": "Awọn ẹgbẹ ti a pin irugbin",
|
||||||
|
"show": "Fihan",
|
||||||
"show_details": "Fi ìsọfúnni kékeré hàn",
|
"show_details": "Fi ìsọfúnni kékeré hàn",
|
||||||
"show_keys": "Wo hóró / àwọn kọ́kọ́rọ́",
|
"show_keys": "Wo hóró / àwọn kọ́kọ́rọ́",
|
||||||
"show_market_place": "Wa Sopọ Pataki",
|
"show_market_place": "Wa Sopọ Pataki",
|
||||||
|
@ -943,6 +949,5 @@
|
||||||
"you_pay": "Ẹ sàn",
|
"you_pay": "Ẹ sàn",
|
||||||
"you_will_get": "Ṣe pàṣípààrọ̀ sí",
|
"you_will_get": "Ṣe pàṣípààrọ̀ sí",
|
||||||
"you_will_send": "Ṣe pàṣípààrọ̀ láti",
|
"you_will_send": "Ṣe pàṣípààrọ̀ láti",
|
||||||
"yy": "Ọd",
|
"yy": "Ọd"
|
||||||
"contact_name_exists": "Olubasọrọ pẹlu orukọ yẹn ti wa tẹlẹ. Jọwọ yan orukọ ti o yatọ."
|
}
|
||||||
}
|
|
|
@ -136,7 +136,7 @@
|
||||||
"clearnet_link": "明网链接",
|
"clearnet_link": "明网链接",
|
||||||
"close": "关闭",
|
"close": "关闭",
|
||||||
"coin_control": "硬幣控制(可選)",
|
"coin_control": "硬幣控制(可選)",
|
||||||
"cold_or_recover_wallet": "添加冷钱包或恢复纸钱包",
|
"cold_or_recover_wallet": "从Cupcake或冷钱包中添加只读的钱包或恢复纸钱包",
|
||||||
"color_theme": "主题",
|
"color_theme": "主题",
|
||||||
"commit_transaction_amount_fee": "提交交易\n金额: ${amount}\n手续费: ${fee}",
|
"commit_transaction_amount_fee": "提交交易\n金额: ${amount}\n手续费: ${fee}",
|
||||||
"confirm": "确认",
|
"confirm": "确认",
|
||||||
|
@ -161,6 +161,7 @@
|
||||||
"contact_list_contacts": "联系人",
|
"contact_list_contacts": "联系人",
|
||||||
"contact_list_wallets": "我的钱包",
|
"contact_list_wallets": "我的钱包",
|
||||||
"contact_name": "联系人姓名",
|
"contact_name": "联系人姓名",
|
||||||
|
"contact_name_exists": "已存在具有该名称的联系人。请选择不同的名称。",
|
||||||
"contact_support": "联系支持",
|
"contact_support": "联系支持",
|
||||||
"continue_text": "继续",
|
"continue_text": "继续",
|
||||||
"contract_warning": "该合同地址已被标记为潜在的欺诈性。请谨慎处理。",
|
"contract_warning": "该合同地址已被标记为潜在的欺诈性。请谨慎处理。",
|
||||||
|
@ -296,6 +297,7 @@
|
||||||
"expiry_and_validity": "到期和有效性",
|
"expiry_and_validity": "到期和有效性",
|
||||||
"export_backup": "导出备份",
|
"export_backup": "导出备份",
|
||||||
"export_logs": "导出日志",
|
"export_logs": "导出日志",
|
||||||
|
"export_outputs": "导出输出",
|
||||||
"extra_id": "额外ID:",
|
"extra_id": "额外ID:",
|
||||||
"extracted_address_content": "您将汇款至\n${recipient_name}",
|
"extracted_address_content": "您将汇款至\n${recipient_name}",
|
||||||
"failed_authentication": "身份验证失败. ${state_error}",
|
"failed_authentication": "身份验证失败. ${state_error}",
|
||||||
|
@ -336,7 +338,9 @@
|
||||||
"haven_app": "Haven by Cake Wallet",
|
"haven_app": "Haven by Cake Wallet",
|
||||||
"haven_app_wallet_text": "Awesome wallet for Haven",
|
"haven_app_wallet_text": "Awesome wallet for Haven",
|
||||||
"help": "帮助",
|
"help": "帮助",
|
||||||
|
"hidden_addresses": "隐藏的地址",
|
||||||
"hidden_balance": "隐藏余额",
|
"hidden_balance": "隐藏余额",
|
||||||
|
"hide": "隐藏",
|
||||||
"hide_details": "隐藏细节",
|
"hide_details": "隐藏细节",
|
||||||
"high_contrast_theme": "高对比度主题",
|
"high_contrast_theme": "高对比度主题",
|
||||||
"home_screen_settings": "主屏幕设置",
|
"home_screen_settings": "主屏幕设置",
|
||||||
|
@ -500,6 +504,7 @@
|
||||||
"pre_seed_title": "重要",
|
"pre_seed_title": "重要",
|
||||||
"prepaid_cards": "预付费卡",
|
"prepaid_cards": "预付费卡",
|
||||||
"prevent_screenshots": "防止截屏和录屏",
|
"prevent_screenshots": "防止截屏和录屏",
|
||||||
|
"primary_address": "主要地址",
|
||||||
"privacy": "隐私",
|
"privacy": "隐私",
|
||||||
"privacy_policy": "隐私政策",
|
"privacy_policy": "隐私政策",
|
||||||
"privacy_settings": "隐私设置",
|
"privacy_settings": "隐私设置",
|
||||||
|
@ -696,6 +701,7 @@
|
||||||
"share": "分享",
|
"share": "分享",
|
||||||
"share_address": "分享地址",
|
"share_address": "分享地址",
|
||||||
"shared_seed_wallet_groups": "共享种子钱包组",
|
"shared_seed_wallet_groups": "共享种子钱包组",
|
||||||
|
"show": "展示",
|
||||||
"show_details": "显示详细信息",
|
"show_details": "显示详细信息",
|
||||||
"show_keys": "显示种子/密钥",
|
"show_keys": "显示种子/密钥",
|
||||||
"show_market_place": "显示市场",
|
"show_market_place": "显示市场",
|
||||||
|
@ -942,6 +948,5 @@
|
||||||
"you_pay": "你付钱",
|
"you_pay": "你付钱",
|
||||||
"you_will_get": "转换到",
|
"you_will_get": "转换到",
|
||||||
"you_will_send": "转换自",
|
"you_will_send": "转换自",
|
||||||
"yy": "YY",
|
"yy": "YY"
|
||||||
"contact_name_exists": "已存在具有该名称的联系人。请选择不同的名称。"
|
}
|
||||||
}
|
|
|
@ -9,7 +9,7 @@ gen_podspec() {
|
||||||
DEFAULT_FILE_PATH="${CW_PLUGIN_DIR}/${DEFAULT_FILENAME}"
|
DEFAULT_FILE_PATH="${CW_PLUGIN_DIR}/${DEFAULT_FILENAME}"
|
||||||
rm -f $DEFAULT_FILE_PATH
|
rm -f $DEFAULT_FILE_PATH
|
||||||
cp $BASE_FILE_PATH $DEFAULT_FILE_PATH
|
cp $BASE_FILE_PATH $DEFAULT_FILE_PATH
|
||||||
sed -i '' "s/#___VALID_ARCHS___#/${ARCH}/g" $DEFAULT_FILE_PATH
|
gsed -i "s/#___VALID_ARCHS___#/${ARCH}/g" $DEFAULT_FILE_PATH
|
||||||
}
|
}
|
||||||
|
|
||||||
gen_project() {
|
gen_project() {
|
||||||
|
@ -17,7 +17,7 @@ gen_project() {
|
||||||
CW_DIR="`pwd`/../../macos/Runner.xcodeproj"
|
CW_DIR="`pwd`/../../macos/Runner.xcodeproj"
|
||||||
DEFAULT_FILENAME="project.pbxproj"
|
DEFAULT_FILENAME="project.pbxproj"
|
||||||
DEFAULT_FILE_PATH="${CW_DIR}/${DEFAULT_FILENAME}"
|
DEFAULT_FILE_PATH="${CW_DIR}/${DEFAULT_FILENAME}"
|
||||||
sed -i '' "s/ARCHS =.*/ARCHS = \"${ARCH}\";/g" $DEFAULT_FILE_PATH
|
gsed -i "s/ARCHS =.*/ARCHS = \"${ARCH}\";/g" $DEFAULT_FILE_PATH
|
||||||
}
|
}
|
||||||
|
|
||||||
gen() {
|
gen() {
|
||||||
|
|
|
@ -276,6 +276,7 @@ import 'package:cw_core/get_height_by_date.dart';
|
||||||
import 'package:cw_core/monero_amount_format.dart';
|
import 'package:cw_core/monero_amount_format.dart';
|
||||||
import 'package:cw_core/monero_transaction_priority.dart';
|
import 'package:cw_core/monero_transaction_priority.dart';
|
||||||
import 'package:cw_monero/monero_unspent.dart';
|
import 'package:cw_monero/monero_unspent.dart';
|
||||||
|
import 'package:cw_monero/api/account_list.dart';
|
||||||
import 'package:cw_monero/monero_wallet_service.dart';
|
import 'package:cw_monero/monero_wallet_service.dart';
|
||||||
import 'package:cw_monero/api/wallet_manager.dart';
|
import 'package:cw_monero/api/wallet_manager.dart';
|
||||||
import 'package:cw_monero/monero_wallet.dart';
|
import 'package:cw_monero/monero_wallet.dart';
|
||||||
|
@ -379,6 +380,12 @@ abstract class Monero {
|
||||||
|
|
||||||
Future<int> getCurrentHeight();
|
Future<int> getCurrentHeight();
|
||||||
|
|
||||||
|
Future<bool> commitTransactionUR(Object wallet, String ur);
|
||||||
|
|
||||||
|
String exportOutputsUR(Object wallet, bool all);
|
||||||
|
|
||||||
|
bool importKeyImagesUR(Object wallet, String ur);
|
||||||
|
|
||||||
WalletCredentials createMoneroRestoreWalletFromKeysCredentials({
|
WalletCredentials createMoneroRestoreWalletFromKeysCredentials({
|
||||||
required String name,
|
required String name,
|
||||||
required String spendKey,
|
required String spendKey,
|
||||||
|
@ -398,6 +405,7 @@ abstract class Monero {
|
||||||
int formatterMoneroParseAmount({required String amount});
|
int formatterMoneroParseAmount({required String amount});
|
||||||
Account getCurrentAccount(Object wallet);
|
Account getCurrentAccount(Object wallet);
|
||||||
void monerocCheck();
|
void monerocCheck();
|
||||||
|
bool isViewOnly();
|
||||||
void setCurrentAccount(Object wallet, int id, String label, String? balance);
|
void setCurrentAccount(Object wallet, int id, String label, String? balance);
|
||||||
void onStartup();
|
void onStartup();
|
||||||
int getTransactionInfoAccountId(TransactionInfo tx);
|
int getTransactionInfoAccountId(TransactionInfo tx);
|
||||||
|
|
|
@ -13,7 +13,6 @@ list(APPEND FLUTTER_PLUGIN_LIST
|
||||||
)
|
)
|
||||||
|
|
||||||
list(APPEND FLUTTER_FFI_PLUGIN_LIST
|
list(APPEND FLUTTER_FFI_PLUGIN_LIST
|
||||||
sp_scanner
|
|
||||||
)
|
)
|
||||||
|
|
||||||
set(PLUGIN_BUNDLED_LIBRARIES)
|
set(PLUGIN_BUNDLED_LIBRARIES)
|
||||||
|
|
Loading…
Reference in a new issue