Skip to content

Commit f654540

Browse files
authored
Merge branch 'staging' into fix/firo-op-return-fee-selection
2 parents c317248 + 9517439 commit f654540

20 files changed

Lines changed: 445 additions & 66 deletions

File tree

.github/workflows/build.yaml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ jobs:
254254
255255
- uses: subosito/flutter-action@v2
256256
with:
257-
flutter-version: '3.44.8'
257+
flutter-version: '3.44.9'
258258
channel: 'stable'
259259

260260
- uses: actions/setup-go@v6
@@ -373,7 +373,7 @@ jobs:
373373
374374
- uses: subosito/flutter-action@v2
375375
with:
376-
flutter-version: '3.44.8'
376+
flutter-version: '3.44.9'
377377
channel: 'stable'
378378

379379
- uses: actions/setup-go@v6
@@ -455,7 +455,7 @@ jobs:
455455

456456
- uses: subosito/flutter-action@v2
457457
with:
458-
flutter-version: '3.44.8'
458+
flutter-version: '3.44.9'
459459
channel: 'stable'
460460

461461
- uses: actions/setup-go@v6
@@ -882,7 +882,7 @@ jobs:
882882
883883
- uses: subosito/flutter-action@v2
884884
with:
885-
flutter-version: '3.44.8'
885+
flutter-version: '3.44.9'
886886
channel: 'stable'
887887

888888
- uses: actions/setup-go@v6
@@ -971,7 +971,7 @@ jobs:
971971
972972
- uses: subosito/flutter-action@v2
973973
with:
974-
flutter-version: '3.44.8'
974+
flutter-version: '3.44.9'
975975
channel: 'stable'
976976

977977
- uses: actions/setup-go@v6
@@ -1046,7 +1046,7 @@ jobs:
10461046

10471047
- uses: subosito/flutter-action@v2
10481048
with:
1049-
flutter-version: '3.44.8'
1049+
flutter-version: '3.44.9'
10501050
channel: 'stable'
10511051

10521052
- uses: actions/setup-go@v6
@@ -1340,7 +1340,7 @@ jobs:
13401340
13411341
- uses: subosito/flutter-action@v2
13421342
with:
1343-
flutter-version: '3.44.8'
1343+
flutter-version: '3.44.9'
13441344
channel: 'stable'
13451345

13461346
- uses: actions/setup-go@v6
@@ -1429,7 +1429,7 @@ jobs:
14291429
14301430
- uses: subosito/flutter-action@v2
14311431
with:
1432-
flutter-version: '3.44.8'
1432+
flutter-version: '3.44.9'
14331433
channel: 'stable'
14341434

14351435
- uses: actions/setup-go@v6
@@ -1506,7 +1506,7 @@ jobs:
15061506

15071507
- uses: subosito/flutter-action@v2
15081508
with:
1509-
flutter-version: '3.44.8'
1509+
flutter-version: '3.44.9'
15101510
channel: 'stable'
15111511

15121512
- uses: actions/setup-go@v6

Dockerfile

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ RUN curl -fsSL https://go.dev/dl/go1.24.13.linux-amd64.tar.gz -o /tmp/go.tar.gz
8383
ENV FLUTTER_HOME=/opt/flutter \
8484
PATH=/opt/flutter/bin:/opt/flutter/bin/cache/dart-sdk/bin:$PATH
8585

86-
RUN git clone --depth 1 --branch 3.44.8 https://github.com/flutter/flutter.git "$FLUTTER_HOME" \
86+
RUN git clone --depth 1 --branch 3.44.9 https://github.com/flutter/flutter.git "$FLUTTER_HOME" \
8787
&& git config --global --add safe.directory '*' \
8888
&& flutter config --no-analytics \
8989
&& flutter precache --linux --android \
@@ -168,7 +168,7 @@ RUN curl -fsSL https://go.dev/dl/go1.24.13.linux-amd64.tar.gz -o /tmp/go.tar.gz
168168
ENV FLUTTER_HOME=/opt/flutter \
169169
PATH=/opt/flutter/bin:/opt/flutter/bin/cache/dart-sdk/bin:$PATH
170170

171-
RUN git clone --depth 1 --branch 3.44.8 https://github.com/flutter/flutter.git "$FLUTTER_HOME" \
171+
RUN git clone --depth 1 --branch 3.44.9 https://github.com/flutter/flutter.git "$FLUTTER_HOME" \
172172
&& git config --global --add safe.directory '*' \
173173
&& flutter config --no-analytics \
174174
&& flutter precache --android \
@@ -200,7 +200,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
200200
ENV FLUTTER_HOME=/opt/flutter \
201201
PATH=/opt/flutter/bin:/opt/flutter/bin/cache/dart-sdk/bin:$PATH
202202

203-
RUN git clone --depth 1 --branch 3.44.8 https://github.com/flutter/flutter.git "$FLUTTER_HOME" \
203+
RUN git clone --depth 1 --branch 3.44.9 https://github.com/flutter/flutter.git "$FLUTTER_HOME" \
204204
&& git config --global --add safe.directory '*' \
205205
&& flutter config --no-analytics \
206206
&& flutter precache --linux \

flatpak/com.cypherstack.campfire.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ finish-args:
1010
- --socket=fallback-x11
1111
- --socket=wayland
1212
- --device=dri
13-
- --filesystem=~/.campfire
13+
- --filesystem=~/.campfire:create
1414
- --talk-name=org.freedesktop.secrets
1515
- --talk-name=org.freedesktop.Notifications
1616

