CW-1045-Ledger-Bugs-Enhancements (#2278)

* feat: prepare ledger.dart to use callbacks

* feat: set ledger callback using monero_c

* fix(cw_monero): async ledger

* build: Bump monero_c dependencies

* feat: Add "How to connect" to HW Device selection screen

* refactor: use monero_c free to clean pointer

* fix: use new monero_c deps

* fix: merge conflicts regarding new theming

* feat: add status bottomsheet indicating an ongoing signing process

* fix: getLastLedgerCommand monero.dart generation

* reformat send_view_model.dart [skip ci]

---------

Co-authored-by: Czarek Nakamoto <cyjan@mrcyjanek.net>
Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com>
This commit is contained in:
Konstantin Ullrich 2025-05-26 17:38:51 +02:00 committed by GitHub
parent e03dcc7fe9
commit 90aee053cd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
46 changed files with 660 additions and 315 deletions

View file

@ -388,9 +388,7 @@ Future<void> loadWallet(
if (gLedger == null) { if (gLedger == null) {
throw Exception("Tried to open a ledger wallet with no ledger connected"); throw Exception("Tried to open a ledger wallet with no ledger connected");
} }
final dummyWPtr = (currentWallet ?? enableLedgerExchange(gLedger!);
wmPtr.openWallet(path: '', password: ''));
enableLedgerExchange(dummyWPtr, gLedger!);
} }
final addr = wmPtr.ffiAddress(); final addr = wmPtr.ffiAddress();

View file

@ -2,75 +2,50 @@ import 'dart:async';
import 'dart:ffi'; import 'dart:ffi';
import 'dart:typed_data'; import 'dart:typed_data';
import 'package:collection/collection.dart';
import 'package:cw_core/utils/print_verbose.dart'; import 'package:cw_core/utils/print_verbose.dart';
import 'package:ffi/ffi.dart'; import 'package:ffi/ffi.dart';
import 'package:flutter/foundation.dart';
import 'package:ledger_flutter_plus/ledger_flutter_plus.dart'; import 'package:ledger_flutter_plus/ledger_flutter_plus.dart';
import 'package:ledger_flutter_plus/ledger_flutter_plus_dart.dart'; import 'package:ledger_flutter_plus/ledger_flutter_plus_dart.dart';
import 'package:monero/src/wallet2.dart'; import 'package:monero/src/monero.dart' as api;
LedgerConnection? gLedger; LedgerConnection? gLedger;
String? latestLedgerCommand;
Timer? _ledgerExchangeTimer; typedef LedgerCallback = Void Function(Pointer<UnsignedChar>, UnsignedInt);
Timer? _ledgerKeepAlive; NativeCallable<LedgerCallback>? callable;
void enableLedgerExchange(Wallet2Wallet wallet, LedgerConnection connection) { void enableLedgerExchange(LedgerConnection connection) {
_ledgerExchangeTimer?.cancel(); callable?.close();
_ledgerExchangeTimer = Timer.periodic(Duration(milliseconds: 1), (_) async {
final ledgerRequestLength = wallet.getSendToDeviceLength();
final ledgerRequest = wallet.getSendToDevice()
.cast<Uint8>()
.asTypedList(ledgerRequestLength);
if (ledgerRequestLength > 0) {
_ledgerKeepAlive?.cancel();
final Pointer<Uint8> emptyPointer = malloc<Uint8>(0); void callback(Pointer<UnsignedChar> request, int requestLength) async {
wallet.setDeviceSendData( final ledgerRequest = request.cast<Uint8>().asTypedList(requestLength);
emptyPointer.cast<UnsignedChar>(), 0);
malloc.free(emptyPointer);
_logLedgerCommand(ledgerRequest, false); _logLedgerCommand(ledgerRequest, false);
final response = await exchange(connection, ledgerRequest); final response = await exchange(connection, ledgerRequest);
_logLedgerCommand(response, true); _logLedgerCommand(response, true);
if (ListEquality().equals(response, [0x55, 0x15])) {
await connection.disconnect();
// // TODO: Show POPUP pls unlock your device
// await Future.delayed(Duration(seconds: 15));
// response = await exchange(connection, ledgerRequest);
}
final Pointer<Uint8> result = malloc<Uint8>(response.length); final Pointer<Uint8> result = malloc<Uint8>(response.length);
for (var i = 0; i < response.length; i++) { for (var i = 0; i < response.length; i++) {
result.asTypedList(response.length)[i] = response[i]; result.asTypedList(response.length)[i] = response[i];
} }
wallet.setDeviceReceivedData( latestLedgerCommand = _ledgerMoneroCommands[ledgerRequest[1]];
api.MoneroWallet.setDeviceReceivedData(
result.cast<UnsignedChar>(), response.length); result.cast<UnsignedChar>(), response.length);
malloc.free(result); api.MoneroFree().free(result.cast());
keepAlive(connection);
}
});
} }
void keepAlive(LedgerConnection connection) { callable = NativeCallable<LedgerCallback>.listener(callback);
if (connection.connectionType == ConnectionType.ble) { api.MoneroWallet.setLedgerCallback(callable!.nativeFunction);
_ledgerKeepAlive = Timer.periodic(Duration(seconds: 10), (_) async {
UniversalBle.setNotifiable(
connection.device.id,
connection.device.deviceInfo.serviceId,
connection.device.deviceInfo.notifyCharacteristicKey,
BleInputProperty.notification,
).onError((_, __) async {});
});
}
} }
void disableLedgerExchange() { void disableLedgerExchange() {
_ledgerExchangeTimer?.cancel(); callable?.close();
_ledgerKeepAlive?.cancel();
gLedger?.disconnect(); gLedger?.disconnect();
gLedger = null; gLedger = null;
latestLedgerCommand = null;
} }
Future<Uint8List> exchange(LedgerConnection connection, Uint8List data) async => Future<Uint8List> exchange(LedgerConnection connection, Uint8List data) async =>
@ -135,8 +110,6 @@ void _logLedgerCommand(Uint8List command, [bool isResponse = true]) {
String toHexString(Uint8List data) => String toHexString(Uint8List data) =>
data.map((e) => e.toRadixString(16).padLeft(2, '0')).join(); data.map((e) => e.toRadixString(16).padLeft(2, '0')).join();
if (isResponse) { if (isResponse) {
printV("< ${toHexString(command)}"); printV("< ${toHexString(command)}");
} else { } else {

View file

@ -927,8 +927,7 @@ abstract class MoneroWalletBase extends WalletBase<MoneroBalance,
} }
void setLedgerConnection(LedgerConnection connection) { void setLedgerConnection(LedgerConnection connection) {
final dummyWPtr = createWalletPointer(); enableLedgerExchange(connection);
enableLedgerExchange(dummyWPtr, connection);
} }
@override @override

View file

@ -294,12 +294,7 @@ class MoneroWalletService extends WalletService<
final password = credentials.password; final password = credentials.password;
final height = credentials.height; final height = credentials.height;
if (currentWallet == null) { enableLedgerExchange(credentials.ledgerConnection);
final tmpWptr = monero_wallet_manager.createWalletPointer();
enableLedgerExchange(tmpWptr, credentials.ledgerConnection);
} else {
enableLedgerExchange(currentWallet!, credentials.ledgerConnection);
}
await monero_wallet_manager.restoreWalletFromHardwareWallet( await monero_wallet_manager.restoreWalletFromHardwareWallet(
path: path, path: path,

View file

@ -42,10 +42,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: async name: async
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.11.0" version: "2.12.0"
bip32: bip32:
dependency: "direct main" dependency: "direct main"
description: description:
@ -83,10 +83,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: boolean_selector name: boolean_selector
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.1" version: "2.1.2"
bs58check: bs58check:
dependency: transitive dependency: transitive
description: description:
@ -172,10 +172,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: characters name: characters
sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.0" version: "1.4.0"
checked_yaml: checked_yaml:
dependency: transitive dependency: transitive
description: description:
@ -188,10 +188,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: clock name: clock
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.1" version: "1.1.2"
code_builder: code_builder:
dependency: transitive dependency: transitive
description: description:
@ -204,10 +204,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: collection name: collection
sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.19.0" version: "1.19.1"
convert: convert:
dependency: transitive dependency: transitive
description: description:
@ -283,10 +283,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: fake_async name: fake_async
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.1" version: "1.3.2"
ffi: ffi:
dependency: "direct main" dependency: "direct main"
description: description:
@ -461,18 +461,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker name: leak_tracker
sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "10.0.7" version: "10.0.8"
leak_tracker_flutter_testing: leak_tracker_flutter_testing:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker_flutter_testing name: leak_tracker_flutter_testing
sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.8" version: "3.0.9"
leak_tracker_testing: leak_tracker_testing:
dependency: transitive dependency: transitive
description: description:
@ -517,10 +517,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: matcher name: matcher
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.12.16+1" version: "0.12.17"
material_color_utilities: material_color_utilities:
dependency: transitive dependency: transitive
description: description:
@ -533,10 +533,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.15.0" version: "1.16.0"
mime: mime:
dependency: transitive dependency: transitive
description: description:
@ -573,8 +573,8 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
path: "impls/monero.dart" path: "impls/monero.dart"
ref: b335585a7fb94b315eb52bd88f2da6d3489fa508 ref: "4868eb9220962a4176a7ed0fc7c809c6200e71a0"
resolved-ref: b335585a7fb94b315eb52bd88f2da6d3489fa508 resolved-ref: "4868eb9220962a4176a7ed0fc7c809c6200e71a0"
url: "https://github.com/mrcyjanek/monero_c" url: "https://github.com/mrcyjanek/monero_c"
source: git source: git
version: "0.0.0" version: "0.0.0"
@ -615,10 +615,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: path name: path
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.9.0" version: "1.9.1"
path_provider: path_provider:
dependency: "direct main" dependency: "direct main"
description: description:
@ -804,26 +804,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: source_span name: source_span
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.10.0" version: "1.10.1"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
name: stack_trace name: stack_trace
sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.12.0" version: "1.12.1"
stream_channel: stream_channel:
dependency: transitive dependency: transitive
description: description:
name: stream_channel name: stream_channel
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.2" version: "2.1.4"
stream_transform: stream_transform:
dependency: transitive dependency: transitive
description: description:
@ -836,26 +836,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: string_scanner name: string_scanner
sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.0" version: "1.4.1"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
name: term_glyph name: term_glyph
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.1" version: "1.2.2"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.7.3" version: "0.7.4"
timing: timing:
dependency: transitive dependency: transitive
description: description:
@ -916,10 +916,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: vm_service name: vm_service
sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "14.3.0" version: "14.3.1"
watcher: watcher:
dependency: "direct overridden" dependency: "direct overridden"
description: description:
@ -977,5 +977,5 @@ packages:
source: hosted source: hosted
version: "3.1.3" version: "3.1.3"
sdks: sdks:
dart: ">=3.6.0 <4.0.0" dart: ">=3.7.0-0 <4.0.0"
flutter: ">=3.24.0" flutter: ">=3.24.0"

View file

@ -2,11 +2,10 @@ name: cw_monero
description: A new flutter plugin project. description: A new flutter plugin project.
version: 0.0.1 version: 0.0.1
publish_to: none publish_to: none
author: Cake Wallet
homepage: https://cakewallet.com homepage: https://cakewallet.com
environment: environment:
sdk: ">=2.19.0 <3.0.0" sdk: ^3.5.0
flutter: ">=1.20.0" flutter: ">=1.20.0"
dependencies: dependencies:
@ -27,7 +26,7 @@ dependencies:
monero: monero:
git: git:
url: https://github.com/mrcyjanek/monero_c url: https://github.com/mrcyjanek/monero_c
ref: b335585a7fb94b315eb52bd88f2da6d3489fa508 ref: a27fbcb24d91143715ed930a05aaa4d853fba1f2
path: impls/monero.dart path: impls/monero.dart
mutex: ^3.1.0 mutex: ^3.1.0
ledger_flutter_plus: ^1.4.1 ledger_flutter_plus: ^1.4.1

View file

@ -37,10 +37,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: async name: async
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.11.0" version: "2.12.0"
blockchain_utils: blockchain_utils:
dependency: transitive dependency: transitive
description: description:
@ -54,10 +54,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: boolean_selector name: boolean_selector
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.1" version: "2.1.2"
build: build:
dependency: transitive dependency: transitive
description: description:
@ -135,10 +135,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: characters name: characters
sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.0" version: "1.4.0"
checked_yaml: checked_yaml:
dependency: transitive dependency: transitive
description: description:
@ -151,10 +151,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: clock name: clock
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.1" version: "1.1.2"
code_builder: code_builder:
dependency: transitive dependency: transitive
description: description:
@ -167,10 +167,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: collection name: collection
sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.19.0" version: "1.19.1"
convert: convert:
dependency: transitive dependency: transitive
description: description:
@ -238,10 +238,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: fake_async name: fake_async
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.1" version: "1.3.2"
ffi: ffi:
dependency: "direct main" dependency: "direct main"
description: description:
@ -400,18 +400,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker name: leak_tracker
sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "10.0.7" version: "10.0.8"
leak_tracker_flutter_testing: leak_tracker_flutter_testing:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker_flutter_testing name: leak_tracker_flutter_testing
sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.8" version: "3.0.9"
leak_tracker_testing: leak_tracker_testing:
dependency: transitive dependency: transitive
description: description:
@ -432,10 +432,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: matcher name: matcher
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.12.16+1" version: "0.12.17"
material_color_utilities: material_color_utilities:
dependency: transitive dependency: transitive
description: description:
@ -448,10 +448,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.15.0" version: "1.16.0"
mime: mime:
dependency: transitive dependency: transitive
description: description:
@ -480,8 +480,8 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
path: "impls/monero.dart" path: "impls/monero.dart"
ref: b335585a7fb94b315eb52bd88f2da6d3489fa508 ref: "4868eb9220962a4176a7ed0fc7c809c6200e71a0"
resolved-ref: b335585a7fb94b315eb52bd88f2da6d3489fa508 resolved-ref: "4868eb9220962a4176a7ed0fc7c809c6200e71a0"
url: "https://github.com/mrcyjanek/monero_c" url: "https://github.com/mrcyjanek/monero_c"
source: git source: git
version: "0.0.0" version: "0.0.0"
@ -522,10 +522,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: path name: path
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.9.0" version: "1.9.1"
path_provider: path_provider:
dependency: "direct main" dependency: "direct main"
description: description:
@ -695,26 +695,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: source_span name: source_span
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.10.0" version: "1.10.1"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
name: stack_trace name: stack_trace
sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.12.0" version: "1.12.1"
stream_channel: stream_channel:
dependency: transitive dependency: transitive
description: description:
name: stream_channel name: stream_channel
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.2" version: "2.1.4"
stream_transform: stream_transform:
dependency: transitive dependency: transitive
description: description:
@ -727,26 +727,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: string_scanner name: string_scanner
sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.0" version: "1.4.1"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
name: term_glyph name: term_glyph
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.1" version: "1.2.2"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.7.3" version: "0.7.4"
timing: timing:
dependency: transitive dependency: transitive
description: description:
@ -791,10 +791,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: vm_service name: vm_service
sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "14.3.0" version: "14.3.1"
watcher: watcher:
dependency: "direct overridden" dependency: "direct overridden"
description: description:
@ -844,5 +844,5 @@ packages:
source: hosted source: hosted
version: "3.1.3" version: "3.1.3"
sdks: sdks:
dart: ">=3.5.0 <4.0.0" dart: ">=3.7.0-0 <4.0.0"
flutter: ">=3.24.0" flutter: ">=3.24.0"

View file

@ -2,7 +2,6 @@ name: cw_wownero
description: A new flutter plugin project. description: A new flutter plugin project.
version: 0.0.1 version: 0.0.1
publish_to: none publish_to: none
author: Cake Wallet
homepage: https://cakewallet.com homepage: https://cakewallet.com
environment: environment:
@ -25,7 +24,7 @@ dependencies:
monero: monero:
git: git:
url: https://github.com/mrcyjanek/monero_c url: https://github.com/mrcyjanek/monero_c
ref: b335585a7fb94b315eb52bd88f2da6d3489fa508 # monero_c hash ref: a27fbcb24d91143715ed930a05aaa4d853fba1f2 # monero_c hash
path: impls/monero.dart path: impls/monero.dart
mutex: ^3.1.0 mutex: ^3.1.0

View file

@ -37,10 +37,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: async name: async
sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.11.0" version: "2.12.0"
blockchain_utils: blockchain_utils:
dependency: transitive dependency: transitive
description: description:
@ -54,10 +54,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: boolean_selector name: boolean_selector
sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.1" version: "2.1.2"
build: build:
dependency: transitive dependency: transitive
description: description:
@ -135,10 +135,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: characters name: characters
sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.0" version: "1.4.0"
checked_yaml: checked_yaml:
dependency: transitive dependency: transitive
description: description:
@ -151,10 +151,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: clock name: clock
sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.1.1" version: "1.1.2"
code_builder: code_builder:
dependency: transitive dependency: transitive
description: description:
@ -167,10 +167,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: collection name: collection
sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.19.0" version: "1.19.1"
convert: convert:
dependency: transitive dependency: transitive
description: description:
@ -238,10 +238,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: fake_async name: fake_async
sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.1" version: "1.3.2"
ffi: ffi:
dependency: "direct main" dependency: "direct main"
description: description:
@ -405,18 +405,18 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker name: leak_tracker
sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06" sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "10.0.7" version: "10.0.8"
leak_tracker_flutter_testing: leak_tracker_flutter_testing:
dependency: transitive dependency: transitive
description: description:
name: leak_tracker_flutter_testing name: leak_tracker_flutter_testing
sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379" sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "3.0.8" version: "3.0.9"
leak_tracker_testing: leak_tracker_testing:
dependency: transitive dependency: transitive
description: description:
@ -437,10 +437,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: matcher name: matcher
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.12.16+1" version: "0.12.17"
material_color_utilities: material_color_utilities:
dependency: transitive dependency: transitive
description: description:
@ -453,10 +453,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: meta name: meta
sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.15.0" version: "1.16.0"
mime: mime:
dependency: transitive dependency: transitive
description: description:
@ -485,8 +485,8 @@ packages:
dependency: "direct main" dependency: "direct main"
description: description:
path: "impls/monero.dart" path: "impls/monero.dart"
ref: b335585a7fb94b315eb52bd88f2da6d3489fa508 ref: "4868eb9220962a4176a7ed0fc7c809c6200e71a0"
resolved-ref: b335585a7fb94b315eb52bd88f2da6d3489fa508 resolved-ref: "4868eb9220962a4176a7ed0fc7c809c6200e71a0"
url: "https://github.com/mrcyjanek/monero_c" url: "https://github.com/mrcyjanek/monero_c"
source: git source: git
version: "0.0.0" version: "0.0.0"
@ -519,10 +519,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: path name: path
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.9.0" version: "1.9.1"
path_provider: path_provider:
dependency: "direct main" dependency: "direct main"
description: description:
@ -692,26 +692,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: source_span name: source_span
sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.10.0" version: "1.10.1"
stack_trace: stack_trace:
dependency: transitive dependency: transitive
description: description:
name: stack_trace name: stack_trace
sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377" sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.12.0" version: "1.12.1"
stream_channel: stream_channel:
dependency: transitive dependency: transitive
description: description:
name: stream_channel name: stream_channel
sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "2.1.2" version: "2.1.4"
stream_transform: stream_transform:
dependency: transitive dependency: transitive
description: description:
@ -724,26 +724,26 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: string_scanner name: string_scanner
sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.3.0" version: "1.4.1"
term_glyph: term_glyph:
dependency: transitive dependency: transitive
description: description:
name: term_glyph name: term_glyph
sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "1.2.1" version: "1.2.2"
test_api: test_api:
dependency: transitive dependency: transitive
description: description:
name: test_api name: test_api
sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "0.7.3" version: "0.7.4"
timing: timing:
dependency: transitive dependency: transitive
description: description:
@ -788,10 +788,10 @@ packages:
dependency: transitive dependency: transitive
description: description:
name: vm_service name: vm_service
sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14"
url: "https://pub.dev" url: "https://pub.dev"
source: hosted source: hosted
version: "14.3.0" version: "14.3.1"
watcher: watcher:
dependency: "direct overridden" dependency: "direct overridden"
description: description:
@ -841,5 +841,5 @@ packages:
source: hosted source: hosted
version: "3.1.3" version: "3.1.3"
sdks: sdks:
dart: ">=3.5.0 <4.0.0" dart: ">=3.7.0-0 <4.0.0"
flutter: ">=3.27.4" flutter: ">=3.24.0"

View file

@ -2,7 +2,6 @@ name: cw_zano
description: A new flutter plugin project. description: A new flutter plugin project.
version: 0.0.1 version: 0.0.1
publish_to: none publish_to: none
author: Cake Wallet
homepage: https://cakewallet.com homepage: https://cakewallet.com
environment: environment:
@ -26,7 +25,7 @@ dependencies:
monero: monero:
git: git:
url: https://github.com/mrcyjanek/monero_c url: https://github.com/mrcyjanek/monero_c
ref: b335585a7fb94b315eb52bd88f2da6d3489fa508 # monero_c hash ref: a27fbcb24d91143715ed930a05aaa4d853fba1f2 # monero_c hash
path: impls/monero.dart path: impls/monero.dart
dev_dependencies: dev_dependencies:
flutter_test: flutter_test:

View file

@ -421,6 +421,7 @@ class CWMonero extends Monero {
moneroWallet.setLedgerConnection(connection); moneroWallet.setLedgerConnection(connection);
} }
@override
void resetLedgerConnection() { void resetLedgerConnection() {
disableLedgerExchange(); disableLedgerExchange();
} }
@ -428,9 +429,11 @@ class CWMonero extends Monero {
@override @override
void setGlobalLedgerConnection(ledger.LedgerConnection connection) { void setGlobalLedgerConnection(ledger.LedgerConnection connection) {
gLedger = connection; gLedger = connection;
keepAlive(connection);
} }
@override
String? getLastLedgerCommand() => latestLedgerCommand;
bool isViewOnly() { bool isViewOnly() {
return isViewOnlyBySpendKey(null); return isViewOnlyBySpendKey(null);
} }
@ -439,5 +442,4 @@ class CWMonero extends Monero {
Map<String, List<int>> debugCallLength() { Map<String, List<int>> debugCallLength() {
return monero_wallet_api.debugCallLength(); return monero_wallet_api.debugCallLength();
} }
} }

View file

@ -5,7 +5,9 @@ import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/routes.dart'; import 'package:cake_wallet/routes.dart';
import 'package:cake_wallet/src/screens/base_page.dart'; import 'package:cake_wallet/src/screens/base_page.dart';
import 'package:cake_wallet/src/screens/connect_device/widgets/device_tile.dart'; import 'package:cake_wallet/src/screens/connect_device/widgets/device_tile.dart';
import 'package:cake_wallet/src/widgets/bottom_sheet/info_steps_bottom_sheet_widget.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart'; import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/themes/core/material_base_theme.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/hardware_wallet/ledger_view_model.dart'; import 'package:cake_wallet/view_model/hardware_wallet/ledger_view_model.dart';
import 'package:cw_core/utils/print_verbose.dart'; import 'package:cw_core/utils/print_verbose.dart';
@ -60,6 +62,7 @@ class ConnectDevicePage extends BasePage {
onConnectDevice, onConnectDevice,
allowChangeWallet, allowChangeWallet,
ledgerVM, ledgerVM,
currentTheme,
)); ));
} }
@ -68,12 +71,14 @@ class ConnectDevicePageBody extends StatefulWidget {
final OnConnectDevice onConnectDevice; final OnConnectDevice onConnectDevice;
final bool allowChangeWallet; final bool allowChangeWallet;
final LedgerViewModel ledgerVM; final LedgerViewModel ledgerVM;
final MaterialThemeBase currentTheme;
const ConnectDevicePageBody( const ConnectDevicePageBody(
this.walletType, this.walletType,
this.onConnectDevice, this.onConnectDevice,
this.allowChangeWallet, this.allowChangeWallet,
this.ledgerVM, this.ledgerVM,
this.currentTheme,
); );
@override @override
@ -179,11 +184,12 @@ class ConnectDevicePageBodyState extends State<ConnectDevicePageBody> {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Center( return Container(
child: Container(
width: ResponsiveLayoutUtilBase.kDesktopMaxWidthConstraint, width: ResponsiveLayoutUtilBase.kDesktopMaxWidthConstraint,
height: double.infinity,
padding: EdgeInsets.symmetric(vertical: 24, horizontal: 24), padding: EdgeInsets.symmetric(vertical: 24, horizontal: 24),
child: Column(
children: [
Expanded(
child: SingleChildScrollView( child: SingleChildScrollView(
child: Column( child: Column(
children: [ children: [
@ -193,7 +199,8 @@ class ConnectDevicePageBodyState extends State<ConnectDevicePageBody> {
Platform.isIOS Platform.isIOS
? S.of(context).connect_your_hardware_wallet_ios ? S.of(context).connect_your_hardware_wallet_ios
: S.of(context).connect_your_hardware_wallet, : S.of(context).connect_your_hardware_wallet,
style: Theme.of(context).textTheme.titleMedium, style: Theme.of(context)
.textTheme.titleMedium,
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
), ),
@ -203,7 +210,8 @@ class ConnectDevicePageBodyState extends State<ConnectDevicePageBody> {
padding: EdgeInsets.only(left: 20, right: 20, bottom: 20), padding: EdgeInsets.only(left: 20, right: 20, bottom: 20),
child: Text( child: Text(
S.of(context).if_you_dont_see_your_device, S.of(context).if_you_dont_see_your_device,
style: Theme.of(context).textTheme.titleMedium, style: Theme.of(context)
.textTheme.titleMedium,
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
), ),
@ -212,10 +220,12 @@ class ConnectDevicePageBodyState extends State<ConnectDevicePageBody> {
builder: (_) => Offstage( builder: (_) => Offstage(
offstage: widget.ledgerVM.bleIsEnabled, offstage: widget.ledgerVM.bleIsEnabled,
child: Padding( child: Padding(
padding: EdgeInsets.only(left: 20, right: 20, bottom: 20), padding:
EdgeInsets.only(left: 20, right: 20, bottom: 20),
child: Text( child: Text(
S.of(context).ledger_please_enable_bluetooth, S.of(context).ledger_please_enable_bluetooth,
style: Theme.of(context).textTheme.titleMedium, style: Theme.of(context)
.textTheme.titleMedium,
textAlign: TextAlign.center, textAlign: TextAlign.center,
), ),
), ),
@ -228,7 +238,8 @@ class ConnectDevicePageBodyState extends State<ConnectDevicePageBody> {
width: double.infinity, width: double.infinity,
child: Text( child: Text(
S.of(context).bluetooth, S.of(context).bluetooth,
style: Theme.of(context).textTheme.bodyMedium, style: Theme.of(context)
.textTheme.bodyMedium,
), ),
), ),
), ),
@ -253,7 +264,8 @@ class ConnectDevicePageBodyState extends State<ConnectDevicePageBody> {
width: double.infinity, width: double.infinity,
child: Text( child: Text(
S.of(context).usb, S.of(context).usb,
style: Theme.of(context).textTheme.bodyMedium, style: Theme.of(context)
.textTheme.bodyMedium,
), ),
), ),
), ),
@ -274,8 +286,10 @@ class ConnectDevicePageBodyState extends State<ConnectDevicePageBody> {
if (widget.allowChangeWallet) ...[ if (widget.allowChangeWallet) ...[
PrimaryButton( PrimaryButton(
text: S.of(context).wallets, text: S.of(context).wallets,
color: Theme.of(context).colorScheme.primary, color: Theme.of(context)
textColor: Theme.of(context).colorScheme.onPrimary, .colorScheme.primary,
textColor: Theme.of(context)
.colorScheme.onPrimary,
onPressed: _onChangeWallet, onPressed: _onChangeWallet,
) )
], ],
@ -283,6 +297,14 @@ class ConnectDevicePageBodyState extends State<ConnectDevicePageBody> {
), ),
), ),
), ),
PrimaryButton(
text: S.of(context).how_to_connect,
color: Theme.of(context).colorScheme.surfaceContainer,
textColor: Theme.of(context).colorScheme.onSecondaryContainer,
onPressed: () => _onHowToConnect(context),
)
],
),
); );
} }
@ -293,4 +315,21 @@ class ConnectDevicePageBodyState extends State<ConnectDevicePageBody> {
.pushNamedAndRemoveUntil(Routes.dashboard, (route) => false), .pushNamedAndRemoveUntil(Routes.dashboard, (route) => false),
); );
} }
void _onHowToConnect(BuildContext context) {
showModalBottomSheet(
context: context,
isScrollControlled: true,
builder: (BuildContext bottomSheetContext) => InfoStepsBottomSheet(
titleText: S.of(context).how_to_connect,
currentTheme: widget.currentTheme,
steps: [
InfoStep('${S.of(context).step} 1', S.of(context).connect_hw_info_step_1),
InfoStep('${S.of(context).step} 2', S.of(context).connect_hw_info_step_2),
InfoStep('${S.of(context).step} 3', S.of(context).connect_hw_info_step_3),
InfoStep('${S.of(context).step} 4', S.of(context).connect_hw_info_step_4),
],
),
);
}
} }

