Cw 1220 fix payjoin dependency issues (#2519)

* feat: use latest payjoin deps * build(cw_bitcoin_cash): bump required dart sdk for * chore: update PR test build workflow container image to latest version * chore: update container images in PR test build workflows to Flutter 3.29.0 * chore: update container images in PR test build workflows to Flutter 3.29.3 * chore: update uni_links dependency to latest commit hash [skip-ci] * chore: remove unused PluginRegistrantCallback implementation from Application classes * fix: CakeTor for PayJoin workers and add retry delay

Konstantin Ullrich committed Sep 22, 2025 at 06:47 UTC 3508efb1672dedba27d16cb745dd57182af878f2
11 files changed +82 -67
.github/workflows/pr_test_build_android.yml
+1 -1
@@ -9,7 +9,7 @@ jobs:
9 PR_test_build:
10 runs-on: linux-amd64
11 container:
12 - image: ghcr.io/cake-tech/cake_wallet:debian12-flutter3.27.4-ndkr28-go1.24.1-ruststablenightly
12 + image: ghcr.io/cake-tech/cake_wallet:debian12-flutter3.29.3-ndkr28-go1.24.1-ruststablenightly
13 env:
14 STORE_PASS: test@cake_wallet
15 KEY_PASS: test@cake_wallet
.github/workflows/pr_test_build_linux.yml
+1 -1
@@ -9,7 +9,7 @@ jobs:
9 PR_test_build:
10 runs-on: linux-amd64
11 container:
12 - image: ghcr.io/cake-tech/cake_wallet:debian12-flutter3.27.4-ndkr28-go1.24.1-ruststablenightly
12 + image: ghcr.io/cake-tech/cake_wallet:debian12-flutter3.29.3-ndkr28-go1.24.1-ruststablenightly
13 env:
14 STORE_PASS: test@cake_wallet
15 KEY_PASS: test@cake_wallet
android/app/src/main/java/com/cakewallet/cake_wallet/Application.java
+2 -7
@@ -1,11 +1,6 @@
1 package com.cakewallet.cake_wallet;
2
3 import io.flutter.app.FlutterApplication;
4 -import io.flutter.plugin.common.PluginRegistry;
5 -import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback;
6 -import io.flutter.plugins.GeneratedPluginRegistrant;
4
8 -public class Application extends FlutterApplication implements PluginRegistrantCallback {
9 - @Override
10 - public void registerWith(PluginRegistry registry) {}
11 -}
\ No newline at end of file
5 +public class Application extends FlutterApplication {
6 +}
android/app/src/main/java/com/cakewallet/haven/Application.java
+2 -7
@@ -1,11 +1,6 @@
1 package com.cakewallet.haven;
2
3 import io.flutter.app.FlutterApplication;
4 -import io.flutter.plugin.common.PluginRegistry;
5 -import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback;
6 -import io.flutter.plugins.GeneratedPluginRegistrant;
4
8 -public class Application extends FlutterApplication implements PluginRegistrantCallback {
9 - @Override
10 - public void registerWith(PluginRegistry registry) {}
11 -}
\ No newline at end of file
5 +public class Application extends FlutterApplication {
6 +}
android/app/src/main/java/com/monero/app/Application.java
+2 -7
@@ -1,11 +1,6 @@
1 package com.monero.app;
2
3 import io.flutter.app.FlutterApplication;
4 -import io.flutter.plugin.common.PluginRegistry;
5 -import io.flutter.plugin.common.PluginRegistry.PluginRegistrantCallback;
6 -import io.flutter.plugins.GeneratedPluginRegistrant;
4
8 -public class Application extends FlutterApplication implements PluginRegistrantCallback {
9 - @Override
10 - public void registerWith(PluginRegistry registry) {}
11 -}
\ No newline at end of file
5 +public class Application extends FlutterApplication {
6 +}
cw_bitcoin/lib/payjoin/payjoin_receive_worker.dart
+3
@@ -9,6 +9,7 @@ import 'package:cw_bitcoin/payjoin/payjoin_session_errors.dart';
9 import 'package:cw_bitcoin/psbt/signer.dart';
10 import 'package:cw_core/utils/print_verbose.dart';
11 import 'package:cw_core/utils/proxy_wrapper.dart';
12 +import 'package:cw_core/utils/tor/abstract.dart';
13 import 'package:payjoin_flutter/bitcoin_ffi.dart';
14 import 'package:payjoin_flutter/common.dart';
15 import 'package:payjoin_flutter/receive.dart';
@@ -32,6 +33,7 @@ class PayjoinReceiverWorker {
33 static final client = ProxyWrapper().getHttpIOClient();
34 static Future<void> run(List<Object> args) async {
35 await pj.core.init();
36 + CakeTor.instance = await CakeTorInstance.getInstance();
37
38 final sendPort = args[0] as SendPort;
39 final receiverJson = args[1] as String;
@@ -113,6 +115,7 @@ class PayjoinReceiverWorker {
115 final proposal = await session.processRes(
116 body: httpRequest.bodyBytes, ctx: extractReq.$2);
117 if (proposal != null) return proposal;
118 + sleep(Duration(seconds: 2));
119 }
120 }
121
cw_bitcoin/lib/payjoin/payjoin_send_worker.dart
+3
@@ -6,6 +6,7 @@ import 'package:cw_bitcoin/payjoin/manager.dart';
6 import 'package:cw_bitcoin/payjoin/payjoin_session_errors.dart';
7 import 'package:cw_core/utils/print_verbose.dart';
8 import 'package:cw_core/utils/proxy_wrapper.dart';
9 +import 'package:cw_core/utils/tor/abstract.dart';
10 import 'package:payjoin_flutter/common.dart';
11 import 'package:payjoin_flutter/send.dart';
12 import 'package:payjoin_flutter/src/generated/frb_generated.dart' as pj;
@@ -26,6 +27,7 @@ class PayjoinSenderWorker {
27
28 static Future<void> run(List<Object> args) async {
29 await pj.core.init();
30 + CakeTor.instance = await CakeTorInstance.getInstance();
31
32 final sendPort = args[0] as SendPort;
33 final senderJson = args[1] as String;
@@ -91,6 +93,7 @@ class PayjoinSenderWorker {
93 );
94 printV("$proposalPsbt");
95 if (proposalPsbt != null) return proposalPsbt;
96 + sleep(Duration(seconds: 2));
97 }
98 } catch (e) {
99 rethrow;
cw_bitcoin/pubspec.lock
+64 -40
@@ -42,10 +42,10 @@ packages:
42 dependency: transitive
43 description:
44 name: async
45 - sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c"
45 + sha256: d2872f9c19731c2e5f10444b14686eb7cc85c76274bd6c16e1816bff9a3bab63
46 url: "https://pub.dev"
47 source: hosted
48 - version: "2.11.0"
48 + version: "2.12.0"
49 bbqrdart:
50 dependency: "direct main"
51 description:
@@ -119,10 +119,10 @@ packages:
119 dependency: transitive
120 description:
121 name: boolean_selector
122 - sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66"
122 + sha256: "8aab1771e1243a5063b8b0ff68042d67334e3feab9e95b9490f9a6ebf73b42ea"
123 url: "https://pub.dev"
124 source: hosted
125 - version: "2.1.1"
125 + version: "2.1.2"
126 bs58check:
127 dependency: transitive
128 description:
@@ -216,10 +216,10 @@ packages:
216 dependency: transitive
217 description:
218 name: characters
219 - sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605"
219 + sha256: f71061c654a3380576a52b451dd5532377954cf9dbd272a78fc8479606670803
220 url: "https://pub.dev"
221 source: hosted
222 - version: "1.3.0"
222 + version: "1.4.0"
223 checked_yaml:
224 dependency: transitive
225 description:
@@ -240,10 +240,10 @@ packages:
240 dependency: transitive
241 description:
242 name: clock
243 - sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf
243 + sha256: fddb70d9b5277016c77a80201021d40a2247104d9f4aa7bab7157b7e3f05b84b
244 url: "https://pub.dev"
245 source: hosted
246 - version: "1.1.1"
246 + version: "1.1.2"
247 code_builder:
248 dependency: transitive
249 description:
@@ -256,10 +256,10 @@ packages:
256 dependency: transitive
257 description:
258 name: collection
259 - sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf
259 + sha256: "2f5709ae4d3d59dd8f7cd309b4e023046b57d8a6c82130785d2b0e5868084e76"
260 url: "https://pub.dev"
261 source: hosted
262 - version: "1.19.0"
262 + version: "1.19.1"
263 convert:
264 dependency: transitive
265 description:
@@ -350,10 +350,10 @@ packages:
350 dependency: transitive
351 description:
352 name: fake_async
353 - sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78"
353 + sha256: "6a95e56b2449df2273fd8c45a662d6947ce1ebb7aafe80e550a3f68297f3cacc"
354 url: "https://pub.dev"
355 source: hosted
356 - version: "1.3.1"
356 + version: "1.3.2"
357 ffi:
358 dependency: "direct overridden"
359 description:
@@ -573,18 +573,18 @@ packages:
573 dependency: transitive
574 description:
575 name: leak_tracker
576 - sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06"
576 + sha256: c35baad643ba394b40aac41080300150a4f08fd0fd6a10378f8f7c6bc161acec
577 url: "https://pub.dev"
578 source: hosted
579 - version: "10.0.7"
579 + version: "10.0.8"
580 leak_tracker_flutter_testing:
581 dependency: transitive
582 description:
583 name: leak_tracker_flutter_testing
584 - sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379"
584 + sha256: f8b613e7e6a13ec79cfdc0e97638fddb3ab848452eff057653abd3edba760573
585 url: "https://pub.dev"
586 source: hosted
587 - version: "3.0.8"
587 + version: "3.0.9"
588 leak_tracker_testing:
589 dependency: transitive
590 description:
@@ -647,10 +647,10 @@ packages:
647 dependency: transitive
648 description:
649 name: matcher
650 - sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
650 + sha256: dc58c723c3c24bf8d3e2d3ad3f2f9d7bd9cf43ec6feaa64181775e60190153f2
651 url: "https://pub.dev"
652 source: hosted
653 - version: "0.12.16+1"
653 + version: "0.12.17"
654 material_color_utilities:
655 dependency: transitive
656 description:
@@ -663,10 +663,10 @@ packages:
663 dependency: transitive
664 description:
665 name: meta
666 - sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7
666 + sha256: e3641ec5d63ebf0d9b41bd43201a66e3fc79a65db5f61fc181f04cd27aab950c
667 url: "https://pub.dev"
668 source: hosted
669 - version: "1.15.0"
669 + version: "1.16.0"
670 mime:
671 dependency: transitive
672 description:
@@ -691,6 +691,14 @@ packages:
691 url: "https://pub.dev"
692 source: hosted
693 version: "2.7.1"
694 + mockito:
695 + dependency: transitive
696 + description:
697 + name: mockito
698 + sha256: f99d8d072e249f719a5531735d146d8cf04c580d93920b04de75bef6dfb2daf6
699 + url: "https://pub.dev"
700 + source: hosted
701 + version: "5.4.5"
702 nested:
703 dependency: transitive
704 description:
@@ -720,10 +728,10 @@ packages:
728 dependency: transitive
729 description:
730 name: path
723 - sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
731 + sha256: "75cca69d1490965be98c73ceaea117e8a04dd21217b37b292c9ddbec0d955bc5"
732 url: "https://pub.dev"
733 source: hosted
726 - version: "1.9.0"
734 + version: "1.9.1"
735 path_provider:
736 dependency: "direct main"
737 description:
@@ -776,9 +784,9 @@ packages:
784 dependency: "direct main"
785 description:
786 path: "."
779 - ref: da83a23f3a011cb49eb3b6513cd485b3fb8867ff
780 - resolved-ref: da83a23f3a011cb49eb3b6513cd485b3fb8867ff
781 - url: "https://github.com/OmarHatem28/payjoin-flutter"
787 + ref: "01ba81f6d9ba063fd1902a7fd1e185c2d56f6002"
788 + resolved-ref: "01ba81f6d9ba063fd1902a7fd1e185c2d56f6002"
789 + url: "https://github.com/LtbLightning/payjoin-flutter"
790 source: git
791 version: "0.23.0"
792 petitparser:
@@ -992,10 +1000,10 @@ packages:
1000 dependency: transitive
1001 description:
1002 name: source_span
995 - sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c"
1003 + sha256: "254ee5351d6cb365c859e20ee823c3bb479bf4a293c22d17a9f1bf144ce86f7c"
1004 url: "https://pub.dev"
1005 source: hosted
998 - version: "1.10.0"
1006 + version: "1.10.1"
1007 sp_scanner:
1008 dependency: "direct main"
1009 description:
@@ -1005,22 +1013,30 @@ packages:
1013 url: "https://github.com/cake-tech/sp_scanner"
1014 source: git
1015 version: "0.0.1"
1016 + sprintf:
1017 + dependency: transitive
1018 + description:
1019 + name: sprintf
1020 + sha256: "1fc9ffe69d4df602376b52949af107d8f5703b77cda567c4d7d86a0693120f23"
1021 + url: "https://pub.dev"
1022 + source: hosted
1023 + version: "7.0.0"
1024 stack_trace:
1025 dependency: transitive
1026 description:
1027 name: stack_trace
1012 - sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377"
1028 + sha256: "8b27215b45d22309b5cddda1aa2b19bdfec9df0e765f2de506401c071d38d1b1"
1029 url: "https://pub.dev"
1030 source: hosted
1015 - version: "1.12.0"
1031 + version: "1.12.1"
1032 stream_channel:
1033 dependency: transitive
1034 description:
1035 name: stream_channel
1020 - sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7
1036 + sha256: "969e04c80b8bcdf826f8f16579c7b14d780458bd97f56d107d3950fdbeef059d"
1037 url: "https://pub.dev"
1038 source: hosted
1023 - version: "2.1.2"
1039 + version: "2.1.4"
1040 stream_transform:
1041 dependency: transitive
1042 description:
@@ -1033,26 +1049,26 @@ packages:
1049 dependency: transitive
1050 description:
1051 name: string_scanner
1036 - sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3"
1052 + sha256: "921cd31725b72fe181906c6a94d987c78e3b98c2e205b397ea399d4054872b43"
1053 url: "https://pub.dev"
1054 source: hosted
1039 - version: "1.3.0"
1055 + version: "1.4.1"
1056 term_glyph:
1057 dependency: transitive
1058 description:
1059 name: term_glyph
1044 - sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84
1060 + sha256: "7f554798625ea768a7518313e58f83891c7f5024f88e46e7182a4558850a4b8e"
1061 url: "https://pub.dev"
1062 source: hosted
1047 - version: "1.2.1"
1063 + version: "1.2.2"
1064 test_api:
1065 dependency: transitive
1066 description:
1067 name: test_api
1052 - sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c"
1068 + sha256: fb31f383e2ee25fbbfe06b40fe21e1e458d14080e3c67e7ba0acfde4df4e0bbd
1069 url: "https://pub.dev"
1070 source: hosted
1055 - version: "0.7.3"
1071 + version: "0.7.4"
1072 timing:
1073 dependency: transitive
1074 description:
@@ -1117,6 +1133,14 @@ packages:
1133 url: "https://github.com/bukata-sa/bc-ur-dart"
1134 source: git
1135 version: "0.1.0"
1136 + uuid:
1137 + dependency: transitive
1138 + description:
1139 + name: uuid
1140 + sha256: a5be9ef6618a7ac1e964353ef476418026db906c4facdedaa299b7a2e71690ff
1141 + url: "https://pub.dev"
1142 + source: hosted
1143 + version: "4.5.1"
1144 vector_math:
1145 dependency: transitive
1146 description:
@@ -1129,10 +1153,10 @@ packages:
1153 dependency: transitive
1154 description:
1155 name: vm_service
1132 - sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b
1156 + sha256: "0968250880a6c5fe7edc067ed0a13d4bae1577fe2771dcf3010d52c4a9d3ca14"
1157 url: "https://pub.dev"
1158 source: hosted
1135 - version: "14.3.0"
1159 + version: "14.3.1"
1160 watcher:
1161 dependency: "direct overridden"
1162 description:
@@ -1198,5 +1222,5 @@ packages:
1222 source: hosted
1223 version: "2.2.2"
1224 sdks:
1201 - dart: ">=3.6.2 <4.0.0"
1225 + dart: ">=3.7.0-0 <4.0.0"
1226 flutter: ">=3.27.0"
cw_bitcoin/pubspec.yaml
+2 -2
@@ -42,8 +42,8 @@ dependencies:
42 url: https://github.com/cake-tech/bech32.git
43 payjoin_flutter:
44 git:
45 - url: https://github.com/OmarHatem28/payjoin-flutter
46 - ref: da83a23f3a011cb49eb3b6513cd485b3fb8867ff #cake-v2
45 + url: https://github.com/LtbLightning/payjoin-flutter
46 + ref: 01ba81f6d9ba063fd1902a7fd1e185c2d56f6002
47 ledger_flutter_plus: ^1.4.1
48 ledger_bitcoin:
49 git:
cw_bitcoin_cash/pubspec.yaml
+1 -1
@@ -6,7 +6,7 @@ author: Cake Wallet
6 homepage: https://cakewallet.com
7
8 environment:
9 - sdk: '>=2.19.0 <3.0.0'
9 + sdk: ">=2.17.5 <3.0.0"
10 flutter: ">=1.20.0"
11
12 dependencies:
pubspec_base.yaml
+1 -1
@@ -43,7 +43,7 @@ dependencies:
43 uni_links:
44 git:
45 url: https://github.com/MrCyjaneK/uni_links
46 - ref: 8e9efa4d9beb19e4ac44009576337f1ce51c22e2
46 + ref: 1989db3f5d625e2fffbad7b85a3b1b8c78c6dfa1
47 path: uni_links
48 lottie: ^3.3.1
49 animate_do: ^2.1.0