flatpak/com.cypherstack.stackduo.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ finish-args:
1010
- --socket=fallback-x11
1111
- --socket=wayland
1212
- --device=dri
13-
- --filesystem=~/.stackduo
13+
- --filesystem=~/.stackduo:create
1414
- --talk-name=org.freedesktop.secrets
1515
- --talk-name=org.freedesktop.Notifications
1616

flatpak/com.cypherstack.stackwallet.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ finish-args:
1010
- --socket=fallback-x11
1111
- --socket=wayland
1212
- --device=dri
13-
- --filesystem=~/.stackwallet
13+
- --filesystem=~/.stackwallet:create
1414
- --talk-name=org.freedesktop.secrets
1515
- --talk-name=org.freedesktop.Notifications
1616

lib/pages/exchange_view/exchange_step_views/step_4_view.dart

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -288,9 +288,14 @@ class _Step4ViewState extends ConsumerState<Step4View> {
288288
);
289289

290290
if (wallet is FiroWallet && !firoPublicSend) {
291-
throw Exception(
292-
"Sending private Firo funds to an exchange address is temporarily "
293-
"unavailable.",
291+
txDataFuture = wallet.prepareSendSpark(
292+
txData: TxData(
293+
recipients: [recipient],
294+
note:
295+
"${model.trade!.payInCurrency.toUpperCase()}/"
296+
"${model.trade!.payOutCurrency.toUpperCase()} exchange",
297+
),
298+
requireChaumV2: true,
294299
);
295300
} else {
296301
final memo = wallet.info.coin is Stellar

lib/pages/exchange_view/send_from_view.dart

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -293,6 +293,7 @@ class _SendFromCardState extends ConsumerState<SendFromCard> {
293293
),
294294
);
295295
} else {
296+
final firoWallet = wallet as FiroWallet;
296297
// otherwise do firo send based on balance selected
297298
if (shouldSendPublicFiroFunds) {
298299
txDataFuture = wallet.prepareSend(
@@ -302,9 +303,21 @@ class _SendFromCardState extends ConsumerState<SendFromCard> {
302303
),
303304
);
304305
} else {
305-
throw Exception(
306-
"Sending private Firo funds to an exchange address is "
307-
"temporarily unavailable.",
306+
txDataFuture = firoWallet.prepareSendSpark(
307+
txData: TxData(
308+
recipients: recipient.addressType == .spark ? null : [recipient],
309+
sparkRecipients: recipient.addressType == .spark
310+
? [
311+
(
312+
address: recipient.address,
313+
amount: recipient.amount,
314+
memo: "",
315+
isChange: false,
316+
),
317+
]
318+
: null,
319+
),
320+
requireChaumV2: true,
308321
);
309322
}
310323
}

lib/pages/send_view/confirm_transaction_view.dart

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -764,7 +764,11 @@ class _ConfirmTransactionViewState
764764
Text(
765765
widget.isPaynymTransaction
766766
? widget.txData.paynymAccountLite!.nymName
767-
: widget.txData.recipients?.first.address ??
767+
: widget
768+
.txData
769+
.recipients
770+
?.firstOrNull
771+
?.address ??
768772
widget
769773
.txData
770774
.sparkRecipients!
@@ -1110,7 +1114,11 @@ class _ConfirmTransactionViewState
11101114
// TODO: [prio=med] spark transaction specifics - better handling
11111115
widget.isPaynymTransaction
11121116
? widget.txData.paynymAccountLite!.nymName
1113-
: widget.txData.recipients?.first.address ??
1117+
: widget
1118+
.txData
1119+
.recipients
1120+
?.firstOrNull
1121+
?.address ??
11141122
widget
11151123
.txData
11161124
.sparkRecipients!

lib/services/exchange/lets_exchange/models/coin_info.dart

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,17 @@ class CoinInfo {
2727

2828
factory CoinInfo.fromJson(Map<String, dynamic> json) {
2929
final rawProfit = json["profit"] as String?;
30-
final rawExpiredAt = json["rate_id_expired_at"] as int?;
30+
31+
final rawExpiredAt = json["rate_id_expired_at"] is int
32+
? json["rate_id_expired_at"] as int
33+
: json["rate_id_expired_at"] is String
34+
? int.tryParse(json["rate_id_expired_at"] as String)
35+
: null;
36+
37+
final expiredAt = rawExpiredAt == null
38+
? null
39+
: DateTime.fromMillisecondsSinceEpoch(rawExpiredAt);
40+
3141
return CoinInfo(
3242
minAmount: Decimal.parse(json["min_amount"] as String),
3343
maxAmount: Decimal.parse(json["max_amount"] as String),
@@ -36,9 +46,7 @@ class CoinInfo {
3646
profit: rawProfit == null ? null : Decimal.tryParse(rawProfit),
3747
withdrawalFee: Decimal.parse(json["withdrawal_fee"] as String),
3848
rateId: json["rate_id"] as String?,
39-
rateIdExpiredAt: rawExpiredAt == null
40-
? null
41-
: DateTime.fromMillisecondsSinceEpoch(rawExpiredAt),
49+
rateIdExpiredAt: expiredAt,
4250
);
4351
}
4452

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
bool isSparkSpendTransaction(Map<String, dynamic> transaction) {
2+
final type = transaction['type'];
3+
return transaction['version'] == 3 && (type == 9 || type == 11);
4+
}

0 commit comments

Comments
 (0)