View file

@ -684,6 +684,21 @@ class SendPage extends BasePage {
}); });
} }
if (state is IsDeviceSigningResponseState) {
WidgetsBinding.instance.addPostFrameCallback((_) {
if (!context.mounted) return;
showModalBottomSheet<void>(
context: context,
isDismissible: false,
builder: (context) {
dialogContext = context;
return LoadingBottomSheet(titleText: S.of(context).device_is_signing);
},
);
});
}
if (state is IsAwaitingDeviceResponseState) { if (state is IsAwaitingDeviceResponseState) {
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
if (!context.mounted) return; if (!context.mounted) return;
@ -691,21 +706,24 @@ class SendPage extends BasePage {
showModalBottomSheet<void>( showModalBottomSheet<void>(
context: context, context: context,
isDismissible: false, isDismissible: false,
builder: (BuildContext bottomSheetContext) => InfoBottomSheet( builder: (context) {
dialogContext = context;
return InfoBottomSheet(
currentTheme: currentTheme, currentTheme: currentTheme,
titleText: S.of(bottomSheetContext).proceed_on_device, titleText: S.of(context).proceed_on_device,
contentImage: 'assets/images/hardware_wallet/ledger_nano_x.png', contentImage:
'assets/images/hardware_wallet/ledger_nano_x.png',
contentImageColor: Theme.of(context).colorScheme.onSurface, contentImageColor: Theme.of(context).colorScheme.onSurface,
content: S.of(bottomSheetContext).proceed_on_device_description, content: S.of(context).proceed_on_device_description,
isTwoAction: false, isTwoAction: false,
actionButtonText: S.of(context).cancel, actionButtonText: S.of(context).cancel,
actionButton: () { actionButton: () {
sendViewModel.state = InitialExecutionState(); sendViewModel.state = InitialExecutionState();
Navigator.of(bottomSheetContext).pop(); Navigator.of(context).pop();
}, },
),
); );
}); });
});
} }
}); });

View file

@ -0,0 +1,114 @@
import 'package:cake_wallet/generated/i18n.dart';
import 'package:cake_wallet/src/widgets/primary_button.dart';
import 'package:cake_wallet/themes/core/material_base_theme.dart';
import 'package:flutter/material.dart';
import 'base_bottom_sheet_widget.dart';
class InfoStep {
final String title;
final String description;
const InfoStep(this.title, this.description);
}
class InfoStepsBottomSheet extends BaseBottomSheet {
final MaterialThemeBase currentTheme;
final List<InfoStep> steps;
InfoStepsBottomSheet({
required String titleText,
required this.steps,
String? titleIconPath,
required this.currentTheme,
}) : super(titleText: titleText, titleIconPath: titleIconPath);
@override
Widget contentWidget(BuildContext context) => SizedBox(
height: 500,
child: Column(
children: [
Expanded(
child: SingleChildScrollView(
child: Column(
children: steps
.map((step) => Container(
margin: EdgeInsets.only(
bottom: 15, left: 20, right: 20),
padding: EdgeInsets.all(10),
alignment: Alignment.center,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
color: Theme.of(context).cardColor,
),
child: Row(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Expanded(
child: Padding(
padding: EdgeInsets.only(left: 16),
child: Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment:
MainAxisAlignment.start,
crossAxisAlignment:
CrossAxisAlignment.start,
children: <Widget>[
Text(
step.title,
style: Theme.of(context)
.textTheme
.bodyMedium!
.copyWith(
fontSize: 20,
fontWeight: FontWeight.w500,
color: Theme.of(context)
.colorScheme
.onSurface,
),
),
Padding(
padding: EdgeInsets.only(top: 5),
child: Text(
step.description,
style: Theme.of(context)
.textTheme
.bodyMedium!
.copyWith(
color: Theme.of(context)
.colorScheme
.onSurfaceVariant,
),
),
)
],
),
),
)
],
),
))
.toList(),
),
),
),
Padding(
padding: const EdgeInsets.all(16),
child: PrimaryButton(
text: S.of(context).close,
color: Theme.of(context).colorScheme.primary,
textColor: currentTheme.isDark
? Theme.of(context).colorScheme.onSurfaceVariant
: Theme.of(context).colorScheme.onPrimary,
onPressed: () => Navigator.of(context).pop(),
),
)
],
),
);
@override
Widget footerWidget(BuildContext context) => SizedBox.shrink();
}

