Skip to content

Commit 1d877fd

Browse files
authored
Merge branch 'staging' into masternode-dialog-update
2 parents 7b427dc + 665e21c commit 1d877fd

46 files changed

Lines changed: 2661 additions & 876 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build.yaml

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -239,6 +239,23 @@ jobs:
239239
- name: Get dependencies
240240
run: flutter pub get
241241

242+
# Stack Wallet uses mwebd.exe as a subprocess on Windows, not the FFI
243+
# DLL, so we don't need libmwebd.dll. The upstream plugin's Windows
244+
# build path requires WSL, which the GitHub runner lacks.
245+
- name: Patch flutter_mwebd to skip Windows FFI build (CI workaround)
246+
run: |
247+
set -euo pipefail
248+
cache_root="$(cygpath -u "$LOCALAPPDATA")/Pub/Cache/hosted/pub.dev"
249+
plugin_dir=$(find "$cache_root" -maxdepth 1 -type d -name 'flutter_mwebd-*' -print -quit)
250+
if [ -z "$plugin_dir" ] || [ ! -f "$plugin_dir/pubspec.yaml" ]; then
251+
echo "::error::Could not locate flutter_mwebd in $cache_root"
252+
exit 1
253+
fi
254+
pubspec="$plugin_dir/pubspec.yaml"
255+
echo "Patching $pubspec"
256+
sed -i '/^ windows:$/,/^ ffiPlugin: true$/d' "$pubspec"
257+
flutter pub get
258+
242259
- name: Create git_versions.dart stubs
243260
run: |
244261
mkdir -p crypto_plugins/flutter_libepiccash/lib
@@ -370,11 +387,6 @@ jobs:
370387
echo "version=${VERSION}" >> $GITHUB_OUTPUT
371388
echo "build_number=${BUILD_NUMBER}" >> $GITHUB_OUTPUT
372389
373-
- uses: dtolnay/rust-toolchain@master
374-
with:
375-
toolchain: '1.71.0'
376-
targets: aarch64-apple-ios
377-
378390
- uses: dtolnay/rust-toolchain@master
379391
with:
380392
toolchain: stable

Dockerfile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
2020
ocl-icd-opencl-dev opencl-headers valac zlib1g-dev \
2121
g++-aarch64-linux-gnu gcc-aarch64-linux-gnu \
2222
g++-mingw-w64-x86-64 gcc-mingw-w64-x86-64 \
23-
openjdk-17-jdk-headless \
23+
openjdk-21-jdk-headless \
2424
&& rm -rf /var/lib/apt/lists/*
2525

2626
RUN curl -fsSL https://deb.nodesource.com/setup_24.x | bash - \
@@ -38,7 +38,7 @@ RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs \
3838
&& cargo install cargo-ndk \
3939
&& chmod -R a+rwX "$CARGO_HOME" "$RUSTUP_HOME"
4040

41-
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
41+
ENV JAVA_HOME=/usr/lib/jvm/java-21-openjdk-amd64
4242

4343
ENV ANDROID_SDK_ROOT=/opt/android-sdk \
4444
ANDROID_HOME=/opt/android-sdk \
6.04 KB
Loading
6.04 KB
Loading
6.04 KB
Loading

lib/models/isar/exchange_cache/currency.dart

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import 'package:isar_community/isar.dart';
1313
import '../../../app_config.dart';
1414
import '../../../services/exchange/change_now/change_now_exchange.dart';
1515
import '../../../services/exchange/exchange.dart';
16+
import '../../../services/exchange/exolix/exolix_exchange.dart';
1617
import '../../../services/exchange/nanswap/nanswap_exchange.dart';
1718
import '../../../services/exchange/trocador/trocador_exchange.dart';
1819
import '../../../services/exchange/wizard_swap/wizard_swap_exchange.dart';
@@ -83,6 +84,8 @@ class Currency {
8384
// already lower case ticker basically
8485
const (ChangeNowExchange) => network,
8586

87+
const (ExolixExchange) => network.toLowerCase(),
88+
8689
// not used at the time being
8790
// case const (SimpleSwapExchange):
8891

lib/models/paynym/paynym_account_lite.dart

Lines changed: 32 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,57 @@
1-
/*
1+
/*
22
* This file is part of Stack Wallet.
3-
*
3+
*
44
* Copyright (c) 2023 Cypher Stack
55
* All Rights Reserved.
66
* The code is distributed under GPLv3 license, see LICENSE file for details.
77
* Generated by Cypher Stack on 2023-05-26
88
*
99
*/
1010

