mirror of
https://github.com/Such-Software/hash-wallet.git
synced 2026-10-26 06:08:40 +01:00
Merge branch 'cake-tech:dev' into dev
This commit is contained in:
@@ -113,12 +113,15 @@ jobs:
|
||||
|
||||
- name: Build monero_c
|
||||
run: |
|
||||
mkdir -p scripts/monero_c
|
||||
pushd scripts/monero_c
|
||||
wget https://github.com/MrCyjaneK/monero_c/releases/download/v0.18.4.0-RC9/release-bundle.zip
|
||||
unzip release-bundle.zip
|
||||
rm release-bundle.zip
|
||||
unxz -fv release/*/*.xz
|
||||
./scripts/prepare_moneroc.sh
|
||||
mkdir -p scripts/monero_c/release
|
||||
pushd scripts/monero_c/release
|
||||
mkdir -p $(git describe --tags)
|
||||
pushd $(git describe --tags)
|
||||
wget https://github.com/MrCyjaneK/monero_c/releases/download/v0.18.4.6-RC1/release-bundle.zip
|
||||
unzip release-bundle.zip
|
||||
rm release-bundle.zip
|
||||
popd
|
||||
popd
|
||||
|
||||
- name: Execute Build and Setup Commands
|
||||
@@ -218,7 +221,7 @@ jobs:
|
||||
exec timeout --signal=SIGKILL 900 flutter drive --driver=test_driver/integration_test.dart --target=integration_test/test_suites/restore_wallet_through_seeds_flow_test.dart
|
||||
- name: Test [cw_monero]
|
||||
timeout-minutes: 15
|
||||
run: cd cw_monero && flutter test --verbose
|
||||
run: cd cw_monero && flutter test
|
||||
- name: Stop screen recording, encrypt and upload
|
||||
if: always()
|
||||
run: |
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
lib*_wallet2_api_c.so
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../scripts/monero_c/release/monero/aarch64-linux-android_libwallet2_api_c.so
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../scripts/monero_c/release/wownero/aarch64-linux-android_libwallet2_api_c.so
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../scripts/monero_c/release/zano/aarch64-linux-android_libwallet2_api_c.so
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../scripts/monero_c/release/monero/armv7a-linux-androideabi_libwallet2_api_c.so
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../scripts/monero_c/release/wownero/armv7a-linux-androideabi_libwallet2_api_c.so
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../scripts/monero_c/release/zano/armv7a-linux-androideabi_libwallet2_api_c.so
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../scripts/monero_c/release/monero/x86_64-linux-android_libwallet2_api_c.so
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../scripts/monero_c/release/wownero/x86_64-linux-android_libwallet2_api_c.so
|
||||
@@ -1 +0,0 @@
|
||||
../../../../../../scripts/monero_c/release/zano/x86_64-linux-android_libwallet2_api_c.so
|
||||
@@ -112,10 +112,7 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store {
|
||||
);
|
||||
} catch (e) {
|
||||
printV(e);
|
||||
lightningWallet = null;
|
||||
}
|
||||
} else {
|
||||
lightningWallet = null;
|
||||
}
|
||||
|
||||
payjoinManager = PayjoinManager(PayjoinStorage(payjoinBox), this);
|
||||
@@ -153,6 +150,7 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store {
|
||||
lnurlDomain: "cake.cash",
|
||||
cachedAddress: cachedLightningAddress,
|
||||
);
|
||||
walletAddresses.setLightningAddress(walletInfo.name);
|
||||
}
|
||||
} else {
|
||||
lightningWallet = null;
|
||||
@@ -367,6 +365,18 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store {
|
||||
await fetchBalances();
|
||||
}
|
||||
},
|
||||
onCreateDepositTransactionEvent: (txs) async {
|
||||
if (txs.isNotEmpty) {
|
||||
transactionHistory.addMany(txs);
|
||||
await transactionHistory.save();
|
||||
}
|
||||
},
|
||||
onUpdateDepositTransactionEvent: (txs) async {
|
||||
if (txs.isNotEmpty) {
|
||||
txs.forEach((tx) => transactionHistory.transactions.remove(tx.id));
|
||||
await transactionHistory.save();
|
||||
}
|
||||
},
|
||||
onBalanceChangedEvent: fetchBalances,
|
||||
);
|
||||
}
|
||||
@@ -390,7 +400,7 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store {
|
||||
return super.fetchTransactions();
|
||||
}
|
||||
|
||||
late LightningWallet? lightningWallet;
|
||||
LightningWallet? lightningWallet;
|
||||
|
||||
late final PayjoinManager payjoinManager;
|
||||
|
||||
@@ -479,10 +489,9 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store {
|
||||
final isLNCompatible = await lightningWallet?.isCompatible(lnAddr);
|
||||
if ((credentials.coinTypeToSpendFrom == UnspentCoinType.lightning && lightningWallet != null) ||
|
||||
isLNCompatible == true) {
|
||||
|
||||
BigInt amount;
|
||||
if (credentials.outputs.first.sendAll) {
|
||||
amount = (await lightningWallet!.getBalance()) - BigInt.from(10);
|
||||
amount = await lightningWallet!.getBalance();
|
||||
} else {
|
||||
amount = parseFixed(
|
||||
credentials.outputs.first.cryptoAmount?.isNotEmpty == true
|
||||
@@ -491,8 +500,8 @@ abstract class BitcoinWalletBase extends ElectrumWallet with Store {
|
||||
8);
|
||||
}
|
||||
|
||||
return lightningWallet!.createTransaction(lnAddr,
|
||||
amount > BigInt.zero ? amount : null, credentials.priority);
|
||||
return lightningWallet!.createTransaction(lnAddr, amount > BigInt.zero ? amount : null,
|
||||
credentials.priority, credentials.outputs.first.sendAll);
|
||||
}
|
||||
|
||||
final tx = (await super.createTransaction(credentials)) as PendingBitcoinTransaction;
|
||||
|
||||
@@ -3,6 +3,7 @@ import 'dart:math';
|
||||
|
||||
import 'package:bitcoin_base/bitcoin_base.dart';
|
||||
import 'package:blockchain_utils/blockchain_utils.dart';
|
||||
import 'package:breez_sdk_spark_flutter/breez_sdk_spark.dart';
|
||||
import 'package:cw_bitcoin/bitcoin_address_record.dart';
|
||||
import 'package:cw_bitcoin/bitcoin_unspent.dart';
|
||||
import 'package:cw_bitcoin/lightning/lightning_addres_type.dart';
|
||||
@@ -807,10 +808,11 @@ abstract class ElectrumWalletAddressesBase extends WalletAddresses with Store {
|
||||
printV(username);
|
||||
rethrow;
|
||||
}
|
||||
} catch (e) {
|
||||
// make sure lightningAddress gets initialized anyway
|
||||
} on SdkError_NetworkError catch (_) {
|
||||
} on SdkError_SparkError catch (e) {
|
||||
if (!e.field0.contains("dns")) rethrow;
|
||||
} finally {
|
||||
lightningAddress ??= lightningWallet!.cachedAddress;
|
||||
rethrow;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -137,17 +137,24 @@ class LightningWallet {
|
||||
.lightningAddress;
|
||||
}
|
||||
|
||||
Future<String> getBolt11Invoice(BigInt? amount, String description) async {
|
||||
final response = await sdk.receivePayment(
|
||||
request: ReceivePaymentRequest(
|
||||
paymentMethod: ReceivePaymentMethod.bolt11Invoice(
|
||||
description: description,
|
||||
amountSats: amount,
|
||||
Future<String?> getBolt11Invoice(BigInt? amount, String description) async {
|
||||
try {
|
||||
final response = await sdk.receivePayment(
|
||||
request: ReceivePaymentRequest(
|
||||
paymentMethod: ReceivePaymentMethod.bolt11Invoice(
|
||||
description: description,
|
||||
amountSats: amount,
|
||||
),
|
||||
),
|
||||
),
|
||||
);
|
||||
);
|
||||
|
||||
return response.paymentRequest;
|
||||
return response.paymentRequest;
|
||||
} on SdkError_NetworkError catch (_) {
|
||||
return null;
|
||||
} on SdkError_SparkError catch (e) {
|
||||
if (!e.field0.contains("dns")) rethrow;
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
Future<bool> isCompatible(String input) async {
|
||||
@@ -162,12 +169,14 @@ class LightningWallet {
|
||||
}
|
||||
|
||||
Future<PendingLightningTransaction> createTransaction(
|
||||
String address, BigInt? amountSats, BitcoinTransactionPriority? priority) async {
|
||||
String address, BigInt? amountSats, BitcoinTransactionPriority? priority, bool feesIncluded) async {
|
||||
final inputType = await sdk.parse(input: address);
|
||||
|
||||
final feePolicy = feesIncluded ? FeePolicy.feesIncluded : FeePolicy.feesExcluded;
|
||||
|
||||
if (inputType is InputType_Bolt11Invoice) {
|
||||
final request = PrepareSendPaymentRequest(
|
||||
paymentRequest: inputType.field0.invoice.bolt11, amount: amountSats);
|
||||
paymentRequest: inputType.field0.invoice.bolt11, amount: amountSats, feePolicy: feePolicy);
|
||||
final prepareResponse = await sdk.prepareSendPayment(request: request);
|
||||
|
||||
final paymentMethod = prepareResponse.paymentMethod;
|
||||
@@ -177,7 +186,7 @@ class LightningWallet {
|
||||
|
||||
return PendingLightningTransaction(
|
||||
id: paymentMethod.invoiceDetails.paymentHash,
|
||||
amount: amountSats?.toInt() ??
|
||||
amount: request.amount?.toInt() ?? amountSats?.toInt() ??
|
||||
((paymentMethod.invoiceDetails.amountMsat?.toInt() ?? 0) / 1000).round(),
|
||||
fee: lightningFeeSats.toInt() + (sparkTransferFeeSats?.toInt() ?? 0),
|
||||
commitOverride: () async {
|
||||
@@ -203,12 +212,14 @@ class LightningWallet {
|
||||
amountSats: amountSats!,
|
||||
payRequest: inputType.field0.payRequest,
|
||||
validateSuccessActionUrl: optionalValidateSuccessActionUrl,
|
||||
feePolicy: feePolicy,
|
||||
);
|
||||
} else {
|
||||
request = PrepareLnurlPayRequest(
|
||||
amountSats: amountSats!,
|
||||
payRequest: (inputType as InputType_LnurlPay).field0,
|
||||
validateSuccessActionUrl: optionalValidateSuccessActionUrl,
|
||||
feePolicy: feePolicy,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -218,7 +229,7 @@ class LightningWallet {
|
||||
|
||||
return PendingLightningTransaction(
|
||||
id: prepareResponse.invoiceDetails.paymentHash,
|
||||
amount: ((prepareResponse.invoiceDetails.amountMsat?.toInt() ?? 0) / 1000).round(),
|
||||
amount: prepareResponse.amountSats.toInt(),
|
||||
fee: feeSats.toInt(),
|
||||
commitOverride: () async {
|
||||
final res =
|
||||
@@ -227,8 +238,11 @@ class LightningWallet {
|
||||
},
|
||||
);
|
||||
} else if (inputType is InputType_BitcoinAddress) {
|
||||
final request =
|
||||
PrepareSendPaymentRequest(paymentRequest: inputType.field0.address, amount: amountSats);
|
||||
final request = PrepareSendPaymentRequest(
|
||||
paymentRequest: inputType.field0.address,
|
||||
amount: amountSats,
|
||||
feePolicy: feePolicy,
|
||||
);
|
||||
final prepareResponse = await sdk.prepareSendPayment(request: request);
|
||||
|
||||
final paymentMethod = prepareResponse.paymentMethod;
|
||||
@@ -355,8 +369,12 @@ class LightningWallet {
|
||||
return response.txHex;
|
||||
}
|
||||
|
||||
void setEventListener(
|
||||
{required Function(ElectrumTransactionInfo) onTransactionEvent, required Function onBalanceChangedEvent}) {
|
||||
void setEventListener({
|
||||
required Function(ElectrumTransactionInfo) onTransactionEvent,
|
||||
required Function onBalanceChangedEvent,
|
||||
required Function(Map<String, ElectrumTransactionInfo>) onCreateDepositTransactionEvent,
|
||||
required Function(List<ElectrumTransactionInfo>) onUpdateDepositTransactionEvent,
|
||||
}) {
|
||||
_eventSubscription = _eventStream?.listen((sdkEvent) {
|
||||
if (sdkEvent is SdkEvent_PaymentSucceeded) {
|
||||
onTransactionEvent(_getElectrumTransactionInfoFromPayment(sdkEvent.payment));
|
||||
@@ -364,6 +382,16 @@ class LightningWallet {
|
||||
onTransactionEvent(_getElectrumTransactionInfoFromPayment(sdkEvent.payment));
|
||||
} else if (sdkEvent is SdkEvent_ClaimedDeposits) {
|
||||
onBalanceChangedEvent();
|
||||
onUpdateDepositTransactionEvent(
|
||||
sdkEvent.claimedDeposits.map(_getElectrumTransactionInfoFromDepositInfo).toList());
|
||||
} else if (sdkEvent is SdkEvent_UnclaimedDeposits) {
|
||||
final unclaimedDeposits = <String, ElectrumTransactionInfo>{};
|
||||
|
||||
for (final deposit in sdkEvent.unclaimedDeposits) {
|
||||
unclaimedDeposits[deposit.txid] = _getElectrumTransactionInfoFromDepositInfo(deposit);
|
||||
}
|
||||
|
||||
onCreateDepositTransactionEvent(unclaimedDeposits);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -390,4 +418,18 @@ class LightningWallet {
|
||||
additionalInfo: {"isLightning": true},
|
||||
);
|
||||
}
|
||||
|
||||
ElectrumTransactionInfo _getElectrumTransactionInfoFromDepositInfo(DepositInfo deposit) {
|
||||
return ElectrumTransactionInfo(
|
||||
WalletType.bitcoin,
|
||||
id: deposit.txid,
|
||||
amount: deposit.amountSats.toInt(),
|
||||
direction: TransactionDirection.incoming,
|
||||
isPending: true,
|
||||
fee: 0,
|
||||
date: DateTime.now(),
|
||||
confirmations: 0,
|
||||
additionalInfo: {"isLightning": true, "isSparkDeposit": true},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -73,7 +73,8 @@ abstract class LitecoinWalletAddressesBase extends ElectrumWalletAddresses with
|
||||
return List.from(super.allAddresses)..addAll(mwebAddresses);
|
||||
}
|
||||
|
||||
Future<void> ensureMwebAddressUpToIndexExists(int index) async {
|
||||
Future<void> ensureMwebAddressUpToIndexExists(int _index) async {
|
||||
final index = _index + 1;
|
||||
if (Platform.isLinux || Platform.isMacOS || Platform.isWindows) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -582,8 +582,8 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: "impls/monero.dart"
|
||||
ref: "411e8a1cdb3f4c2812d83f28c335d2a4eb18bd29"
|
||||
resolved-ref: "411e8a1cdb3f4c2812d83f28c335d2a4eb18bd29"
|
||||
ref: bc8d1a0b75b97156d71579581b4cdfe58c777ed2
|
||||
resolved-ref: bc8d1a0b75b97156d71579581b4cdfe58c777ed2
|
||||
url: "https://github.com/mrcyjanek/monero_c"
|
||||
source: git
|
||||
version: "0.0.0"
|
||||
|
||||
@@ -26,7 +26,7 @@ dependencies:
|
||||
monero:
|
||||
git:
|
||||
url: https://github.com/mrcyjanek/monero_c
|
||||
ref: 411e8a1cdb3f4c2812d83f28c335d2a4eb18bd29
|
||||
ref: bc8d1a0b75b97156d71579581b4cdfe58c777ed2
|
||||
path: impls/monero.dart
|
||||
mutex: ^3.1.0
|
||||
ledger_flutter_plus: ^1.4.1
|
||||
@@ -54,7 +54,6 @@ flutter:
|
||||
# be modified. They are used by the tooling to maintain consistency when
|
||||
# adding or updating assets for this project.
|
||||
|
||||
|
||||
# To add assets to your plugin package, add an assets section, like this:
|
||||
# assets:
|
||||
# - images/a_dot_burr.jpeg
|
||||
|
||||
@@ -18,7 +18,7 @@ import 'utils/setup_monero_c.dart';
|
||||
Future<void> main() async {
|
||||
group("MoneroWalletService Tests", () {
|
||||
late MoneroWalletService walletService;
|
||||
late File moneroCBinary;
|
||||
File? moneroCBinary;
|
||||
|
||||
setUpAll(() async {
|
||||
await initDb(pathOverride: './test/data/db');
|
||||
@@ -34,7 +34,7 @@ Future<void> main() async {
|
||||
|
||||
tearDownAll(() {
|
||||
Directory('./test/data').deleteSync(recursive: true);
|
||||
moneroCBinary.deleteSync();
|
||||
moneroCBinary!.deleteSync();
|
||||
});
|
||||
|
||||
group("Create wallet", () {
|
||||
|
||||
@@ -1,16 +1,27 @@
|
||||
import 'dart:io';
|
||||
import 'package:path/path.dart' as p;
|
||||
|
||||
File getMoneroCBinary() {
|
||||
if (Platform.isWindows)
|
||||
return File(
|
||||
'../scripts/monero_c/release/monero/x86_64-w64-mingw32_libwallet2_api_c.dll');
|
||||
if (Platform.isMacOS) return File('../macos/monero_libwallet2_api_c.dylib');
|
||||
return File('../scripts/monero_c/release/monero/x86_64-linux-gnu_libwallet2_api_c.so');
|
||||
final baseDir = Directory('../scripts/monero_c/release');
|
||||
|
||||
final versionDir =
|
||||
baseDir.listSync().whereType<Directory>().map((d) => d.path).firstWhere(
|
||||
(path) => p.basename(path).startsWith('v'),
|
||||
);
|
||||
|
||||
if (Platform.isWindows) {
|
||||
return File(p.join(
|
||||
versionDir, 'x86_64-w64-mingw32', 'libmonero_wallet2_api_c.dll'));
|
||||
}
|
||||
if (Platform.isMacOS) {
|
||||
return File(p.join(versionDir, 'macos', 'libmonero_wallet2_api_c.dylib'));
|
||||
}
|
||||
return File(
|
||||
p.join(versionDir, 'x86_64-linux-gnu', 'libmonero_wallet2_api_c.so'));
|
||||
}
|
||||
|
||||
String get moneroCBinaryName {
|
||||
if (Platform.isWindows)
|
||||
return "monero_libwallet2_api_c.dll";
|
||||
if (Platform.isMacOS) return "monero_libwallet2_api_c.dylib";
|
||||
return "/usr/lib/monero_libwallet2_api_c.so";
|
||||
if (Platform.isWindows) return "libmonero_wallet2_api_c.dll";
|
||||
if (Platform.isMacOS) return "libmonero_wallet2_api_c.dylib";
|
||||
return "/usr/lib/libmonero_wallet2_api_c.so";
|
||||
}
|
||||
|
||||
@@ -502,8 +502,8 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: "impls/monero.dart"
|
||||
ref: "411e8a1cdb3f4c2812d83f28c335d2a4eb18bd29"
|
||||
resolved-ref: "411e8a1cdb3f4c2812d83f28c335d2a4eb18bd29"
|
||||
ref: bc8d1a0b75b97156d71579581b4cdfe58c777ed2
|
||||
resolved-ref: bc8d1a0b75b97156d71579581b4cdfe58c777ed2
|
||||
url: "https://github.com/mrcyjanek/monero_c"
|
||||
source: git
|
||||
version: "0.0.0"
|
||||
|
||||
@@ -24,7 +24,7 @@ dependencies:
|
||||
monero:
|
||||
git:
|
||||
url: https://github.com/mrcyjanek/monero_c
|
||||
ref: 411e8a1cdb3f4c2812d83f28c335d2a4eb18bd29 # monero_c hash
|
||||
ref: bc8d1a0b75b97156d71579581b4cdfe58c777ed2 # monero_c hash
|
||||
path: impls/monero.dart
|
||||
mutex: ^3.1.0
|
||||
|
||||
@@ -49,7 +49,6 @@ flutter:
|
||||
# be modified. They are used by the tooling to maintain consistency when
|
||||
# adding or updating assets for this project.
|
||||
|
||||
|
||||
# To add assets to your plugin package, add an assets section, like this:
|
||||
# assets:
|
||||
# - images/a_dot_burr.jpeg
|
||||
|
||||
@@ -507,8 +507,8 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
path: "impls/monero.dart"
|
||||
ref: "411e8a1cdb3f4c2812d83f28c335d2a4eb18bd29"
|
||||
resolved-ref: "411e8a1cdb3f4c2812d83f28c335d2a4eb18bd29"
|
||||
ref: bc8d1a0b75b97156d71579581b4cdfe58c777ed2
|
||||
resolved-ref: bc8d1a0b75b97156d71579581b4cdfe58c777ed2
|
||||
url: "https://github.com/mrcyjanek/monero_c"
|
||||
source: git
|
||||
version: "0.0.0"
|
||||
|
||||
@@ -25,7 +25,7 @@ dependencies:
|
||||
monero:
|
||||
git:
|
||||
url: https://github.com/mrcyjanek/monero_c
|
||||
ref: 411e8a1cdb3f4c2812d83f28c335d2a4eb18bd29 # monero_c hash
|
||||
ref: bc8d1a0b75b97156d71579581b4cdfe58c777ed2 # monero_c hash
|
||||
path: impls/monero.dart
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
@@ -38,7 +38,6 @@ dev_dependencies:
|
||||
dependency_overrides:
|
||||
watcher: ^1.1.0
|
||||
|
||||
|
||||
# For information on the generic Dart part of this file, see the
|
||||
# following page: https://dart.dev/tools/pub/pubspec
|
||||
|
||||
|
||||
@@ -65,7 +65,7 @@ class SymbolsAmountValidator extends TextValidator {
|
||||
maxLength: 0,
|
||||
);
|
||||
|
||||
static String _pattern() => '^([0-9]+([.\,][0-9]+)?|[.\,][0-9]+)\$';
|
||||
static String _pattern() => r'^(?:\d+(?:[.\,]\d+)?|[.\,]\d+)$';
|
||||
}
|
||||
|
||||
class DecimalAmountValidator extends TextValidator {
|
||||
|
||||
@@ -12,7 +12,8 @@ class LNUrlPayRecord {
|
||||
final String name;
|
||||
final String address;
|
||||
|
||||
static Future<String?> checkWellKnownUsername(String username, CryptoCurrency currency) async {
|
||||
static Future<String?> checkWellKnownUsername(String username, CryptoCurrency currency,
|
||||
{bool allowRethrow = false}) async {
|
||||
if (![CryptoCurrency.btc, CryptoCurrency.btcln].contains(currency)) return null;
|
||||
|
||||
// split the string by the @ symbol:
|
||||
@@ -40,6 +41,7 @@ class LNUrlPayRecord {
|
||||
return LNURL.encode(expectedUrl);
|
||||
}
|
||||
} catch (e) {
|
||||
if (allowRethrow) rethrow;
|
||||
printV("error checking well-known username: $e");
|
||||
}
|
||||
return null;
|
||||
|
||||
@@ -136,4 +136,5 @@ class PreferencesKey {
|
||||
static const syncStatusDisplayMode = 'sync_status_display_mode';
|
||||
static const backgroundImage = 'background_image';
|
||||
static const mwebAdDismissed = "mweb_ad_dismissed";
|
||||
static const balanceHideCounter = "balance_hide_counter";
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import 'package:cake_wallet/core/auth_service.dart';
|
||||
import 'package:cake_wallet/di.dart';
|
||||
import 'package:cake_wallet/generated/i18n.dart';
|
||||
import 'package:cake_wallet/new-ui/modal_navigator.dart';
|
||||
import 'package:cake_wallet/new-ui/pages/account_customizer.dart';
|
||||
import 'package:cake_wallet/new-ui/pages/card_customizer.dart';
|
||||
@@ -129,7 +130,29 @@ class _NewHomePageState extends State<NewHomePage> {
|
||||
lightningMode: _lightningMode,
|
||||
),
|
||||
),
|
||||
UnconfirmedBalanceWidget(dashboardViewModel: widget.dashboardViewModel,),
|
||||
Observer(builder: (_) {
|
||||
return AnimatedSize(
|
||||
duration: Duration(milliseconds: 150),
|
||||
curve: Curves.easeInOutCubic,
|
||||
child: (widget.dashboardViewModel.shouldShowBalanceHiddenMessage)
|
||||
? Column(
|
||||
children: [
|
||||
SizedBox(
|
||||
height: 12,
|
||||
width: double.infinity,
|
||||
),
|
||||
Text(
|
||||
S.of(context).long_press_show_balance,
|
||||
style: TextStyle(
|
||||
color:
|
||||
Theme.of(context).colorScheme.onSurfaceVariant),
|
||||
)
|
||||
],
|
||||
)
|
||||
: SizedBox(width: double.infinity),
|
||||
);
|
||||
}),
|
||||
UnconfirmedBalanceWidget(dashboardViewModel: widget.dashboardViewModel,),
|
||||
],
|
||||
),
|
||||
Observer(
|
||||
|
||||
@@ -691,12 +691,15 @@ class _NewSendPageState extends State<NewSendPage> {
|
||||
void _handleSend() async {
|
||||
//TODO refactor this action. code was copied over from old ui. i don't like it.
|
||||
|
||||
for(int i=0; i<widget.sendViewModel.outputs.length; i++) {
|
||||
if(i < _amountControllers.length) {
|
||||
if(_fiatInputMode) {
|
||||
for (var i = 0; i < widget.sendViewModel.outputs.length; i++) {
|
||||
if (i < _amountControllers.length && !widget.sendViewModel.outputs[i].sendAll) {
|
||||
if (_fiatInputMode) {
|
||||
widget.sendViewModel.outputs[i].setFiatAmount(_amountControllers[i].text);
|
||||
} else {
|
||||
widget.sendViewModel.outputs[i].cryptoAmount = _amountControllers[i].text;
|
||||
final amount = widget.sendViewModel.amountParsingProxy.getCanonicalCryptoAmount(
|
||||
_amountControllers[i].text.replaceAll(",", "."),
|
||||
widget.sendViewModel.selectedCryptoCurrency);
|
||||
widget.sendViewModel.outputs[i].setCryptoAmount(amount);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -81,10 +81,15 @@ class LightningUsernameBloc extends Bloc<LightningUsernameEvent, LightningUserna
|
||||
return UsernameError(S.current.already_your_username, isInfo: true);
|
||||
}
|
||||
|
||||
if ((await LNUrlPayRecord.checkWellKnownUsername(
|
||||
"${username}${usernameSuffix}", CryptoCurrency.btc)) !=
|
||||
null) {
|
||||
return UsernameError(S.current.username_not_available);
|
||||
try {
|
||||
if ((await LNUrlPayRecord.checkWellKnownUsername(
|
||||
"${username}${usernameSuffix}", CryptoCurrency.btc,
|
||||
allowRethrow: true)) !=
|
||||
null) {
|
||||
return UsernameError(S.current.username_not_available);
|
||||
}
|
||||
} catch (e) {
|
||||
return UsernameError(S.current.username_check_your_network);
|
||||
}
|
||||
|
||||
return null;
|
||||
|
||||
@@ -42,11 +42,11 @@ class _TransactionDetailsModalState extends State<TransactionDetailsModal> {
|
||||
Widget build(BuildContext context) {
|
||||
return DraggableScrollableSheet(
|
||||
expand: false,
|
||||
initialChildSize: 0.6,
|
||||
initialChildSize: 0.9,
|
||||
minChildSize: 0.25,
|
||||
maxChildSize: 0.9,
|
||||
snap: true,
|
||||
snapSizes: const [0.6, 0.9],
|
||||
snapSizes: const [0.9],
|
||||
builder: (context, controller) => SafeArea(
|
||||
bottom: false,
|
||||
child: Padding(
|
||||
|
||||
@@ -3,7 +3,6 @@ import 'package:cake_wallet/src/widgets/cake_image_widget.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter_mobx/flutter_mobx.dart';
|
||||
import 'package:flutter_svg/flutter_svg.dart';
|
||||
|
||||
class NewSendAmountInput extends StatefulWidget {
|
||||
const NewSendAmountInput(
|
||||
@@ -66,7 +65,7 @@ class _NewSendAmountInputState extends State<NewSendAmountInput> {
|
||||
keyboardType:
|
||||
TextInputType.numberWithOptions(signed: false, decimal: true),
|
||||
inputFormatters: <TextInputFormatter>[
|
||||
FilteringTextInputFormatter.allow(RegExp(r'^\d*\.?\d*$'))
|
||||
FilteringTextInputFormatter.allow(RegExp(r'^\d*[.,]?\d*$'))
|
||||
],
|
||||
onChanged: state.didChange,
|
||||
controller: widget.amountController,
|
||||
|
||||
@@ -143,6 +143,7 @@ abstract class SettingsStoreBase with Store {
|
||||
required this.hasEnabledMwebBefore,
|
||||
required this.mwebNodeUri,
|
||||
required this.mwebAdDismissed,
|
||||
required this.balanceHideCounter,
|
||||
required bool initialEnableAutomaticNodeSwitching,
|
||||
required String initialBackgroundImage,
|
||||
TransactionPriority? initialBitcoinTransactionPriority,
|
||||
@@ -720,6 +721,11 @@ abstract class SettingsStoreBase with Store {
|
||||
PreferencesKey.decentralizedExchangesPromptDismissed,
|
||||
decentralizedExchangesPromptDismissed));
|
||||
|
||||
reaction(
|
||||
(_) => balanceHideCounter,
|
||||
(int balanceHideCounter) => _sharedPreferences.setInt(PreferencesKey.balanceHideCounter, balanceHideCounter)
|
||||
);
|
||||
|
||||
this.nodes.observe((change) {
|
||||
if (change.newValue != null && change.key != null) {
|
||||
_saveCurrentNode(change.newValue!, change.key!);
|
||||
@@ -773,6 +779,9 @@ abstract class SettingsStoreBase with Store {
|
||||
@observable
|
||||
BalanceDisplayMode balanceDisplayMode;
|
||||
|
||||
@observable
|
||||
int balanceHideCounter;
|
||||
|
||||
@observable
|
||||
BitcoinAmountDisplayMode displayAmountsInSatoshi;
|
||||
|
||||
@@ -1552,6 +1561,8 @@ abstract class SettingsStoreBase with Store {
|
||||
|
||||
final mwebAdDismissed =
|
||||
await sharedPreferences.getBool(PreferencesKey.mwebAdDismissed) ?? false;
|
||||
|
||||
final balanceHideCounter = await sharedPreferences.getInt(PreferencesKey.balanceHideCounter) ?? 0;
|
||||
|
||||
return SettingsStore(
|
||||
secureStorage: secureStorage,
|
||||
@@ -1663,6 +1674,7 @@ abstract class SettingsStoreBase with Store {
|
||||
shouldShowRepWarning: shouldShowRepWarning,
|
||||
initialBuiltinTor: builtinTor,
|
||||
mwebAdDismissed: mwebAdDismissed,
|
||||
balanceHideCounter: balanceHideCounter,
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -301,7 +301,8 @@ class ExceptionHandler {
|
||||
"_QueuedFuture.execute (package:universal_ble/src/queue.dart:65)",
|
||||
"reown_core/relay_client/websocket/websocket_handler.dart",
|
||||
"Image upload failed due to loss of GPU access",
|
||||
'transport error',
|
||||
"transport error",
|
||||
"SdkError.sparkError(field0: Operator RPC error: Connection error: status: Unavailable, message: \"dns error\", details: []"
|
||||
];
|
||||
|
||||
static Future<void> _addDeviceInfo(File file) async {
|
||||
|
||||
@@ -445,6 +445,7 @@ abstract class BalanceViewModelBase with Store {
|
||||
void switchBalanceValue() {
|
||||
if (settingsStore.balanceDisplayMode == BalanceDisplayMode.displayableBalance) {
|
||||
settingsStore.balanceDisplayMode = BalanceDisplayMode.hiddenBalance;
|
||||
settingsStore.balanceHideCounter++;
|
||||
} else {
|
||||
settingsStore.balanceDisplayMode = BalanceDisplayMode.displayableBalance;
|
||||
}
|
||||
|
||||
@@ -632,6 +632,9 @@ abstract class DashboardViewModelBase with Store {
|
||||
return trade.trade.walletId == wallet.id && isSameChain;
|
||||
}).toList();
|
||||
|
||||
@computed
|
||||
bool get shouldShowBalanceHiddenMessage => balanceDisplayMode == BalanceDisplayMode.hiddenBalance && appStore.settingsStore.balanceHideCounter < 10;
|
||||
|
||||
@computed
|
||||
List<OrderListItem> get orders =>
|
||||
ordersStore.orders.where((item) => item.order.walletId == wallet.id).toList();
|
||||
|
||||
+29
-6
@@ -113,14 +113,37 @@ else()
|
||||
set(LIB_TRIPLET "x86_64-linux-gnu")
|
||||
endif()
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../scripts/zcash_lib/target/release/libwarp_api_ffi.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "libwarp_api_ffi.so"
|
||||
COMPONENT Runtime)
|
||||
execute_process(
|
||||
COMMAND git describe --tags
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/../scripts/monero_c
|
||||
OUTPUT_VARIABLE MONERO_C_TAG
|
||||
OUTPUT_STRIP_TRAILING_WHITESPACE
|
||||
)
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../scripts/monero_c/release/monero/${LIB_TRIPLET}_libwallet2_api_c.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "monero_libwallet2_api_c.so"
|
||||
COMPONENT Runtime)
|
||||
set(MONERO_C_RELEASE_DIR
|
||||
"${CMAKE_CURRENT_SOURCE_DIR}/../scripts/monero_c/release/${MONERO_C_TAG}/${LIB_TRIPLET}"
|
||||
)
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../scripts/monero_c/release/wownero/${LIB_TRIPLET}_libwallet2_api_c.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "wownero_libwallet2_api_c.so"
|
||||
COMPONENT Runtime)
|
||||
install(
|
||||
FILES "${CMAKE_CURRENT_SOURCE_DIR}/../scripts/zcash_lib/target/release/libwarp_api_ffi.so"
|
||||
DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||
RENAME "libwarp_api_ffi.so"
|
||||
COMPONENT Runtime
|
||||
)
|
||||
|
||||
install(
|
||||
FILES "${MONERO_C_RELEASE_DIR}/libmonero_wallet2_api_c.so"
|
||||
DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||
RENAME "libmonero_wallet2_api_c.so"
|
||||
COMPONENT Runtime
|
||||
)
|
||||
|
||||
install(
|
||||
FILES "${MONERO_C_RELEASE_DIR}/libwownero_wallet2_api_c.so"
|
||||
DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||
RENAME "libwownero_wallet2_api_c.so"
|
||||
COMPONENT Runtime
|
||||
)
|
||||
|
||||
install(TARGETS ${BINARY_NAME} RUNTIME DESTINATION "${CMAKE_INSTALL_PREFIX}"
|
||||
COMPONENT Runtime)
|
||||
|
||||
@@ -5,3 +5,4 @@
|
||||
# Xcode-related
|
||||
**/dgph
|
||||
**/xcuserdata/
|
||||
*.dylib
|
||||
|
||||
+24
-24
@@ -167,34 +167,34 @@ EXTERNAL SOURCES:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/wakelock_plus/macos
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
bitbox_flutter: 16088f5c7febacf894f4d07bbdfb441c9f0757fe
|
||||
breez_sdk_spark_flutter: 2e864a52e699546aedea3d64d0e0cc88bc0ac595
|
||||
connectivity_plus: 0a976dfd033b59192912fa3c6c7b54aab5093802
|
||||
cw_mweb: 7440b12ead811dda972a9918442ea2a458e8742c
|
||||
device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f
|
||||
devicelocale: 9f0f36ac651cabae2c33f32dcff4f32b61c38225
|
||||
bitbox_flutter: b3c6d3c4970b134a78a17fddef0ef429cfec2593
|
||||
breez_sdk_spark_flutter: b7826ff465c65d620a03560c28c384f44c2dc383
|
||||
connectivity_plus: 4adf20a405e25b42b9c9f87feff8f4b6fde18a4e
|
||||
cw_mweb: 4746a3b5cc5bd4afe6fadd2481c4f7b239e391d0
|
||||
device_info_plus: b0fafc687fb901e2af612763340f1b0d4352f8e5
|
||||
devicelocale: 456a07c045d3113938aa4983065bd8526e2af792
|
||||
dnssec_proof: d461cac7bd3301eb7447f87936745a0c1ae0a67e
|
||||
fast_scanner: d31bae07e2653403a69dac99fb710c1722b16a97
|
||||
file_selector_macos: cc3858c981fe6889f364731200d6232dac1d812d
|
||||
flutter_inappwebview_macos: bdf207b8f4ebd58e86ae06cd96b147de99a67c9b
|
||||
flutter_local_authentication: 85674893931e1c9cfa7c9e4f5973cb8c56b018b0
|
||||
flutter_local_notifications: 4ccab5b7a22835214a6672e3f9c5e8ae207dab36
|
||||
flutter_secure_storage_macos: d56e2d218c1130b262bef8b4a7d64f88d7f9c9ea
|
||||
fast_scanner: a4ead8e56f185cd565e25250fdb97fa669ea1d2e
|
||||
file_selector_macos: 6280b52b459ae6c590af5d78fc35c7267a3c4b31
|
||||
flutter_inappwebview_macos: c2d68649f9f8f1831bfcd98d73fd6256366d9d1d
|
||||
flutter_local_authentication: 2f9a2682f498abcc12d7e9729b5007a947170fdc
|
||||
flutter_local_notifications: 4bf37a31afde695b56091b4ae3e4d9c7a7e6cda0
|
||||
flutter_secure_storage_macos: 3dacac420d84c4d0dc5e868194ee43c8664ec797
|
||||
FlutterMacOS: 8f6f14fa908a6fb3fba0cd85dbd81ec4b251fb24
|
||||
in_app_review: 866c9b17c87a7b46a395bda43f5d3ca02deb585a
|
||||
in_app_review: 66e7680752b632d83f4f0e88b34d52ed303fbff4
|
||||
OrderedSet: e539b66b644ff081c73a262d24ad552a69be3a94
|
||||
package_info_plus: 12f1c5c2cfe8727ca46cbd0b26677728972d9a5b
|
||||
path_provider_foundation: 2b6b4c569c0fb62ec74538f866245ac84301af46
|
||||
share_plus: 1fa619de8392a4398bfaf176d441853922614e89
|
||||
shared_preferences_foundation: fcdcbc04712aee1108ac7fda236f363274528f78
|
||||
sp_scanner: 269d96e0ec3173e69156be7239b95182be3b8303
|
||||
sqflite_darwin: 5a7236e3b501866c1c9befc6771dfd73ffb8702d
|
||||
package_info_plus: f0052d280d17aa382b932f399edf32507174e870
|
||||
path_provider_foundation: 080d55be775b7414fd5a5ef3ac137b97b097e564
|
||||
share_plus: 510bf0af1a42cd602274b4629920c9649c52f4cc
|
||||
shared_preferences_foundation: 9e1978ff2562383bd5676f64ec4e9aa8fa06a6f7
|
||||
sp_scanner: d9316427b628dd86d6e9e3c5d42ed6b4b410157c
|
||||
sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0
|
||||
sqlite3: 73513155ec6979715d3904ef53a8d68892d4032b
|
||||
sqlite3_flutter_libs: 86f82662868ee26ff3451f73cac9c5fc2a1f57fa
|
||||
torch_dart: 2e94855e15fcc87bd824e179f1f9c3e0f1e1d302
|
||||
universal_ble: cf52a7b3fd2e7c14d6d7262e9fdadb72ab6b88a6
|
||||
url_launcher_macos: c82c93949963e55b228a30115bd219499a6fe404
|
||||
wakelock_plus: 9d63063ffb7af1c215209769067c57103bde719d
|
||||
sqlite3_flutter_libs: 83f8e9f5b6554077f1d93119fe20ebaa5f3a9ef1
|
||||
torch_dart: 7e4f682c34ee0d967a35977102590094a7510c90
|
||||
universal_ble: ff19787898040d721109c6324472e5dd4bc86adc
|
||||
url_launcher_macos: 0fba8ddabfc33ce0a9afe7c5fef5aab3d8d2d673
|
||||
wakelock_plus: 917609be14d812ddd9e9528876538b2263aaa03b
|
||||
|
||||
PODFILE CHECKSUM: 65ec1541137fb5b35d00490dec1bb48d4d9586bb
|
||||
|
||||
|
||||
@@ -28,8 +28,8 @@
|
||||
33CC11132044BFA00003C045 /* MainFlutterWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 33CC11122044BFA00003C045 /* MainFlutterWindow.swift */; };
|
||||
83FF6BF911B29965D3589BE7 /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BD06F8F6E3797AC031038136 /* Pods_Runner.framework */; };
|
||||
9F565D5929954F53009A75FB /* secRandom.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F565D5729954F53009A75FB /* secRandom.swift */; };
|
||||
CE75FC4A2C147EBA00CCC46E /* wownero_libwallet2_api_c.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE75FC492C147EBA00CCC46E /* wownero_libwallet2_api_c.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||
CED5DBE42BE59BBF0065028F /* monero_libwallet2_api_c.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = CED5DBE32BE59BBF0065028F /* monero_libwallet2_api_c.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||
CE5899C52F71669A008E754F /* libwownero_wallet2_api_c.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE5899C32F71669A008E754F /* libwownero_wallet2_api_c.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||
CE5899C62F71669A008E754F /* libmonero_wallet2_api_c.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE5899C42F71669A008E754F /* libmonero_wallet2_api_c.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
@@ -59,8 +59,8 @@
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 10;
|
||||
files = (
|
||||
CE75FC4A2C147EBA00CCC46E /* wownero_libwallet2_api_c.dylib in CopyFiles */,
|
||||
CED5DBE42BE59BBF0065028F /* monero_libwallet2_api_c.dylib in CopyFiles */,
|
||||
CE5899C52F71669A008E754F /* libwownero_wallet2_api_c.dylib in CopyFiles */,
|
||||
CE5899C62F71669A008E754F /* libmonero_wallet2_api_c.dylib in CopyFiles */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
@@ -90,8 +90,8 @@
|
||||
9F1E7BFB2BF2D27500C28C9A /* Runner.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Runner.entitlements; sourceTree = "<group>"; };
|
||||
9F565D5729954F53009A75FB /* secRandom.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = secRandom.swift; path = CakeWallet/secRandom.swift; sourceTree = "<group>"; };
|
||||
BD06F8F6E3797AC031038136 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
CE75FC492C147EBA00CCC46E /* wownero_libwallet2_api_c.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = wownero_libwallet2_api_c.dylib; sourceTree = "<group>"; };
|
||||
CED5DBE32BE59BBF0065028F /* monero_libwallet2_api_c.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = monero_libwallet2_api_c.dylib; sourceTree = "<group>"; };
|
||||
CE5899C32F71669A008E754F /* libwownero_wallet2_api_c.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libwownero_wallet2_api_c.dylib; sourceTree = "<group>"; };
|
||||
CE5899C42F71669A008E754F /* libmonero_wallet2_api_c.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libmonero_wallet2_api_c.dylib; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
@@ -120,8 +120,8 @@
|
||||
33CC10E42044A3C60003C045 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CE75FC492C147EBA00CCC46E /* wownero_libwallet2_api_c.dylib */,
|
||||
CED5DBE32BE59BBF0065028F /* monero_libwallet2_api_c.dylib */,
|
||||
CE5899C42F71669A008E754F /* libmonero_wallet2_api_c.dylib */,
|
||||
CE5899C32F71669A008E754F /* libwownero_wallet2_api_c.dylib */,
|
||||
9F565D5729954F53009A75FB /* secRandom.swift */,
|
||||
33FAB671232836740065AC1E /* Runner */,
|
||||
33CEB47122A05771004F2AC0 /* Flutter */,
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
../scripts/monero_c/release/monero/host-apple-darwin_libwallet2_api_c.dylib
|
||||
@@ -1 +0,0 @@
|
||||
../scripts/monero_c/release/wownero/host-apple-darwin_libwallet2_api_c.dylib
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "تسجيل الدخول",
|
||||
"logout": "تسجيل الخروج",
|
||||
"long_press_edit_address": "اضغط مطولًا لتعديل العنوان",
|
||||
"long_press_show_balance": "اضغط لفترة طويلة على البطاقة لإظهار التوازن",
|
||||
"low_fee": "رسوم منخفضة",
|
||||
"low_fee_alert": "أنت تستخدم حاليًا أولوية منخفضة لرسوم الشبكة. قد يؤدي ذلك إلى فترات انتظار طويلة، أو أسعار مختلفة، أو إلغاء عمليات التداول. نوصي بتعيين رسوم أعلى للحصول على تجربة أفضل.",
|
||||
"made_easy": "بسهولة",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "Вход",
|
||||
"logout": "Изход",
|
||||
"long_press_edit_address": "Натиснете и задръжте, за да редактирате адреса",
|
||||
"long_press_show_balance": "Натиснете дълго картата, за да видите баланса",
|
||||
"low_fee": "Ниска такса",
|
||||
"low_fee_alert": "В момента използвате нисък приоритет за мрежовата такса. Това може да доведе до дълго изчакване, различни курсове или отменени сделки. Препоръчваме да зададете по‑висока такса за по‑добро изживяване.",
|
||||
"made_easy": "направено лесно",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "Přihlásit se",
|
||||
"logout": "Odhlásit se",
|
||||
"long_press_edit_address": "Dlouhým stisknutím upravíte adresu",
|
||||
"long_press_show_balance": "Dlouhým stisknutím karty zobrazíte zůstatek",
|
||||
"low_fee": "Nízký poplatek",
|
||||
"low_fee_alert": "Momentálně používáte nízkou prioritu síťového poplatku. To může způsobit dlouhé čekání, odlišné kurzy nebo zrušené obchody. Pro lepší zkušenost doporučujeme nastavit vyšší poplatek.",
|
||||
"made_easy": "snadno",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "Anmelden",
|
||||
"logout": "Abmelden",
|
||||
"long_press_edit_address": "Lange drücken, um die Adresse zu bearbeiten",
|
||||
"long_press_show_balance": "Drücken Sie lange auf die Karte, um den Kontostand anzuzeigen",
|
||||
"low_fee": "Niedrige Gebühr",
|
||||
"low_fee_alert": "Sie verwenden derzeit eine niedrige Priorität für Netzwerkgebühren. Dies kann zu langen Wartezeiten, abweichenden Kursen oder abgebrochenen Trades führen. Wir empfehlen, für ein besseres Erlebnis eine höhere Gebühr festzulegen.",
|
||||
"made_easy": "leicht gemacht",
|
||||
@@ -1270,6 +1271,7 @@
|
||||
"username": "Benutzername",
|
||||
"username_available": "Benutzername verfügbar",
|
||||
"username_character_error": "Benutzernamen dürfen nur Folgendes enthalten",
|
||||
"username_check_your_network": "Benutzername konnte nicht geprüft werden. Bitte überprüfen Sie Ihre Netzwerkverbindung.",
|
||||
"username_length_error": "Benutzernamen müssen 6–32 alphanumerische Zeichen enthalten.",
|
||||
"username_length_error_1_64": "Benutzernamen müssen 1–64 alphanumerische Zeichen enthalten.",
|
||||
"username_not_available": "Dieser Benutzername ist nicht verfügbar.",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "Login",
|
||||
"logout": "Logout",
|
||||
"long_press_edit_address": "Long press to edit address",
|
||||
"long_press_show_balance": "Long press card to show balance",
|
||||
"low_fee": "Low fee",
|
||||
"low_fee_alert": "You currently are using a low network fee priority. This could cause long waits, different rates, or canceled trades. We recommend setting a higher fee for a better experience.",
|
||||
"made_easy": "made easy",
|
||||
@@ -1269,6 +1270,7 @@
|
||||
"username": "Username",
|
||||
"username_available": "Username Available",
|
||||
"username_character_error": "Usernames must only contain",
|
||||
"username_check_your_network": "Unable to check username. Please check your network connection.",
|
||||
"username_length_error": "Usernames must contain 6-32 alphanumeric characters.",
|
||||
"username_length_error_1_64": "Usernames must contain 1-64 alphanumeric characters.",
|
||||
"username_not_available": "This username is not available.",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "Iniciar sesión",
|
||||
"logout": "Cerrar sesión",
|
||||
"long_press_edit_address": "Mantén pulsado para editar la dirección",
|
||||
"long_press_show_balance": "Mantenga presionada la tarjeta para mostrar el saldo",
|
||||
"low_fee": "Comisión baja",
|
||||
"low_fee_alert": "Actualmente está utilizando una prioridad baja de tarifa de red. Esto podría causar largas esperas, tipos de cambio diferentes u operaciones canceladas. Recomendamos establecer una tarifa más alta para una mejor experiencia.",
|
||||
"made_easy": "hecho fácil",
|
||||
|
||||
@@ -593,6 +593,7 @@
|
||||
"login": "ورود",
|
||||
"logout": "خروج",
|
||||
"long_press_edit_address": "برای ویرایش آدرس، لمس طولانی کنید",
|
||||
"long_press_show_balance": "برای نشان دادن تعادل، کارت را طولانی فشار دهید",
|
||||
"low_fee": "کارمزد پایین",
|
||||
"low_fee_alert": "در حال حاضر از اولویت پایینِ کارمزد شبکه استفاده میکنید.\nاین موضوع میتواند باعث انتظار طولانی، نرخهای متفاوت یا لغو معاملات شود.\nبرای تجربه بهتر، توصیه میکنیم کارمزد بالاتری تنظیم کنید.",
|
||||
"made_easy": "آسان",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "Connexion",
|
||||
"logout": "Déconnexion",
|
||||
"long_press_edit_address": "Appuyez longuement pour modifier l'adresse",
|
||||
"long_press_show_balance": "Appuyez longuement sur la carte pour afficher le solde",
|
||||
"low_fee": "Frais réduits",
|
||||
"low_fee_alert": "Vous utilisez actuellement une priorité de frais réseau faible. Cela pourrait entraîner de longues attentes, des taux différents ou des échanges annulés. Nous vous recommandons de définir des frais plus élevés pour une meilleure expérience.",
|
||||
"made_easy": "simplifié",
|
||||
|
||||
@@ -459,6 +459,7 @@
|
||||
"login": "Eike hag̃ua",
|
||||
"logout": "Emboty hag̃ua",
|
||||
"long_press_edit_address": "Eipoko puku hag̃ua emoambue dirección.",
|
||||
"long_press_show_balance": "Tarjeta de prensa puku ohechauka haguã equilibrio",
|
||||
"low_fee": "Jehepyme’ẽ michĩva",
|
||||
"low_fee_alert": "Koʼág̃a reiporu hína peteĩ prioridad jehepymeʼẽ ñanduti rehegua imbeguéva. Kóva ikatu omoheñói ñehaʼãro puku, tasa iñambuéva térã ñemurã ñembotove. Roñeʼẽporã emoĩ hag̃ua jehepymeʼẽ yvateve hag̃ua reiko porãve hag̃ua.",
|
||||
"manage_nodes": "Eñangareko nodo-kuérare",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "Shiga",
|
||||
"logout": "Fita",
|
||||
"long_press_edit_address": "Danna na ɗan lokaci don gyara adireshi",
|
||||
"long_press_show_balance": "Dogon danna katin don nuna ma'auni",
|
||||
"low_fee": "Ƙananan kuɗi",
|
||||
"low_fee_alert": "A halin yanzu kuna amfani da ƙaramin fifikon kuɗin hanyar sadarwa. Wannan na iya haifar da dogon jira, farashi daban-daban, ko soke mu’amaloli. Muna ba da shawarar saita kuɗi mafi girma don ƙwarewa mafi kyau.",
|
||||
"made_easy": "an sauƙaƙe",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "लॉग इन",
|
||||
"logout": "लॉग आउट",
|
||||
"long_press_edit_address": "पता संपादित करने के लिए देर तक दबाएँ",
|
||||
"long_press_show_balance": "बैलेंस दिखाने के लिए कार्ड को देर तक दबाएं",
|
||||
"low_fee": "कम शुल्क",
|
||||
"low_fee_alert": "आप वर्तमान में कम नेटवर्क शुल्क प्राथमिकता का उपयोग कर रहे हैं। इससे लंबे समय तक प्रतीक्षा, अलग-अलग दरें या ट्रेड रद्द होने जैसी समस्याएँ हो सकती हैं। बेहतर अनुभव के लिए हम अधिक शुल्क सेट करने की सलाह देते हैं।",
|
||||
"made_easy": "आसान बनाया",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "Prijava",
|
||||
"logout": "Odjava",
|
||||
"long_press_edit_address": "Dugo pritisnite za uređivanje adrese",
|
||||
"long_press_show_balance": "Dugo pritisnite karticu za prikaz stanja",
|
||||
"low_fee": "Niska naknada",
|
||||
"low_fee_alert": "Trenutačno koristite nizak prioritet mrežne naknade. To bi moglo uzrokovati duga čekanja, različite tečajeve ili otkazane zamjene. Preporučujemo postavljanje veće naknade za bolje iskustvo.",
|
||||
"made_easy": "jednostavno",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "Մուտք",
|
||||
"logout": "Դուրս գալ",
|
||||
"long_press_edit_address": "Հասցեն խմբագրելու համար երկար սեղմեք",
|
||||
"long_press_show_balance": "Երկար սեղմեք քարտը՝ մնացորդը ցույց տալու համար",
|
||||
"low_fee": "Ցածր վճար",
|
||||
"low_fee_alert": "Դուք ներկայումս օգտագործում եք ցանցային միջնորդավճարի ցածր առաջնահերթություն։ Սա կարող է հանգեցնել երկար սպասման, տարբեր փոխարժեքների կամ չեղարկված գործարքների։ Ավելի լավ փորձի համար խորհուրդ ենք տալիս սահմանել ավելի բարձր միջնորդավճար։",
|
||||
"made_easy": "հեշտացված",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "Masuk",
|
||||
"logout": "Keluar",
|
||||
"long_press_edit_address": "Tekan lama untuk mengedit alamat",
|
||||
"long_press_show_balance": "Tekan lama kartu untuk menunjukkan keseimbangan",
|
||||
"low_fee": "Biaya rendah",
|
||||
"low_fee_alert": "Anda saat ini menggunakan prioritas biaya jaringan rendah. Hal ini dapat menyebabkan waktu tunggu yang lama, nilai tukar yang berbeda, atau perdagangan yang dibatalkan. Kami merekomendasikan untuk menetapkan biaya yang lebih tinggi agar pengalaman lebih baik.",
|
||||
"made_easy": "jadi mudah",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "Accedi",
|
||||
"logout": "Disconnetti",
|
||||
"long_press_edit_address": "Tieni premuto per modificare l'indirizzo",
|
||||
"long_press_show_balance": "Premi a lungo la carta per mostrare il saldo",
|
||||
"low_fee": "Commissione bassa",
|
||||
"low_fee_alert": "Attualmente stai utilizzando una priorità bassa per la commissione di rete. Ciò potrebbe causare lunghe attese, tassi diversi o scambi annullati. Ti consigliamo di impostare una commissione più alta per un'esperienza migliore.",
|
||||
"made_easy": "reso facile",
|
||||
|
||||
@@ -596,6 +596,7 @@
|
||||
"login": "ログイン",
|
||||
"logout": "ログアウト",
|
||||
"long_press_edit_address": "長押ししてアドレスを編集",
|
||||
"long_press_show_balance": "カードを長押しすると残高が表示されます",
|
||||
"low_fee": "低手数料",
|
||||
"low_fee_alert": "現在、ネットワーク手数料の優先度を低く設定しています。これにより、待ち時間が長くなったり、レートが変動したり、取引がキャンセルされたりする可能性があります。より快適にご利用いただくために、手数料を高めに設定することをおすすめします。",
|
||||
"made_easy": "簡単に",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "로그인",
|
||||
"logout": "로그아웃",
|
||||
"long_press_edit_address": "주소를 편집하려면 길게 누르세요",
|
||||
"long_press_show_balance": "잔액을 표시하려면 카드를 길게 누르세요.",
|
||||
"low_fee": "낮은 수수료",
|
||||
"low_fee_alert": "현재 낮은 네트워크 수수료 우선순위를 사용하고 있습니다. 이로 인해 대기 시간이 길어지거나, 환율이 달라지거나, 거래가 취소될 수 있습니다. 더 나은 사용 경험을 위해 더 높은 수수료로 설정하는 것을 권장합니다.",
|
||||
"made_easy": "쉽게",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "လော့ဂ်အင်",
|
||||
"logout": "အကောင့်မှ ထွက်ရန်",
|
||||
"long_press_edit_address": "လိပ်စာကို တည်းဖြတ်ရန် အကြာကြီးနှိပ်ပါ",
|
||||
"long_press_show_balance": "လက်ကျန်ငွေကိုပြသရန် ကတ်ကို အကြာကြီးနှိပ်ပါ။",
|
||||
"low_fee": "အခကြေးငွေနည်း",
|
||||
"low_fee_alert": "သင်သည် လက်ရှိတွင် ကွန်ရက်အခကြေးငွေ ဦးစားပေးကို နိမ့်ထားပြီး အသုံးပြုနေပါသည်။ ၎င်းကြောင့် စောင့်ဆိုင်းချိန်ကြာခြင်း၊ နှုန်းထားများကွာခြားခြင်း သို့မဟုတ် အရောင်းအဝယ်များ ပယ်ဖျက်ခံရခြင်းတို့ ဖြစ်နိုင်ပါသည်။ ပိုမိုကောင်းမွန်သော အတွေ့အကြုံအတွက် အခကြေးငွေကို ပိုမြင့်အောင် သတ်မှတ်ရန် အကြံပြုပါသည်။",
|
||||
"made_easy": "လွယ်ကူစွာ",
|
||||
|
||||
@@ -592,6 +592,7 @@
|
||||
"login": "Aanmelden",
|
||||
"logout": "Afmelden",
|
||||
"long_press_edit_address": "Houd ingedrukt om het adres te bewerken",
|
||||
"long_press_show_balance": "Druk lang op de kaart om het saldo weer te geven",
|
||||
"low_fee": "Lage vergoeding",
|
||||
"low_fee_alert": "Je gebruikt momenteel een lage prioriteit voor netwerkkosten. Dit kan lange wachttijden, andere tarieven of geannuleerde transacties veroorzaken. We raden aan een hogere vergoeding in te stellen voor een betere ervaring.",
|
||||
"made_easy": "gemakkelijk gemaakt",
|
||||
@@ -1180,8 +1181,8 @@
|
||||
"trade_state_trading": "Handel",
|
||||
"trade_state_underpaid": "Te weinig betaald",
|
||||
"trade_state_unpaid": "Onbetaald",
|
||||
"transaction": "Transactie",
|
||||
"trades": "Trades",
|
||||
"transaction": "Transactie",
|
||||
"transaction_commited": "Transactie vastgelegd",
|
||||
"transaction_cost": "Transactiekosten",
|
||||
"transaction_details_amount": "Bedrag",
|
||||
@@ -1318,8 +1319,8 @@
|
||||
"wallet_restoration_store_incorrect_seed_length": "Onjuiste seedlengte",
|
||||
"wallet_seed": "Wallet seed",
|
||||
"wallet_seed_legacy": "Legacy wallet seed",
|
||||
"wallet_store_monero_wallet": "Monero wallet",
|
||||
"wallet_settings": "Walletinstellingen",
|
||||
"wallet_store_monero_wallet": "Monero wallet",
|
||||
"walletConnect": "WalletConnect",
|
||||
"wallets": "Wallets",
|
||||
"warning": "Waarschuwing",
|
||||
|
||||
@@ -594,6 +594,7 @@
|
||||
"login": "Zaloguj się",
|
||||
"logout": "Wyloguj się",
|
||||
"long_press_edit_address": "Naciśnij i przytrzymaj, aby edytować adres",
|
||||
"long_press_show_balance": "Naciśnij i przytrzymaj kartę, aby wyświetlić saldo",
|
||||
"low_fee": "Niska opłata",
|
||||
"low_fee_alert": "Obecnie używasz niskiego priorytetu opłaty sieciowej. Może to spowodować długi czas oczekiwania, inne kursy lub anulowane transakcje. Zalecamy ustawienie wyższej opłaty, aby zapewnić lepsze wrażenia.",
|
||||
"made_easy": "łatwe",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "Entrar",
|
||||
"logout": "Sair",
|
||||
"long_press_edit_address": "Pressione e segure para editar o endereço",
|
||||
"long_press_show_balance": "Pressione e segure o cartão para mostrar o saldo",
|
||||
"low_fee": "Taxa baixa",
|
||||
"low_fee_alert": "No momento, você está usando uma prioridade baixa de taxa de rede. Isso pode causar longas esperas, taxas diferentes ou negociações canceladas. Recomendamos definir uma taxa mais alta para uma melhor experiência.",
|
||||
"made_easy": "feito fácil",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "Войти",
|
||||
"logout": "Выйти",
|
||||
"long_press_edit_address": "Нажмите и удерживайте, чтобы изменить адрес",
|
||||
"long_press_show_balance": "Длительное нажатие карты, чтобы показать баланс",
|
||||
"low_fee": "Низкая комиссия",
|
||||
"low_fee_alert": "В настоящее время вы используете низкий приоритет комиссии сети. Это может привести к длительному ожиданию, изменению курсов или отмене сделок. Мы рекомендуем установить более высокую комиссию для лучшего опыта.",
|
||||
"made_easy": "это просто",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "เข้าสู่ระบบ",
|
||||
"logout": "ออกจากระบบ",
|
||||
"long_press_edit_address": "กดค้างเพื่อแก้ไขที่อยู่",
|
||||
"long_press_show_balance": "กดการ์ดค้างไว้เพื่อแสดงยอดเงินคงเหลือ",
|
||||
"low_fee": "ค่าธรรมเนียมต่ำ",
|
||||
"low_fee_alert": "ขณะนี้คุณกำลังใช้ค่าธรรมเนียมเครือข่ายที่มีลำดับความสำคัญต่ำ ซึ่งอาจทำให้ต้องรอนาน อัตราที่แตกต่างกัน หรือการเทรดถูกยกเลิก เราแนะนำให้ตั้งค่าธรรมเนียมให้สูงขึ้นเพื่อประสบการณ์ที่ดียิ่งขึ้น",
|
||||
"made_easy": "ใช้งานง่าย",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "Mag-login",
|
||||
"logout": "Mag-logout",
|
||||
"long_press_edit_address": "Pindutin nang matagal para i-edit ang address",
|
||||
"long_press_show_balance": "Pindutin nang matagal ang card para ipakita ang balanse",
|
||||
"low_fee": "Mababang bayarin",
|
||||
"low_fee_alert": "Kasalukuyan kang gumagamit ng mababang priyoridad ng network fee. Maaari itong magdulot ng mahabang paghihintay, iba't ibang rate, o nakanselang mga trade. Inirerekomenda naming magtakda ng mas mataas na fee para sa mas magandang karanasan.",
|
||||
"made_easy": "pinadali",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "Giriş",
|
||||
"logout": "Çıkış yap",
|
||||
"long_press_edit_address": "Adresi düzenlemek için uzun basın",
|
||||
"long_press_show_balance": "Bakiyeyi göstermek için karta uzun basın",
|
||||
"low_fee": "Düşük ücret",
|
||||
"low_fee_alert": "Şu anda düşük bir ağ ücreti önceliği kullanıyorsunuz. Bu durum uzun beklemelere, farklı oranlara veya iptal edilen takaslara neden olabilir. Daha iyi bir deneyim için daha yüksek bir ücret belirlemenizi öneririz.",
|
||||
"made_easy": "kolaylaştırıldı",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "Вхід",
|
||||
"logout": "Вийти",
|
||||
"long_press_edit_address": "Натисніть і утримуйте, щоб редагувати адресу",
|
||||
"long_press_show_balance": "Утримуйте картку, щоб показати баланс",
|
||||
"low_fee": "Низька комісія",
|
||||
"low_fee_alert": "Наразі ви використовуєте низький пріоритет мережевої комісії. Це може призвести до тривалого очікування, іншого курсу або скасування обмінів. Ми рекомендуємо встановити вищу комісію для кращого досвіду.",
|
||||
"made_easy": "зроблено просто",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "لاگ اِن",
|
||||
"logout": "لاگ آؤٹ",
|
||||
"long_press_edit_address": "ایڈریس میں ترمیم کرنے کے لیے دیر تک دبائیں",
|
||||
"long_press_show_balance": "بیلنس دکھانے کے لیے کارڈ کو دیر تک دبائیں",
|
||||
"low_fee": "کم فیس",
|
||||
"low_fee_alert": "آپ فی الحال کم نیٹ ورک فیس کی ترجیح استعمال کر رہے ہیں۔ اس کی وجہ سے طویل انتظار، مختلف ریٹس، یا ٹریڈز منسوخ ہو سکتے ہیں۔ بہتر تجربے کے لیے ہم زیادہ فیس سیٹ کرنے کی تجویز دیتے ہیں۔",
|
||||
"made_easy": "آسان بنایا",
|
||||
|
||||
@@ -594,6 +594,7 @@
|
||||
"login": "Đăng nhập",
|
||||
"logout": "Đăng xuất",
|
||||
"long_press_edit_address": "Nhấn và giữ để chỉnh sửa địa chỉ",
|
||||
"long_press_show_balance": "Nhấn và giữ thẻ để hiển thị số dư",
|
||||
"low_fee": "Phí thấp",
|
||||
"low_fee_alert": "Bạn hiện đang sử dụng mức ưu tiên phí mạng thấp. Điều này có thể dẫn đến thời gian chờ lâu, tỷ giá khác nhau hoặc giao dịch bị hủy. Chúng tôi khuyến nghị bạn đặt mức phí cao hơn để có trải nghiệm tốt hơn.",
|
||||
"made_easy": "dễ dàng",
|
||||
|
||||
@@ -596,6 +596,7 @@
|
||||
"login": "Wọlé",
|
||||
"logout": "Jáde",
|
||||
"long_press_edit_address": "Tẹ mọ́lẹ̀ láti ṣàtúnṣe àdírẹ́sì",
|
||||
"long_press_show_balance": "Tẹ kaadi gigun lati ṣafihan iwọntunwọnsi",
|
||||
"low_fee": "Owó ìnáwó kékeré",
|
||||
"low_fee_alert": "Lọ́wọ́lọ́wọ́ yìí, ẹ ń lo ìpàtàkì owó ìdúnáwọ́ọ̀kì (network fee) tó kéré. Èyí lè fa ìdúró pípẹ́, oṣùwọ̀n tó yàtọ̀, tàbí kí ìṣòwò kan fagi lé. A dábàá pé k'ẹ́ ṣètò owó ìdúnáwọ́ọ̀kì tó ga díẹ̀ fún ìrírí tó dára jù.",
|
||||
"made_easy": "ṣe é rọrùn",
|
||||
|
||||
@@ -595,6 +595,7 @@
|
||||
"login": "登录",
|
||||
"logout": "退出登录",
|
||||
"long_press_edit_address": "长按以编辑地址",
|
||||
"long_press_show_balance": "长按卡显示余额",
|
||||
"low_fee": "低手续费",
|
||||
"low_fee_alert": "您当前使用较低的网络手续费优先级,这可能导致等待时间较长、汇率变化或交易被取消。我们建议设置更高的手续费,以获得更好的体验。",
|
||||
"made_easy": "轻松上手",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#!/bin/bash
|
||||
source "$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)/functions.sh"
|
||||
|
||||
# Usage: env USE_DOCKER= ./build_all.sh
|
||||
# Usage: env USE_DOCKER= ./build_all.sh
|
||||
|
||||
set -x -e
|
||||
|
||||
@@ -12,15 +12,33 @@ cd "$(dirname "$0")"
|
||||
for COIN in monero wownero zano;
|
||||
do
|
||||
pushd ../monero_c
|
||||
monero_c_tag=$(git describe --tags)
|
||||
for target in {x86_64,aarch64}-linux-android armv7a-linux-androideabi
|
||||
do
|
||||
if [[ -f "release/${COIN}/${target}_libwallet2_api_c.so" ]];
|
||||
if [[ -f "release/${monero_c_tag}/${target}/${COIN}_libwallet2_api_c.so" ]];
|
||||
then
|
||||
echo "file exist, not building monero_c for ${COIN}/$target.";
|
||||
else
|
||||
./build_single.sh ${COIN} $target -j$MAKE_JOB_COUNT
|
||||
unxz -f ../monero_c/release/${COIN}/${target}_libwallet2_api_c.so.xz
|
||||
fi
|
||||
|
||||
case $target in
|
||||
x86_64-linux-android)
|
||||
mkdir -p ../../android/app/src/main/jniLibs/x86_64 || true
|
||||
cp ../monero_c/release/${monero_c_tag}/${target}/lib${COIN}_wallet2_api_c.so ../../android/app/src/main/jniLibs/x86_64/
|
||||
;;
|
||||
armv7a-linux-androideabi)
|
||||
mkdir -p ../../android/app/src/main/jniLibs/armeabi-v7a || true
|
||||
cp ../monero_c/release/${monero_c_tag}/${target}/lib${COIN}_wallet2_api_c.so ../../android/app/src/main/jniLibs/armeabi-v7a/
|
||||
;;
|
||||
aarch64-linux-android)
|
||||
mkdir -p ../../android/app/src/main/jniLibs/arm64-v8a || true
|
||||
cp ../monero_c/release/${monero_c_tag}/${target}/lib${COIN}_wallet2_api_c.so ../../android/app/src/main/jniLibs/arm64-v8a/
|
||||
;;
|
||||
*)
|
||||
echo "Unsupported target: $target"
|
||||
exit 1;
|
||||
esac
|
||||
done
|
||||
popd
|
||||
done
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/bin/sh
|
||||
source "$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)/functions.sh"
|
||||
source "$(cd "$(dirname "$0")/.." && pwd)/functions.sh"
|
||||
|
||||
. ./config.sh
|
||||
# ./install_missing_headers.sh
|
||||
@@ -19,16 +19,8 @@ for COIN in monero wownero zano;
|
||||
do
|
||||
pushd ../monero_c
|
||||
./build_single.sh ${COIN} aarch64-apple-ios -j$MAKE_JOB_COUNT
|
||||
./build_single.sh ${COIN} aarch64-apple-iossimulator -j$MAKE_JOB_COUNT
|
||||
./build_single.sh ${COIN} aarch64-apple-ios-simulator -j$MAKE_JOB_COUNT
|
||||
popd
|
||||
done
|
||||
|
||||
unxz -fk ../monero_c/release/monero/aarch64-apple-ios_libwallet2_api_c.dylib.xz
|
||||
unxz -fk ../monero_c/release/wownero/aarch64-apple-ios_libwallet2_api_c.dylib.xz
|
||||
unxz -fk ../monero_c/release/zano/aarch64-apple-ios_libwallet2_api_c.dylib.xz
|
||||
|
||||
unxz -fk ../monero_c/release/monero/aarch64-apple-iossimulator_libwallet2_api_c.dylib.xz
|
||||
unxz -fk ../monero_c/release/wownero/aarch64-apple-iossimulator_libwallet2_api_c.dylib.xz
|
||||
unxz -fk ../monero_c/release/zano/aarch64-apple-iossimulator_libwallet2_api_c.dylib.xz
|
||||
|
||||
./gen_framework.sh
|
||||
./gen_framework.sh
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
set -e
|
||||
|
||||
IOS_DIR="$(pwd)/../../ios"
|
||||
DYLIB_PATH="$(pwd)/../../scripts/monero_c/release"
|
||||
monero_c_tag=$(cd $(pwd)/../../scripts/monero_c/; git describe --tags)
|
||||
DYLIB_PATH="$(pwd)/../../scripts/monero_c/release/${monero_c_tag}/"
|
||||
TMP_DIR="${IOS_DIR}/tmp"
|
||||
|
||||
rm -rf "${IOS_DIR:?}/MoneroWallet.xcframework" "${IOS_DIR:?}/WowneroWallet.xcframework" "${IOS_DIR:?}/ZanoWallet.xcframework"
|
||||
@@ -16,7 +17,7 @@ write_info_plist() {
|
||||
target="$3"
|
||||
plist_path="${framework_bundle}/Info.plist"
|
||||
|
||||
if [[ "x$target" = "xiossimulator" ]]; then
|
||||
if [[ "x$target" = "xios-simulator" ]]; then
|
||||
platform="iPhoneSimulator"
|
||||
dtplatformname="iphonesimulator"
|
||||
dtsdkname="iphonesimulator17.4"
|
||||
@@ -97,11 +98,11 @@ create_framework() {
|
||||
echo "Creating ${framework_name}.framework for target ${target} in ${out_dir}..."
|
||||
|
||||
framework_bundle="${out_dir}/${framework_name}.framework"
|
||||
|
||||
|
||||
rm -rf "$framework_bundle"
|
||||
mkdir -p "$framework_bundle"
|
||||
|
||||
input_dylib="${DYLIB_PATH}/${wallet}/aarch64-apple-${target}_libwallet2_api_c.dylib"
|
||||
input_dylib="${DYLIB_PATH}/aarch64-apple-${target}/lib${wallet}_wallet2_api_c.dylib"
|
||||
if [[ ! -f "$input_dylib" ]]; then
|
||||
echo "Error: Input dylib not found: $input_dylib"
|
||||
exit 1
|
||||
@@ -144,7 +145,7 @@ for i in "${!wallets[@]}"; do
|
||||
mkdir -p "$device_out" "$simulator_out"
|
||||
|
||||
create_framework "$wallet" "$framework_name" "ios" "$device_out"
|
||||
create_framework "$wallet" "$framework_name" "iossimulator" "$simulator_out"
|
||||
create_framework "$wallet" "$framework_name" "ios-simulator" "$simulator_out"
|
||||
|
||||
device_framework="${device_out}/${framework_name}.framework"
|
||||
simulator_framework="${simulator_out}/${framework_name}.framework"
|
||||
|
||||
@@ -16,13 +16,7 @@ do
|
||||
else
|
||||
target="x86_64-linux-gnu"
|
||||
fi
|
||||
|
||||
if [[ -f "release/${COIN}/${target}_libwallet2_api_c.so" ]];
|
||||
then
|
||||
echo "file exist, not building monero_c for ${COIN}/$target.";
|
||||
else
|
||||
./build_single.sh ${COIN} $target -j$MAKE_JOB_COUNT
|
||||
unxz -f ../monero_c/release/${COIN}/${target}_libwallet2_api_c.so.xz
|
||||
fi
|
||||
|
||||
./build_single.sh ${COIN} $target -j$MAKE_JOB_COUNT
|
||||
popd
|
||||
done
|
||||
done
|
||||
|
||||
@@ -2,14 +2,14 @@
|
||||
set -x -e
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
../prepare_moneroc.sh
|
||||
|
||||
NPROC="-j$(sysctl -n hw.logicalcpu)"
|
||||
MONERO_LIBS=""
|
||||
WOWNERO_LIBS=""
|
||||
MONEROC_RELEASE_DIR="../monero_c/release/monero"
|
||||
WOWNEROC_RELEASE_DIR="../monero_c/release/wownero"
|
||||
monero_c_tag=$(cd ../monero_c/; git describe --tags)
|
||||
MONEROC_RELEASE_DIR="../monero_c/release/${monero_c_tag}"
|
||||
|
||||
../prepare_moneroc.sh
|
||||
|
||||
# NOTE: -j1 is intentional. Otherwise you will run into weird behaviour on macos
|
||||
if [[ ! "x$USE_DOCKER" == "x" ]];
|
||||
@@ -22,29 +22,26 @@ then
|
||||
popd
|
||||
done
|
||||
else
|
||||
ARCHS=(x86_64 arm64)
|
||||
ARCHS=(x86_64 arm64)
|
||||
for COIN in monero wownero;
|
||||
do
|
||||
MONERO_LIBS=""
|
||||
WOWNERO_LIBS=""
|
||||
for ARCH in "${ARCHS[@]}";
|
||||
do
|
||||
if [[ "$ARCH" == "arm64" ]]; then
|
||||
HOST="aarch64-apple-darwin"
|
||||
else
|
||||
HOST="x86_64-apple-darwin"
|
||||
fi
|
||||
|
||||
MONERO_LIBS="$MONERO_LIBS -arch ${ARCH} ${MONEROC_RELEASE_DIR}/${HOST}_libwallet2_api_c.dylib"
|
||||
WOWNERO_LIBS="$WOWNERO_LIBS -arch ${ARCH} ${WOWNEROC_RELEASE_DIR}/${HOST}_libwallet2_api_c.dylib"
|
||||
|
||||
pushd ../monero_c
|
||||
for ARCH in "${ARCHS[@]}";
|
||||
do
|
||||
if [[ "$ARCH" == "arm64" ]]; then
|
||||
HOST="aarch64-apple-darwin"
|
||||
else
|
||||
HOST="x86_64-apple-darwin"
|
||||
fi
|
||||
MONERO_LIBS="$MONERO_LIBS -arch ${ARCH} ${MONEROC_RELEASE_DIR}/${HOST}/libmonero_wallet2_api_c.dylib"
|
||||
WOWNERO_LIBS="$WOWNERO_LIBS -arch ${ARCH} ${MONEROC_RELEASE_DIR}/${HOST}/libwownero_wallet2_api_c.dylib"
|
||||
pushd ../monero_c
|
||||
./build_single.sh ${COIN} ${HOST} -j$MAKE_JOB_COUNT
|
||||
unxz -f ./release/${COIN}/${HOST}_libwallet2_api_c.dylib.xz
|
||||
popd
|
||||
done
|
||||
popd
|
||||
done
|
||||
done
|
||||
fi
|
||||
|
||||
lipo -create ${MONERO_LIBS} -output "${MONEROC_RELEASE_DIR}/host-apple-darwin_libwallet2_api_c.dylib"
|
||||
lipo -create ${WOWNERO_LIBS} -output "${WOWNEROC_RELEASE_DIR}/host-apple-darwin_libwallet2_api_c.dylib"
|
||||
lipo -create ${MONERO_LIBS} -output "${MONEROC_RELEASE_DIR}/../../../../macos/libmonero_wallet2_api_c.dylib"
|
||||
lipo -create ${WOWNERO_LIBS} -output "${MONEROC_RELEASE_DIR}/../../../../macos/libwownero_wallet2_api_c.dylib"
|
||||
|
||||
@@ -9,18 +9,17 @@ then
|
||||
rm -rf monero_c
|
||||
git clone https://github.com/mrcyjanek/monero_c --branch master monero_c
|
||||
cd monero_c
|
||||
# NOTE: Make sure to update monero_c prebuilds link in workflow files
|
||||
# https://github.com/MrCyjaneK/monero_c/releases/download/v0.18.4.0-RC9/release-bundle.zip
|
||||
git checkout 411e8a1cdb3f4c2812d83f28c335d2a4eb18bd29
|
||||
git reset --hard
|
||||
git submodule update --init --force --recursive
|
||||
./apply_patches.sh monero
|
||||
./apply_patches.sh wownero
|
||||
./apply_patches.sh zano
|
||||
else
|
||||
cd monero_c
|
||||
fi
|
||||
|
||||
# NOTE: Make sure to update monero_c prebuilds link in workflow files
|
||||
# https://github.com/MrCyjaneK/monero_c/releases/download/v0.18.4.6-RC1/release-bundle.zip
|
||||
git fetch -a
|
||||
git checkout bc8d1a0b75b97156d71579581b4cdfe58c777ed2
|
||||
git reset --hard
|
||||
git submodule update --init --force --recursive
|
||||
|
||||
for coin in monero wownero zano;
|
||||
do
|
||||
if [[ ! -f "$coin/.patch-applied" ]];
|
||||
|
||||
@@ -20,13 +20,11 @@ final List<String> triplets = [
|
||||
"x86_64-w64-mingw32",
|
||||
// "x86_64-apple-darwin11", // Intel macbooks (contrib) - not used by cake
|
||||
// "aarch64-apple-darwin11", // apple silicon macbooks (contrib) - not used by cake
|
||||
// "host-apple-darwin", // not available on CI (yet)
|
||||
// "x86_64-host-apple-darwin", // not available on CI (yet)
|
||||
"aarch64-apple-darwin", // apple silicon macbooks
|
||||
"x86_64-apple-darwin", // intel macbooks
|
||||
"aarch64-host-apple-darwin", // apple silicon macbooks (local builds)
|
||||
"aarch64-apple-ios",
|
||||
"aarch64-apple-iossimulator",
|
||||
"aarch64-apple-ios-simulator",
|
||||
];
|
||||
|
||||
Future<void> main() async {
|
||||
|
||||
Reference in New Issue
Block a user