View file

@ -15,8 +15,8 @@ import 'package:cake_wallet/entities/contact_record.dart';
import 'package:cake_wallet/entities/evm_transaction_error_fees_handler.dart'; import 'package:cake_wallet/entities/evm_transaction_error_fees_handler.dart';
import 'package:cake_wallet/entities/fiat_currency.dart'; import 'package:cake_wallet/entities/fiat_currency.dart';
import 'package:cake_wallet/entities/parsed_address.dart'; import 'package:cake_wallet/entities/parsed_address.dart';
import 'package:cake_wallet/entities/template.dart';
import 'package:cake_wallet/entities/preferences_key.dart'; import 'package:cake_wallet/entities/preferences_key.dart';
import 'package:cake_wallet/entities/template.dart';
import 'package:cake_wallet/entities/transaction_description.dart'; import 'package:cake_wallet/entities/transaction_description.dart';
import 'package:cake_wallet/entities/wallet_contact.dart'; import 'package:cake_wallet/entities/wallet_contact.dart';
import 'package:cake_wallet/ethereum/ethereum.dart'; import 'package:cake_wallet/ethereum/ethereum.dart';
@ -293,19 +293,18 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
.toList(); .toList();
@computed @computed
bool get hasCoinControl => bool get hasCoinControl => [
wallet.type == WalletType.bitcoin || WalletType.bitcoin,
wallet.type == WalletType.litecoin || WalletType.litecoin,
wallet.type == WalletType.monero || WalletType.monero,
wallet.type == WalletType.wownero || WalletType.wownero,
wallet.type == WalletType.decred || WalletType.decred,
wallet.type == WalletType.bitcoinCash; WalletType.bitcoinCash
].contains(wallet.type);
@computed @computed
bool get isElectrumWallet => bool get isElectrumWallet =>
wallet.type == WalletType.bitcoin || [WalletType.bitcoin, WalletType.litecoin, WalletType.bitcoinCash].contains(wallet.type);
wallet.type == WalletType.litecoin ||
wallet.type == WalletType.bitcoinCash;
@observable @observable
CryptoCurrency selectedCryptoCurrency; CryptoCurrency selectedCryptoCurrency;
@ -444,12 +443,23 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
} }
} }
Timer? _ledgerTxStateTimer;
@action @action
Future<PendingTransaction?> createTransaction({ExchangeProvider? provider}) async { Future<PendingTransaction?> createTransaction({ExchangeProvider? provider}) async {
try { try {
if (!(state is IsExecutingState)) state = IsExecutingState(); if (!(state is IsExecutingState)) state = IsExecutingState();
if (wallet.isHardwareWallet) state = IsAwaitingDeviceResponseState(); if (wallet.isHardwareWallet) {
state = IsAwaitingDeviceResponseState();
if (walletType == WalletType.monero)
_ledgerTxStateTimer = Timer.periodic(Duration(seconds: 1), (timer) {
if (monero!.getLastLedgerCommand() == "INS_CLSAG") {
timer.cancel();
state = IsDeviceSigningResponseState();
}
});
}
pendingTransaction = await wallet.createTransaction(_credentials(provider)); pendingTransaction = await wallet.createTransaction(_credentials(provider));
@ -475,6 +485,7 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
state = ExecutedSuccessfullyState(); state = ExecutedSuccessfullyState();
return pendingTransaction; return pendingTransaction;
} catch (e) { } catch (e) {
_ledgerTxStateTimer?.cancel();
// if (e is LedgerException) { // if (e is LedgerException) {
// final errorCode = e.errorCode.toRadixString(16); // final errorCode = e.errorCode.toRadixString(16);
// final fallbackMsg = // final fallbackMsg =
@ -592,7 +603,8 @@ abstract class SendViewModelBase extends WalletChangeListenerViewModel with Stor
)); ));
} }
final sharedPreferences = await SharedPreferences.getInstance(); final sharedPreferences = await SharedPreferences.getInstance();
await sharedPreferences.setString(PreferencesKey.backgroundSyncLastTrigger(wallet.name), DateTime.now().add(Duration(minutes: 1)).toIso8601String()); await sharedPreferences.setString(PreferencesKey.backgroundSyncLastTrigger(wallet.name),
DateTime.now().add(Duration(minutes: 1)).toIso8601String());
state = TransactionCommitted(); state = TransactionCommitted();
} catch (e) { } catch (e) {
state = FailureState(translateErrorMessage(e, wallet.type, wallet.currency)); state = FailureState(translateErrorMessage(e, wallet.type, wallet.currency));

View file

@ -1,5 +1,6 @@
import 'package:cake_wallet/core/execution_state.dart'; import 'package:cake_wallet/core/execution_state.dart';
class IsDeviceSigningResponseState extends IsExecutingState {}
class IsAwaitingDeviceResponseState extends IsExecutingState {} class IsAwaitingDeviceResponseState extends IsExecutingState {}
class TransactionCommitting extends ExecutionState {} class TransactionCommitting extends ExecutionState {}
class TransactionCommitted extends ExecutionState {} class TransactionCommitted extends ExecutionState {}

View file

@ -181,6 +181,10 @@
"confirmed_tx": "مؤكد", "confirmed_tx": "مؤكد",
"congratulations": "تهانينا!", "congratulations": "تهانينا!",
"connect_an_existing_yat": "توصيل Yat الحالي", "connect_an_existing_yat": "توصيل Yat الحالي",
"connect_hw_info_step_1": "تأكد من تشغيل جهازك.",
"connect_hw_info_step_2": "قم بتشغيل Bluetooth لكل من الجهازين وإقرانها من الهاتف ، أو قم بتوصيل أجهزتك معًا باستخدام كبل USB.",
"connect_hw_info_step_3": "افتح جهازك وانتقل إلى تطبيق التشفير المطلوب.",
"connect_hw_info_step_4": "حدد جهازك في محفظة كعكة ومتابعة الإعداد.",
"connect_yats": "توصيل Yats", "connect_yats": "توصيل Yats",
"connect_your_hardware_wallet": "قم بتوصيل محفظة الأجهزة الخاصة بك باستخدام Bluetooth أو USB", "connect_your_hardware_wallet": "قم بتوصيل محفظة الأجهزة الخاصة بك باستخدام Bluetooth أو USB",
"connect_your_hardware_wallet_ios": "قم بتوصيل محفظة الأجهزة الخاصة بك باستخدام Bluetooth", "connect_your_hardware_wallet_ios": "قم بتوصيل محفظة الأجهزة الخاصة بك باستخدام Bluetooth",
@ -240,6 +244,7 @@
"descending": "النزول", "descending": "النزول",
"description": "ﻒﺻﻭ", "description": "ﻒﺻﻭ",
"destination_tag": "علامة الوجهة:", "destination_tag": "علامة الوجهة:",
"device_is_signing": "الجهاز يوقع",
"dfx_option_description": "شراء التشفير مع EUR & CHF. لعملاء البيع بالتجزئة والشركات في أوروبا", "dfx_option_description": "شراء التشفير مع EUR & CHF. لعملاء البيع بالتجزئة والشركات في أوروبا",
"didnt_get_code": "لم تحصل على رمز؟", "didnt_get_code": "لم تحصل على رمز؟",
"digit_pin": "-رقم PIN", "digit_pin": "-رقم PIN",
@ -394,6 +399,7 @@
"hide_details": "أخف التفاصيل", "hide_details": "أخف التفاصيل",
"high_contrast_theme": "موضوع عالي التباين", "high_contrast_theme": "موضوع عالي التباين",
"home_screen_settings": "إعدادات الشاشة الرئيسية", "home_screen_settings": "إعدادات الشاشة الرئيسية",
"how_to_connect": "كيفية الاتصال",
"how_to_use": " ﻞﻤﻌﺘﺴﺗ ﻒﻴﻛ", "how_to_use": " ﻞﻤﻌﺘﺴﺗ ﻒﻴﻛ",
"how_to_use_card": "كيفية استخدام هذه البطاقة", "how_to_use_card": "كيفية استخدام هذه البطاقة",
"id": "رقم المعرف:", "id": "رقم المعرف:",
@ -842,6 +848,7 @@
"spend_key_private": "مفتاح الإنفاق (خاص)", "spend_key_private": "مفتاح الإنفاق (خاص)",
"spend_key_public": "مفتاح الإنفاق (عام)", "spend_key_public": "مفتاح الإنفاق (عام)",
"status": "الحالة:", "status": "الحالة:",
"step": "خطوة",
"string_default": "تقصير", "string_default": "تقصير",
"subaddress_title": "قائمة العناوين الفرعية", "subaddress_title": "قائمة العناوين الفرعية",
"subaddresses": "العناوين الفرعية", "subaddresses": "العناوين الفرعية",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "Потвърдено", "confirmed_tx": "Потвърдено",
"congratulations": "Поздравления!", "congratulations": "Поздравления!",
"connect_an_existing_yat": "Добавете съществуващ Yat", "connect_an_existing_yat": "Добавете съществуващ Yat",
"connect_hw_info_step_1": "Уверете се, че вашето устройство е включено.",
"connect_hw_info_step_2": "Включете Bluetooth както за устройства, така и за тях от телефона или свържете устройствата си заедно с USB кабел.",
"connect_hw_info_step_3": "Отключете устройството си и отворете желаното приложение за криптовалута.",
"connect_hw_info_step_4": "Изберете вашето устройство в портфейла за торта и продължете с настройката.",
"connect_yats": "Добавете Yats", "connect_yats": "Добавете Yats",
"connect_your_hardware_wallet": "Свържете хардуерния си портфейл с помощта на Bluetooth или USB", "connect_your_hardware_wallet": "Свържете хардуерния си портфейл с помощта на Bluetooth или USB",
"connect_your_hardware_wallet_ios": "Свържете хардуерния си портфейл с помощта на Bluetooth", "connect_your_hardware_wallet_ios": "Свържете хардуерния си портфейл с помощта на Bluetooth",
@ -240,6 +244,7 @@
"descending": "Низходящ", "descending": "Низходящ",
"description": "Описание", "description": "Описание",
"destination_tag": "Destination tag:", "destination_tag": "Destination tag:",
"device_is_signing": "Устройството подписва",
"dfx_option_description": "Купете криптовалута с Eur & CHF. За търговски и корпоративни клиенти в Европа", "dfx_option_description": "Купете криптовалута с Eur & CHF. За търговски и корпоративни клиенти в Европа",
"didnt_get_code": "Не получихте код?", "didnt_get_code": "Не получихте код?",
"digit_pin": "-цифрен PIN", "digit_pin": "-цифрен PIN",
@ -394,6 +399,7 @@
"hide_details": "Скриване на подробностите", "hide_details": "Скриване на подробностите",
"high_contrast_theme": "Тема с висок контраст", "high_contrast_theme": "Тема с висок контраст",
"home_screen_settings": "Настройки на началния екран", "home_screen_settings": "Настройки на началния екран",
"how_to_connect": "Как да се свържа",
"how_to_use": "Как да използвам", "how_to_use": "Как да използвам",
"how_to_use_card": "Как се ползва тази карта", "how_to_use_card": "Как се ползва тази карта",
"id": "ID: ", "id": "ID: ",
@ -842,6 +848,7 @@
"spend_key_private": "Spend key (таен)", "spend_key_private": "Spend key (таен)",
"spend_key_public": "Spend key (публичен)", "spend_key_public": "Spend key (публичен)",
"status": "Статус: ", "status": "Статус: ",
"step": "Стъпка",
"string_default": "По подразбиране", "string_default": "По подразбиране",
"subaddress_title": "Лист от подадреси", "subaddress_title": "Лист от подадреси",
"subaddresses": "Подадреси", "subaddresses": "Подадреси",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "Potvrzeno", "confirmed_tx": "Potvrzeno",
"congratulations": "Gratulujeme!", "congratulations": "Gratulujeme!",
"connect_an_existing_yat": "Připojit existující Yat", "connect_an_existing_yat": "Připojit existující Yat",
"connect_hw_info_step_1": "Ujistěte se, že je vaše zařízení zapnuté.",
"connect_hw_info_step_2": "Zapněte Bluetooth pro obě zařízení a spárujte je z telefonu nebo připojte zařízení pomocí kabelu USB.",
"connect_hw_info_step_3": "Odemkněte zařízení a přejděte na požadovanou aplikaci Crypto.",
"connect_hw_info_step_4": "Vyberte zařízení v peněžence dortu a pokračujte v nastavení.",
"connect_yats": "Připojit Yaty", "connect_yats": "Připojit Yaty",
"connect_your_hardware_wallet": "Připojte hardwarovou peněženku pomocí Bluetooth nebo USB", "connect_your_hardware_wallet": "Připojte hardwarovou peněženku pomocí Bluetooth nebo USB",
"connect_your_hardware_wallet_ios": "Připojte hardwarovou peněženku pomocí Bluetooth", "connect_your_hardware_wallet_ios": "Připojte hardwarovou peněženku pomocí Bluetooth",
@ -240,6 +244,7 @@
"descending": "Klesající", "descending": "Klesající",
"description": "Popis", "description": "Popis",
"destination_tag": "Destination Tag:", "destination_tag": "Destination Tag:",
"device_is_signing": "Zařízení se podpisu",
"dfx_option_description": "Koupit krypto s EUR & CHF. Pro maloobchodní a firemní zákazníky v Evropě", "dfx_option_description": "Koupit krypto s EUR & CHF. Pro maloobchodní a firemní zákazníky v Evropě",
"didnt_get_code": "Nepřišel Vám kód?", "didnt_get_code": "Nepřišel Vám kód?",
"digit_pin": "-číselný PIN", "digit_pin": "-číselný PIN",
@ -394,6 +399,7 @@
"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",
"how_to_connect": "Jak se připojit",
"how_to_use": "Jak používat", "how_to_use": "Jak používat",
"how_to_use_card": "Jak použít tuto kartu", "how_to_use_card": "Jak použít tuto kartu",
"id": "ID: ", "id": "ID: ",
@ -842,6 +848,7 @@
"spend_key_private": "Klíč pro platby (soukromý)", "spend_key_private": "Klíč pro platby (soukromý)",
"spend_key_public": "Klíč pro platby (veřejný)", "spend_key_public": "Klíč pro platby (veřejný)",
"status": "Status: ", "status": "Status: ",
"step": "Krok",
"string_default": "Výchozí", "string_default": "Výchozí",
"subaddress_title": "Seznam subadres", "subaddress_title": "Seznam subadres",
"subaddresses": "Subadresy", "subaddresses": "Subadresy",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "Bestätigt", "confirmed_tx": "Bestätigt",
"congratulations": "Glückwunsch!", "congratulations": "Glückwunsch!",
"connect_an_existing_yat": "Verbinden Sie ein vorhandenes Yat", "connect_an_existing_yat": "Verbinden Sie ein vorhandenes Yat",
"connect_hw_info_step_1": "Stellen Sie sicher, dass Ihr Gerät eingeschaltet ist.",
"connect_hw_info_step_2": "Schalten Sie Bluetooth für beide Geräte ein oder schließen Sie Ihre Geräte mit einem USB-Kabel an.",
"connect_hw_info_step_3": "Entsperren Sie Ihr Gerät und navigieren Sie zur gewünschten Krypto-App auf ihrem Gerät.",
"connect_hw_info_step_4": "Wählen Sie Ihr Gerät in Cake Wallet aus und fahren Sie mit dem Setup fort.",
"connect_yats": "Yats verbinden", "connect_yats": "Yats verbinden",
"connect_your_hardware_wallet": "Verbinden Sie Ihre Hardware-Wallet über Bluetooth oder USB", "connect_your_hardware_wallet": "Verbinden Sie Ihre Hardware-Wallet über Bluetooth oder USB",
"connect_your_hardware_wallet_ios": "Verbinden Sie Ihre Hardware-Wallet über Bluetooth", "connect_your_hardware_wallet_ios": "Verbinden Sie Ihre Hardware-Wallet über Bluetooth",
@ -240,6 +244,7 @@
"descending": "Absteigend", "descending": "Absteigend",
"description": "Beschreibung", "description": "Beschreibung",
"destination_tag": "Ziel-Tag:", "destination_tag": "Ziel-Tag:",
"device_is_signing": "Das Gerät unterschreibt",
"dfx_option_description": "Kaufen Sie Krypto mit EUR & CHF. Für Einzelhandel und Unternehmenskunden in Europa", "dfx_option_description": "Kaufen Sie Krypto mit EUR & CHF. Für Einzelhandel und Unternehmenskunden in Europa",
"didnt_get_code": "Kein Code?", "didnt_get_code": "Kein Code?",
"digit_pin": "-stellige PIN", "digit_pin": "-stellige PIN",
@ -394,6 +399,7 @@
"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",
"how_to_connect": "Anleitung",
"how_to_use": "Wie benutzt man", "how_to_use": "Wie benutzt man",
"how_to_use_card": "Wie man diese Karte benutzt", "how_to_use_card": "Wie man diese Karte benutzt",
"id": "ID: ", "id": "ID: ",
@ -584,7 +590,7 @@
"potential_scam": "Potenzieller Betrug", "potential_scam": "Potenzieller Betrug",
"powered_by": "Ermöglicht durch ${title}", "powered_by": "Ermöglicht durch ${title}",
"pre_seed_button_text": "Verstanden. Zeig mir meinen Seed", "pre_seed_button_text": "Verstanden. Zeig mir meinen Seed",
"pre_seed_description": "Auf der nächsten Seite sehen Sie eine Reihe von Wörtern. Dies ist Ihr einzigartiger und privater Samen und der einzige Weg, Ihre Brieftasche im Falle eines Verlusts oder einer Fehlfunktion zurückzugewinnen. Es liegt in Ihrer Verantwortung, es aufzuschreiben und an einem sicheren Ort außerhalb der Cake Wallet -App aufzubewahren.", "pre_seed_description": "Auf der nächsten Seite sehen Sie eine Reihe von Wörtern. Dies ist Ihr einzigartiger und privater Seed und der einzige Weg, Ihre Brieftasche im Falle eines Verlusts oder einer Fehlfunktion zurückzugewinnen. Es liegt in Ihrer Verantwortung, es aufzuschreiben und an einem sicheren Ort außerhalb der Cake Wallet -App aufzubewahren.",
"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",
@ -843,6 +849,7 @@
"spend_key_private": "Spend Key (geheim)", "spend_key_private": "Spend Key (geheim)",
"spend_key_public": "Spend Key (öffentlich)", "spend_key_public": "Spend Key (öffentlich)",
"status": "Status: ", "status": "Status: ",
"step": "Schritt",
"string_default": "Standard", "string_default": "Standard",
"subaddress_title": "Unteradressenliste", "subaddress_title": "Unteradressenliste",
"subaddresses": "Unteradressen", "subaddresses": "Unteradressen",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "Confirmed", "confirmed_tx": "Confirmed",
"congratulations": "Congratulations!", "congratulations": "Congratulations!",
"connect_an_existing_yat": "Connect an existing Yat", "connect_an_existing_yat": "Connect an existing Yat",
"connect_hw_info_step_1": "Make sure your device is powered ON.",
"connect_hw_info_step_2": "Turn Bluetooth on for both devices and pair them from the phone, OR connect your devices together using a USB cable.",
"connect_hw_info_step_3": "Unlock your device and navigate to the desired crypto app.",
"connect_hw_info_step_4": "Select your device in Cake Wallet and continue with the setup.",
"connect_yats": "Connect Yats", "connect_yats": "Connect Yats",
"connect_your_hardware_wallet": "Connect your hardware wallet using Bluetooth or USB", "connect_your_hardware_wallet": "Connect your hardware wallet using Bluetooth or USB",
"connect_your_hardware_wallet_ios": "Connect your hardware wallet using Bluetooth", "connect_your_hardware_wallet_ios": "Connect your hardware wallet using Bluetooth",
@ -240,6 +244,7 @@
"descending": "Descending", "descending": "Descending",
"description": "Description", "description": "Description",
"destination_tag": "Destination tag:", "destination_tag": "Destination tag:",
"device_is_signing": "Device is signing",
"dfx_option_description": "Buy crypto with EUR & CHF. For retail and corporate customers in Europe", "dfx_option_description": "Buy crypto with EUR & CHF. For retail and corporate customers in Europe",
"didnt_get_code": "Didn't get code?", "didnt_get_code": "Didn't get code?",
"digit_pin": "-digit PIN", "digit_pin": "-digit PIN",
@ -394,6 +399,7 @@
"hide_details": "Hide Details", "hide_details": "Hide Details",
"high_contrast_theme": "High Contrast Theme", "high_contrast_theme": "High Contrast Theme",
"home_screen_settings": "Home screen settings", "home_screen_settings": "Home screen settings",
"how_to_connect": "How to Connect",
"how_to_use": "How to use", "how_to_use": "How to use",
"how_to_use_card": "How to use this card", "how_to_use_card": "How to use this card",
"id": "ID: ", "id": "ID: ",
@ -843,6 +849,7 @@
"spend_key_private": "Spend key (private)", "spend_key_private": "Spend key (private)",
"spend_key_public": "Spend key (public)", "spend_key_public": "Spend key (public)",
"status": "Status: ", "status": "Status: ",
"step": "Step",
"string_default": "Default", "string_default": "Default",
"subaddress_title": "Subaddress list", "subaddress_title": "Subaddress list",
"subaddresses": "Subaddresses", "subaddresses": "Subaddresses",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "Confirmado", "confirmed_tx": "Confirmado",
"congratulations": "Felicidades!", "congratulations": "Felicidades!",
"connect_an_existing_yat": "Conectar un Yat existente", "connect_an_existing_yat": "Conectar un Yat existente",
"connect_hw_info_step_1": "Asegúrese de que su dispositivo esté encendido.",
"connect_hw_info_step_2": "Encienda Bluetooth para ambos dispositivos y combínelos desde el teléfono o conecte sus dispositivos con un cable USB.",
"connect_hw_info_step_3": "Desbloquee su dispositivo y navegue a la aplicación de cifrado deseada.",
"connect_hw_info_step_4": "Seleccione su dispositivo en la billetera de pastel y continúe con la configuración.",
"connect_yats": "Conectar Yats", "connect_yats": "Conectar Yats",
"connect_your_hardware_wallet": "Conecta tu billetera de hardware con Bluetooth o USB", "connect_your_hardware_wallet": "Conecta tu billetera de hardware con Bluetooth o USB",
"connect_your_hardware_wallet_ios": "Conecta tu billetera de hardware con Bluetooth", "connect_your_hardware_wallet_ios": "Conecta tu billetera de hardware con Bluetooth",
@ -240,6 +244,7 @@
"descending": "Descendente", "descending": "Descendente",
"description": "Descripción", "description": "Descripción",
"destination_tag": "Etiqueta de destino:", "destination_tag": "Etiqueta de destino:",
"device_is_signing": "El dispositivo está firmando",
"dfx_option_description": "Compre cripto con EUR y CHF. Para clientes minoristas y corporativos en Europa", "dfx_option_description": "Compre cripto con EUR y CHF. Para clientes minoristas y corporativos en Europa",
"didnt_get_code": "¿No recibiste el código?", "didnt_get_code": "¿No recibiste el código?",
"digit_pin": "-dígito PIN", "digit_pin": "-dígito PIN",
@ -394,6 +399,7 @@
"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",
"how_to_connect": "Cómo conectarse",
"how_to_use": "Cómo utilizar", "how_to_use": "Cómo utilizar",
"how_to_use_card": "Cómo usar esta tarjeta", "how_to_use_card": "Cómo usar esta tarjeta",
"id": "ID: ", "id": "ID: ",
@ -843,6 +849,7 @@
"spend_key_private": "Llave de gasto (privada)", "spend_key_private": "Llave de gasto (privada)",
"spend_key_public": "Llave de gasto (pública)", "spend_key_public": "Llave de gasto (pública)",
"status": "Estado: ", "status": "Estado: ",
"step": "Paso",
"string_default": "Por defecto", "string_default": "Por defecto",
"subaddress_title": "Lista de subdirecciones", "subaddress_title": "Lista de subdirecciones",
"subaddresses": "Subdirecciones", "subaddresses": "Subdirecciones",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "Confirmé", "confirmed_tx": "Confirmé",
"congratulations": "Félicitations !", "congratulations": "Félicitations !",
"connect_an_existing_yat": "Connecter un Yat existant", "connect_an_existing_yat": "Connecter un Yat existant",
"connect_hw_info_step_1": "Assurez-vous que votre appareil est allumé.",
"connect_hw_info_step_2": "Allumez Bluetooth pour les deux appareils et associez-les à partir du téléphone, ou connectez vos appareils ensemble à l'aide d'un câble USB.",
"connect_hw_info_step_3": "Déverrouillez votre appareil et accédez à l'application Crypto souhaitée.",
"connect_hw_info_step_4": "Sélectionnez votre appareil dans le portefeuille de gâteaux et continuez avec la configuration.",
"connect_yats": "Connecter Yats", "connect_yats": "Connecter Yats",
"connect_your_hardware_wallet": "Connectez votre portefeuille matériel à l'aide de Bluetooth ou USB", "connect_your_hardware_wallet": "Connectez votre portefeuille matériel à l'aide de Bluetooth ou USB",
"connect_your_hardware_wallet_ios": "Connectez votre portefeuille matériel à l'aide de Bluetooth", "connect_your_hardware_wallet_ios": "Connectez votre portefeuille matériel à l'aide de Bluetooth",
@ -240,6 +244,7 @@
"descending": "Descendant", "descending": "Descendant",
"description": "Description", "description": "Description",
"destination_tag": "Tag de destination :", "destination_tag": "Tag de destination :",
"device_is_signing": "L'appareil signale",
"dfx_option_description": "Achetez de la crypto avec EUR & CHF. Pour les clients de la vente au détail et des entreprises en Europe", "dfx_option_description": "Achetez de la crypto avec EUR & CHF. Pour les clients de la vente au détail et des entreprises en Europe",
"didnt_get_code": "Vous n'avez pas reçu le code ?", "didnt_get_code": "Vous n'avez pas reçu le code ?",
"digit_pin": " chiffres", "digit_pin": " chiffres",
@ -394,6 +399,7 @@
"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",
"how_to_connect": "Comment se connecter",
"how_to_use": "Comment utiliser", "how_to_use": "Comment utiliser",
"how_to_use_card": "Comment utiliser cette carte", "how_to_use_card": "Comment utiliser cette carte",
"id": "ID : ", "id": "ID : ",
@ -842,6 +848,7 @@
"spend_key_private": "Clef de dépense (spend key) (privée)", "spend_key_private": "Clef de dépense (spend key) (privée)",
"spend_key_public": "Clef de dépense (spend key) (publique)", "spend_key_public": "Clef de dépense (spend key) (publique)",
"status": "Statut: ", "status": "Statut: ",
"step": "Étape",
"string_default": "Défaut", "string_default": "Défaut",
"subaddress_title": "Liste des sous-adresses", "subaddress_title": "Liste des sous-adresses",
"subaddresses": "Sous-adresses", "subaddresses": "Sous-adresses",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "Tabbatar", "confirmed_tx": "Tabbatar",
"congratulations": "Taya murna!", "congratulations": "Taya murna!",
"connect_an_existing_yat": "Haɗa Yat da ke akwai", "connect_an_existing_yat": "Haɗa Yat da ke akwai",
"connect_hw_info_step_1": "Tabbatar cewa na'urarka tana da iko.",
"connect_hw_info_step_2": "Juya Bluetooth akan na'urorin biyu da kuma haɗa su daga wayar, ko haɗa na'urorinku tare ta amfani da kebul na USB.",
"connect_hw_info_step_3": "Buɗe na'urarka kuma kewaya cikin app ɗin da ake so.",
"connect_hw_info_step_4": "Zaɓi na'urarka a cikin walat walat kuma ci gaba da saiti.",
"connect_yats": "Haɗa Yats", "connect_yats": "Haɗa Yats",
"connect_your_hardware_wallet": "Haɗa Wallake Wallware ɗinku ta Bluetooth ko USB", "connect_your_hardware_wallet": "Haɗa Wallake Wallware ɗinku ta Bluetooth ko USB",
"connect_your_hardware_wallet_ios": "Haɗa kayan aikinku ta Bluetooth", "connect_your_hardware_wallet_ios": "Haɗa kayan aikinku ta Bluetooth",
@ -240,6 +244,7 @@
"descending": "Saukowa", "descending": "Saukowa",
"description": "Bayani", "description": "Bayani",
"destination_tag": "Tambarin makoma:", "destination_tag": "Tambarin makoma:",
"device_is_signing": "Na'urar tana shiga",
"dfx_option_description": "Buy crypto tare da Eur & Chf. Don Retail da abokan ciniki na kamfanoni a Turai", "dfx_option_description": "Buy crypto tare da Eur & Chf. Don Retail da abokan ciniki na kamfanoni a Turai",
"didnt_get_code": "Ba a samun code?", "didnt_get_code": "Ba a samun code?",
"digit_pin": "-lambar PIN", "digit_pin": "-lambar PIN",
@ -394,6 +399,7 @@
"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",
"how_to_connect": "Yadda ake haɗa",
"how_to_use": "Yadda ake amfani da shi", "how_to_use": "Yadda ake amfani da shi",
"how_to_use_card": "Yadda ake amfani da wannan kati", "how_to_use_card": "Yadda ake amfani da wannan kati",
"id": "ID:", "id": "ID:",
@ -844,6 +850,7 @@
"spend_key_private": "makullin biya (maɓallin kalmar sirri)", "spend_key_private": "makullin biya (maɓallin kalmar sirri)",
"spend_key_public": "makullin biya (maɓallin jama'a)", "spend_key_public": "makullin biya (maɓallin jama'a)",
"status": "Matsayi:", "status": "Matsayi:",
"step": "Taka",
"string_default": "Ƙin cika alƙawari", "string_default": "Ƙin cika alƙawari",
"subaddress_title": "Jagorar subaddress", "subaddress_title": "Jagorar subaddress",
"subaddresses": "Subaddresses", "subaddresses": "Subaddresses",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "की पुष्टि", "confirmed_tx": "की पुष्टि",
"congratulations": "बधाई!", "congratulations": "बधाई!",
"connect_an_existing_yat": "मौजूदा Yat कनेक्ट करें", "connect_an_existing_yat": "मौजूदा Yat कनेक्ट करें",
"connect_hw_info_step_1": "सुनिश्चित करें कि आपका डिवाइस चालू है।",
"connect_hw_info_step_2": "दोनों उपकरणों के लिए ब्लूटूथ चालू करें और उन्हें फोन से पेयर करें, या एक USB केबल का उपयोग करके अपने डिवाइस को एक साथ कनेक्ट करें।",
"connect_hw_info_step_3": "अपने डिवाइस को अनलॉक करें और वांछित क्रिप्टो ऐप पर नेविगेट करें।",
"connect_hw_info_step_4": "केक वॉलेट में अपने डिवाइस का चयन करें और सेटअप के साथ जारी रखें।",
"connect_yats": "कनेक्ट Yats", "connect_yats": "कनेक्ट Yats",
"connect_your_hardware_wallet": "ब्लूटूथ या यूएसबी का उपयोग करके अपने हार्डवेयर वॉलेट को कनेक्ट करें", "connect_your_hardware_wallet": "ब्लूटूथ या यूएसबी का उपयोग करके अपने हार्डवेयर वॉलेट को कनेक्ट करें",
"connect_your_hardware_wallet_ios": "ब्लूटूथ का उपयोग करके अपने हार्डवेयर वॉलेट को कनेक्ट करें", "connect_your_hardware_wallet_ios": "ब्लूटूथ का उपयोग करके अपने हार्डवेयर वॉलेट को कनेक्ट करें",
@ -240,6 +244,7 @@
"descending": "अवरोही", "descending": "अवरोही",
"description": "विवरण", "description": "विवरण",
"destination_tag": "गंतव्य टैग:", "destination_tag": "गंतव्य टैग:",
"device_is_signing": "उपकरण हस्ताक्षर कर रहा है",
"dfx_option_description": "EUR और CHF के साथ क्रिप्टो खरीदें। यूरोप में खुदरा और कॉर्पोरेट ग्राहकों के लिए", "dfx_option_description": "EUR और CHF के साथ क्रिप्टो खरीदें। यूरोप में खुदरा और कॉर्पोरेट ग्राहकों के लिए",
"didnt_get_code": "कोड नहीं मिला?", "didnt_get_code": "कोड नहीं मिला?",
"digit_pin": "-अंक पिन", "digit_pin": "-अंक पिन",
@ -394,6 +399,7 @@
"hide_details": "विवरण छुपाएं", "hide_details": "विवरण छुपाएं",
"high_contrast_theme": "उच्च कंट्रास्ट थीम", "high_contrast_theme": "उच्च कंट्रास्ट थीम",
"home_screen_settings": "होम स्क्रीन सेटिंग्स", "home_screen_settings": "होम स्क्रीन सेटिंग्स",
"how_to_connect": "कनेक्ट कैसे करें",
"how_to_use": "का उपयोग कैसे करें", "how_to_use": "का उपयोग कैसे करें",
"how_to_use_card": "इस कार्ड का उपयोग कैसे करें", "how_to_use_card": "इस कार्ड का उपयोग कैसे करें",
"id": "ID: ", "id": "ID: ",
@ -844,6 +850,7 @@
"spend_key_private": "खर्च करना (निजी)", "spend_key_private": "खर्च करना (निजी)",
"spend_key_public": "खर्च करना (जनता)", "spend_key_public": "खर्च करना (जनता)",
"status": "स्थिति: ", "status": "स्थिति: ",
"step": "कदम",
"string_default": "गलती करना", "string_default": "गलती करना",
"subaddress_title": "उपखंड सूची", "subaddress_title": "उपखंड सूची",
"subaddresses": "उप पते", "subaddresses": "उप पते",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "Potvrđen", "confirmed_tx": "Potvrđen",
"congratulations": "Čestitamo!", "congratulations": "Čestitamo!",
"connect_an_existing_yat": "Povežite postojeći Yat", "connect_an_existing_yat": "Povežite postojeći Yat",
"connect_hw_info_step_1": "Provjerite je li vaš uređaj uključen.",
"connect_hw_info_step_2": "Uključite Bluetooth za oba uređaja i uparite ih s telefona ili spojite svoje uređaje zajedno pomoću USB kabela.",
"connect_hw_info_step_3": "Otključajte svoj uređaj i idite do željene kripto aplikacije.",
"connect_hw_info_step_4": "Odaberite svoj uređaj u novčanici za torte i nastavite s postavljanjem.",
"connect_yats": "Povežite Yats", "connect_yats": "Povežite Yats",
"connect_your_hardware_wallet": "Spojite svoj hardverski novčanik pomoću Bluetooth -a ili USB -a", "connect_your_hardware_wallet": "Spojite svoj hardverski novčanik pomoću Bluetooth -a ili USB -a",
"connect_your_hardware_wallet_ios": "Spojite svoj hardverski novčanik pomoću Bluetooth -a", "connect_your_hardware_wallet_ios": "Spojite svoj hardverski novčanik pomoću Bluetooth -a",
@ -240,6 +244,7 @@
"descending": "Silazni", "descending": "Silazni",
"description": "Opis", "description": "Opis",
"destination_tag": "Odredišna oznaka:", "destination_tag": "Odredišna oznaka:",
"device_is_signing": "Uređaj se potpisuje",
"dfx_option_description": "Kupite kriptovalute s Eur & CHF. Za maloprodajne i korporativne kupce u Europi", "dfx_option_description": "Kupite kriptovalute s Eur & CHF. Za maloprodajne i korporativne kupce u Europi",
"didnt_get_code": "Ne dobivate kod?", "didnt_get_code": "Ne dobivate kod?",
"digit_pin": "-znamenkasti PIN", "digit_pin": "-znamenkasti PIN",
@ -394,6 +399,7 @@
"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",
"how_to_connect": "Kako se povezati",
"how_to_use": "Kako koristiti", "how_to_use": "Kako koristiti",
"how_to_use_card": "Kako koristiti ovu karticu", "how_to_use_card": "Kako koristiti ovu karticu",
"id": "ID: ", "id": "ID: ",
@ -842,6 +848,7 @@
"spend_key_private": "Spend key (privatni)", "spend_key_private": "Spend key (privatni)",
"spend_key_public": "Spend key (javni)", "spend_key_public": "Spend key (javni)",
"status": "Status: ", "status": "Status: ",
"step": "Korak",
"string_default": "Zadano", "string_default": "Zadano",
"subaddress_title": "Lista podadresa", "subaddress_title": "Lista podadresa",
"subaddresses": "Podadrese", "subaddresses": "Podadrese",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "Հաստատված", "confirmed_tx": "Հաստատված",
"congratulations": "Շնորհավորանք!", "congratulations": "Շնորհավորանք!",
"connect_an_existing_yat": "Միացրեք գոյություն ունեցող Yat-ը", "connect_an_existing_yat": "Միացրեք գոյություն ունեցող Yat-ը",
"connect_hw_info_step_1": "Համոզվեք, որ ձեր սարքը միացված է:",
"connect_hw_info_step_2": "Միացրեք Bluetooth- ը երկու սարքերի համար, եւ զույգացրեք հեռախոսից կամ միացրեք ձեր սարքերը միասին `օգտագործելով USB մալուխ:",
"connect_hw_info_step_3": "Բացեք ձեր սարքը եւ նավարկեք ցանկալի ծպտյալ հավելվածին:",
"connect_hw_info_step_4": "Ընտրեք ձեր սարքը տորթի դրամապանակում եւ շարունակեք կարգաբերումը:",
"connect_yats": "Միացրեք Yat-ները", "connect_yats": "Միացրեք Yat-ները",
"connect_your_hardware_wallet": "Միացրեք ձեր ապարատային դրամապանակը Bluetooth-ի կամ USB-ի միջոցով", "connect_your_hardware_wallet": "Միացրեք ձեր ապարատային դրամապանակը Bluetooth-ի կամ USB-ի միջոցով",
"connect_your_hardware_wallet_ios": "Միացրեք ձեր ապարատային դրամապանակը Bluetooth-ի միջոցով", "connect_your_hardware_wallet_ios": "Միացրեք ձեր ապարատային դրամապանակը Bluetooth-ի միջոցով",
@ -240,6 +244,7 @@
"descending": "Նվազող", "descending": "Նվազող",
"description": "Նկարագրություն", "description": "Նկարագրություն",
"destination_tag": "Նպատակակետի պիտակ:", "destination_tag": "Նպատակակետի պիտակ:",
"device_is_signing": "Սարքը ստորագրում է",
"dfx_option_description": "Գնեք կրիպտոարժույթ EUR և CHF: Կորպորատիվ և մանրածախ հաճախորդների համար Եվրոպայում", "dfx_option_description": "Գնեք կրիպտոարժույթ EUR և CHF: Կորպորատիվ և մանրածախ հաճախորդների համար Եվրոպայում",
"didnt_get_code": "Չեք ստացել կոդը?", "didnt_get_code": "Չեք ստացել կոդը?",
"digit_pin": "-նիշ ՊԻՆ", "digit_pin": "-նիշ ՊԻՆ",
@ -394,6 +399,7 @@
"hide_details": "Թաքցնել մանրամասները", "hide_details": "Թաքցնել մանրամասները",
"high_contrast_theme": "Բարձր հակադրության տեսք", "high_contrast_theme": "Բարձր հակադրության տեսք",
"home_screen_settings": "Գլխավոր էկրանի կարգավորումներ", "home_screen_settings": "Գլխավոր էկրանի կարգավորումներ",
"how_to_connect": "Ինչպես միացնել",
"how_to_use": "Ինչպես օգտագործել", "how_to_use": "Ինչպես օգտագործել",
"how_to_use_card": "Ինչպես օգտագործել այս քարտը", "how_to_use_card": "Ինչպես օգտագործել այս քարտը",
"id": "ID: ", "id": "ID: ",
@ -840,6 +846,7 @@
"spend_key_private": "Վճարման բանալի (գախտնի)", "spend_key_private": "Վճարման բանալի (գախտնի)",
"spend_key_public": "Վճարման բանալի (հանրային)", "spend_key_public": "Վճարման բանալի (հանրային)",
"status": "Կարգավիճակ՝ ", "status": "Կարգավիճակ՝ ",
"step": "Քայլ",
"string_default": "Լռելայն", "string_default": "Լռելայն",
"subaddress_title": "Ենթահասցեների ցանկ", "subaddress_title": "Ենթահասցեների ցանկ",
"subaddresses": "Ենթահասցեներ", "subaddresses": "Ենթահասցեներ",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "Dikonfirmasi", "confirmed_tx": "Dikonfirmasi",
"congratulations": "Selamat!", "congratulations": "Selamat!",
"connect_an_existing_yat": "Hubungkan Yat yang ada", "connect_an_existing_yat": "Hubungkan Yat yang ada",
"connect_hw_info_step_1": "Pastikan perangkat Anda didukung.",
"connect_hw_info_step_2": "Nyalakan Bluetooth untuk kedua perangkat dan pasangkan dari telepon, atau hubungkan perangkat Anda bersama -sama menggunakan kabel USB.",
"connect_hw_info_step_3": "Buka kunci perangkat Anda dan arahkan ke aplikasi crypto yang diinginkan.",
"connect_hw_info_step_4": "Pilih perangkat Anda di dompet kue dan lanjutkan dengan pengaturan.",
"connect_yats": "Hubungkan Yats", "connect_yats": "Hubungkan Yats",
"connect_your_hardware_wallet": "Hubungkan dompet perangkat keras Anda menggunakan Bluetooth atau USB", "connect_your_hardware_wallet": "Hubungkan dompet perangkat keras Anda menggunakan Bluetooth atau USB",
"connect_your_hardware_wallet_ios": "Hubungkan dompet perangkat keras Anda menggunakan Bluetooth", "connect_your_hardware_wallet_ios": "Hubungkan dompet perangkat keras Anda menggunakan Bluetooth",
@ -240,6 +244,7 @@
"descending": "Menurun", "descending": "Menurun",
"description": "Keterangan", "description": "Keterangan",
"destination_tag": "Tag tujuan:", "destination_tag": "Tag tujuan:",
"device_is_signing": "Perangkat sedang menandatangani",
"dfx_option_description": "Beli crypto dengan EUR & CHF. Untuk pelanggan ritel dan perusahaan di Eropa", "dfx_option_description": "Beli crypto dengan EUR & CHF. Untuk pelanggan ritel dan perusahaan di Eropa",
"didnt_get_code": "Tidak mendapatkan kode?", "didnt_get_code": "Tidak mendapatkan kode?",
"digit_pin": "-digit PIN", "digit_pin": "-digit PIN",
@ -394,6 +399,7 @@
"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",
"how_to_connect": "Cara terhubung",
"how_to_use": "Cara Penggunaan", "how_to_use": "Cara Penggunaan",
"how_to_use_card": "Bagaimana menggunakan kartu ini", "how_to_use_card": "Bagaimana menggunakan kartu ini",
"id": "ID: ", "id": "ID: ",
@ -845,6 +851,7 @@
"spend_key_private": "Kunci pengeluaran (privat)", "spend_key_private": "Kunci pengeluaran (privat)",
"spend_key_public": "Kunci pengeluaran (publik)", "spend_key_public": "Kunci pengeluaran (publik)",
"status": "Status: ", "status": "Status: ",
"step": "Melangkah",
"string_default": "Bawaan", "string_default": "Bawaan",
"subaddress_title": "Daftar sub-alamat", "subaddress_title": "Daftar sub-alamat",
"subaddresses": "Sub-alamat", "subaddresses": "Sub-alamat",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "Confermato", "confirmed_tx": "Confermato",
"congratulations": "Congratulazioni!", "congratulations": "Congratulazioni!",
"connect_an_existing_yat": "Collegare un Yat esistente", "connect_an_existing_yat": "Collegare un Yat esistente",
"connect_hw_info_step_1": "Assicurati che il tuo dispositivo sia acceso.",
"connect_hw_info_step_2": "Accendi Bluetooth per entrambi i dispositivi e abbinali dal telefono o collega i dispositivi utilizzando un cavo USB.",
"connect_hw_info_step_3": "Sblocca il dispositivo e naviga nell'app crittografica desiderata.",
"connect_hw_info_step_4": "Seleziona il tuo dispositivo nel portafoglio Cake e continua con l'installazione.",
"connect_yats": "Connetti Yats", "connect_yats": "Connetti Yats",
"connect_your_hardware_wallet": "Collega il tuo portafoglio hardware tramite Bluetooth o USB", "connect_your_hardware_wallet": "Collega il tuo portafoglio hardware tramite Bluetooth o USB",
"connect_your_hardware_wallet_ios": "Collega il tuo portafoglio hardware tramite Bluetooth", "connect_your_hardware_wallet_ios": "Collega il tuo portafoglio hardware tramite Bluetooth",
@ -240,6 +244,7 @@
"descending": "Discendente", "descending": "Discendente",
"description": "Descrizione", "description": "Descrizione",
"destination_tag": "Tag destinazione:", "destination_tag": "Tag destinazione:",
"device_is_signing": "Il dispositivo sta firmando",
"dfx_option_description": "Acquista Crypto con EUR & CHF. Per i clienti al dettaglio e aziendali in Europa", "dfx_option_description": "Acquista Crypto con EUR & CHF. Per i clienti al dettaglio e aziendali in Europa",
"didnt_get_code": "Non hai ricevuto il codice?", "didnt_get_code": "Non hai ricevuto il codice?",
"digit_pin": "-cifre PIN", "digit_pin": "-cifre PIN",
@ -394,6 +399,7 @@
"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",
"how_to_connect": "Come connettersi",
"how_to_use": "Come usare", "how_to_use": "Come usare",
"how_to_use_card": "Come usare questa carta", "how_to_use_card": "Come usare questa carta",
"id": "ID: ", "id": "ID: ",
@ -843,6 +849,7 @@
"spend_key_private": "Chiave di spesa (privata)", "spend_key_private": "Chiave di spesa (privata)",
"spend_key_public": "Chiave di spesa (pubblica)", "spend_key_public": "Chiave di spesa (pubblica)",
"status": "Stato: ", "status": "Stato: ",
"step": "Fare un passo",
"string_default": "Predefinito", "string_default": "Predefinito",
"subaddress_title": "Lista sottoindirizzi", "subaddress_title": "Lista sottoindirizzi",
"subaddresses": "Sottoindirizzi", "subaddresses": "Sottoindirizzi",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "確認済み", "confirmed_tx": "確認済み",
"congratulations": "おめでとうございます!", "congratulations": "おめでとうございます!",
"connect_an_existing_yat": "既存のYatを接続します", "connect_an_existing_yat": "既存のYatを接続します",
"connect_hw_info_step_1": "デバイスが電源を入れていることを確認してください。",
"connect_hw_info_step_2": "両方のデバイスのBluetoothをオンにして電話からペアリングするか、USBケーブルを使用してデバイスを一緒に接続します。",
"connect_hw_info_step_3": "デバイスのロックを解除し、目的のCryptoアプリに移動します。",
"connect_hw_info_step_4": "ケーキウォレットでデバイスを選択し、セットアップを続行します。",
"connect_yats": "Yatsを接続します", "connect_yats": "Yatsを接続します",
"connect_your_hardware_wallet": "BluetoothまたはUSBを使用して、ハードウェアウォレットを接続します", "connect_your_hardware_wallet": "BluetoothまたはUSBを使用して、ハードウェアウォレットを接続します",
"connect_your_hardware_wallet_ios": "Bluetoothを使用してハードウェアウォレットを接続します", "connect_your_hardware_wallet_ios": "Bluetoothを使用してハードウェアウォレットを接続します",
@ -240,6 +244,7 @@
"descending": "下降", "descending": "下降",
"description": "説明", "description": "説明",
"destination_tag": "宛先タグ:", "destination_tag": "宛先タグ:",
"device_is_signing": "デバイスが署名しています",
"dfx_option_description": "EURCHFで暗号を購入します。ヨーロッパの小売および企業の顧客向け", "dfx_option_description": "EURCHFで暗号を購入します。ヨーロッパの小売および企業の顧客向け",
"didnt_get_code": "コードを取得しませんか?", "didnt_get_code": "コードを取得しませんか?",
"digit_pin": "桁ピン", "digit_pin": "桁ピン",
@ -395,6 +400,7 @@
"hide_details": "詳細を非表示", "hide_details": "詳細を非表示",
"high_contrast_theme": "ハイコントラストテーマ", "high_contrast_theme": "ハイコントラストテーマ",
"home_screen_settings": "ホーム画面の設定", "home_screen_settings": "ホーム画面の設定",
"how_to_connect": "接続方法",
"how_to_use": "使い方", "how_to_use": "使い方",
"how_to_use_card": "このカードの使用方法", "how_to_use_card": "このカードの使用方法",
"id": "ID: ", "id": "ID: ",
@ -843,6 +849,7 @@
"spend_key_private": "キーを使う (プライベート)", "spend_key_private": "キーを使う (プライベート)",
"spend_key_public": "キーを使う (パブリック)", "spend_key_public": "キーを使う (パブリック)",
"status": "状態: ", "status": "状態: ",
"step": "ステップ",
"string_default": "デフォルト", "string_default": "デフォルト",
"subaddress_title": "サブアドレス一覧", "subaddress_title": "サブアドレス一覧",
"subaddresses": "サブアドレス", "subaddresses": "サブアドレス",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "확정됨", "confirmed_tx": "확정됨",
"congratulations": "축하합니다!", "congratulations": "축하합니다!",
"connect_an_existing_yat": "기존 Yat 연결", "connect_an_existing_yat": "기존 Yat 연결",
"connect_hw_info_step_1": "장치의 전원이 켜져 있는지 확인하십시오.",
"connect_hw_info_step_2": "두 장치 모두에 Bluetooth를 켜고 전화에서 페어링하거나 USB 케이블을 사용하여 장치를 함께 연결하십시오.",
"connect_hw_info_step_3": "장치를 잠금 해제하고 원하는 암호화 앱으로 이동하십시오.",
"connect_hw_info_step_4": "케이크 지갑에서 장치를 선택하고 설정을 계속하십시오.",
"connect_yats": "Yat 연결", "connect_yats": "Yat 연결",
"connect_your_hardware_wallet": "블루투스 또는 USB를 사용하여 하드웨어 지갑 연결", "connect_your_hardware_wallet": "블루투스 또는 USB를 사용하여 하드웨어 지갑 연결",
"connect_your_hardware_wallet_ios": "블루투스를 사용하여 하드웨어 지갑 연결", "connect_your_hardware_wallet_ios": "블루투스를 사용하여 하드웨어 지갑 연결",
@ -240,6 +244,7 @@
"descending": "내림차순", "descending": "내림차순",
"description": "설명", "description": "설명",
"destination_tag": "목적지 태그:", "destination_tag": "목적지 태그:",
"device_is_signing": "장치가 서명 중입니다",
"dfx_option_description": "EUR 및 CHF로 암호화폐 구매. 유럽의 개인 및 기업 고객 대상", "dfx_option_description": "EUR 및 CHF로 암호화폐 구매. 유럽의 개인 및 기업 고객 대상",
"didnt_get_code": "코드를 받지 못했나요?", "didnt_get_code": "코드를 받지 못했나요?",
"digit_pin": "자리 PIN", "digit_pin": "자리 PIN",
@ -394,6 +399,7 @@
"hide_details": "세부 정보 숨기기", "hide_details": "세부 정보 숨기기",
"high_contrast_theme": "고대비 테마", "high_contrast_theme": "고대비 테마",
"home_screen_settings": "홈 화면 설정", "home_screen_settings": "홈 화면 설정",
"how_to_connect": "연결 방법",
"how_to_use": "사용 방법", "how_to_use": "사용 방법",
"how_to_use_card": "이 카드 사용 방법", "how_to_use_card": "이 카드 사용 방법",
"id": "ID: ", "id": "ID: ",
@ -843,6 +849,7 @@
"spend_key_private": "지출 키 (개인)", "spend_key_private": "지출 키 (개인)",
"spend_key_public": "지출 키 (공개)", "spend_key_public": "지출 키 (공개)",
"status": "상태: ", "status": "상태: ",
"step": "단계",
"string_default": "기본값", "string_default": "기본값",
"subaddress_title": "하위 주소 목록", "subaddress_title": "하위 주소 목록",
"subaddresses": "하위 주소", "subaddresses": "하위 주소",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "အတည်ပြုသည်", "confirmed_tx": "အတည်ပြုသည်",
"congratulations": "ဂုဏ်ယူပါသည်။", "congratulations": "ဂုဏ်ယူပါသည်။",
"connect_an_existing_yat": "ရှိပြီးသား Yat ကို ချိတ်ဆက်ပါ။", "connect_an_existing_yat": "ရှိပြီးသား Yat ကို ချိတ်ဆက်ပါ။",
"connect_hw_info_step_1": "သင်၏ device ကိုသေချာအောင်လုပ်ပါ။",
"connect_hw_info_step_2": "ကိရိယာနှစ်ခုလုံးအတွက် Bluetooth ကိုဖွင့ ်. ဖုန်းမှတွဲပါ, သို့မဟုတ်သင်၏ကိရိယာများကို USB ကြိုးဖြင့်ချိတ်ဆက်ပါ။",
"connect_hw_info_step_3": "သင်၏ device ကိုသော့ဖွင့်ပြီးလိုချင်သော crypto app သို့သွားပါ။",
"connect_hw_info_step_4": "Cake Wallet တွင်သင်၏ device ကိုရွေးချယ်ပြီး setup ကိုဆက်လုပ်ပါ။",
"connect_yats": "Yats ကိုချိတ်ဆက်ပါ။", "connect_yats": "Yats ကိုချိတ်ဆက်ပါ။",
"connect_your_hardware_wallet": "သင်၏ hardware ပိုက်ဆံအိတ်ကို Bluetooth သို့မဟုတ် USB ကို သုံး. ချိတ်ဆက်ပါ", "connect_your_hardware_wallet": "သင်၏ hardware ပိုက်ဆံအိတ်ကို Bluetooth သို့မဟုတ် USB ကို သုံး. ချိတ်ဆက်ပါ",
"connect_your_hardware_wallet_ios": "သင်၏ hardware ပိုက်ဆံအိတ်ကို Bluetooth ကို အသုံးပြု. ချိတ်ဆက်ပါ", "connect_your_hardware_wallet_ios": "သင်၏ hardware ပိုက်ဆံအိတ်ကို Bluetooth ကို အသုံးပြု. ချိတ်ဆက်ပါ",
@ -240,6 +244,7 @@
"descending": "ဆင်း", "descending": "ဆင်း",
"description": "ဖော်ပြချက်", "description": "ဖော်ပြချက်",
"destination_tag": "ခရီးဆုံးအမှတ်-", "destination_tag": "ခရီးဆုံးအမှတ်-",
"device_is_signing": "ကိရိယာလက်မှတ်ထိုးနေသည်",
"dfx_option_description": "Crypto ကို EUR & CHF ဖြင့် 0 ယ်ပါ။ လက်လီရောင်းဝယ်မှုနှင့်ဥရောပရှိကော်ပိုရိတ်ဖောက်သည်များအတွက်", "dfx_option_description": "Crypto ကို EUR & CHF ဖြင့် 0 ယ်ပါ။ လက်လီရောင်းဝယ်မှုနှင့်ဥရောပရှိကော်ပိုရိတ်ဖောက်သည်များအတွက်",
"didnt_get_code": "ကုဒ်ကို မရဘူးလား?", "didnt_get_code": "ကုဒ်ကို မရဘူးလား?",
"digit_pin": "-ဂဏန်း PIN", "digit_pin": "-ဂဏန်း PIN",
@ -394,6 +399,7 @@
"hide_details": "အသေးစိတ်ကို ဝှက်ပါ။", "hide_details": "အသေးစိတ်ကို ဝှက်ပါ။",
"high_contrast_theme": "အလင်းအမှောင် မြင့်မားသော အပြင်အဆင်", "high_contrast_theme": "အလင်းအမှောင် မြင့်မားသော အပြင်အဆင်",
"home_screen_settings": "ပင်မစခရင် ဆက်တင်များ", "home_screen_settings": "ပင်မစခရင် ဆက်တင်များ",
"how_to_connect": "ဘယ်လိုချိတ်ဆက်ရမလဲ",
"how_to_use": "အသုံးပြုနည်း", "how_to_use": "အသုံးပြုနည်း",
"how_to_use_card": "ဒီကတ်ကို ဘယ်လိုသုံးမလဲ။", "how_to_use_card": "ဒီကတ်ကို ဘယ်လိုသုံးမလဲ။",
"id": "ID:", "id": "ID:",
@ -842,6 +848,7 @@
"spend_key_private": "သော့သုံးရန် (သီးသန့်)", "spend_key_private": "သော့သုံးရန် (သီးသန့်)",
"spend_key_public": "သုံးစွဲရန်သော့ (အများပြည်သူ)", "spend_key_public": "သုံးစွဲရန်သော့ (အများပြည်သူ)",
"status": "အခြေအနေ:", "status": "အခြေအနေ:",
"step": "လှမ်း",
"string_default": "ပျက်ကွက်ခြင်း", "string_default": "ပျက်ကွက်ခြင်း",
"subaddress_title": "လိပ်စာစာရင်း", "subaddress_title": "လိပ်စာစာရင်း",
"subaddresses": "လိပ်စာများ", "subaddresses": "လိပ်စာများ",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "Bevestigd", "confirmed_tx": "Bevestigd",
"congratulations": "gefeliciteerd!", "congratulations": "gefeliciteerd!",
"connect_an_existing_yat": "Verbind een bestaande Yat", "connect_an_existing_yat": "Verbind een bestaande Yat",
"connect_hw_info_step_1": "Zorg ervoor dat uw apparaat is ingeschakeld.",
"connect_hw_info_step_2": "Zet Bluetooth aan voor beide apparaten en combineer ze van de telefoon, of sluit uw apparaten samen met een USB -kabel.",
"connect_hw_info_step_3": "Ontgrendel uw apparaat en navigeer naar de gewenste crypto -app.",
"connect_hw_info_step_4": "Selecteer uw apparaat in cake -portemonnee en ga verder met de opstelling.",
"connect_yats": "Verbind Yats", "connect_yats": "Verbind Yats",
"connect_your_hardware_wallet": "Sluit uw hardware -portemonnee aan met Bluetooth of USB", "connect_your_hardware_wallet": "Sluit uw hardware -portemonnee aan met Bluetooth of USB",
"connect_your_hardware_wallet_ios": "Sluit uw hardware -portemonnee aan met Bluetooth", "connect_your_hardware_wallet_ios": "Sluit uw hardware -portemonnee aan met Bluetooth",
@ -240,6 +244,7 @@
"descending": "Aflopend", "descending": "Aflopend",
"description": "Beschrijving", "description": "Beschrijving",
"destination_tag": "Bestemmingstag:", "destination_tag": "Bestemmingstag:",
"device_is_signing": "Apparaat ondertekent",
"dfx_option_description": "Koop crypto met EUR & CHF. Voor retail- en zakelijke klanten in Europa", "dfx_option_description": "Koop crypto met EUR & CHF. Voor retail- en zakelijke klanten in Europa",
"didnt_get_code": "Geen code?", "didnt_get_code": "Geen code?",
"digit_pin": "-cijferige PIN", "digit_pin": "-cijferige PIN",
@ -394,6 +399,7 @@
"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",
"how_to_connect": "Hoe verbinding te maken",
"how_to_use": "Hoe te gebruiken", "how_to_use": "Hoe te gebruiken",
"how_to_use_card": "Hoe deze kaart te gebruiken", "how_to_use_card": "Hoe deze kaart te gebruiken",
"id": "ID: ", "id": "ID: ",
@ -842,6 +848,7 @@
"spend_key_private": "Sleutel uitgeven (privaat)", "spend_key_private": "Sleutel uitgeven (privaat)",
"spend_key_public": "Sleutel uitgeven (openbaar)", "spend_key_public": "Sleutel uitgeven (openbaar)",
"status": "Staat: ", "status": "Staat: ",
"step": "Stap",
"string_default": "Standaard", "string_default": "Standaard",
"subaddress_title": "Subadreslijst", "subaddress_title": "Subadreslijst",
"subaddresses": "Subadressen", "subaddresses": "Subadressen",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "Potwierdzony", "confirmed_tx": "Potwierdzony",
"congratulations": "gratulacje!", "congratulations": "gratulacje!",
"connect_an_existing_yat": "Podłącz istniejący Yat", "connect_an_existing_yat": "Podłącz istniejący Yat",
"connect_hw_info_step_1": "Upewnij się, że urządzenie jest włączone.",
"connect_hw_info_step_2": "Włącz Bluetooth dla obu urządzeń i sparuj je z telefonu lub podłącz urządzenia razem za pomocą kabla USB.",
"connect_hw_info_step_3": "Odblokuj urządzenie i przejdź do żądanej aplikacji Crypto.",
"connect_hw_info_step_4": "Wybierz urządzenie w portfelu ciasta i kontynuuj konfigurację.",
"connect_yats": "Połącz Yats", "connect_yats": "Połącz Yats",
"connect_your_hardware_wallet": "Podłącz portfel sprzętowy za pomocą Bluetooth lub USB", "connect_your_hardware_wallet": "Podłącz portfel sprzętowy za pomocą Bluetooth lub USB",
"connect_your_hardware_wallet_ios": "Podłącz portfel sprzętowy za pomocą Bluetooth", "connect_your_hardware_wallet_ios": "Podłącz portfel sprzętowy za pomocą Bluetooth",
@ -240,6 +244,7 @@
"descending": "Malejąco", "descending": "Malejąco",
"description": "Opis", "description": "Opis",
"destination_tag": "Tag docelowy:", "destination_tag": "Tag docelowy:",
"device_is_signing": "Urządzenie podpisuje",
"dfx_option_description": "Kup krypto za EUR & CHF. Dla klientów prywatnych i korporacyjnych w Europie", "dfx_option_description": "Kup krypto za EUR & CHF. Dla klientów prywatnych i korporacyjnych w Europie",
"didnt_get_code": "Nie dostałeś kodu?", "didnt_get_code": "Nie dostałeś kodu?",
"digit_pin": "-znakowy PIN", "digit_pin": "-znakowy PIN",
@ -394,6 +399,7 @@
"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",
"how_to_connect": "Jak połączyć się",
"how_to_use": "Jak używać", "how_to_use": "Jak używać",
"how_to_use_card": "Jak korzystać z tej karty?", "how_to_use_card": "Jak korzystać z tej karty?",
"id": "ID: ", "id": "ID: ",
@ -842,6 +848,7 @@
"spend_key_private": "Klucz prywatny", "spend_key_private": "Klucz prywatny",
"spend_key_public": "Klucz publiczny", "spend_key_public": "Klucz publiczny",
"status": "Status: ", "status": "Status: ",
"step": "Krok",
"string_default": "Domyślny", "string_default": "Domyślny",
"subaddress_title": "Lista podadresów", "subaddress_title": "Lista podadresów",
"subaddresses": "Podadresy", "subaddresses": "Podadresy",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "Confirmado", "confirmed_tx": "Confirmado",
"congratulations": "Parabéns!", "congratulations": "Parabéns!",
"connect_an_existing_yat": "Conecte um Yat existente", "connect_an_existing_yat": "Conecte um Yat existente",
"connect_hw_info_step_1": "Verifique se o seu dispositivo está ligado.",
"connect_hw_info_step_2": "Ligue o Bluetooth para os dois dispositivos e emparelhe -os do telefone ou conecte seus dispositivos usando um cabo USB.",
"connect_hw_info_step_3": "Desbloqueie seu dispositivo e navegue até o aplicativo Crypto desejado.",
"connect_hw_info_step_4": "Selecione seu dispositivo na carteira de bolo e continue com a configuração.",
"connect_yats": "Connect Yats", "connect_yats": "Connect Yats",
"connect_your_hardware_wallet": "Conecte sua carteira de hardware usando Bluetooth ou USB", "connect_your_hardware_wallet": "Conecte sua carteira de hardware usando Bluetooth ou USB",
"connect_your_hardware_wallet_ios": "Conecte sua carteira de hardware usando o Bluetooth", "connect_your_hardware_wallet_ios": "Conecte sua carteira de hardware usando o Bluetooth",
@ -240,6 +244,7 @@
"descending": "descendente", "descending": "descendente",
"description": "Descrição", "description": "Descrição",
"destination_tag": "Tag de destino:", "destination_tag": "Tag de destino:",
"device_is_signing": "O dispositivo está assinando",
"dfx_option_description": "Compre criptografia com EUR & CHF. Para clientes de varejo e corporativo na Europa", "dfx_option_description": "Compre criptografia com EUR & CHF. Para clientes de varejo e corporativo na Europa",
"didnt_get_code": "Não recebeu o código?", "didnt_get_code": "Não recebeu o código?",
"digit_pin": "dígitos", "digit_pin": "dígitos",
@ -394,6 +399,7 @@
"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",
"how_to_connect": "Como conectar",
"how_to_use": "Como usar", "how_to_use": "Como usar",
"how_to_use_card": "Como usar este cartão", "how_to_use_card": "Como usar este cartão",
"id": "ID: ", "id": "ID: ",
@ -844,6 +850,7 @@
"spend_key_private": "Chave de gastos (privada)", "spend_key_private": "Chave de gastos (privada)",
"spend_key_public": "Chave de gastos (pública)", "spend_key_public": "Chave de gastos (pública)",
"status": "Status: ", "status": "Status: ",
"step": "Etapa",
"string_default": "Padrão", "string_default": "Padrão",
"subaddress_title": "Sub-endereços", "subaddress_title": "Sub-endereços",
"subaddresses": "Sub-endereços", "subaddresses": "Sub-endereços",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "Подтвержденный", "confirmed_tx": "Подтвержденный",
"congratulations": "Поздравляем!", "congratulations": "Поздравляем!",
"connect_an_existing_yat": "Подключить существующий Yat", "connect_an_existing_yat": "Подключить существующий Yat",
"connect_hw_info_step_1": "Убедитесь, что ваше устройство включено.",
"connect_hw_info_step_2": "Включите Bluetooth для обоих устройств и соедините их с телефона или соедините свои устройства вместе с помощью USB -кабеля.",
"connect_hw_info_step_3": "Разблокируйте свое устройство и перейдите к желаемому крипто -приложению.",
"connect_hw_info_step_4": "Выберите свое устройство в кошельке для торта и продолжайте с настройкой.",
"connect_yats": "Подключить Yats", "connect_yats": "Подключить Yats",
"connect_your_hardware_wallet": "Подключите свой аппаратный кошелек с помощью Bluetooth или USB", "connect_your_hardware_wallet": "Подключите свой аппаратный кошелек с помощью Bluetooth или USB",
"connect_your_hardware_wallet_ios": "Подключите свой аппаратный кошелек с помощью Bluetooth", "connect_your_hardware_wallet_ios": "Подключите свой аппаратный кошелек с помощью Bluetooth",
@ -240,6 +244,7 @@
"descending": "Нисходящий", "descending": "Нисходящий",
"description": "Описание", "description": "Описание",
"destination_tag": "Целевой тег:", "destination_tag": "Целевой тег:",
"device_is_signing": "Устройство подписывает",
"dfx_option_description": "Купить крипто с Eur & CHF. Для розничных и корпоративных клиентов в Европе", "dfx_option_description": "Купить крипто с Eur & CHF. Для розничных и корпоративных клиентов в Европе",
"didnt_get_code": "Не получить код?", "didnt_get_code": "Не получить код?",
"digit_pin": "-значный PIN", "digit_pin": "-значный PIN",
@ -394,6 +399,7 @@
"hide_details": "Скрыть детали", "hide_details": "Скрыть детали",
"high_contrast_theme": "Высококонтрастная тема", "high_contrast_theme": "Высококонтрастная тема",
"home_screen_settings": "Настройки главного экрана", "home_screen_settings": "Настройки главного экрана",
"how_to_connect": "Как подключиться",
"how_to_use": "Как использовать", "how_to_use": "Как использовать",
"how_to_use_card": "Как использовать эту карту", "how_to_use_card": "Как использовать эту карту",
"id": "ID: ", "id": "ID: ",
@ -843,6 +849,7 @@
"spend_key_private": "Приватный ключ траты", "spend_key_private": "Приватный ключ траты",
"spend_key_public": "Публичный ключ траты", "spend_key_public": "Публичный ключ траты",
"status": "Статус: ", "status": "Статус: ",
"step": "Шаг",
"string_default": "По умолчанию", "string_default": "По умолчанию",
"subaddress_title": "Список субадресов", "subaddress_title": "Список субадресов",
"subaddresses": "Субадреса", "subaddresses": "Субадреса",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "ซึ่งยืนยันแล้ว", "confirmed_tx": "ซึ่งยืนยันแล้ว",
"congratulations": "ขอแสดงความยินดี!", "congratulations": "ขอแสดงความยินดี!",
"connect_an_existing_yat": "เชื่อมต่อ Yat ที่มีอยู่", "connect_an_existing_yat": "เชื่อมต่อ Yat ที่มีอยู่",
"connect_hw_info_step_1": "ตรวจสอบให้แน่ใจว่าอุปกรณ์ของคุณเปิดใช้งาน",
"connect_hw_info_step_2": "เปิดบลูทู ธ สำหรับอุปกรณ์ทั้งสองและจับคู่จากโทรศัพท์หรือเชื่อมต่ออุปกรณ์ของคุณเข้าด้วยกันโดยใช้สายเคเบิล USB",
"connect_hw_info_step_3": "ปลดล็อกอุปกรณ์ของคุณและนำทางไปยังแอพ crypto ที่ต้องการ",
"connect_hw_info_step_4": "เลือกอุปกรณ์ของคุณในกระเป๋าเงินเค้กและดำเนินการติดตั้งต่อไป",
"connect_yats": "เชื่อมต่อ Yats", "connect_yats": "เชื่อมต่อ Yats",
"connect_your_hardware_wallet": "เชื่อมต่อกระเป๋าเงินฮาร์ดแวร์ของคุณโดยใช้บลูทู ธ หรือ USB", "connect_your_hardware_wallet": "เชื่อมต่อกระเป๋าเงินฮาร์ดแวร์ของคุณโดยใช้บลูทู ธ หรือ USB",
"connect_your_hardware_wallet_ios": "เชื่อมต่อกระเป๋าเงินฮาร์ดแวร์ของคุณโดยใช้บลูทู ธ", "connect_your_hardware_wallet_ios": "เชื่อมต่อกระเป๋าเงินฮาร์ดแวร์ของคุณโดยใช้บลูทู ธ",
@ -240,6 +244,7 @@
"descending": "ลงมา", "descending": "ลงมา",
"description": "คำอธิบาย", "description": "คำอธิบาย",
"destination_tag": "แท็กปลายทาง:", "destination_tag": "แท็กปลายทาง:",
"device_is_signing": "อุปกรณ์กำลังลงนาม",
"dfx_option_description": "ซื้อ crypto ด้วย Eur & CHF สำหรับลูกค้ารายย่อยและลูกค้าในยุโรป", "dfx_option_description": "ซื้อ crypto ด้วย Eur & CHF สำหรับลูกค้ารายย่อยและลูกค้าในยุโรป",
"didnt_get_code": "ไม่ได้รับรหัส?", "didnt_get_code": "ไม่ได้รับรหัส?",
"digit_pin": "-หลัก PIN", "digit_pin": "-หลัก PIN",
@ -394,6 +399,7 @@
"hide_details": "ซ่อนรายละเอียด", "hide_details": "ซ่อนรายละเอียด",
"high_contrast_theme": "ธีมความคมชัดสูง", "high_contrast_theme": "ธีมความคมชัดสูง",
"home_screen_settings": "การตั้งค่าหน้าจอหลัก", "home_screen_settings": "การตั้งค่าหน้าจอหลัก",
"how_to_connect": "วิธีการเชื่อมต่อ",
"how_to_use": "วิธีใช้", "how_to_use": "วิธีใช้",
"how_to_use_card": "วิธีใช้บัตรนี้", "how_to_use_card": "วิธีใช้บัตรนี้",
"id": "ID: ", "id": "ID: ",
@ -842,6 +848,7 @@
"spend_key_private": "คีย์จ่าย (ส่วนตัว)", "spend_key_private": "คีย์จ่าย (ส่วนตัว)",
"spend_key_public": "คีย์จ่าย (สาธารณะ)", "spend_key_public": "คีย์จ่าย (สาธารณะ)",
"status": "สถานะ: ", "status": "สถานะ: ",
"step": "ขั้นตอน",
"string_default": "ค่าเริ่มต้น", "string_default": "ค่าเริ่มต้น",
"subaddress_title": "รายการที่อยู่ย่อย", "subaddress_title": "รายการที่อยู่ย่อย",
"subaddresses": "ที่อยู่ย่อย", "subaddresses": "ที่อยู่ย่อย",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "Nakumpirma", "confirmed_tx": "Nakumpirma",
"congratulations": "Congratulations!", "congratulations": "Congratulations!",
"connect_an_existing_yat": "Ikonekta ang isang umiiral na Yat", "connect_an_existing_yat": "Ikonekta ang isang umiiral na Yat",
"connect_hw_info_step_1": "Siguraduhin na ang iyong aparato ay pinapagana.",
"connect_hw_info_step_2": "Lumiko ang Bluetooth para sa parehong mga aparato at ipares ang mga ito mula sa telepono, o ikonekta ang iyong mga aparato nang magkasama gamit ang isang USB cable.",
"connect_hw_info_step_3": "I -unlock ang iyong aparato at mag -navigate sa nais na crypto app.",
"connect_hw_info_step_4": "Piliin ang iyong aparato sa cake wallet at magpatuloy sa pag -setup.",
"connect_yats": "Ikonekta sa Yats", "connect_yats": "Ikonekta sa Yats",
"connect_your_hardware_wallet": "Ikonekta ang iyong hardware wallet gamit ang Bluetooth o USB", "connect_your_hardware_wallet": "Ikonekta ang iyong hardware wallet gamit ang Bluetooth o USB",
"connect_your_hardware_wallet_ios": "Ikonekta ang iyong wallet gamit ang Bluetooth", "connect_your_hardware_wallet_ios": "Ikonekta ang iyong wallet gamit ang Bluetooth",
@ -240,6 +244,7 @@
"descending": "Pababang", "descending": "Pababang",
"description": "Paglalarawan", "description": "Paglalarawan",
"destination_tag": "Tag ng patutunguhan:", "destination_tag": "Tag ng patutunguhan:",
"device_is_signing": "Nag -sign ang aparato",
"dfx_option_description": "Bumili ng crypto kasama ang EUR & CHF. Para sa mga retail customer at corporate customer sa Europe", "dfx_option_description": "Bumili ng crypto kasama ang EUR & CHF. Para sa mga retail customer at corporate customer sa Europe",
"didnt_get_code": "Hindi nakuha ang code?", "didnt_get_code": "Hindi nakuha ang code?",
"digit_pin": "-digit PIN", "digit_pin": "-digit PIN",
@ -394,6 +399,7 @@
"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",
"how_to_connect": "Paano kumonekta",
"how_to_use": "Paano gamitin", "how_to_use": "Paano gamitin",
"how_to_use_card": "Paano gamitin ang card na ito", "how_to_use_card": "Paano gamitin ang card na ito",
"id": "ID: ", "id": "ID: ",
@ -842,6 +848,7 @@
"spend_key_private": "Spend key (private)", "spend_key_private": "Spend key (private)",
"spend_key_public": "Spend key (public)", "spend_key_public": "Spend key (public)",
"status": "Katayuan: ", "status": "Katayuan: ",
"step": "Hakbang",
"string_default": "Default", "string_default": "Default",
"subaddress_title": "Listahan ng Subaddress", "subaddress_title": "Listahan ng Subaddress",
"subaddresses": "Mga Subaddress", "subaddresses": "Mga Subaddress",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "Onaylanmış", "confirmed_tx": "Onaylanmış",
"congratulations": "Tebrikler!", "congratulations": "Tebrikler!",
"connect_an_existing_yat": "Mevcut bir Yat'ı bağla", "connect_an_existing_yat": "Mevcut bir Yat'ı bağla",
"connect_hw_info_step_1": "Cihazınızın açıldığından emin olun.",
"connect_hw_info_step_2": "Bluetooth'u her iki cihaz için açın ve telefondan eşleştirin veya bir USB kablosu kullanarak cihazlarınızı birbirine bağlayın.",
"connect_hw_info_step_3": "Cihazınızın kilidini açın ve istenen kripto uygulamasına gidin.",
"connect_hw_info_step_4": "Cihazınızı kek cüzdanında seçin ve kuruluma devam edin.",
"connect_yats": "Yat'lara bağlan", "connect_yats": "Yat'lara bağlan",
"connect_your_hardware_wallet": "Bluetooth veya USB kullanarak donanım cüzdanınızı bağlayın", "connect_your_hardware_wallet": "Bluetooth veya USB kullanarak donanım cüzdanınızı bağlayın",
"connect_your_hardware_wallet_ios": "Bluetooth kullanarak donanım cüzdanınızı bağlayın", "connect_your_hardware_wallet_ios": "Bluetooth kullanarak donanım cüzdanınızı bağlayın",
@ -240,6 +244,7 @@
"descending": "Azalan", "descending": "Azalan",
"description": "Tanım", "description": "Tanım",
"destination_tag": "Hedef Etiketi:", "destination_tag": "Hedef Etiketi:",
"device_is_signing": "Cihaz imzalıyor",
"dfx_option_description": "Eur & chf ile kripto satın alın. Avrupa'daki perakende ve kurumsal müşteriler için", "dfx_option_description": "Eur & chf ile kripto satın alın. Avrupa'daki perakende ve kurumsal müşteriler için",
"didnt_get_code": "Kod gelmedi mi?", "didnt_get_code": "Kod gelmedi mi?",
"digit_pin": " haneli PIN", "digit_pin": " haneli PIN",
@ -394,6 +399,7 @@
"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ı",
"how_to_connect": "Nasıl bağlanır",
"how_to_use": "Nasıl kullanılır", "how_to_use": "Nasıl kullanılır",
"how_to_use_card": "Bu kart nasıl kullanılır", "how_to_use_card": "Bu kart nasıl kullanılır",
"id": "ID: ", "id": "ID: ",
@ -842,6 +848,7 @@
"spend_key_private": "Harcama anahtarı (özel)", "spend_key_private": "Harcama anahtarı (özel)",
"spend_key_public": "Harcama anahtarı (genel)", "spend_key_public": "Harcama anahtarı (genel)",
"status": "Durum: ", "status": "Durum: ",
"step": "Adım",
"string_default": "Varsayılan", "string_default": "Varsayılan",
"subaddress_title": "Alt adres listesi", "subaddress_title": "Alt adres listesi",
"subaddresses": "Alt adresler", "subaddresses": "Alt adresler",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "Підтверджений", "confirmed_tx": "Підтверджений",
"congratulations": "Вітаємо!", "congratulations": "Вітаємо!",
"connect_an_existing_yat": "Підключити існуючий Yat", "connect_an_existing_yat": "Підключити існуючий Yat",
"connect_hw_info_step_1": "Переконайтесь, що ваш пристрій працює.",
"connect_hw_info_step_2": "Увімкніть Bluetooth для обох пристроїв і з’єднайте їх з телефону або підключіть свої пристрої разом за допомогою USB -кабелю.",
"connect_hw_info_step_3": "Розблокуйте свій пристрій і перейдіть до потрібного програми Crypto.",
"connect_hw_info_step_4": "Виберіть свій пристрій у гаманці тортів і продовжуйте налаштування.",
"connect_yats": "Підключіть Yats", "connect_yats": "Підключіть Yats",
"connect_your_hardware_wallet": "Підключіть апаратний гаманець за допомогою Bluetooth або USB", "connect_your_hardware_wallet": "Підключіть апаратний гаманець за допомогою Bluetooth або USB",
"connect_your_hardware_wallet_ios": "Підключіть апаратний гаманець за допомогою Bluetooth", "connect_your_hardware_wallet_ios": "Підключіть апаратний гаманець за допомогою Bluetooth",
@ -240,6 +244,7 @@
"descending": "Низхідний", "descending": "Низхідний",
"description": "опис", "description": "опис",
"destination_tag": "Тег призначення:", "destination_tag": "Тег призначення:",
"device_is_signing": "Пристрій підписується",
"dfx_option_description": "Купуйте криптовалюту з EUR & CHF. Для роздрібних та корпоративних клієнтів у Європі", "dfx_option_description": "Купуйте криптовалюту з EUR & CHF. Для роздрібних та корпоративних клієнтів у Європі",
"didnt_get_code": "Не отримали код?", "didnt_get_code": "Не отримали код?",
"digit_pin": "-значний PIN", "digit_pin": "-значний PIN",
@ -394,6 +399,7 @@
"hide_details": "Приховати деталі", "hide_details": "Приховати деталі",
"high_contrast_theme": "Тема високої контрастності", "high_contrast_theme": "Тема високої контрастності",
"home_screen_settings": "Налаштування головного екрана", "home_screen_settings": "Налаштування головного екрана",
"how_to_connect": "Як підключитися",
"how_to_use": "Як використовувати", "how_to_use": "Як використовувати",
"how_to_use_card": "Як використовувати цю картку", "how_to_use_card": "Як використовувати цю картку",
"id": "ID: ", "id": "ID: ",
@ -843,6 +849,7 @@
"spend_key_private": "Приватний ключ витрати", "spend_key_private": "Приватний ключ витрати",
"spend_key_public": "Публічний ключ витрати", "spend_key_public": "Публічний ключ витрати",
"status": "Статус: ", "status": "Статус: ",
"step": "Крок",
"string_default": "За замовчуванням", "string_default": "За замовчуванням",
"subaddress_title": "Список Субадрес", "subaddress_title": "Список Субадрес",
"subaddresses": "Субадреси", "subaddresses": "Субадреси",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "تصدیق", "confirmed_tx": "تصدیق",
"congratulations": "مبارک ہو!", "congratulations": "مبارک ہو!",
"connect_an_existing_yat": "ایک موجودہ Yat کو جوڑیں۔", "connect_an_existing_yat": "ایک موجودہ Yat کو جوڑیں۔",
"connect_hw_info_step_1": "اس بات کو یقینی بنائیں کہ آپ کا آلہ چل رہا ہے۔",
"connect_hw_info_step_2": "دونوں آلات کے لئے بلوٹوتھ کو آن کریں اور فون سے ان کو جوڑیں ، یا USB کیبل کا استعمال کرکے اپنے آلات کو ایک ساتھ جوڑیں۔",
"connect_hw_info_step_3": "اپنے آلے کو انلاک کریں اور مطلوبہ کریپٹو ایپ پر جائیں۔",
"connect_hw_info_step_4": "اپنے آلے کو کیک پرس میں منتخب کریں اور سیٹ اپ کے ساتھ جاری رکھیں۔",
"connect_yats": "Yats کو جوڑیں۔", "connect_yats": "Yats کو جوڑیں۔",
"connect_your_hardware_wallet": "بلوٹوتھ یا USB کا استعمال کرتے ہوئے اپنے ہارڈ ویئر پرس کو مربوط کریں", "connect_your_hardware_wallet": "بلوٹوتھ یا USB کا استعمال کرتے ہوئے اپنے ہارڈ ویئر پرس کو مربوط کریں",
"connect_your_hardware_wallet_ios": "بلوٹوتھ کا استعمال کرتے ہوئے اپنے ہارڈ ویئر پرس کو جوڑیں", "connect_your_hardware_wallet_ios": "بلوٹوتھ کا استعمال کرتے ہوئے اپنے ہارڈ ویئر پرس کو جوڑیں",
@ -240,6 +244,7 @@
"descending": "اترتے ہوئے", "descending": "اترتے ہوئے",
"description": "ﻞﯿﺼﻔﺗ", "description": "ﻞﯿﺼﻔﺗ",
"destination_tag": "منزل کا ٹیگ:", "destination_tag": "منزل کا ٹیگ:",
"device_is_signing": "ڈیوائس پر دستخط کر رہے ہیں",
"dfx_option_description": "یورو اور سی ایچ ایف کے ساتھ کرپٹو خریدیں۔ یورپ میں خوردہ اور کارپوریٹ صارفین کے لئے", "dfx_option_description": "یورو اور سی ایچ ایف کے ساتھ کرپٹو خریدیں۔ یورپ میں خوردہ اور کارپوریٹ صارفین کے لئے",
"didnt_get_code": "کوڈ نہیں ملتا؟", "didnt_get_code": "کوڈ نہیں ملتا؟",
"digit_pin": "-ہندسوں کا پن", "digit_pin": "-ہندسوں کا پن",
@ -394,6 +399,7 @@
"hide_details": "تفصیلات چھپائیں۔", "hide_details": "تفصیلات چھپائیں۔",
"high_contrast_theme": "ہائی کنٹراسٹ تھیم", "high_contrast_theme": "ہائی کنٹراسٹ تھیم",
"home_screen_settings": "ہوم اسکرین کی ترتیبات", "home_screen_settings": "ہوم اسکرین کی ترتیبات",
"how_to_connect": "کیسے مربوط ہوں",
"how_to_use": " ﮧﻘﯾﺮﻃ ﺎﮐ ﮯﻧﺮﮐ ﻝﺎﻤﻌﺘﺳﺍ", "how_to_use": " ﮧﻘﯾﺮﻃ ﺎﮐ ﮯﻧﺮﮐ ﻝﺎﻤﻌﺘﺳﺍ",
"how_to_use_card": "اس کارڈ کو استعمال کرنے کا طریقہ", "how_to_use_card": "اس کارڈ کو استعمال کرنے کا طریقہ",
"id": "ID:", "id": "ID:",
@ -844,6 +850,7 @@
"spend_key_private": "خرچ کی کلید (نجی)", "spend_key_private": "خرچ کی کلید (نجی)",
"spend_key_public": "خرچ کی کلید (عوامی)", "spend_key_public": "خرچ کی کلید (عوامی)",
"status": "حالت:", "status": "حالت:",
"step": "مرحلہ",
"string_default": "پہلے سے طے شدہ", "string_default": "پہلے سے طے شدہ",
"subaddress_title": "ذیلی ایڈریس کی فہرست", "subaddress_title": "ذیلی ایڈریس کی فہرست",
"subaddresses": "ذیلی پتے", "subaddresses": "ذیلی پتے",

View file

@ -180,6 +180,10 @@
"confirmed_tx": "Đã xác nhận", "confirmed_tx": "Đã xác nhận",
"congratulations": "Chúc mừng!", "congratulations": "Chúc mừng!",
"connect_an_existing_yat": "Kết nối Yat hiện có", "connect_an_existing_yat": "Kết nối Yat hiện có",
"connect_hw_info_step_1": "Hãy chắc chắn rằng thiết bị của bạn được bật nguồn.",
"connect_hw_info_step_2": "Bật Bluetooth cho cả hai thiết bị và ghép chúng từ điện thoại hoặc kết nối các thiết bị của bạn với nhau bằng cáp USB.",
"connect_hw_info_step_3": "Mở khóa thiết bị của bạn và điều hướng đến ứng dụng tiền điện tử mong muốn.",
"connect_hw_info_step_4": "Chọn thiết bị của bạn trong ví bánh và tiếp tục với thiết lập.",
"connect_yats": "Kết nối Yats", "connect_yats": "Kết nối Yats",
"connect_your_hardware_wallet": "Kết nối ví phần cứng của bạn bằng Bluetooth hoặc USB", "connect_your_hardware_wallet": "Kết nối ví phần cứng của bạn bằng Bluetooth hoặc USB",
"connect_your_hardware_wallet_ios": "Kết nối ví phần cứng của bạn bằng Bluetooth", "connect_your_hardware_wallet_ios": "Kết nối ví phần cứng của bạn bằng Bluetooth",
@ -239,6 +243,7 @@
"descending": "Giảm dần", "descending": "Giảm dần",
"description": "Mô tả", "description": "Mô tả",
"destination_tag": "Thẻ đích:", "destination_tag": "Thẻ đích:",
"device_is_signing": "Thiết bị đang ký",
"dfx_option_description": "Mua tiền điện tử bằng EUR & CHF. Dành cho khách hàng bán lẻ và doanh nghiệp tại Châu Âu", "dfx_option_description": "Mua tiền điện tử bằng EUR & CHF. Dành cho khách hàng bán lẻ và doanh nghiệp tại Châu Âu",
"didnt_get_code": "Không nhận được mã?", "didnt_get_code": "Không nhận được mã?",
"digit_pin": "Mã PIN - số", "digit_pin": "Mã PIN - số",
@ -393,6 +398,7 @@
"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",
"how_to_connect": "Cách kết nối",
"how_to_use": "Cách sử dụng", "how_to_use": "Cách sử dụng",
"how_to_use_card": "Cách sử dụng thẻ này", "how_to_use_card": "Cách sử dụng thẻ này",
"id": "ID: ", "id": "ID: ",
@ -839,6 +845,7 @@
"spend_key_private": "Khóa chi tiêu (riêng tư)", "spend_key_private": "Khóa chi tiêu (riêng tư)",
"spend_key_public": "Khóa chi tiêu (công khai)", "spend_key_public": "Khóa chi tiêu (công khai)",
"status": "Trạng thái: ", "status": "Trạng thái: ",
"step": "Bước chân",
"string_default": "Mặc định", "string_default": "Mặc định",
"subaddress_title": "Danh sách địa chỉ phụ", "subaddress_title": "Danh sách địa chỉ phụ",
"subaddresses": "Địa chỉ phụ", "subaddresses": "Địa chỉ phụ",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "Jẹrisi", "confirmed_tx": "Jẹrisi",
"congratulations": "Ẹ kúuṣẹ́ ooo!", "congratulations": "Ẹ kúuṣẹ́ ooo!",
"connect_an_existing_yat": "So Yat wíwà", "connect_an_existing_yat": "So Yat wíwà",
"connect_hw_info_step_1": "Rii daju pe ẹrọ rẹ ni agbara lori.",
"connect_hw_info_step_2": "Tan Bluetooth lori fun awọn ẹrọ mejeeji ki o pa wọn kuro ninu foonu, tabi so awọn ẹrọ rẹ pọ pẹlu lilo okun USB.",
"connect_hw_info_step_3": "Ṣii ẹrọ rẹ ki o lọ kiri si ohun elo Crypto ti o fẹ.",
"connect_hw_info_step_4": "Yan ẹrọ rẹ ni apamọwọ akara oyinbo ki o tẹsiwaju pẹlu iṣeto.",
"connect_yats": "So àwọn Yat", "connect_yats": "So àwọn Yat",
"connect_your_hardware_wallet": "So apamọwọ irinṣẹ rẹ nipa lilo Bluetooth tabi USB", "connect_your_hardware_wallet": "So apamọwọ irinṣẹ rẹ nipa lilo Bluetooth tabi USB",
"connect_your_hardware_wallet_ios": "So apamọwọ ẹrọ rẹ ni lilo Bluetooth", "connect_your_hardware_wallet_ios": "So apamọwọ ẹrọ rẹ ni lilo Bluetooth",
@ -240,6 +244,7 @@
"descending": "Sọkalẹ", "descending": "Sọkalẹ",
"description": "Apejuwe", "description": "Apejuwe",
"destination_tag": "Orúkọ tí ìbí tó a ránṣẹ́ sí:", "destination_tag": "Orúkọ tí ìbí tó a ránṣẹ́ sí:",
"device_is_signing": "Ẹrọ n forukọsilẹ",
"dfx_option_description": "Ra Crypto pẹlu EUR & CHF. Fun soobu ati awọn alabara ile-iṣẹ ni Yuroopu", "dfx_option_description": "Ra Crypto pẹlu EUR & CHF. Fun soobu ati awọn alabara ile-iṣẹ ni Yuroopu",
"didnt_get_code": "Ko gba koodu?", "didnt_get_code": "Ko gba koodu?",
"digit_pin": "-díjíìtì òǹkà ìdánimọ̀ àdáni", "digit_pin": "-díjíìtì òǹkà ìdánimọ̀ àdáni",
@ -395,6 +400,7 @@
"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",
"how_to_connect": "Bi o ṣe le sopọ",
"how_to_use": "Bawo ni lati lo", "how_to_use": "Bawo ni lati lo",
"how_to_use_card": "Báyìí ni wọ́n ṣe ń lo káàdì yìí.", "how_to_use_card": "Báyìí ni wọ́n ṣe ń lo káàdì yìí.",
"id": "Àmì Ìdánimọ̀: ", "id": "Àmì Ìdánimọ̀: ",
@ -843,6 +849,7 @@
"spend_key_private": "Kọ́kọ́rọ́ sísan (àdáni)", "spend_key_private": "Kọ́kọ́rọ́ sísan (àdáni)",
"spend_key_public": "Kọ́kọ́rọ́ sísan (kò àdáni)", "spend_key_public": "Kọ́kọ́rọ́ sísan (kò àdáni)",
"status": "Tó ń ṣẹlẹ̀: ", "status": "Tó ń ṣẹlẹ̀: ",
"step": "Igbesẹ",
"string_default": "Aiyipada", "string_default": "Aiyipada",
"subaddress_title": "Àkọsílẹ̀ ni nínú àwọn àdírẹ́sì tíwọn rẹ̀lẹ̀", "subaddress_title": "Àkọsílẹ̀ ni nínú àwọn àdírẹ́sì tíwọn rẹ̀lẹ̀",
"subaddresses": "Àwọn àdírẹ́sì kékeré", "subaddresses": "Àwọn àdírẹ́sì kékeré",

View file

@ -181,6 +181,10 @@
"confirmed_tx": "确认的", "confirmed_tx": "确认的",
"congratulations": "恭喜!", "congratulations": "恭喜!",
"connect_an_existing_yat": "連接現有 Yat", "connect_an_existing_yat": "連接現有 Yat",
"connect_hw_info_step_1": "确保您的设备已上电。",
"connect_hw_info_step_2": "为这两个设备打开蓝牙然后将它们配对或使用USB电缆将设备连接在一起。",
"connect_hw_info_step_3": "解锁设备并导航到所需的加密应用程序。",
"connect_hw_info_step_4": "在蛋糕钱包中选择您的设备,然后继续设置。",
"connect_yats": "连接 Yats", "connect_yats": "连接 Yats",
"connect_your_hardware_wallet": "使用蓝牙或USB连接硬件钱包", "connect_your_hardware_wallet": "使用蓝牙或USB连接硬件钱包",
"connect_your_hardware_wallet_ios": "使用蓝牙连接硬件钱包", "connect_your_hardware_wallet_ios": "使用蓝牙连接硬件钱包",
@ -240,6 +244,7 @@
"descending": "下降", "descending": "下降",
"description": "描述", "description": "描述",
"destination_tag": "目标Tag:", "destination_tag": "目标Tag:",
"device_is_signing": "设备正在签名",
"dfx_option_description": "用EurChf购买加密货币。对于欧洲的零售和企业客户", "dfx_option_description": "用EurChf购买加密货币。对于欧洲的零售和企业客户",
"didnt_get_code": "没有获取代码?", "didnt_get_code": "没有获取代码?",
"digit_pin": "位 PIN", "digit_pin": "位 PIN",
@ -394,6 +399,7 @@
"hide_details": "隐藏细节", "hide_details": "隐藏细节",
"high_contrast_theme": "高对比度主题", "high_contrast_theme": "高对比度主题",
"home_screen_settings": "主屏幕设置", "home_screen_settings": "主屏幕设置",
"how_to_connect": "如何连接",
"how_to_use": "如何使用", "how_to_use": "如何使用",
"how_to_use_card": "如何使用这张卡", "how_to_use_card": "如何使用这张卡",
"id": "ID: ", "id": "ID: ",
@ -842,6 +848,7 @@
"spend_key_private": "Spend 密钥 (私钥)", "spend_key_private": "Spend 密钥 (私钥)",
"spend_key_public": "Spend 密钥 (公钥)", "spend_key_public": "Spend 密钥 (公钥)",
"status": "状态: ", "status": "状态: ",
"step": "步",
"string_default": "默认", "string_default": "默认",
"subaddress_title": "子地址列表", "subaddress_title": "子地址列表",
"subaddresses": "子地址", "subaddresses": "子地址",

View file

@ -8,7 +8,7 @@ if [[ ! -d "monero_c/.git" ]];
then then
git clone https://github.com/mrcyjanek/monero_c --branch master monero_c git clone https://github.com/mrcyjanek/monero_c --branch master monero_c
cd monero_c cd monero_c
git checkout b335585a7fb94b315eb52bd88f2da6d3489fa508 git checkout a27fbcb24d91143715ed930a05aaa4d853fba1f2
git reset --hard git reset --hard
git submodule update --init --force --recursive git submodule update --init --force --recursive
./apply_patches.sh monero ./apply_patches.sh monero

View file

@ -434,6 +434,7 @@ WalletCredentials createMoneroNewWalletCredentials({required String name, requir
void setLedgerConnection(Object wallet, ledger.LedgerConnection connection); void setLedgerConnection(Object wallet, ledger.LedgerConnection connection);
void resetLedgerConnection(); void resetLedgerConnection();
void setGlobalLedgerConnection(ledger.LedgerConnection connection); void setGlobalLedgerConnection(ledger.LedgerConnection connection);
String? getLastLedgerCommand();
Map<String, List<int>> debugCallLength(); Map<String, List<int>> debugCallLength();
} }