11+
import 'package:bip47/bip47.dart';
12+
import 'package:bitcoindart/bitcoindart.dart' as bitcoindart;
13+
1114
class PaynymAccountLite {
1215
final String nymId;
1316
final String nymName;
1417
final String code;
1518
final bool segwit;
19+
final bool taproot;
1620

1721
PaynymAccountLite(
1822
this.nymId,
1923
this.nymName,
2024
this.code,
21-
this.segwit,
22-
);
25+
this.segwit, {
26+
this.taproot = false,
27+
});
2328

2429
PaynymAccountLite.fromMap(Map<String, dynamic> map)
25-
: nymId = map["nymId"] as String,
26-
nymName = map["nymName"] as String,
27-
code = map["code"] as String,
28-
segwit = map["segwit"] as bool;
30+
: nymId = map["nymId"] as String,
31+
nymName = map["nymName"] as String,
32+
code = map["code"] as String,
33+
segwit = map["segwit"] as bool,
34+
taproot = map["taproot"] as bool? ?? inferTaproot(map["code"] as String);
35+
36+
static bool inferTaproot(String paymentCodeString) {
37+
try {
38+
final pCode = PaymentCode.fromPaymentCode(
39+
paymentCodeString,
40+
networkType: bitcoindart.bitcoin,
41+
);
42+
return pCode.isTaprootEnabled();
43+
} catch (_) {
44+
return false;
45+
}
46+
}
2947

3048
Map<String, dynamic> toMap() => {
31-
"nymId": nymId,
32-
"nymName": nymName,
33-
"code": code,
34-
"segwit": segwit,
35-
};
49+
"nymId": nymId,
50+
"nymName": nymName,
51+
"code": code,
52+
"segwit": segwit,
53+
"taproot": taproot,
54+
};
3655

3756
@override
3857
String toString() {

lib/models/paynym/paynym_claim.dart

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,13 +15,10 @@ class PaynymClaim {
1515
PaynymClaim(this.claimed, this.token);
1616

1717
PaynymClaim.fromMap(Map<String, dynamic> map)
18-
: claimed = map["claimed"] as String,
19-
token = map["token"] as String;
18+
: claimed = map["claimed"].toString(),
19+
token = map["token"] as String;
2020

21-
Map<String, dynamic> toMap() => {
22-
"claimed": claimed,
23-
"token": token,
24-
};
21+
Map<String, dynamic> toMap() => {"claimed": claimed, "token": token};
2522

2623
@override
2724
String toString() {

lib/pages/exchange_view/exchange_form.dart

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import '../../services/exchange/change_now/change_now_exchange.dart';
3030
import '../../services/exchange/exchange.dart';
3131
import '../../services/exchange/exchange_data_loading_service.dart';
3232
import '../../services/exchange/exchange_response.dart';
33+
import '../../services/exchange/exolix/exolix_exchange.dart';
3334
import '../../services/exchange/nanswap/nanswap_exchange.dart';
3435
import '../../services/exchange/trocador/trocador_exchange.dart';
3536
import '../../services/exchange/wizard_swap/wizard_swap_exchange.dart';
@@ -81,6 +82,7 @@ class _ExchangeFormState extends ConsumerState<ExchangeForm> {
8182
} else {
8283
return [
8384
ChangeNowExchange.instance,
85+
ExolixExchange.instance,
8486
TrocadorExchange.instance,
8587
NanswapExchange.instance,
8688
WizardSwapExchange.instance,

0 commit comments

Comments
 (0)