mirror of
https://github.com/cypherstack/stack_wallet.git
synced 2024-12-22 11:29:23 +00:00
Merge remote-tracking branch 'origin/monerodart_testing' into monero_merge
# Conflicts: # .gitignore # crypto_plugins/flutter_libmonero # lib/pages/add_wallet_views/add_wallet_view/add_wallet_view.dart # lib/pages/add_wallet_views/restore_wallet_view/restore_options_view/restore_options_view.dart # lib/pages_desktop_specific/settings/settings_menu/nodes_settings.dart # lib/utilities/constants.dart # lib/wallets/crypto_currency/coins/monero.dart # lib/wallets/wallet/impl/monero_wallet.dart # lib/wallets/wallet/impl/wownero_wallet.dart # scripts/app_config/templates/pubspec.template # scripts/linux/build_all.sh # scripts/windows/build_all.sh
This commit is contained in:
commit
c87564e1cd
27 changed files with 288 additions and 162 deletions
11
.gitignore
vendored
11
.gitignore
vendored
|
@ -96,3 +96,14 @@ pubspec.yaml
|
|||
/windows/runner/main.cpp
|
||||
/windows/CMakeLists.txt
|
||||
/windows/runner/resources/app_icon.ico
|
||||
|
||||
# FVM Version Cache
|
||||
.fvm/
|
||||
android/app/src/main/jniLibs/arm64-v8a/libwownero_wallet2_api_c.so
|
||||
android/app/src/main/jniLibs/arm64-v8a/libmonero_wallet2_api_c.so
|
||||
android/app/src/main/jniLibs/armeabi-v7a/libmonero_wallet2_api_c.so
|
||||
android/app/src/main/jniLibs/armeabi-v7a/libwownero_wallet2_api_c.so
|
||||
android/app/src/main/jniLibs/x86_64/libmonero_wallet2_api_c.so
|
||||
android/app/src/main/jniLibs/x86_64/libwownero_wallet2_api_c.so
|
||||
macos/monero_wallet2_api_c.dylib
|
||||
macos/wownero_wallet2_api_c.dylib
|
||||
|
|
0
android/app/src/main/jniLibs/arm64-v8a/.gitkeep
Normal file
0
android/app/src/main/jniLibs/arm64-v8a/.gitkeep
Normal file
0
android/app/src/main/jniLibs/armeabi-v7a/.gitkeep
Normal file
0
android/app/src/main/jniLibs/armeabi-v7a/.gitkeep
Normal file
0
android/app/src/main/jniLibs/x86_64/.gitkeep
Normal file
0
android/app/src/main/jniLibs/x86_64/.gitkeep
Normal file
|
@ -53,7 +53,7 @@ sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386 lib32z1 libbz2-
|
|||
### Build dependencies
|
||||
Install basic dependencies
|
||||
```
|
||||
sudo apt-get install libssl-dev curl unzip automake build-essential file pkg-config git python libtool libtinfo5 cmake libgit2-dev clang libncurses5-dev libncursesw5-dev zlib1g-dev llvm python3-distutils
|
||||
sudo apt-get install libssl-dev curl unzip automake build-essential file pkg-config git python libtool libtinfo5 cmake libgit2-dev clang libncurses5-dev libncursesw5-dev zlib1g-dev llvm python3-distutils g++ gcc gperf
|
||||
```
|
||||
|
||||
Install [Rust](https://www.rust-lang.org/tools/install) with command:
|
||||
|
@ -180,7 +180,7 @@ Download and install [Homebrew](https://brew.sh/). The following command can in
|
|||
|
||||
After installing Homebrew, install the following packages:
|
||||
```
|
||||
brew install autoconf automake boost berkeley-db ca-certificates cbindgen cmake cmake cocoapods curl git libssh2 make openssl@1.1 openssl@3 perl pkg-config rustup-init sodium unbound unzip xz zmq
|
||||
brew install autoconf automake boost berkeley-db ca-certificates cbindgen cmake cocoapods curl git libssh2 libsodium make openssl@1.1 openssl@3 perl pkg-config rustup-init unbound unzip xz zmq
|
||||
```
|
||||
|
||||
The following brew formula *may* be needed:
|
||||
|
|
|
@ -221,12 +221,8 @@ void main(List<String> args) async {
|
|||
}
|
||||
}
|
||||
|
||||
if (!Platform.isWindows) {
|
||||
monero.onStartup();
|
||||
}
|
||||
if (!Platform.isLinux && !Platform.isWindows) {
|
||||
wownero.onStartup();
|
||||
}
|
||||
monero.onStartup();
|
||||
wownero.onStartup();
|
||||
|
||||
// SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual,
|
||||
// overlays: [SystemUiOverlay.bottom]);
|
||||
|
|
|
@ -132,11 +132,6 @@ class _AddWalletViewState extends ConsumerState<AddWalletView> {
|
|||
_searchFieldController = TextEditingController();
|
||||
_searchFocusNode = FocusNode();
|
||||
// _coinsTestnet.remove(Coin.firoTestNet);
|
||||
if (Platform.isWindows) {
|
||||
_coins.removeWhere((e) => e is Monero || e is Wownero);
|
||||
} else if (Platform.isLinux) {
|
||||
_coins.removeWhere((e) => e is Wownero);
|
||||
}
|
||||
|
||||
if (Util.isDesktop && !kDebugMode) {
|
||||
_coins.removeWhere((e) => e is BitcoinFrost);
|
||||
|
|
|
@ -219,7 +219,9 @@ class _RestoreOptionsViewState extends ConsumerState<RestoreOptionsView> {
|
|||
SizedBox(
|
||||
height: isDesktop ? 40 : 24,
|
||||
),
|
||||
if (coin is Monero ||
|
||||
if ((coin is Monero &&
|
||||
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||
25) ||
|
||||
coin is Epiccash ||
|
||||
(coin is Wownero &&
|
||||
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||
|
@ -235,7 +237,9 @@ class _RestoreOptionsViewState extends ConsumerState<RestoreOptionsView> {
|
|||
: STextStyles.smallMed12(context),
|
||||
textAlign: TextAlign.left,
|
||||
),
|
||||
if (coin is Monero ||
|
||||
if ((coin is Monero &&
|
||||
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||
25) ||
|
||||
coin is Epiccash ||
|
||||
(coin is Wownero &&
|
||||
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||
|
@ -243,7 +247,9 @@ class _RestoreOptionsViewState extends ConsumerState<RestoreOptionsView> {
|
|||
SizedBox(
|
||||
height: isDesktop ? 16 : 8,
|
||||
),
|
||||
if (coin is Monero ||
|
||||
if ((coin is Monero &&
|
||||
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||
25) ||
|
||||
coin is Epiccash ||
|
||||
(coin is Wownero &&
|
||||
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||
|
@ -253,7 +259,8 @@ class _RestoreOptionsViewState extends ConsumerState<RestoreOptionsView> {
|
|||
onTap: chooseDate,
|
||||
controller: _dateController,
|
||||
),
|
||||
if (coin is Monero ||
|
||||
if ((coin is Monero &&
|
||||
ref.watch(mnemonicWordCountStateProvider.state).state == 25) ||
|
||||
coin is Epiccash ||
|
||||
(coin is Wownero &&
|
||||
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||
|
@ -264,7 +271,9 @@ class _RestoreOptionsViewState extends ConsumerState<RestoreOptionsView> {
|
|||
onTap: chooseDesktopDate,
|
||||
controller: _dateController,
|
||||
),
|
||||
if (coin is Monero ||
|
||||
if ((coin is Monero &&
|
||||
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||
25) ||
|
||||
coin is Epiccash ||
|
||||
(coin is Wownero &&
|
||||
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||
|
@ -272,7 +281,9 @@ class _RestoreOptionsViewState extends ConsumerState<RestoreOptionsView> {
|
|||
const SizedBox(
|
||||
height: 8,
|
||||
),
|
||||
if (coin is Monero ||
|
||||
if ((coin is Monero &&
|
||||
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||
25) ||
|
||||
coin is Epiccash ||
|
||||
(coin is Wownero &&
|
||||
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||
|
@ -293,7 +304,9 @@ class _RestoreOptionsViewState extends ConsumerState<RestoreOptionsView> {
|
|||
),
|
||||
),
|
||||
),
|
||||
if (coin is Monero ||
|
||||
if ((coin is Monero &&
|
||||
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||
25) ||
|
||||
coin is Epiccash ||
|
||||
(coin is Wownero &&
|
||||
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||
|
|
|
@ -70,13 +70,6 @@ class _NodesSettings extends ConsumerState<NodesSettings> {
|
|||
_coins.removeWhere(
|
||||
(e) => e is Firo && e.network == CryptoCurrencyNetwork.test,
|
||||
);
|
||||
if (Platform.isWindows) {
|
||||
_coins.removeWhere(
|
||||
(e) => e is Monero && e is Wownero,
|
||||
);
|
||||
} else if (Platform.isLinux) {
|
||||
_coins.removeWhere((e) => e is Wownero);
|
||||
}
|
||||
|
||||
searchNodeController = TextEditingController();
|
||||
searchNodeFocusNode = FocusNode();
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
import 'package:cw_monero/api/wallet.dart' as monero_wallet;
|
||||
import 'package:monero/monero.dart' as monero;
|
||||
|
||||
import '../../../models/node_model.dart';
|
||||
import '../../../utilities/default_nodes.dart';
|
||||
import '../../../utilities/enums/derive_path_type_enum.dart';
|
||||
|
@ -44,7 +46,7 @@ class Monero extends CryptonoteCurrency {
|
|||
|
||||
@override
|
||||
bool validateAddress(String address) {
|
||||
return monero_wallet.validateAddress(address);
|
||||
return monero.Wallet_addressValid(address, 0);
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
@ -44,7 +44,7 @@ class Wownero extends CryptonoteCurrency {
|
|||
|
||||
@override
|
||||
bool validateAddress(String address) {
|
||||
return wownero_wallet.validateAddress(address);
|
||||
return wownero_wallet.addressValid(address);
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:cw_core/monero_transaction_priority.dart';
|
||||
|
@ -18,6 +19,8 @@ import 'package:flutter_libmonero/core/wallet_creation_service.dart';
|
|||
import 'package:flutter_libmonero/monero/monero.dart' as xmr_dart;
|
||||
import 'package:flutter_libmonero/view_model/send/output.dart' as monero_output;
|
||||
import 'package:isar/isar.dart';
|
||||
import 'package:tuple/tuple.dart';
|
||||
|
||||
import '../../../db/hive/db.dart';
|
||||
import '../../../models/isar/models/blockchain_data/address.dart';
|
||||
import '../../../models/isar/models/blockchain_data/transaction.dart';
|
||||
|
@ -30,14 +33,44 @@ import '../../models/tx_data.dart';
|
|||
import '../intermediate/cryptonote_wallet.dart';
|
||||
import '../wallet.dart';
|
||||
import '../wallet_mixin_interfaces/cw_based_interface.dart';
|
||||
import 'package:tuple/tuple.dart';
|
||||
|
||||
class MoneroWallet extends CryptonoteWallet with CwBasedInterface {
|
||||
MoneroWallet(CryptoCurrencyNetwork network) : super(Monero(network));
|
||||
MoneroWallet(CryptoCurrencyNetwork network) : super(Monero(network)) {
|
||||
final bus = GlobalEventBus.instance;
|
||||
|
||||
// Listen for tor status changes.
|
||||
_torStatusListener = bus.on<TorConnectionStatusChangedEvent>().listen(
|
||||
(event) async {
|
||||
switch (event.newStatus) {
|
||||
case TorConnectionStatus.connecting:
|
||||
if (!_torConnectingLock.isLocked) {
|
||||
await _torConnectingLock.acquire();
|
||||
}
|
||||
_requireMutex = true;
|
||||
break;
|
||||
|
||||
case TorConnectionStatus.connected:
|
||||
case TorConnectionStatus.disconnected:
|
||||
if (_torConnectingLock.isLocked) {
|
||||
_torConnectingLock.release();
|
||||
}
|
||||
_requireMutex = false;
|
||||
break;
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
// Listen for tor preference changes.
|
||||
_torPreferenceListener = bus.on<TorPreferenceChangedEvent>().listen(
|
||||
(event) async {
|
||||
await updateNode();
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Address addressFor({required int index, int account = 0}) {
|
||||
String address = (CwBasedInterface.cwWalletBase as MoneroWalletBase)
|
||||
final String address = (CwBasedInterface.cwWalletBase as MoneroWalletBase)
|
||||
.getTransactionAddress(account, index);
|
||||
|
||||
final newReceivingAddress = Address(
|
||||
|
@ -153,13 +186,35 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface {
|
|||
final node = getCurrentNode();
|
||||
|
||||
final host = Uri.parse(node.host).host;
|
||||
await CwBasedInterface.cwWalletBase?.connectToNode(
|
||||
node: Node(
|
||||
uri: "$host:${node.port}",
|
||||
type: WalletType.monero,
|
||||
trusted: node.trusted ?? false,
|
||||
),
|
||||
);
|
||||
({InternetAddress host, int port})? proxy;
|
||||
if (prefs.useTor) {
|
||||
proxy = TorService.sharedInstance.getProxyInfo();
|
||||
}
|
||||
if (_requireMutex) {
|
||||
await _torConnectingLock.protect(() async {
|
||||
await CwBasedInterface.cwWalletBase?.connectToNode(
|
||||
node: Node(
|
||||
uri: "$host:${node.port}",
|
||||
type: WalletType.monero,
|
||||
trusted: node.trusted ?? false,
|
||||
),
|
||||
socksProxyAddress:
|
||||
proxy == null ? null : "${proxy.host.address}:${proxy.port}",
|
||||
);
|
||||
});
|
||||
} else {
|
||||
await CwBasedInterface.cwWalletBase?.connectToNode(
|
||||
node: Node(
|
||||
uri: "$host:${node.port}",
|
||||
type: WalletType.monero,
|
||||
trusted: node.trusted ?? false,
|
||||
),
|
||||
socksProxyAddress:
|
||||
proxy == null ? null : "${proxy.host.address}:${proxy.port}",
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -379,7 +434,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface {
|
|||
// clear blockchain info
|
||||
await mainDB.deleteWalletBlockchainData(walletId);
|
||||
|
||||
var restoreHeight =
|
||||
final restoreHeight =
|
||||
CwBasedInterface.cwWalletBase?.walletInfo.restoreHeight;
|
||||
highestPercentCached = 0;
|
||||
await CwBasedInterface.cwWalletBase?.rescan(height: restoreHeight ?? 0);
|
||||
|
@ -392,7 +447,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface {
|
|||
final mnemonic = await getMnemonic();
|
||||
final seedLength = mnemonic.trim().split(" ").length;
|
||||
|
||||
if (seedLength != 25) {
|
||||
if (seedLength != 25 && seedLength != 16) {
|
||||
throw Exception("Invalid monero mnemonic length found: $seedLength");
|
||||
}
|
||||
|
||||
|
@ -408,7 +463,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface {
|
|||
.createMoneroWalletService(DB.instance.moneroWalletInfoBox);
|
||||
WalletInfo walletInfo;
|
||||
WalletCredentials credentials;
|
||||
String name = walletId;
|
||||
final String name = walletId;
|
||||
final dirPath =
|
||||
await pathForWalletDir(name: name, type: WalletType.monero);
|
||||
final path = await pathForWallet(name: name, type: WalletType.monero);
|
||||
|
@ -510,12 +565,12 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface {
|
|||
isSendAll = true;
|
||||
}
|
||||
|
||||
List<monero_output.Output> outputs = [];
|
||||
final List<monero_output.Output> outputs = [];
|
||||
for (final recipient in txData.recipients!) {
|
||||
final output = monero_output.Output(CwBasedInterface.cwWalletBase!);
|
||||
output.address = recipient.address;
|
||||
output.sendAll = isSendAll;
|
||||
String amountToSend = recipient.amount.decimal.toString();
|
||||
final String amountToSend = recipient.amount.decimal.toString();
|
||||
output.setCryptoAmount(amountToSend);
|
||||
outputs.add(output);
|
||||
}
|
||||
|
@ -535,7 +590,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface {
|
|||
level: LogLevel.Warning);
|
||||
}
|
||||
|
||||
PendingMoneroTransaction pendingMoneroTransaction =
|
||||
final PendingMoneroTransaction pendingMoneroTransaction =
|
||||
await (awaitPendingTransaction!) as PendingMoneroTransaction;
|
||||
final realFee = Amount.fromDecimal(
|
||||
Decimal.parse(pendingMoneroTransaction.feeFormatted),
|
||||
|
@ -617,7 +672,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface {
|
|||
?.entries;
|
||||
if (balanceEntries != null) {
|
||||
int bal = 0;
|
||||
for (var element in balanceEntries) {
|
||||
for (final element in balanceEntries) {
|
||||
bal = bal + element.value.fullBalance;
|
||||
}
|
||||
return Amount(
|
||||
|
@ -630,7 +685,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface {
|
|||
.transactionHistory!
|
||||
.transactions;
|
||||
int transactionBalance = 0;
|
||||
for (var tx in transactions!.entries) {
|
||||
for (final tx in transactions!.entries) {
|
||||
if (tx.value.direction == TransactionDirection.incoming) {
|
||||
transactionBalance += tx.value.amount!;
|
||||
} else {
|
||||
|
@ -647,4 +702,12 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface {
|
|||
return info.cachedBalance.total;
|
||||
}
|
||||
}
|
||||
|
||||
// ============== Private ====================================================
|
||||
|
||||
StreamSubscription<TorConnectionStatusChangedEvent>? _torStatusListener;
|
||||
StreamSubscription<TorPreferenceChangedEvent>? _torPreferenceListener;
|
||||
|
||||
final Mutex _torConnectingLock = Mutex();
|
||||
bool _requireMutex = false;
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:cw_core/monero_transaction_priority.dart';
|
||||
|
@ -11,7 +12,6 @@ import 'package:cw_core/wallet_credentials.dart';
|
|||
import 'package:cw_core/wallet_info.dart';
|
||||
import 'package:cw_core/wallet_type.dart';
|
||||
import 'package:cw_monero/api/exceptions/creation_transaction_exception.dart';
|
||||
import 'package:cw_wownero/api/wallet.dart';
|
||||
import 'package:cw_wownero/pending_wownero_transaction.dart';
|
||||
import 'package:cw_wownero/wownero_wallet.dart';
|
||||
import 'package:decimal/decimal.dart';
|
||||
|
@ -23,6 +23,8 @@ import 'package:isar/isar.dart';
|
|||
import '../../../db/hive/db.dart';
|
||||
import '../../../models/isar/models/blockchain_data/address.dart';
|
||||
import '../../../models/isar/models/blockchain_data/transaction.dart';
|
||||
import '../../../services/event_bus/events/global/tor_connection_status_changed_event.dart';
|
||||
import '../../../services/event_bus/global_event_bus.dart';
|
||||
import '../../../utilities/amount/amount.dart';
|
||||
import '../../../utilities/enums/fee_rate_type_enum.dart';
|
||||
import '../../../utilities/logger.dart';
|
||||
|
@ -35,11 +37,42 @@ import '../wallet_mixin_interfaces/cw_based_interface.dart';
|
|||
import 'package:tuple/tuple.dart';
|
||||
|
||||
class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
||||
WowneroWallet(CryptoCurrencyNetwork network) : super(Wownero(network));
|
||||
WowneroWallet(CryptoCurrencyNetwork network) : super(Wownero(network)) {
|
||||
final bus = GlobalEventBus.instance;
|
||||
|
||||
// Listen for tor status changes.
|
||||
_torStatusListener = bus.on<TorConnectionStatusChangedEvent>().listen(
|
||||
(event) async {
|
||||
switch (event.newStatus) {
|
||||
case TorConnectionStatus.connecting:
|
||||
if (!_torConnectingLock.isLocked) {
|
||||
await _torConnectingLock.acquire();
|
||||
}
|
||||
_requireMutex = true;
|
||||
break;
|
||||
|
||||
case TorConnectionStatus.connected:
|
||||
case TorConnectionStatus.disconnected:
|
||||
if (_torConnectingLock.isLocked) {
|
||||
_torConnectingLock.release();
|
||||
}
|
||||
_requireMutex = false;
|
||||
break;
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
// Listen for tor preference changes.
|
||||
_torPreferenceListener = bus.on<TorPreferenceChangedEvent>().listen(
|
||||
(event) async {
|
||||
await updateNode();
|
||||
},
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
Address addressFor({required int index, int account = 0}) {
|
||||
String address = (CwBasedInterface.cwWalletBase as WowneroWalletBase)
|
||||
final String address = (CwBasedInterface.cwWalletBase as WowneroWalletBase)
|
||||
.getTransactionAddress(account, index);
|
||||
|
||||
final newReceivingAddress = Address(
|
||||
|
@ -143,13 +176,35 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
|||
final node = getCurrentNode();
|
||||
|
||||
final host = Uri.parse(node.host).host;
|
||||
await CwBasedInterface.cwWalletBase?.connectToNode(
|
||||
node: Node(
|
||||
uri: "$host:${node.port}",
|
||||
type: WalletType.wownero,
|
||||
trusted: node.trusted ?? false,
|
||||
),
|
||||
);
|
||||
({InternetAddress host, int port})? proxy;
|
||||
if (prefs.useTor) {
|
||||
proxy = TorService.sharedInstance.getProxyInfo();
|
||||
}
|
||||
if (_requireMutex) {
|
||||
await _torConnectingLock.protect(() async {
|
||||
await CwBasedInterface.cwWalletBase?.connectToNode(
|
||||
node: Node(
|
||||
uri: "$host:${node.port}",
|
||||
type: WalletType.wownero,
|
||||
trusted: node.trusted ?? false,
|
||||
),
|
||||
socksProxyAddress:
|
||||
proxy == null ? null : "${proxy.host.address}:${proxy.port}",
|
||||
);
|
||||
});
|
||||
} else {
|
||||
await CwBasedInterface.cwWalletBase?.connectToNode(
|
||||
node: Node(
|
||||
uri: "$host:${node.port}",
|
||||
type: WalletType.wownero,
|
||||
trusted: node.trusted ?? false,
|
||||
),
|
||||
socksProxyAddress:
|
||||
proxy == null ? null : "${proxy.host.address}:${proxy.port}",
|
||||
);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
@override
|
||||
|
@ -199,7 +254,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
|||
final List<Tuple2<Transaction, Address?>> txnsData = [];
|
||||
|
||||
if (transactions != null) {
|
||||
for (var tx in transactions.entries) {
|
||||
for (final tx in transactions.entries) {
|
||||
Address? address;
|
||||
TransactionType type;
|
||||
if (tx.value.direction == TransactionDirection.incoming) {
|
||||
|
@ -330,7 +385,9 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
|||
// date: DateTime.now().subtract(const Duration(
|
||||
// days:
|
||||
// 2))); // subtract a couple days to ensure we have a buffer for SWB
|
||||
final bufferedCreateHeight = getSeedHeightSync(wallet!.seed.trim());
|
||||
// TODO(mrcyjanek): implement
|
||||
const bufferedCreateHeight =
|
||||
1; //getSeedHeightSync(wallet!.seed.trim());
|
||||
|
||||
await info.updateRestoreHeight(
|
||||
newRestoreHeight: bufferedCreateHeight,
|
||||
|
@ -419,7 +476,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
|||
// clear blockchain info
|
||||
await mainDB.deleteWalletBlockchainData(walletId);
|
||||
|
||||
var restoreHeight =
|
||||
final restoreHeight =
|
||||
CwBasedInterface.cwWalletBase?.walletInfo.restoreHeight;
|
||||
highestPercentCached = 0;
|
||||
await CwBasedInterface.cwWalletBase?.rescan(height: restoreHeight ?? 0);
|
||||
|
@ -441,7 +498,8 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
|||
|
||||
// extract seed height from 14 word seed
|
||||
if (seedLength == 14) {
|
||||
height = getSeedHeightSync(mnemonic.trim());
|
||||
// TODO(mrcyjanek): implement
|
||||
height = 1; // getSeedHeightSync(mnemonic.trim());
|
||||
} else {
|
||||
height = max(height, 0);
|
||||
}
|
||||
|
@ -454,7 +512,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
|||
.createWowneroWalletService(DB.instance.moneroWalletInfoBox);
|
||||
WalletInfo walletInfo;
|
||||
WalletCredentials credentials;
|
||||
String name = walletId;
|
||||
final String name = walletId;
|
||||
final dirPath =
|
||||
await pathForWalletDir(name: name, type: WalletType.wownero);
|
||||
final path = await pathForWallet(name: name, type: WalletType.wownero);
|
||||
|
@ -556,13 +614,13 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
|||
isSendAll = true;
|
||||
}
|
||||
|
||||
List<wownero_output.Output> outputs = [];
|
||||
final List<wownero_output.Output> outputs = [];
|
||||
for (final recipient in txData.recipients!) {
|
||||
final output =
|
||||
wownero_output.Output(CwBasedInterface.cwWalletBase!);
|
||||
output.address = recipient.address;
|
||||
output.sendAll = isSendAll;
|
||||
String amountToSend = recipient.amount.decimal.toString();
|
||||
final String amountToSend = recipient.amount.decimal.toString();
|
||||
output.setCryptoAmount(amountToSend);
|
||||
outputs.add(output);
|
||||
}
|
||||
|
@ -582,7 +640,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
|||
level: LogLevel.Warning);
|
||||
}
|
||||
|
||||
PendingWowneroTransaction pendingWowneroTransaction =
|
||||
final PendingWowneroTransaction pendingWowneroTransaction =
|
||||
await (awaitPendingTransaction!) as PendingWowneroTransaction;
|
||||
final realFee = Amount.fromDecimal(
|
||||
Decimal.parse(pendingWowneroTransaction.feeFormatted),
|
||||
|
@ -665,7 +723,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
|||
?.entries;
|
||||
if (balanceEntries != null) {
|
||||
int bal = 0;
|
||||
for (var element in balanceEntries) {
|
||||
for (final element in balanceEntries) {
|
||||
bal = bal + element.value.fullBalance;
|
||||
}
|
||||
return Amount(
|
||||
|
@ -676,7 +734,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
|||
final transactions =
|
||||
CwBasedInterface.cwWalletBase!.transactionHistory!.transactions;
|
||||
int transactionBalance = 0;
|
||||
for (var tx in transactions!.entries) {
|
||||
for (final tx in transactions!.entries) {
|
||||
if (tx.value.direction == TransactionDirection.incoming) {
|
||||
transactionBalance += tx.value.amount!;
|
||||
} else {
|
||||
|
@ -693,4 +751,12 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
|||
return info.cachedBalance.total;
|
||||
}
|
||||
}
|
||||
|
||||
// ============== Private ====================================================
|
||||
|
||||
StreamSubscription<TorConnectionStatusChangedEvent>? _torStatusListener;
|
||||
StreamSubscription<TorPreferenceChangedEvent>? _torPreferenceListener;
|
||||
|
||||
final Mutex _torConnectingLock = Mutex();
|
||||
bool _requireMutex = false;
|
||||
}
|
||||
|
|
|
@ -6,9 +6,6 @@ import FlutterMacOS
|
|||
import Foundation
|
||||
|
||||
import connectivity_plus
|
||||
import cw_monero
|
||||
import cw_shared_external
|
||||
import cw_wownero
|
||||
import desktop_drop
|
||||
import device_info_plus
|
||||
import devicelocale
|
||||
|
@ -27,9 +24,6 @@ import window_size
|
|||
|
||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||
ConnectivityPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlugin"))
|
||||
CwMoneroPlugin.register(with: registry.registrar(forPlugin: "CwMoneroPlugin"))
|
||||
CwSharedExternalPlugin.register(with: registry.registrar(forPlugin: "CwSharedExternalPlugin"))
|
||||
CwWowneroPlugin.register(with: registry.registrar(forPlugin: "CwWowneroPlugin"))
|
||||
DesktopDropPlugin.register(with: registry.registrar(forPlugin: "DesktopDropPlugin"))
|
||||
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
|
||||
DevicelocalePlugin.register(with: registry.registrar(forPlugin: "DevicelocalePlugin"))
|
||||
|
|
|
@ -5,48 +5,6 @@ PODS:
|
|||
- connectivity_plus (0.0.1):
|
||||
- FlutterMacOS
|
||||
- ReachabilitySwift
|
||||
- cw_monero (0.0.1):
|
||||
- cw_monero/Boost (= 0.0.1)
|
||||
- cw_monero/Monero (= 0.0.1)
|
||||
- cw_monero/OpenSSL (= 0.0.1)
|
||||
- cw_monero/Sodium (= 0.0.1)
|
||||
- cw_monero/Unbound (= 0.0.1)
|
||||
- FlutterMacOS
|
||||
- cw_monero/Boost (0.0.1):
|
||||
- FlutterMacOS
|
||||
- cw_monero/Monero (0.0.1):
|
||||
- FlutterMacOS
|
||||
- cw_monero/OpenSSL (0.0.1):
|
||||
- FlutterMacOS
|
||||
- cw_monero/Sodium (0.0.1):
|
||||
- FlutterMacOS
|
||||
- cw_monero/Unbound (0.0.1):
|
||||
- FlutterMacOS
|
||||
- cw_shared_external (0.0.1):
|
||||
- cw_shared_external/Boost (= 0.0.1)
|
||||
- cw_shared_external/OpenSSL (= 0.0.1)
|
||||
- FlutterMacOS
|
||||
- cw_shared_external/Boost (0.0.1):
|
||||
- FlutterMacOS
|
||||
- cw_shared_external/OpenSSL (0.0.1):
|
||||
- FlutterMacOS
|
||||
- cw_wownero (0.0.1):
|
||||
- cw_wownero/Boost (= 0.0.1)
|
||||
- cw_wownero/OpenSSL (= 0.0.1)
|
||||
- cw_wownero/Sodium (= 0.0.1)
|
||||
- cw_wownero/Unbound (= 0.0.1)
|
||||
- cw_wownero/Wownero (= 0.0.1)
|
||||
- FlutterMacOS
|
||||
- cw_wownero/Boost (0.0.1):
|
||||
- FlutterMacOS
|
||||
- cw_wownero/OpenSSL (0.0.1):
|
||||
- FlutterMacOS
|
||||
- cw_wownero/Sodium (0.0.1):
|
||||
- FlutterMacOS
|
||||
- cw_wownero/Unbound (0.0.1):
|
||||
- FlutterMacOS
|
||||
- cw_wownero/Wownero (0.0.1):
|
||||
- FlutterMacOS
|
||||
- desktop_drop (0.0.1):
|
||||
- FlutterMacOS
|
||||
- device_info_plus (0.0.1):
|
||||
|
@ -89,9 +47,6 @@ PODS:
|
|||
DEPENDENCIES:
|
||||
- coinlib_flutter (from `Flutter/ephemeral/.symlinks/plugins/coinlib_flutter/darwin`)
|
||||
- connectivity_plus (from `Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos`)
|
||||
- cw_monero (from `Flutter/ephemeral/.symlinks/plugins/cw_monero/macos`)
|
||||
- cw_shared_external (from `Flutter/ephemeral/.symlinks/plugins/cw_shared_external/macos`)
|
||||
- cw_wownero (from `Flutter/ephemeral/.symlinks/plugins/cw_wownero/macos`)
|
||||
- desktop_drop (from `Flutter/ephemeral/.symlinks/plugins/desktop_drop/macos`)
|
||||
- device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`)
|
||||
- devicelocale (from `Flutter/ephemeral/.symlinks/plugins/devicelocale/macos`)
|
||||
|
@ -121,12 +76,6 @@ EXTERNAL SOURCES:
|
|||
:path: Flutter/ephemeral/.symlinks/plugins/coinlib_flutter/darwin
|
||||
connectivity_plus:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos
|
||||
cw_monero:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/cw_monero/macos
|
||||
cw_shared_external:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/cw_shared_external/macos
|
||||
cw_wownero:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/cw_wownero/macos
|
||||
desktop_drop:
|
||||
:path: Flutter/ephemeral/.symlinks/plugins/desktop_drop/macos
|
||||
device_info_plus:
|
||||
|
@ -169,9 +118,6 @@ EXTERNAL SOURCES:
|
|||
SPEC CHECKSUMS:
|
||||
coinlib_flutter: 6abec900d67762a6e7ccfd567a3cd3ae00bbee35
|
||||
connectivity_plus: 18d3c32514c886e046de60e9c13895109866c747
|
||||
cw_monero: 7acce7238d217e3993ecac6ec2dec07be728769a
|
||||
cw_shared_external: c6adfd29c9be4d64f84e1fa9c541ccbcbdb6b457
|
||||
cw_wownero: bcd7f2ad6c0a3e8e2a51756fb14f0579b6f8b4ff
|
||||
desktop_drop: 69eeff437544aa619c8db7f4481b3a65f7696898
|
||||
device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f
|
||||
devicelocale: 9f0f36ac651cabae2c33f32dcff4f32b61c38225
|
||||
|
|
20
pubspec.lock
20
pubspec.lock
|
@ -388,13 +388,6 @@ packages:
|
|||
relative: true
|
||||
source: path
|
||||
version: "0.0.1"
|
||||
cw_shared_external:
|
||||
dependency: transitive
|
||||
description:
|
||||
path: "crypto_plugins/flutter_libmonero/cw_shared_external"
|
||||
relative: true
|
||||
source: path
|
||||
version: "0.0.1"
|
||||
cw_wownero:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -1200,6 +1193,15 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.2.0"
|
||||
monero:
|
||||
dependency: transitive
|
||||
description:
|
||||
path: "."
|
||||
ref: "6a17a405a1a260fa228b2f4fc94044088a4335ac"
|
||||
resolved-ref: "6a17a405a1a260fa228b2f4fc94044088a4335ac"
|
||||
url: "https://git.mrcyjanek.net/mrcyjanek/monero.dart"
|
||||
source: git
|
||||
version: "0.0.0"
|
||||
mutex:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -1740,8 +1742,8 @@ packages:
|
|||
dependency: "direct main"
|
||||
description:
|
||||
path: "."
|
||||
ref: "13fa937ea9a9fc34caf047e068df9535f65c27ad"
|
||||
resolved-ref: "13fa937ea9a9fc34caf047e068df9535f65c27ad"
|
||||
ref: f31f8f857665d85338824ae171aba4c629c3ba6f
|
||||
resolved-ref: f31f8f857665d85338824ae171aba4c629c3ba6f
|
||||
url: "https://github.com/cypherstack/tezart.git"
|
||||
source: git
|
||||
version: "2.0.5"
|
||||
|
|
|
@ -12,11 +12,11 @@ mkdir -p build
|
|||
|
||||
PLUGINS_DIR=../../crypto_plugins
|
||||
|
||||
(cd "${PLUGINS_DIR}"/flutter_liblelantus/scripts/android && ./build_all.sh ) &
|
||||
(cd "${PLUGINS_DIR}"/flutter_libepiccash/scripts/android && ./build_all.sh ) &
|
||||
(cd "${PLUGINS_DIR}"/flutter_libmonero/scripts/android/ && ./build_all.sh ) &&
|
||||
set_rust_to_1720 &&
|
||||
(cd "${PLUGINS_DIR}"/frostdart/scripts/android && ./build_all.sh ) &
|
||||
(cd "${PLUGINS_DIR}"/flutter_liblelantus/scripts/android && ./build_all.sh )
|
||||
(cd "${PLUGINS_DIR}"/flutter_libepiccash/scripts/android && ./build_all.sh )
|
||||
(cd "${PLUGINS_DIR}"/flutter_libmonero/scripts/android/ && ./build_all.sh )
|
||||
set_rust_to_1720
|
||||
(cd "${PLUGINS_DIR}"/frostdart/scripts/android && ./build_all.sh )
|
||||
|
||||
wait
|
||||
echo "Done building"
|
||||
|
|
|
@ -45,7 +45,12 @@ android {
|
|||
lintOptions {
|
||||
disable 'InvalidPackage'
|
||||
}
|
||||
|
||||
packagingOptions {
|
||||
pickFirst 'lib/x86/libc++_shared.so'
|
||||
pickFirst 'lib/x86_64/libc++_shared.so'
|
||||
pickFirst 'lib/armeabi-v7a/libc++_shared.so'
|
||||
pickFirst 'lib/arm64-v8a/libc++_shared.so'
|
||||
}
|
||||
defaultConfig {
|
||||
applicationId "com.place.holder"
|
||||
minSdkVersion 23
|
||||
|
|
|
@ -23,7 +23,8 @@
|
|||
android:requestLegacyExternalStorage="true"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:allowBackup="false"
|
||||
android:fullBackupContent="false">
|
||||
android:fullBackupContent="false"
|
||||
android:extractNativeLibs="true">
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:screenOrientation="portrait"
|
||||
|
|
|
@ -134,10 +134,10 @@ install(FILES "${FLUTTER_ICU_DATA_FILE}" DESTINATION "${INSTALL_BUNDLE_DATA_DIR}
|
|||
install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||
COMPONENT Runtime)
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/linux/build/libcw_monero.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/monero_c/release/monero/x86_64-linux-gnu_libwallet2_api_c.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "monero_libwallet2_api_c.so"
|
||||
COMPONENT Runtime)
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/linux/build/libcw_wownero.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/monero_c/release/wownero/x86_64-linux-gnu_libwallet2_api_c.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "wownero_libwallet2_api_c.so"
|
||||
COMPONENT Runtime)
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libepiccash/scripts/linux/build/rust/target/x86_64-unknown-linux-gnu/release/libepic_cash_wallet.so" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||
|
|
|
@ -31,6 +31,8 @@
|
|||
B98151822A67402A009D013C /* mobileliblelantus.framework in Bundle Framework */ = {isa = PBXBuildFile; fileRef = B98151802A674022009D013C /* mobileliblelantus.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
|
||||
B98151842A674143009D013C /* libsqlite3.0.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = B98151832A674143009D013C /* libsqlite3.0.tbd */; };
|
||||
BFD0376C00E1FFD46376BB9D /* Pods_RunnerTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9206484E84CB0AD93E3E68CA /* Pods_RunnerTests.framework */; };
|
||||
CEA2021D2BDD4D7100FE1D27 /* wownero_libwallet2_api_c.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = CEA2021C2BDD4D7100FE1D27 /* wownero_libwallet2_api_c.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||
CEA202202BDD4F0B00FE1D27 /* monero_libwallet2_api_c.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = CEA2021F2BDD4F0B00FE1D27 /* monero_libwallet2_api_c.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||
F1FA2C4E2BA4B49F00BDA1BB /* frostdart.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F1FA2C4D2BA4B49F00BDA1BB /* frostdart.dylib */; settings = {ATTRIBUTES = (Weak, ); }; };
|
||||
F1FA2C502BA4B4CA00BDA1BB /* frostdart.dylib in Resources */ = {isa = PBXBuildFile; fileRef = F1FA2C4F2BA4B4CA00BDA1BB /* frostdart.dylib */; };
|
||||
F1FA2C512BA4B51E00BDA1BB /* frostdart.dylib in Bundle Framework */ = {isa = PBXBuildFile; fileRef = F1FA2C4D2BA4B49F00BDA1BB /* frostdart.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||
|
@ -67,6 +69,17 @@
|
|||
name = "Bundle Framework";
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
CEA202192BDD4C3500FE1D27 /* CopyFiles */ = {
|
||||
isa = PBXCopyFilesBuildPhase;
|
||||
buildActionMask = 12;
|
||||
dstPath = "";
|
||||
dstSubfolderSpec = 10;
|
||||
files = (
|
||||
CEA202202BDD4F0B00FE1D27 /* monero_libwallet2_api_c.dylib in CopyFiles */,
|
||||
CEA2021D2BDD4D7100FE1D27 /* wownero_libwallet2_api_c.dylib in CopyFiles */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXCopyFilesBuildPhase section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
|
@ -97,6 +110,8 @@
|
|||
B98151802A674022009D013C /* mobileliblelantus.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = mobileliblelantus.framework; path = ../crypto_plugins/flutter_liblelantus/scripts/macos/mobileliblelantus/mobileliblelantus.framework; sourceTree = "<group>"; };
|
||||
B98151832A674143009D013C /* libsqlite3.0.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libsqlite3.0.tbd; path = usr/lib/libsqlite3.0.tbd; sourceTree = SDKROOT; };
|
||||
BF5E76865ACB46314AC27D8F /* Pods-RunnerTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RunnerTests.debug.xcconfig"; path = "Target Support Files/Pods-RunnerTests/Pods-RunnerTests.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
CEA2021C2BDD4D7100FE1D27 /* wownero_libwallet2_api_c.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = wownero_libwallet2_api_c.dylib; sourceTree = "<group>"; };
|
||||
CEA2021F2BDD4F0B00FE1D27 /* monero_libwallet2_api_c.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = monero_libwallet2_api_c.dylib; sourceTree = "<group>"; };
|
||||
E6036BF01BF05EA773C76D22 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
F1FA2C4D2BA4B49F00BDA1BB /* frostdart.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = frostdart.dylib; path = ../crypto_plugins/frostdart/macos/frostdart.dylib; sourceTree = "<group>"; };
|
||||
F1FA2C4F2BA4B4CA00BDA1BB /* frostdart.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = frostdart.dylib; path = ../crypto_plugins/frostdart/macos/frostdart.dylib; sourceTree = "<group>"; };
|
||||
|
@ -147,6 +162,8 @@
|
|||
33CC10E42044A3C60003C045 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
CEA2021F2BDD4F0B00FE1D27 /* monero_libwallet2_api_c.dylib */,
|
||||
CEA2021C2BDD4D7100FE1D27 /* wownero_libwallet2_api_c.dylib */,
|
||||
F1FA2C4F2BA4B4CA00BDA1BB /* frostdart.dylib */,
|
||||
33FAB671232836740065AC1E /* Runner */,
|
||||
33CEB47122A05771004F2AC0 /* Flutter */,
|
||||
|
@ -259,6 +276,7 @@
|
|||
33CC110E2044A8840003C045 /* Bundle Framework */,
|
||||
3399D490228B24CF009A79C7 /* ShellScript */,
|
||||
529691D83C3BADE14E2EAC03 /* [CP] Embed Pods Frameworks */,
|
||||
CEA202192BDD4C3500FE1D27 /* CopyFiles */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
|
@ -277,7 +295,7 @@
|
|||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastSwiftUpdateCheck = 0920;
|
||||
LastUpgradeCheck = 1510;
|
||||
LastUpgradeCheck = 1430;
|
||||
ORGANIZATIONNAME = "";
|
||||
TargetAttributes = {
|
||||
331C80D4294CF70F00263BE5 = {
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1510"
|
||||
LastUpgradeVersion = "1430"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
|
|
@ -86,6 +86,27 @@ install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libepiccash
|
|||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_liblelantus/scripts/windows/build/libmobileliblelantus.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||
COMPONENT Runtime)
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/monero_c/release/monero/x86_64-w64-mingw32_libwallet2_api_c.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "monero_libwallet2_api_c.dll"
|
||||
COMPONENT Runtime)
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/monero_c/release/wownero/x86_64-w64-mingw32_libwallet2_api_c.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "wownero_libwallet2_api_c.dll"
|
||||
COMPONENT Runtime)
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/monero_c/release/wownero/x86_64-w64-mingw32_libgcc_s_seh-1.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "libgcc_s_seh-1.dll"
|
||||
COMPONENT Runtime)
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/monero_c/release/wownero/x86_64-w64-mingw32_libpolyseed.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "libpolyseed.dll"
|
||||
COMPONENT Runtime)
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/monero_c/release/wownero/x86_64-w64-mingw32_libssp-0.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "libssp-0.dll"
|
||||
COMPONENT Runtime)
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/monero_c/release/wownero/x86_64-w64-mingw32_libstdc++-6.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "libstdc++-6.dll"
|
||||
COMPONENT Runtime)
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_libmonero/scripts/monero_c/release/wownero/x86_64-w64-mingw32_libwinpthread-1.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}" RENAME "libwinpthread-1.dll"
|
||||
COMPONENT Runtime)
|
||||
|
||||
if(PLUGIN_BUNDLED_LIBRARIES)
|
||||
install(FILES "${PLUGIN_BUNDLED_LIBRARIES}"
|
||||
DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||
|
|
|
@ -11,12 +11,12 @@ set_rust_to_1671
|
|||
# flutter-elinux pub get
|
||||
# flutter-elinux build linux --dart-define="IS_ARM=true"
|
||||
mkdir -p build
|
||||
./build_secure_storage_deps.sh &
|
||||
(cd ../../crypto_plugins/flutter_liblelantus/scripts/linux && ./build_all.sh ) &
|
||||
(cd ../../crypto_plugins/flutter_libepiccash/scripts/linux && ./build_all.sh ) &
|
||||
(cd ../../crypto_plugins/flutter_libmonero/scripts/linux && ./build_monero_all.sh && ./build_sharedfile.sh )
|
||||
./build_secure_storage_deps.sh
|
||||
(cd ../../crypto_plugins/flutter_liblelantus/scripts/linux && ./build_all.sh )
|
||||
(cd ../../crypto_plugins/flutter_libepiccash/scripts/linux && ./build_all.sh )
|
||||
(cd ../../crypto_plugins/flutter_libmonero/scripts/linux && ./build_all.sh )
|
||||
set_rust_to_1720
|
||||
(cd ../../crypto_plugins/frostdart/scripts/linux && ./build_all.sh ) &
|
||||
(cd ../../crypto_plugins/frostdart/scripts/linux && ./build_all.sh )
|
||||
|
||||
./build_secp256k1.sh
|
||||
|
||||
|
|
|
@ -6,11 +6,11 @@ set -x -e
|
|||
source ../rust_version.sh
|
||||
set_rust_to_1671
|
||||
|
||||
(cd ../../crypto_plugins/flutter_liblelantus/scripts/macos && ./build_all.sh ) &
|
||||
(cd ../../crypto_plugins/flutter_libepiccash/scripts/macos && ./build_all.sh ) &
|
||||
(cd ../../crypto_plugins/flutter_libmonero/scripts/macos/ && ./build_all.sh ) &&
|
||||
set_rust_to_1720 &&
|
||||
(cd ../../crypto_plugins/frostdart/scripts/macos && ./build_all.sh ) &
|
||||
(cd ../../crypto_plugins/flutter_liblelantus/scripts/macos && ./build_all.sh )
|
||||
(cd ../../crypto_plugins/flutter_libepiccash/scripts/macos && ./build_all.sh )
|
||||
(cd ../../crypto_plugins/flutter_libmonero/scripts/macos/ && ./build_all.sh )
|
||||
set_rust_to_1720
|
||||
(cd ../../crypto_plugins/frostdart/scripts/macos && ./build_all.sh )
|
||||
|
||||
wait
|
||||
echo "Done building"
|
||||
|
|
|
@ -7,11 +7,11 @@ source ../rust_version.sh
|
|||
set_rust_to_1671
|
||||
|
||||
mkdir -p build
|
||||
(cd ../../crypto_plugins/flutter_libepiccash/scripts/windows && ./build_all.sh ) &
|
||||
(cd ../../crypto_plugins/flutter_liblelantus/scripts/windows && ./build_all.sh ) &
|
||||
(cd ../../crypto_plugins/flutter_libepiccash/scripts/windows && ./build_all.sh )
|
||||
(cd ../../crypto_plugins/flutter_liblelantus/scripts/windows && ./build_all.sh )
|
||||
(cd ../../crypto_plugins/flutter_libmonero/scripts/windows && ./build_all.sh)
|
||||
set_rust_to_1720
|
||||
(cd ../../crypto_plugins/frostdart/scripts/windows && ./build_all.sh ) &
|
||||
(cd ../../crypto_plugins/frostdart/scripts/windows && ./build_all.sh )
|
||||
|
||||
./build_secp256k1_wsl.sh
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/bin/bash
|
||||
|
||||
(cd ../../crypto_plugins/flutter_libepiccash/scripts/windows && ./deps.sh ) &
|
||||
(cd ../../crypto_plugins/flutter_liblelantus/scripts/windows && ./mxedeps.sh ) &
|
||||
(cd ../../crypto_plugins/flutter_libepiccash/scripts/windows && ./deps.sh )
|
||||
(cd ../../crypto_plugins/flutter_liblelantus/scripts/windows && ./mxedeps.sh )
|
||||
# (cd ../../crypto_plugins/flutter_libmonero/scripts/windows && ./monerodeps.sh && ./mxedeps.sh) &
|
||||
|
||||
wait
|
||||
|
|
Loading…
Reference in a new issue