mirror of
https://github.com/cypherstack/stack_wallet.git
synced 2024-11-16 17:27:39 +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/runner/main.cpp
|
||||||
/windows/CMakeLists.txt
|
/windows/CMakeLists.txt
|
||||||
/windows/runner/resources/app_icon.ico
|
/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
|
### Build dependencies
|
||||||
Install basic 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:
|
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:
|
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:
|
The following brew formula *may* be needed:
|
||||||
|
|
|
@ -221,12 +221,8 @@ void main(List<String> args) async {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Platform.isWindows) {
|
monero.onStartup();
|
||||||
monero.onStartup();
|
wownero.onStartup();
|
||||||
}
|
|
||||||
if (!Platform.isLinux && !Platform.isWindows) {
|
|
||||||
wownero.onStartup();
|
|
||||||
}
|
|
||||||
|
|
||||||
// SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual,
|
// SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual,
|
||||||
// overlays: [SystemUiOverlay.bottom]);
|
// overlays: [SystemUiOverlay.bottom]);
|
||||||
|
|
|
@ -132,11 +132,6 @@ class _AddWalletViewState extends ConsumerState<AddWalletView> {
|
||||||
_searchFieldController = TextEditingController();
|
_searchFieldController = TextEditingController();
|
||||||
_searchFocusNode = FocusNode();
|
_searchFocusNode = FocusNode();
|
||||||
// _coinsTestnet.remove(Coin.firoTestNet);
|
// _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) {
|
if (Util.isDesktop && !kDebugMode) {
|
||||||
_coins.removeWhere((e) => e is BitcoinFrost);
|
_coins.removeWhere((e) => e is BitcoinFrost);
|
||||||
|
|
|
@ -219,7 +219,9 @@ class _RestoreOptionsViewState extends ConsumerState<RestoreOptionsView> {
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: isDesktop ? 40 : 24,
|
height: isDesktop ? 40 : 24,
|
||||||
),
|
),
|
||||||
if (coin is Monero ||
|
if ((coin is Monero &&
|
||||||
|
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||||
|
25) ||
|
||||||
coin is Epiccash ||
|
coin is Epiccash ||
|
||||||
(coin is Wownero &&
|
(coin is Wownero &&
|
||||||
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||||
|
@ -235,7 +237,9 @@ class _RestoreOptionsViewState extends ConsumerState<RestoreOptionsView> {
|
||||||
: STextStyles.smallMed12(context),
|
: STextStyles.smallMed12(context),
|
||||||
textAlign: TextAlign.left,
|
textAlign: TextAlign.left,
|
||||||
),
|
),
|
||||||
if (coin is Monero ||
|
if ((coin is Monero &&
|
||||||
|
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||||
|
25) ||
|
||||||
coin is Epiccash ||
|
coin is Epiccash ||
|
||||||
(coin is Wownero &&
|
(coin is Wownero &&
|
||||||
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||||
|
@ -243,7 +247,9 @@ class _RestoreOptionsViewState extends ConsumerState<RestoreOptionsView> {
|
||||||
SizedBox(
|
SizedBox(
|
||||||
height: isDesktop ? 16 : 8,
|
height: isDesktop ? 16 : 8,
|
||||||
),
|
),
|
||||||
if (coin is Monero ||
|
if ((coin is Monero &&
|
||||||
|
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||||
|
25) ||
|
||||||
coin is Epiccash ||
|
coin is Epiccash ||
|
||||||
(coin is Wownero &&
|
(coin is Wownero &&
|
||||||
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||||
|
@ -253,7 +259,8 @@ class _RestoreOptionsViewState extends ConsumerState<RestoreOptionsView> {
|
||||||
onTap: chooseDate,
|
onTap: chooseDate,
|
||||||
controller: _dateController,
|
controller: _dateController,
|
||||||
),
|
),
|
||||||
if (coin is Monero ||
|
if ((coin is Monero &&
|
||||||
|
ref.watch(mnemonicWordCountStateProvider.state).state == 25) ||
|
||||||
coin is Epiccash ||
|
coin is Epiccash ||
|
||||||
(coin is Wownero &&
|
(coin is Wownero &&
|
||||||
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||||
|
@ -264,7 +271,9 @@ class _RestoreOptionsViewState extends ConsumerState<RestoreOptionsView> {
|
||||||
onTap: chooseDesktopDate,
|
onTap: chooseDesktopDate,
|
||||||
controller: _dateController,
|
controller: _dateController,
|
||||||
),
|
),
|
||||||
if (coin is Monero ||
|
if ((coin is Monero &&
|
||||||
|
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||||
|
25) ||
|
||||||
coin is Epiccash ||
|
coin is Epiccash ||
|
||||||
(coin is Wownero &&
|
(coin is Wownero &&
|
||||||
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||||
|
@ -272,7 +281,9 @@ class _RestoreOptionsViewState extends ConsumerState<RestoreOptionsView> {
|
||||||
const SizedBox(
|
const SizedBox(
|
||||||
height: 8,
|
height: 8,
|
||||||
),
|
),
|
||||||
if (coin is Monero ||
|
if ((coin is Monero &&
|
||||||
|
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||||
|
25) ||
|
||||||
coin is Epiccash ||
|
coin is Epiccash ||
|
||||||
(coin is Wownero &&
|
(coin is Wownero &&
|
||||||
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
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 Epiccash ||
|
||||||
(coin is Wownero &&
|
(coin is Wownero &&
|
||||||
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
ref.watch(mnemonicWordCountStateProvider.state).state ==
|
||||||
|
|
|
@ -70,13 +70,6 @@ class _NodesSettings extends ConsumerState<NodesSettings> {
|
||||||
_coins.removeWhere(
|
_coins.removeWhere(
|
||||||
(e) => e is Firo && e.network == CryptoCurrencyNetwork.test,
|
(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();
|
searchNodeController = TextEditingController();
|
||||||
searchNodeFocusNode = FocusNode();
|
searchNodeFocusNode = FocusNode();
|
||||||
|
|
|
@ -1,4 +1,6 @@
|
||||||
import 'package:cw_monero/api/wallet.dart' as monero_wallet;
|
import 'package:cw_monero/api/wallet.dart' as monero_wallet;
|
||||||
|
import 'package:monero/monero.dart' as monero;
|
||||||
|
|
||||||
import '../../../models/node_model.dart';
|
import '../../../models/node_model.dart';
|
||||||
import '../../../utilities/default_nodes.dart';
|
import '../../../utilities/default_nodes.dart';
|
||||||
import '../../../utilities/enums/derive_path_type_enum.dart';
|
import '../../../utilities/enums/derive_path_type_enum.dart';
|
||||||
|
@ -44,7 +46,7 @@ class Monero extends CryptonoteCurrency {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool validateAddress(String address) {
|
bool validateAddress(String address) {
|
||||||
return monero_wallet.validateAddress(address);
|
return monero.Wallet_addressValid(address, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
|
@ -44,7 +44,7 @@ class Wownero extends CryptonoteCurrency {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
bool validateAddress(String address) {
|
bool validateAddress(String address) {
|
||||||
return wownero_wallet.validateAddress(address);
|
return wownero_wallet.addressValid(address);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
import 'dart:async';
|
import 'dart:async';
|
||||||
|
import 'dart:io';
|
||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
|
|
||||||
import 'package:cw_core/monero_transaction_priority.dart';
|
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/monero/monero.dart' as xmr_dart;
|
||||||
import 'package:flutter_libmonero/view_model/send/output.dart' as monero_output;
|
import 'package:flutter_libmonero/view_model/send/output.dart' as monero_output;
|
||||||
import 'package:isar/isar.dart';
|
import 'package:isar/isar.dart';
|
||||||
|
import 'package:tuple/tuple.dart';
|
||||||
|
|
||||||
import '../../../db/hive/db.dart';
|
import '../../../db/hive/db.dart';
|
||||||
import '../../../models/isar/models/blockchain_data/address.dart';
|
import '../../../models/isar/models/blockchain_data/address.dart';
|
||||||
import '../../../models/isar/models/blockchain_data/transaction.dart';
|
import '../../../models/isar/models/blockchain_data/transaction.dart';
|
||||||
|
@ -30,14 +33,44 @@ import '../../models/tx_data.dart';
|
||||||
import '../intermediate/cryptonote_wallet.dart';
|
import '../intermediate/cryptonote_wallet.dart';
|
||||||
import '../wallet.dart';
|
import '../wallet.dart';
|
||||||
import '../wallet_mixin_interfaces/cw_based_interface.dart';
|
import '../wallet_mixin_interfaces/cw_based_interface.dart';
|
||||||
import 'package:tuple/tuple.dart';
|
|
||||||
|
|
||||||
class MoneroWallet extends CryptonoteWallet with CwBasedInterface {
|
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
|
@override
|
||||||
Address addressFor({required int index, int account = 0}) {
|
Address addressFor({required int index, int account = 0}) {
|
||||||
String address = (CwBasedInterface.cwWalletBase as MoneroWalletBase)
|
final String address = (CwBasedInterface.cwWalletBase as MoneroWalletBase)
|
||||||
.getTransactionAddress(account, index);
|
.getTransactionAddress(account, index);
|
||||||
|
|
||||||
final newReceivingAddress = Address(
|
final newReceivingAddress = Address(
|
||||||
|
@ -153,13 +186,35 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface {
|
||||||
final node = getCurrentNode();
|
final node = getCurrentNode();
|
||||||
|
|
||||||
final host = Uri.parse(node.host).host;
|
final host = Uri.parse(node.host).host;
|
||||||
await CwBasedInterface.cwWalletBase?.connectToNode(
|
({InternetAddress host, int port})? proxy;
|
||||||
node: Node(
|
if (prefs.useTor) {
|
||||||
uri: "$host:${node.port}",
|
proxy = TorService.sharedInstance.getProxyInfo();
|
||||||
type: WalletType.monero,
|
}
|
||||||
trusted: node.trusted ?? false,
|
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
|
@override
|
||||||
|
@ -379,7 +434,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface {
|
||||||
// clear blockchain info
|
// clear blockchain info
|
||||||
await mainDB.deleteWalletBlockchainData(walletId);
|
await mainDB.deleteWalletBlockchainData(walletId);
|
||||||
|
|
||||||
var restoreHeight =
|
final restoreHeight =
|
||||||
CwBasedInterface.cwWalletBase?.walletInfo.restoreHeight;
|
CwBasedInterface.cwWalletBase?.walletInfo.restoreHeight;
|
||||||
highestPercentCached = 0;
|
highestPercentCached = 0;
|
||||||
await CwBasedInterface.cwWalletBase?.rescan(height: restoreHeight ?? 0);
|
await CwBasedInterface.cwWalletBase?.rescan(height: restoreHeight ?? 0);
|
||||||
|
@ -392,7 +447,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface {
|
||||||
final mnemonic = await getMnemonic();
|
final mnemonic = await getMnemonic();
|
||||||
final seedLength = mnemonic.trim().split(" ").length;
|
final seedLength = mnemonic.trim().split(" ").length;
|
||||||
|
|
||||||
if (seedLength != 25) {
|
if (seedLength != 25 && seedLength != 16) {
|
||||||
throw Exception("Invalid monero mnemonic length found: $seedLength");
|
throw Exception("Invalid monero mnemonic length found: $seedLength");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -408,7 +463,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface {
|
||||||
.createMoneroWalletService(DB.instance.moneroWalletInfoBox);
|
.createMoneroWalletService(DB.instance.moneroWalletInfoBox);
|
||||||
WalletInfo walletInfo;
|
WalletInfo walletInfo;
|
||||||
WalletCredentials credentials;
|
WalletCredentials credentials;
|
||||||
String name = walletId;
|
final String name = walletId;
|
||||||
final dirPath =
|
final dirPath =
|
||||||
await pathForWalletDir(name: name, type: WalletType.monero);
|
await pathForWalletDir(name: name, type: WalletType.monero);
|
||||||
final path = await pathForWallet(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;
|
isSendAll = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<monero_output.Output> outputs = [];
|
final List<monero_output.Output> outputs = [];
|
||||||
for (final recipient in txData.recipients!) {
|
for (final recipient in txData.recipients!) {
|
||||||
final output = monero_output.Output(CwBasedInterface.cwWalletBase!);
|
final output = monero_output.Output(CwBasedInterface.cwWalletBase!);
|
||||||
output.address = recipient.address;
|
output.address = recipient.address;
|
||||||
output.sendAll = isSendAll;
|
output.sendAll = isSendAll;
|
||||||
String amountToSend = recipient.amount.decimal.toString();
|
final String amountToSend = recipient.amount.decimal.toString();
|
||||||
output.setCryptoAmount(amountToSend);
|
output.setCryptoAmount(amountToSend);
|
||||||
outputs.add(output);
|
outputs.add(output);
|
||||||
}
|
}
|
||||||
|
@ -535,7 +590,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface {
|
||||||
level: LogLevel.Warning);
|
level: LogLevel.Warning);
|
||||||
}
|
}
|
||||||
|
|
||||||
PendingMoneroTransaction pendingMoneroTransaction =
|
final PendingMoneroTransaction pendingMoneroTransaction =
|
||||||
await (awaitPendingTransaction!) as PendingMoneroTransaction;
|
await (awaitPendingTransaction!) as PendingMoneroTransaction;
|
||||||
final realFee = Amount.fromDecimal(
|
final realFee = Amount.fromDecimal(
|
||||||
Decimal.parse(pendingMoneroTransaction.feeFormatted),
|
Decimal.parse(pendingMoneroTransaction.feeFormatted),
|
||||||
|
@ -617,7 +672,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface {
|
||||||
?.entries;
|
?.entries;
|
||||||
if (balanceEntries != null) {
|
if (balanceEntries != null) {
|
||||||
int bal = 0;
|
int bal = 0;
|
||||||
for (var element in balanceEntries) {
|
for (final element in balanceEntries) {
|
||||||
bal = bal + element.value.fullBalance;
|
bal = bal + element.value.fullBalance;
|
||||||
}
|
}
|
||||||
return Amount(
|
return Amount(
|
||||||
|
@ -630,7 +685,7 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface {
|
||||||
.transactionHistory!
|
.transactionHistory!
|
||||||
.transactions;
|
.transactions;
|
||||||
int transactionBalance = 0;
|
int transactionBalance = 0;
|
||||||
for (var tx in transactions!.entries) {
|
for (final tx in transactions!.entries) {
|
||||||
if (tx.value.direction == TransactionDirection.incoming) {
|
if (tx.value.direction == TransactionDirection.incoming) {
|
||||||
transactionBalance += tx.value.amount!;
|
transactionBalance += tx.value.amount!;
|
||||||
} else {
|
} else {
|
||||||
|
@ -647,4 +702,12 @@ class MoneroWallet extends CryptonoteWallet with CwBasedInterface {
|
||||||
return info.cachedBalance.total;
|
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:async';
|
||||||
|
import 'dart:io';
|
||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
|
|
||||||
import 'package:cw_core/monero_transaction_priority.dart';
|
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_info.dart';
|
||||||
import 'package:cw_core/wallet_type.dart';
|
import 'package:cw_core/wallet_type.dart';
|
||||||
import 'package:cw_monero/api/exceptions/creation_transaction_exception.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/pending_wownero_transaction.dart';
|
||||||
import 'package:cw_wownero/wownero_wallet.dart';
|
import 'package:cw_wownero/wownero_wallet.dart';
|
||||||
import 'package:decimal/decimal.dart';
|
import 'package:decimal/decimal.dart';
|
||||||
|
@ -23,6 +23,8 @@ import 'package:isar/isar.dart';
|
||||||
import '../../../db/hive/db.dart';
|
import '../../../db/hive/db.dart';
|
||||||
import '../../../models/isar/models/blockchain_data/address.dart';
|
import '../../../models/isar/models/blockchain_data/address.dart';
|
||||||
import '../../../models/isar/models/blockchain_data/transaction.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/amount/amount.dart';
|
||||||
import '../../../utilities/enums/fee_rate_type_enum.dart';
|
import '../../../utilities/enums/fee_rate_type_enum.dart';
|
||||||
import '../../../utilities/logger.dart';
|
import '../../../utilities/logger.dart';
|
||||||
|
@ -35,11 +37,42 @@ import '../wallet_mixin_interfaces/cw_based_interface.dart';
|
||||||
import 'package:tuple/tuple.dart';
|
import 'package:tuple/tuple.dart';
|
||||||
|
|
||||||
class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
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
|
@override
|
||||||
Address addressFor({required int index, int account = 0}) {
|
Address addressFor({required int index, int account = 0}) {
|
||||||
String address = (CwBasedInterface.cwWalletBase as WowneroWalletBase)
|
final String address = (CwBasedInterface.cwWalletBase as WowneroWalletBase)
|
||||||
.getTransactionAddress(account, index);
|
.getTransactionAddress(account, index);
|
||||||
|
|
||||||
final newReceivingAddress = Address(
|
final newReceivingAddress = Address(
|
||||||
|
@ -143,13 +176,35 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
||||||
final node = getCurrentNode();
|
final node = getCurrentNode();
|
||||||
|
|
||||||
final host = Uri.parse(node.host).host;
|
final host = Uri.parse(node.host).host;
|
||||||
await CwBasedInterface.cwWalletBase?.connectToNode(
|
({InternetAddress host, int port})? proxy;
|
||||||
node: Node(
|
if (prefs.useTor) {
|
||||||
uri: "$host:${node.port}",
|
proxy = TorService.sharedInstance.getProxyInfo();
|
||||||
type: WalletType.wownero,
|
}
|
||||||
trusted: node.trusted ?? false,
|
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
|
@override
|
||||||
|
@ -199,7 +254,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
||||||
final List<Tuple2<Transaction, Address?>> txnsData = [];
|
final List<Tuple2<Transaction, Address?>> txnsData = [];
|
||||||
|
|
||||||
if (transactions != null) {
|
if (transactions != null) {
|
||||||
for (var tx in transactions.entries) {
|
for (final tx in transactions.entries) {
|
||||||
Address? address;
|
Address? address;
|
||||||
TransactionType type;
|
TransactionType type;
|
||||||
if (tx.value.direction == TransactionDirection.incoming) {
|
if (tx.value.direction == TransactionDirection.incoming) {
|
||||||
|
@ -330,7 +385,9 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
||||||
// date: DateTime.now().subtract(const Duration(
|
// date: DateTime.now().subtract(const Duration(
|
||||||
// days:
|
// days:
|
||||||
// 2))); // subtract a couple days to ensure we have a buffer for SWB
|
// 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(
|
await info.updateRestoreHeight(
|
||||||
newRestoreHeight: bufferedCreateHeight,
|
newRestoreHeight: bufferedCreateHeight,
|
||||||
|
@ -419,7 +476,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
||||||
// clear blockchain info
|
// clear blockchain info
|
||||||
await mainDB.deleteWalletBlockchainData(walletId);
|
await mainDB.deleteWalletBlockchainData(walletId);
|
||||||
|
|
||||||
var restoreHeight =
|
final restoreHeight =
|
||||||
CwBasedInterface.cwWalletBase?.walletInfo.restoreHeight;
|
CwBasedInterface.cwWalletBase?.walletInfo.restoreHeight;
|
||||||
highestPercentCached = 0;
|
highestPercentCached = 0;
|
||||||
await CwBasedInterface.cwWalletBase?.rescan(height: restoreHeight ?? 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
|
// extract seed height from 14 word seed
|
||||||
if (seedLength == 14) {
|
if (seedLength == 14) {
|
||||||
height = getSeedHeightSync(mnemonic.trim());
|
// TODO(mrcyjanek): implement
|
||||||
|
height = 1; // getSeedHeightSync(mnemonic.trim());
|
||||||
} else {
|
} else {
|
||||||
height = max(height, 0);
|
height = max(height, 0);
|
||||||
}
|
}
|
||||||
|
@ -454,7 +512,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
||||||
.createWowneroWalletService(DB.instance.moneroWalletInfoBox);
|
.createWowneroWalletService(DB.instance.moneroWalletInfoBox);
|
||||||
WalletInfo walletInfo;
|
WalletInfo walletInfo;
|
||||||
WalletCredentials credentials;
|
WalletCredentials credentials;
|
||||||
String name = walletId;
|
final String name = walletId;
|
||||||
final dirPath =
|
final dirPath =
|
||||||
await pathForWalletDir(name: name, type: WalletType.wownero);
|
await pathForWalletDir(name: name, type: WalletType.wownero);
|
||||||
final path = await pathForWallet(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;
|
isSendAll = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<wownero_output.Output> outputs = [];
|
final List<wownero_output.Output> outputs = [];
|
||||||
for (final recipient in txData.recipients!) {
|
for (final recipient in txData.recipients!) {
|
||||||
final output =
|
final output =
|
||||||
wownero_output.Output(CwBasedInterface.cwWalletBase!);
|
wownero_output.Output(CwBasedInterface.cwWalletBase!);
|
||||||
output.address = recipient.address;
|
output.address = recipient.address;
|
||||||
output.sendAll = isSendAll;
|
output.sendAll = isSendAll;
|
||||||
String amountToSend = recipient.amount.decimal.toString();
|
final String amountToSend = recipient.amount.decimal.toString();
|
||||||
output.setCryptoAmount(amountToSend);
|
output.setCryptoAmount(amountToSend);
|
||||||
outputs.add(output);
|
outputs.add(output);
|
||||||
}
|
}
|
||||||
|
@ -582,7 +640,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
||||||
level: LogLevel.Warning);
|
level: LogLevel.Warning);
|
||||||
}
|
}
|
||||||
|
|
||||||
PendingWowneroTransaction pendingWowneroTransaction =
|
final PendingWowneroTransaction pendingWowneroTransaction =
|
||||||
await (awaitPendingTransaction!) as PendingWowneroTransaction;
|
await (awaitPendingTransaction!) as PendingWowneroTransaction;
|
||||||
final realFee = Amount.fromDecimal(
|
final realFee = Amount.fromDecimal(
|
||||||
Decimal.parse(pendingWowneroTransaction.feeFormatted),
|
Decimal.parse(pendingWowneroTransaction.feeFormatted),
|
||||||
|
@ -665,7 +723,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
||||||
?.entries;
|
?.entries;
|
||||||
if (balanceEntries != null) {
|
if (balanceEntries != null) {
|
||||||
int bal = 0;
|
int bal = 0;
|
||||||
for (var element in balanceEntries) {
|
for (final element in balanceEntries) {
|
||||||
bal = bal + element.value.fullBalance;
|
bal = bal + element.value.fullBalance;
|
||||||
}
|
}
|
||||||
return Amount(
|
return Amount(
|
||||||
|
@ -676,7 +734,7 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
||||||
final transactions =
|
final transactions =
|
||||||
CwBasedInterface.cwWalletBase!.transactionHistory!.transactions;
|
CwBasedInterface.cwWalletBase!.transactionHistory!.transactions;
|
||||||
int transactionBalance = 0;
|
int transactionBalance = 0;
|
||||||
for (var tx in transactions!.entries) {
|
for (final tx in transactions!.entries) {
|
||||||
if (tx.value.direction == TransactionDirection.incoming) {
|
if (tx.value.direction == TransactionDirection.incoming) {
|
||||||
transactionBalance += tx.value.amount!;
|
transactionBalance += tx.value.amount!;
|
||||||
} else {
|
} else {
|
||||||
|
@ -693,4 +751,12 @@ class WowneroWallet extends CryptonoteWallet with CwBasedInterface {
|
||||||
return info.cachedBalance.total;
|
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 Foundation
|
||||||
|
|
||||||
import connectivity_plus
|
import connectivity_plus
|
||||||
import cw_monero
|
|
||||||
import cw_shared_external
|
|
||||||
import cw_wownero
|
|
||||||
import desktop_drop
|
import desktop_drop
|
||||||
import device_info_plus
|
import device_info_plus
|
||||||
import devicelocale
|
import devicelocale
|
||||||
|
@ -27,9 +24,6 @@ import window_size
|
||||||
|
|
||||||
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) {
|
||||||
ConnectivityPlugin.register(with: registry.registrar(forPlugin: "ConnectivityPlugin"))
|
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"))
|
DesktopDropPlugin.register(with: registry.registrar(forPlugin: "DesktopDropPlugin"))
|
||||||
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
|
DeviceInfoPlusMacosPlugin.register(with: registry.registrar(forPlugin: "DeviceInfoPlusMacosPlugin"))
|
||||||
DevicelocalePlugin.register(with: registry.registrar(forPlugin: "DevicelocalePlugin"))
|
DevicelocalePlugin.register(with: registry.registrar(forPlugin: "DevicelocalePlugin"))
|
||||||
|
|
|
@ -5,48 +5,6 @@ PODS:
|
||||||
- connectivity_plus (0.0.1):
|
- connectivity_plus (0.0.1):
|
||||||
- FlutterMacOS
|
- FlutterMacOS
|
||||||
- ReachabilitySwift
|
- 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):
|
- desktop_drop (0.0.1):
|
||||||
- FlutterMacOS
|
- FlutterMacOS
|
||||||
- device_info_plus (0.0.1):
|
- device_info_plus (0.0.1):
|
||||||
|
@ -89,9 +47,6 @@ PODS:
|
||||||
DEPENDENCIES:
|
DEPENDENCIES:
|
||||||
- coinlib_flutter (from `Flutter/ephemeral/.symlinks/plugins/coinlib_flutter/darwin`)
|
- coinlib_flutter (from `Flutter/ephemeral/.symlinks/plugins/coinlib_flutter/darwin`)
|
||||||
- connectivity_plus (from `Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos`)
|
- 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`)
|
- desktop_drop (from `Flutter/ephemeral/.symlinks/plugins/desktop_drop/macos`)
|
||||||
- device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`)
|
- device_info_plus (from `Flutter/ephemeral/.symlinks/plugins/device_info_plus/macos`)
|
||||||
- devicelocale (from `Flutter/ephemeral/.symlinks/plugins/devicelocale/macos`)
|
- devicelocale (from `Flutter/ephemeral/.symlinks/plugins/devicelocale/macos`)
|
||||||
|
@ -121,12 +76,6 @@ EXTERNAL SOURCES:
|
||||||
:path: Flutter/ephemeral/.symlinks/plugins/coinlib_flutter/darwin
|
:path: Flutter/ephemeral/.symlinks/plugins/coinlib_flutter/darwin
|
||||||
connectivity_plus:
|
connectivity_plus:
|
||||||
:path: Flutter/ephemeral/.symlinks/plugins/connectivity_plus/macos
|
: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:
|
desktop_drop:
|
||||||
:path: Flutter/ephemeral/.symlinks/plugins/desktop_drop/macos
|
:path: Flutter/ephemeral/.symlinks/plugins/desktop_drop/macos
|
||||||
device_info_plus:
|
device_info_plus:
|
||||||
|
@ -169,9 +118,6 @@ EXTERNAL SOURCES:
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
coinlib_flutter: 6abec900d67762a6e7ccfd567a3cd3ae00bbee35
|
coinlib_flutter: 6abec900d67762a6e7ccfd567a3cd3ae00bbee35
|
||||||
connectivity_plus: 18d3c32514c886e046de60e9c13895109866c747
|
connectivity_plus: 18d3c32514c886e046de60e9c13895109866c747
|
||||||
cw_monero: 7acce7238d217e3993ecac6ec2dec07be728769a
|
|
||||||
cw_shared_external: c6adfd29c9be4d64f84e1fa9c541ccbcbdb6b457
|
|
||||||
cw_wownero: bcd7f2ad6c0a3e8e2a51756fb14f0579b6f8b4ff
|
|
||||||
desktop_drop: 69eeff437544aa619c8db7f4481b3a65f7696898
|
desktop_drop: 69eeff437544aa619c8db7f4481b3a65f7696898
|
||||||
device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f
|
device_info_plus: 5401765fde0b8d062a2f8eb65510fb17e77cf07f
|
||||||
devicelocale: 9f0f36ac651cabae2c33f32dcff4f32b61c38225
|
devicelocale: 9f0f36ac651cabae2c33f32dcff4f32b61c38225
|
||||||
|
|
20
pubspec.lock
20
pubspec.lock
|
@ -388,13 +388,6 @@ packages:
|
||||||
relative: true
|
relative: true
|
||||||
source: path
|
source: path
|
||||||
version: "0.0.1"
|
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:
|
cw_wownero:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -1200,6 +1193,15 @@ packages:
|
||||||
url: "https://pub.dev"
|
url: "https://pub.dev"
|
||||||
source: hosted
|
source: hosted
|
||||||
version: "0.2.0"
|
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:
|
mutex:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
|
@ -1740,8 +1742,8 @@ packages:
|
||||||
dependency: "direct main"
|
dependency: "direct main"
|
||||||
description:
|
description:
|
||||||
path: "."
|
path: "."
|
||||||
ref: "13fa937ea9a9fc34caf047e068df9535f65c27ad"
|
ref: f31f8f857665d85338824ae171aba4c629c3ba6f
|
||||||
resolved-ref: "13fa937ea9a9fc34caf047e068df9535f65c27ad"
|
resolved-ref: f31f8f857665d85338824ae171aba4c629c3ba6f
|
||||||
url: "https://github.com/cypherstack/tezart.git"
|
url: "https://github.com/cypherstack/tezart.git"
|
||||||
source: git
|
source: git
|
||||||
version: "2.0.5"
|
version: "2.0.5"
|
||||||
|
|
|
@ -12,11 +12,11 @@ mkdir -p build
|
||||||
|
|
||||||
PLUGINS_DIR=../../crypto_plugins
|
PLUGINS_DIR=../../crypto_plugins
|
||||||
|
|
||||||
(cd "${PLUGINS_DIR}"/flutter_liblelantus/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_libepiccash/scripts/android && ./build_all.sh )
|
||||||
(cd "${PLUGINS_DIR}"/flutter_libmonero/scripts/android/ && ./build_all.sh ) &&
|
(cd "${PLUGINS_DIR}"/flutter_libmonero/scripts/android/ && ./build_all.sh )
|
||||||
set_rust_to_1720 &&
|
set_rust_to_1720
|
||||||
(cd "${PLUGINS_DIR}"/frostdart/scripts/android && ./build_all.sh ) &
|
(cd "${PLUGINS_DIR}"/frostdart/scripts/android && ./build_all.sh )
|
||||||
|
|
||||||
wait
|
wait
|
||||||
echo "Done building"
|
echo "Done building"
|
||||||
|
|
|
@ -45,7 +45,12 @@ android {
|
||||||
lintOptions {
|
lintOptions {
|
||||||
disable 'InvalidPackage'
|
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 {
|
defaultConfig {
|
||||||
applicationId "com.place.holder"
|
applicationId "com.place.holder"
|
||||||
minSdkVersion 23
|
minSdkVersion 23
|
||||||
|
|
|
@ -23,7 +23,8 @@
|
||||||
android:requestLegacyExternalStorage="true"
|
android:requestLegacyExternalStorage="true"
|
||||||
android:icon="@mipmap/ic_launcher"
|
android:icon="@mipmap/ic_launcher"
|
||||||
android:allowBackup="false"
|
android:allowBackup="false"
|
||||||
android:fullBackupContent="false">
|
android:fullBackupContent="false"
|
||||||
|
android:extractNativeLibs="true">
|
||||||
<activity
|
<activity
|
||||||
android:name=".MainActivity"
|
android:name=".MainActivity"
|
||||||
android:screenOrientation="portrait"
|
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}"
|
install(FILES "${FLUTTER_LIBRARY}" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||||
COMPONENT Runtime)
|
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)
|
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)
|
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}"
|
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, ); }; };
|
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 */; };
|
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 */; };
|
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, ); }; };
|
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 */; };
|
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, ); }; };
|
F1FA2C512BA4B51E00BDA1BB /* frostdart.dylib in Bundle Framework */ = {isa = PBXBuildFile; fileRef = F1FA2C4D2BA4B49F00BDA1BB /* frostdart.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
|
||||||
|
@ -67,6 +69,17 @@
|
||||||
name = "Bundle Framework";
|
name = "Bundle Framework";
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
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 */
|
/* End PBXCopyFilesBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXFileReference 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>"; };
|
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; };
|
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>"; };
|
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; };
|
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>"; };
|
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>"; };
|
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 = {
|
33CC10E42044A3C60003C045 = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
CEA2021F2BDD4F0B00FE1D27 /* monero_libwallet2_api_c.dylib */,
|
||||||
|
CEA2021C2BDD4D7100FE1D27 /* wownero_libwallet2_api_c.dylib */,
|
||||||
F1FA2C4F2BA4B4CA00BDA1BB /* frostdart.dylib */,
|
F1FA2C4F2BA4B4CA00BDA1BB /* frostdart.dylib */,
|
||||||
33FAB671232836740065AC1E /* Runner */,
|
33FAB671232836740065AC1E /* Runner */,
|
||||||
33CEB47122A05771004F2AC0 /* Flutter */,
|
33CEB47122A05771004F2AC0 /* Flutter */,
|
||||||
|
@ -259,6 +276,7 @@
|
||||||
33CC110E2044A8840003C045 /* Bundle Framework */,
|
33CC110E2044A8840003C045 /* Bundle Framework */,
|
||||||
3399D490228B24CF009A79C7 /* ShellScript */,
|
3399D490228B24CF009A79C7 /* ShellScript */,
|
||||||
529691D83C3BADE14E2EAC03 /* [CP] Embed Pods Frameworks */,
|
529691D83C3BADE14E2EAC03 /* [CP] Embed Pods Frameworks */,
|
||||||
|
CEA202192BDD4C3500FE1D27 /* CopyFiles */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
|
@ -277,7 +295,7 @@
|
||||||
isa = PBXProject;
|
isa = PBXProject;
|
||||||
attributes = {
|
attributes = {
|
||||||
LastSwiftUpdateCheck = 0920;
|
LastSwiftUpdateCheck = 0920;
|
||||||
LastUpgradeCheck = 1510;
|
LastUpgradeCheck = 1430;
|
||||||
ORGANIZATIONNAME = "";
|
ORGANIZATIONNAME = "";
|
||||||
TargetAttributes = {
|
TargetAttributes = {
|
||||||
331C80D4294CF70F00263BE5 = {
|
331C80D4294CF70F00263BE5 = {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<Scheme
|
<Scheme
|
||||||
LastUpgradeVersion = "1510"
|
LastUpgradeVersion = "1430"
|
||||||
version = "1.3">
|
version = "1.3">
|
||||||
<BuildAction
|
<BuildAction
|
||||||
parallelizeBuildables = "YES"
|
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}"
|
install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../crypto_plugins/flutter_liblelantus/scripts/windows/build/libmobileliblelantus.dll" DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||||
COMPONENT Runtime)
|
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)
|
if(PLUGIN_BUNDLED_LIBRARIES)
|
||||||
install(FILES "${PLUGIN_BUNDLED_LIBRARIES}"
|
install(FILES "${PLUGIN_BUNDLED_LIBRARIES}"
|
||||||
DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
DESTINATION "${INSTALL_BUNDLE_LIB_DIR}"
|
||||||
|
|
|
@ -11,12 +11,12 @@ set_rust_to_1671
|
||||||
# flutter-elinux pub get
|
# flutter-elinux pub get
|
||||||
# flutter-elinux build linux --dart-define="IS_ARM=true"
|
# flutter-elinux build linux --dart-define="IS_ARM=true"
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
./build_secure_storage_deps.sh &
|
./build_secure_storage_deps.sh
|
||||||
(cd ../../crypto_plugins/flutter_liblelantus/scripts/linux && ./build_all.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_libepiccash/scripts/linux && ./build_all.sh )
|
||||||
(cd ../../crypto_plugins/flutter_libmonero/scripts/linux && ./build_monero_all.sh && ./build_sharedfile.sh )
|
(cd ../../crypto_plugins/flutter_libmonero/scripts/linux && ./build_all.sh )
|
||||||
set_rust_to_1720
|
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
|
./build_secp256k1.sh
|
||||||
|
|
||||||
|
|
|
@ -6,11 +6,11 @@ set -x -e
|
||||||
source ../rust_version.sh
|
source ../rust_version.sh
|
||||||
set_rust_to_1671
|
set_rust_to_1671
|
||||||
|
|
||||||
(cd ../../crypto_plugins/flutter_liblelantus/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_libepiccash/scripts/macos && ./build_all.sh )
|
||||||
(cd ../../crypto_plugins/flutter_libmonero/scripts/macos/ && ./build_all.sh ) &&
|
(cd ../../crypto_plugins/flutter_libmonero/scripts/macos/ && ./build_all.sh )
|
||||||
set_rust_to_1720 &&
|
set_rust_to_1720
|
||||||
(cd ../../crypto_plugins/frostdart/scripts/macos && ./build_all.sh ) &
|
(cd ../../crypto_plugins/frostdart/scripts/macos && ./build_all.sh )
|
||||||
|
|
||||||
wait
|
wait
|
||||||
echo "Done building"
|
echo "Done building"
|
||||||
|
|
|
@ -7,11 +7,11 @@ source ../rust_version.sh
|
||||||
set_rust_to_1671
|
set_rust_to_1671
|
||||||
|
|
||||||
mkdir -p build
|
mkdir -p build
|
||||||
(cd ../../crypto_plugins/flutter_libepiccash/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_liblelantus/scripts/windows && ./build_all.sh )
|
||||||
(cd ../../crypto_plugins/flutter_libmonero/scripts/windows && ./build_all.sh)
|
(cd ../../crypto_plugins/flutter_libmonero/scripts/windows && ./build_all.sh)
|
||||||
set_rust_to_1720
|
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
|
./build_secp256k1_wsl.sh
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
(cd ../../crypto_plugins/flutter_libepiccash/scripts/windows && ./deps.sh ) &
|
(cd ../../crypto_plugins/flutter_libepiccash/scripts/windows && ./deps.sh )
|
||||||
(cd ../../crypto_plugins/flutter_liblelantus/scripts/windows && ./mxedeps.sh ) &
|
(cd ../../crypto_plugins/flutter_liblelantus/scripts/windows && ./mxedeps.sh )
|
||||||
# (cd ../../crypto_plugins/flutter_libmonero/scripts/windows && ./monerodeps.sh && ./mxedeps.sh) &
|
# (cd ../../crypto_plugins/flutter_libmonero/scripts/windows && ./monerodeps.sh && ./mxedeps.sh) &
|
||||||
|
|
||||||
wait
|
wait
|
||||||
|
|
Loading…
Reference in a new issue